Amazon Fraud Detector(利用Amazon Fraud Detector輕鬆建立線上防詐機制)

- 作者 -
Ian Lin, Solutions Architect, AWS
Sam Tu, Business Development Manager, AWS

[挑戰/適用情境]

由於數位生態蓬勃發展,越來越多的活動藉由數位方式進行。而線上行為因其特性使然,較難第一時間辨明是否為所宣稱的使用者所為,於事後追查往往耗費資源又難以查明。於本案例中,我們可利用此欺詐洞察服務,調整模型中的變數,用於以下常見線上詐欺偵測場景:
  • 新帳號註冊欺詐: 準確區分合法和高風險客戶帳戶註冊,故可根據風險不同採用其他步驟或檢查,兼顧使用者權益及避免電商/售票系統虛假身分註冊情形發生
  • 線上付款欺詐:藉由處理付款和履行訂單之前標記可疑的線上支付交易,以減少多種線上支付欺詐
  • 虛假評論濫用:檢測潛在的欺詐性或虛假評論(如商品/賣家評論),可在公開該評論前進行審核

本篇範例為幫助客戶在偵測新帳號註冊時,根據使用者Email 及 IP 地址,給予評分協助偵測是否有詐騙事件產生

[操作步驟]

步驟概覽 

步驟一
構建 Amazon Fraud Detector 模型
步驟二
配置即時欺詐預測服務 (在線欺詐洞察)
步驟三
建立並整合至會員入口網站

步驟一、構建 Amazon Fraud Detector 模型

1.1
下載以下文件,解壓縮並使用虛擬合成訓練數據, 檔案名稱 "registration_data_20K_minimum"

在線欺詐洞察模型要求訓練數據集具有至少兩個變量、總示例為10K且有400個欺詐示例來訓練模型。除了事件變量之外,訓練數據集還必須包含以下標題:
  • EVENT_TIMESTAMP: 定義事件發生的時間。有關更多信息,請參閱事件時間戳格式。
  • EVENT_LABEL: 將事件分類為欺詐或合法的。列中的值必須與事件類型中定義的值相對應。

1.2
訓練數據 registration_data_20K_minimum.csv 檔案, 上傳至 Amazon S3



1.3.1
定義需要偵測的詐欺事件, 在AWS Console 頁面上點選 Create event

1.3.2
輸入 sample_registration 作為事件類型名稱
1.3.3
創建實體類型, 輸入 sample_customer 作為實體類型名稱, 選擇 Create entity (創建實體)。
1.3.4
事件變量, 選擇 Select variables from a training dataset (從訓練數據集中選擇變量).
1.3.5
IAM角色, 選擇 創建IAM角色
1.3.6
在 創建IAM角色 頁面中, 輸入上傳培訓數據的特定存儲桶名稱。選擇創建角色。
1.3.7
數據位置, 請輸入培訓數據的 S3路徑, 然後選擇 上傳

1.3.8
為了讓 Amazon Fraud Detector 轉譯變量, 必須將資料變量映射到變量類型。 
  • ip_address 對應到 “IP Address”  
  • email_address 對應到 “Email Address”
1.3.9
標籤, 選擇 Create label
1.3.10
創建標籤, 
輸入 fraud 作為標籤名稱, 此標籤對應並表示數據集中的事件為 詐欺,然後選擇 創建標籤
按照相同的步驟創建第二個標籤, 這次輸入 legit 作為標籤名稱, 此標籤對應並表示數據集中的事件為 合法
 1.4.1
構建模型, 在 Models 頁面,選擇 添加模型 然後選擇 創建模型
1.4.2
輸入 sample_fraud_detection_model 作為模型名稱, 並選擇輸入模型的描述
型號類型,選擇 Online Fraud Insights 型號
對於 事件類型,選擇 sample_registration (您在步驟 1.3.2 中創建的事件類型)
歷史事件數據, 對於 IAM角色,選擇您在步驟 1.3.5 中創建的角色。
於培訓數據(Training data location), 輸入您的 S3 訓練資料檔案路徑, 參考下圖獲取 S3 檔案路徑
選擇下一步。

1.5.1
Model inputs 
使用默認設定。默認情況下,Amazon欺詐探測器將使用 歷史事件數據集 中的所有變量

Label classification
對於 欺詐標籤, 選擇 fraud, 因為此標籤對應於數據集中的欺詐事件
對於 合法標籤,選擇 legit,  因為此標籤對應於數據集中的合法事件
選擇下一步

1.5.2
選擇 創建和培訓模型(Create and train model).
Amazon欺詐探測器將開始創建新版本模型, 使用範例的訓練數據集, 進行模型訓練大約需要45分鐘完成

步驟二、配置即時欺詐預測服務 (在線欺詐洞察)

2.1.1
在 Amazon Fraud Detector 控制台左側,請選擇 檢測器(Detectors), 接著選擇右側 建立檢測器(Create detector)
2.1.2
定義檢測器詳細信息,輸入 sample_detector, 並且輸入關於檢測器的描述,例如 my sample fraud detector
事件類型(Event type), 選擇 sample_registration

2.2.1
添加模型,選擇 添加模型,選擇 sample_fraud_detection_model
點選下一步

2.3.1
完成命名檢測器並添加模型後, 您可以創建規則定義 Amazon Fraud Detector 模型分數
在本範例中, 將制定三個規則: high_fraud_risk、medium_fraud_risk 和 low_fraud_risk

輸入 high_fraud_risk 規則名稱, 並輸入 This rule captures events with a high ML model score 作爲規則的描述

 請使用以下規則表達式, Amazon Fraud Detector 簡化的規則表達式語言:
$sample_fraud_detection_model_insightscore > 900
結果,選擇 創建新結果. 結果是欺詐預測的結果,如果規則在評估期間匹配,則返回。
創建新結果,輸入 verify_customer 作爲結果名稱
選擇 保存結果
選擇 添加規則 以運行規則驗證檢查程序並保存規則。製作完成後, Amazon Fraud Detector 使規則可用於您的檢測器。

2.3.2
選擇 添加其他規則,然後選擇 創建規則 
重複這個過程兩次, 創建 medium_fraud_risklow_fraud_risk , 使用以下規則詳細信息的規則:
規則名稱: medium_fraud_risk
結果: review
表達:
$sample_fraud_detection_model_insightscore <= 900 and
$sample_fraud_detection_model_insightscore > 700
規則名稱: low_fraud_risk
結果: approve
表達:
$sample_fraud_detection_model_insightscore <= 700
這些值只是參考示範。未來您在自己的檢測器創建規則時, 應根據您的模型、數據和業務使用合適的值
創建完三個規則後, 請選擇 下一步

有關創建和編寫規則的更多信息,請參閱 建立規則規則語言參考.

2.4.1
默認規則執行模式爲 FIRST_MATCHED , 選擇 FIRST_MATCHED 然後選擇 下一步.
First matched
First matched 執行模式基於定義的規則順序返回 First matched 規則的結果。如果指定 FIRST_MATCHED, Amazon Fraud Detector 按順序評估規則(從第一個到最後一個), 在第一次匹配到的規則停止。 Amazon Fraud Detector 然後提供該單個規則的結果。執行規則的順序可能會影響生成的欺詐預測結果。創建規則後, 請重新排序規則以按所需順序執行, 方法是按照以下步驟:
如果您的 high_fraud_risk 規則不在規則列表頂部,請選擇 訂單(Order),然後選擇 1. 這會 high_fraud_risk 到第一位置。
重複此過程, 以便 medium_fraud_risk 規則處於第二個位置, low_fraud_risk 規則位於第三個位置。

All matched
無論規則順序如何, 所有匹配的規則執行模式都會返回 All matched 的規則的結果。如果指定 ALL_MATCHED, Amazon Fraud Detector 評估所有規則並返回 all matched 規則的結果。

2.5.1
在Amazon Fraud Detector控制台中,您可以使用模擬事件數據使用運行測試功能。

步驟三、建立並整合至會員入口網站

3.1.1
建立EC2, 作業系統選擇 Ubuntu 16.04, 虛擬機器類型 t2.micro

3.1.2
在 Security Group 開啟Port 3000

3.1.3
為EC2 建立IAM Role, 獲得存取 Amazon Fraud Detector 的權限, 並命名為 “AFDAccesssRole”

3.1.4
將IAM Role “AFDAccesssRole” 套用於步驟 3.1.1 所建立出來的 EC2

3.2.1
SSH 進到 EC2, 並執行以下腳本內容
sudo apt-get update
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
. ~/.nvm/nvm.sh
nvm install 12.16.3

3.2.2
下載程式範例
wget https://node-js-web-demo.s3.amazonaws.com/frauddetector-master-new.zip
unzip frauddetector-master-new.zip
修改資料夾frauddetector-master-new目錄下 .env 檔案內容

3.2.3
執行以下指令, 運行應用程式
npm install  
npm run start

3.3.1
測試應用程式
訪問 http://{EC2_IP_ADDRESS}:3000

[FAQ]

Q1:  Amazon 欺詐偵測器如何運作?
A1: 首先,選取機器學習模型範本,其將指定經過最佳化的功能和演算法組合,以偵測特定形式的線上詐騙。接著,上傳歷史詐騙資料,以根據您的獨特資訊自動訓練、測試和部署自訂詐騙偵測模型。在此過程中將使用一系列模型,這些模型憑藉 AWS 和 Amazon 自身的防詐騙專業知識來了解詐騙模式,從而提升客戶的模型效能。輸出即採用分數形式的預測,範圍從 0 至 1,000,可預測詐騙風險的可能性。在程序的最後階段,設定決策邏輯 (例如規則) 來解釋模型分數並指派結果,例如將通過交易或將其傳送至人工調查人員進行檢閱。

Q2: 我是否能為使用案例自訂 Amazon 詐騙偵測器的組態?
A2: 是的。您可以結合使用詐騙偵測器 ML 模型、SageMaker 模型和規則,為每個使用案例自訂 Amazon 詐騙偵測器。首先,您需要收集相關的風險資料用作詐騙評估的輸入,例如電子郵件地址、電話號碼和 IP 地址。該資料將輸入至機器學習模型中,該模型則輸出分數。然後,您可以使用一組偵測規則,來解釋分數和其他風險資料以做出決策,例如核准或將訂單傳送至詐騙分析師進行調查。一個簡單規則和相應結果的範例可能如下所示︰“IF model_score < 50 & credit_card_country = US THEN approve_order”。

[References]


  • 免費註冊AWS帳號

    數百萬名客戶正使用 AWS 雲端解決方案建立提升彈性、可擴展性、安全性和可靠性的應用程式,歡迎探索各類免費方案在 AWS 上進行建置。

    免費註冊>>

  • 與我們聯絡

    遇到問題?不管是架構設計、架構優化、效能提升等等,都竭誠歡迎你/妳聯絡 AWS 的雲端業務!

    留下資料 >>

  • 與專人線上對談

    有任何新專案的想法,想要評估使用 AWS 服務,或目前在使用上需要原廠協助之處,都可以跟我們聊聊!

    開啓對話>>