我們為甚麼以及如何使用即時機器學習監控幣安平台上的詐欺活動
關鍵要點
幣安運用機器學習模型監控平台上的可疑活動。
稱為「過期功能」的問題可能會對這類模型的效能產生負面影響,導致模型做出不準確的預測或分類。
我們的串流管道 – 即持續為模型提供即時數據的流程 – 包含兩個部分:數據處理與數據供給。
數據處理則更進一步區分為三個類型:串流運算、引入與接收。
了解我們如何運用機器學習保障幣安生態系的安全。
我們由機器學習工程師與數據科學家組成的風險 AI 團隊全天不間斷打擊詐欺,保護幣安用戶。為達成這項目標,他們運用 AI 驅動解決方案辨識潛在威脅並做出回應,威脅包含 點對點 (C2C) 詐騙、付款資訊竊取與帳戶接管攻擊 (ATO) 等。
本文將解釋我們的風險 AI 團隊如何運用串流管道保證即時回應,以及幕後運作情形。
若您不熟悉機器學習,我們建議閱讀以下部分,以大致掌握本文使用辭彙。
批次與串流
機器學習工程師多半使用兩種管道:批次與串流。兩種皆有優缺點,取決於當下情況需要。
批次管道正如其名,以批次處理數據。工程師多半運用批次管道處理大量數據。
另一方面,串流管道會即時處理收集到的數據。因此非常合適需要近乎即時反應的串流;例如在駭客提取帳戶資金盜用之前預先偵測。
請注意,兩種管道同樣重要。串流管道適合提供即時回應,批次管道則較適合處理大量數據。
防制詐欺需要以即時數據為優先,避免產生稱作「模型過期」的情況,即機器學習模型過期或變得不準確。
過期的影響力
就如同人類若不學習最新的資訊或技術,處理工作的能力會下降,機器學習模型也可能因為未定期根據現況進行更新而變得不準確。
您不樂見發生的事件之一,便是防止詐欺的模型過期。過期的後果包含:模型誤將合法交易標記為詐欺,或無法辨識帳戶入侵。因此,我們運用串流管道,確保防制詐欺模型接收到即時數據。
帳戶接管 (ATO) 模型運算
以幣安的 ATO 模型舉例,我們訓練 ATO 模型辨識遭到犯罪者惡意劫持的帳戶。本模型計算的其中一個特徵,便是特定客戶在過去一分鐘內進行的交易次數。
駭客行動多半有特定順序模式,在短時間內進行如提款等大量操作。系統必須盡快計算這項特徵,以防潛在威脅。這代表必須將用戶操作到用戶活動數據處理之間的模型延遲降到最低。僅僅幾秒鐘的時間,便可能成功阻止駭客,或是導致用戶失去所有資金。
更多有關特徵延遲影響模型效能的資訊,您可以參考 LinkedIn Engineering 撰寫的這篇文章:類即時自訂類型的類即時功能 (Near real-time features for near real-time personalization)。
批次運算的功能
注意特徵過期的重要性會因使用的模型或特徵不同而有所改變。舉例來說,某些特徵就相對穩定。上述 ATO 案例中,我們同時需要檢索過去 30 天用戶的提領數據,才能以最近的交易計算比率。
在這個例子中,即便等待數據送入數據倉儲與批次工作固定運行的時間會導致每小時或每日等較長時間區段的批次運算數據過期程度較大,其結果仍能接受。
新鮮度與延遲之間的平衡
批次或串流管道之間的最終選擇,應基於當前使用案例與特徵的特定需求。仔細考量這些因素,能幫助我們建構保護用戶的高效防制詐欺系統。
運用串流管道,便可在高時效性特徵上以新鮮度為優先,延遲次之。上圖便說明了上述需求,因檢索特徵的運算次數應為三次而非兩次。
這便是為甚麼即時機器學習管道對於風險團隊的日常運作至關重要。
串流管道解析
幣安風險 AI 團隊的即時機器學習主要包含兩個部分:
數據處理 (圖片上半)
數據供給 (圖片下半)
數據處理
就數據處理,我們可以把串流管道 (Flink Job) 根據職責分為三個部分:
串流運算:特徵建構
串流引入:特徵引入
串流接收:數據豐富化
串流運算
管道的串流運算部分負責近乎即時特徵建構,即自原始數據取出特徵的流程。
流程中會預先運算機器學習模型線上預測時使用的特徵。串流運算管道有兩種運算方式:時間型與事件型。
時間型。每 10 分鐘計算交易次數。這會令數據稍微過期,但能降低延遲。
事件型。根據當前事件計算特徵。這能降低過期程度,但會稍微增加延遲。
我們偏好盡可能不使用即時運算,理由如下:
過期與延遲之間存在權衡。在接收線上要求時,運算特徵會限制我們只能使用輕量運算邏輯。這個方法雖能降低過期程度,但特徵計算會增加預測延遲。
獨立資源配置有其挑戰性,因預測與運算服務相互依賴。
根據請求量調整的隨選運算會產生無法預期的資源配置壓力。
即時運算無法適應我們的模型監控 (訓練-應用偏差) 與特徵監控解決方案,因特徵並非儲存在中央數據庫中,即特徵儲存。
串流引入
串流引入元件負責自機器學習平台 Kafka 將特徵近乎即時地引入儲存。特徵儲存為容納常用特徵的中心化數據庫。它們在機器學習管道中扮演重要角色。您可以在下列文章中了解更多:深入了解我們的機器學習特徵儲存與運用 MLOps 建立即時端對端機器學習管道。
串流接收
串流接收元件主要負責將即時事件存入特定目的地 — 如 S3 等高度分散式檔案系統 (HDFS) 或 ElasticSearch 等外部數據庫 — 皆取決於專案需求。
就我們的風險 AI 團隊而言,根據使用案例不同,一般而言有兩種數據豐富化模式,可用於 Kafka 的即時數據:
靜態數據。舉例而言,為 Flink 工作中的 C2C 相關業務計畫檢索 S3 中的熱門掛單方清單。參考資料是靜態的,每一個多月才需要更新一次。
動態數據。舉例來說,即時匯率 (BTC 兌美元) 是從 Redis 等外部數據庫獲得。依每筆紀錄進行查找,可在參考資料變動時,確保低延遲與高精確度。
數據供給
管道的數據供給元件負責線上預測與批次運算。
線上預測。Decision Hub (我們風險團隊的內部規則引擎) 提出要求時,便會進行線上預測。相關服務呼叫特徵儲存以檢索特徵,並將特徵傳送給機器學習模型進行評分。我們的風險 AI 團隊有超過 20 種機器學習模型,每種模型皆因應不同業務需求設計。
批次運算。雖然批次預算可能產生多達數天的延遲,其角色依舊不可或缺,因批次運算能夠完善即時運算的功能。
總結
我們必須了解到,加密貨幣市場全天不間斷進行交易,不若傳統金融市場有開市與閉市時間。每秒鐘都會持續流入新數據 (存提款、交易等),我們必須加以關注,找出試圖竊取用戶資金或個人資料的不肖人士。
我們的風險 AI 團隊努力不懈地開發並維護精密 AI 系統,有效標記可疑活動。由於團隊的努力,我們能迅速採取行動,保護遭入侵的幣安帳戶,避免潛在損失,或盡可能降低傷害。
請繼續關注更多說明我們機器學習工作的文章,或於下方閱讀我們此前的部分文章。對幣安機器學習工作感興趣嗎?瀏覽我們職涯頁面當中的幣安工程,了解公開職缺。