Amazon Fraud Detector(利用Amazon Fraud Detector輕鬆建立線上防詐機制)
- 作者 -
Ian Lin, Solutions Architect, AWS
Sam Tu, Business Development Manager, AWS
[挑戰/適用情境]由於數位生態蓬勃發展,越來越多的活動藉由數位方式進行。而線上行為因其特性使然,較難第一時間辨明是否為所宣稱的使用者所為,於事後追查往往耗費資源又難以查明。於本案例中,我們可利用此欺詐洞察服務,調整模型中的變數,用於以下常見線上詐欺偵測場景:
本篇範例為幫助客戶在偵測新帳號註冊時,根據使用者Email 及 IP 地址,給予評分協助偵測是否有詐騙事件產生 [操作步驟]步驟概覽
步驟一、構建 Amazon Fraud Detector 模型1.1 下載以下文件,解壓縮並使用虛擬合成訓練數據, 檔案名稱 "registration_data_20K_minimum"
在線欺詐洞察模型要求訓練數據集具有至少兩個變量、總示例為10K且有400個欺詐示例來訓練模型。除了事件變量之外,訓練數據集還必須包含以下標題:
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 轉譯變量, 必須將資料變量映射到變量類型。
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 簡化的規則表達式語言:
結果,選擇 創建新結果. 結果是欺詐預測的結果,如果規則在評估期間匹配,則返回。
創建新結果,輸入 verify_customer 作爲結果名稱選擇 保存結果
選擇 添加規則 以運行規則驗證檢查程序並保存規則。製作完成後, Amazon Fraud Detector 使規則可用於您的檢測器。
2.3.2 選擇 添加其他規則,然後選擇 創建規則
重複這個過程兩次, 創建
medium_fraud_risk 和 low_fraud_risk , 使用以下規則詳細信息的規則:規則名稱:
medium_fraud_risk 結果: review 表達:
規則名稱:
low_fraud_risk 結果: approve 表達:
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 3.2.2 下載程式範例
wget https://node-js-web-demo.s3.amazonaws.com/frauddetector-master-new.zip 修改資料夾frauddetector-master-new目錄下 .env 檔案內容
3.2.3 執行以下指令, 運行應用程式
3.3.1 [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]
|