結合基於規則和人工智能模型打擊金融欺詐
2021年1月19日 在工程的博客
金融服務行業(FSI)正在加速轉型變革,通過新的數字渠道提供交易功能和促進支付,以保持競爭力。不幸的是,這些功能所提供的速度和便利性也有利於欺詐者。
鑒於近年來整體欺詐數量創曆史新高,且呈多元化趨勢,金融服務中的欺詐行為仍然是企業利潤麵臨的頭號威脅。最近的一項調查普華永道概述了欺詐行為在全球的驚人影響。例如,僅在美國,2019年企業的成本就達到420億美元,47%的受訪企業在過去24個月經曆過欺詐。
那麼,企業應該如何應對日益增長的欺詐威脅呢?欺詐者正在利用新的數字環境的能力,這意味著企業必須在實時打擊欺詐的同時,仍要牢記客戶體驗。進一步闡述,金融機構利用兩個關鍵杠杆來最大限度地減少欺詐損失:有效的欺詐預防策略和向客戶退款。beplay体育app下载地址兩者都有利有弊,因為它們直接影響客戶體驗。在這篇博客中,我們將描述如何使用Databricks的現代數據架構來構建欺詐檢測和預防框架,該框架可以有效地平衡欺詐預防策略和策略,以提高回收率,同時保持盡可能高的客戶滿意度。
構建可伸縮的健壯框架的挑戰
由於不斷變化的環境和客戶期望,構建欺詐預防框架通常不僅僅是創建一個高精度的機器學習(ML)模型。通常情況下,它涉及一個複雜的ETL過程和一個決策科學設置,該設置將規則引擎與ML平台結合在一起。Beplay体育安卓版本這種平台的要求包括可伸縮性和基於開源標準構建的跨區域團隊Beplay体育安卓版本的多個工作空間的隔離性。通過設計,這樣的環境使數據科學家、數據工程師和分析師能夠在安全的環境中協作。
我們將首先考慮使用數據湖屋架構結合Databricks的企業平台Beplay体育安卓版本,以支援防欺詐應用程序的所有下遊應用程序的基礎設施需求。在這篇博客中,我們還將引用Databricks的核心組件Lakehouse達美航空發動機,這是一個針對大數據工作負載的可伸縮性和性能而設計的高性能查詢引擎MLflow,一個完全托管的ML治理工具,用於跟蹤ML實驗並快速生產它們。
客戶360數據湖
在金融服務中,特別是在構建防欺詐應用程序時,我們經常需要統一來自各種數據源的數據,通常規模從幾tb到pb不等。隨著技術的快速變化和金融服務集成新係統,數據存儲係統必須跟上不斷變化的底層數據格式。與此同時,這些係統必須支持數據管道的有機演進,同時保持成本效益。我們提議將Delta Lake作為建立在開源標準上的一致存儲層,以實現特征的存儲和計算,以保持異常檢測模型處於前沿。
數據工程師可以輕鬆連接到各種外部數據管道和支付網關使用Databricks攝食合作夥伴網絡統一會員交易、業績和交易曆史。如前所述,隨著數據流入,計算新特性並隨著時間的推移刷新現有特性非常關鍵。預先計算的特征的例子是成員帳戶曆史的曆史聚合或統計平均值,對於下遊分析報告和加速ML模型的再訓練很重要。Databricks的三角洲湖和本土達美航空發動機正是為此目的而構建的,並且可以使用spark兼容的api來加快功能開發的速度,從而為工程團隊強製執行最高級別的質量約束。
一個服務Beplay体育安卓版本於所有欺詐預防用例的平台
由於我們的欺詐檢測方法涉及規則套件和ML的組合,Databricks非常適合,因為它是創建規則和ML模型所需的各種角色集的家——即業務分析師、領域專家和數據科學家。在下一節中,我們將概述Databricks映射到角色的不同組件,以及規則如何使用MLflow、共享筆記本和Databricks SQL滿足ML。
用戶能夠使用多個工作區進行協作,同時在用戶級別提供隔離,這在金融服務中至關重要。與Databricks的企業雲服務架構,組織可以在幾分鍾內創建新的工作空間。這在編排欺詐檢測框架時非常有用,因為它為各種產品、業務組用戶和CI/CD創建了隔離編製在每一組中。例如,信用卡業務組用戶可以與存款隔離,並且每個業務線可以控製模型構件的開發和推廣。
將基於規則的係統與人工智能相結合
映射用戶和Databricks的組件
欺詐檢測開發周期始於業務分析師和領域專家,他們通常貢獻了初始發現的主要部分,包括示例規則集。這些常識規則涉及到可靠的特征(如客戶位置和離家的距離):
a)執行速度快
b) FSI易於解釋和防禦
c)減少誤報(即通過規則框架減少誤報)
d)足夠靈活,可以增加欺詐模型所需的訓練數據的範圍
雖然規則是第一道防線,也是公司整體欺詐策略的重要組成部分,但金融服務行業一直在開發和采用先進的ML算法以及規則集。下麵的設計層展示了使用組合規則集和ML模型的方法的幾個組件。現在,讓我們看看每個組件和將支持各自操作的角色的典型工作流。
使用SQL功能探索規則
對於探索性數據分析,Databricks為分析師角色提供了兩種攻擊欺詐的方法:Databricks SQL/Python/ r支持的筆記本,用於數據工程和數據科學磚的SQL用於商業智能和決策。Databricks SQL是一個環境,用戶可以在其中構建儀表板以捕獲曆史信息,輕鬆查詢數據湖表,並連接BI工具以進行進一步探索。如下所示,分析人員能夠創建帶有描述性統計數據的儀表板,然後轉換到對單個欺詐性預測的調查,以驗證特定交易被選為欺詐性的原因。
此外,用戶可以編輯支持儀表板的任何底層查詢,並訪問數據湖對象的目錄,以通知未來的功能,這些功能可以用作基於規則/基於ML的欺詐預防算法的一部分。特別是,用戶可以開始使用規則集對數據進行切片,這些規則集最終會進入生產模型。如下圖所示,它突出顯示了SQL查詢編輯器以及以下協作和易於使用的特性:beplay娱乐ios
- 查詢共享和可重用性同一個查詢可以驅動多個儀表板,這對底層SQL端點的負載要求更低,允許更高的並發性
- 查詢格式化改進了Databricks上SQL的可讀性和易用性
- 分享-通過右上角的“共享”功能,可以在業務分析師、領域專家和數據科學家之間共享查詢
規則和模型編製框架
我們已經討論了在欺詐檢測實現中利用規則集的好處。然而,重要的是要認識到嚴格的基於規則的引擎的局限性,即:
- 今天實施的嚴格的基於規則的方法明天就會過時因為騙子經常更新策略。然而,隨著新的欺詐模式的出現,分析人員將爭相製定新的規則來檢測新的實例,從而導致高昂的維護成本。此外,在更新數據的情況下,無法快速檢測欺詐會帶來硬成本——ML方法可以幫助加快檢測欺詐的時間,從而挽救商家的潛在損失
- 規則缺乏一係列的結論因此忽略了風險承受能力,因為他們不能提供欺詐的概率
- 準確性會受到影響由於在評估欺詐交易時規則之間缺乏交互作用,造成損失
對於欺詐檢測框架開發,我們推薦將規則集與ML模型相結合的混合方法。為此,我們使用了業務邏輯編輯器在圖形界麵中開發規則,Drools等係統通常使用圖形界麵來簡化規則製定。具體來說,我們交互式地將規則編碼為圖中的節點,並引用現有MLflow模型(使用其ML注冊表URI,如models:/fraud_prediction/production),以指示由數據科學家同事開發的ML模型應該在執行上麵的規則後加載並用於預測輸出。每個規則都使用Delta Lake表中的一個特性,該特性是由數據工程團隊策劃的,一旦添加了該特性就可以立即使用(請參閱有關模式演變的更多詳細信息)在這裏看看在ML項目的整個生命周期中向表添加特性是多麼簡單)。
我們通過迭代地添加每個規則來創建邏輯流(例如,作為基準規則,授權金額應該小於賬戶上的可用現金),並添加有向邊來可視化決策過程。同時,我們的數據科學家可能有一個ML模型來捕捉通過訓練數據發現的欺詐實例。作為一名數據分析師,我們可以簡單地注釋一個注釋,以捕獲ML模型的執行,從而為我們提供正在評估的事務的欺詐概率。
注意:在下麵的圖片中,包含所有規則的底層標記語言(DMN)是基於XML的,所以不管使用什麼工具或gui來生成規則,通常都是從底層平麵文件或XML(例如,像這樣的係統)中提取規則集和圖形結構Drools).
如上所示,在組合了規則集和模型步驟之後,我們現在可以將整個可視化流編碼到Databricks中的決策欺詐檢測引擎中。也就是說,我們可以從Kogito工具中提取DMN標記直接上傳到數據庫作為文件。由於.dmn文件具有節點和邊緣內容,表示要執行的規則和模型的順序,因此我們可以利用圖結構。幸運的是,我們可以使用網絡分析Python包networkx來攝取、驗證和遍曆圖。該軟件包將作為欺詐評分框架的基礎。
進口networkx作為nxXmldoc = mindom .parse(“DFF_Ruleset.dmn”)itemlist = xmldoc.getElementsByTagName(“靜:決定”)G = x. digraph ()為項在itemlist:Node_id = item.attributes[“id”) valuenode_decision =str(item.attributes [“名字”] value)G.add_node (node_id、決策= node_decision)infolist = item.getElementsByTagName(“靜:informationRequirement”)如果(len(infolist) >0):Info = infolist[0]為要求的事情在info.getElementsByTagName (“靜:requiredDecision”):Parent_id = req.attributes[“href”] .value.split (“#”) (-1]G.add_edge (parent_id node_id)
既然已經有了元數據和工具,我們將使用MLflow將混合規則集和模型包裝到一個自定義Pyfunc模型中,這是一個用於欺詐評分的輕量級包裝器。唯一的假設是,上麵DAG(有向無環圖)中注釋和使用的模型在MLflow模型注冊表中注冊,並且有一個名為“預測”的列作為我們的概率。框架pyfunc編排器模型(利用networkx)將遍曆圖並直接從XML內容執行規則,一旦調用pyfunc進行推理,就會導致“批準”或“拒絕”狀態。
下麵是用前麵提到的規則編輯器創建的一個DAG示例。我們已經編碼了規則和預先注冊的模型的混合(顯示在所附的筆記本中)。規則文件本身被持久化在模型構件中,因此,在推理時,所有規則和模型都從雲存儲中加載,而使用的模型(在本例中為欺詐檢測模型)則從實時數據管道中的MLflow模型注冊中心加載。請注意,在示例事務的示例運行中,對於示例輸入不滿足第三條規則,因此節點被標記為紅色,這表明存在欺詐事務。
為了進一步理解模型如何執行規則,下麵是自定義Pyfunc本身的一個片段,它使用pandasql在SQL case語句中編碼XML規則集的字符串,用於簡單的標誌設置。這將導致編排器的輸出,用於指定欺詐或有效事務。
進口mlflow.pyfunc類DFF_Model(mlflow.pyfunc.PythonModel):進口networkx作為nx進口熊貓作為pd從pandasql進口sqldf“‘對於基於規則的情況,我們隻需根據預定義的SQL where子句匹配記錄如果規則匹配,則返回1,否則返回0“‘deffunc_sql(自我,sql):從pandasql進口sqldf我們還沒有執行匹配,隻是返回一個函數這允許我們隻定義一次函數deffunc_sql2(input_df):Pred = sqldf("SELECT CASE WHEN {} THEN 1 ELSE 0 END AS predict FROM input_df".格式(sql)) .predicted.iloc [0]返回pred返回func_sql2
決策和服務
最後,我們將展示欺詐檢測框架的端到端架構。值得注意的是,我們概述了數據科學家和數據分析師的工作,即規則集和模型。這些在決策層中進行組合,以測試哪些模式將被視為欺詐或有效。規則集本身作為構件存儲在自定義MLflow Pyfunc模型中,並可以在推理時加載到內存中,這是在測試期間在Python conda環境中完成的。最後,一旦決策框架準備好推廣到生產環境中,還有幾個與部署相關的步驟:
- 決策框架編碼在自定義的pyfunc模型中,該模型可以加載到Docker容器中進行實時推理。
- 用於推理的基本MLflow容器應該部署到ECR (Amazon)、ACR (Azure)或通常是Docker Hub。
- 一旦將框架部署到容器服務(EKS、AKS或自定義k8s部署),該服務將引用容器存儲庫和MLflow模型存儲庫,以建立應用程序端點。由於服務層基於k8s和輕量級pyfunc模型,因此模型推斷相對較快。在推理需要亞秒級(ms)延遲的情況下,邏輯可以用C、Go或其他框架重寫。
- 為了在實時評分時快速查找曆史數據,可以將數據從之前創建的Customer 360特性存儲中加載到內存數據庫中。最後,企業案例管理係統可以與Customer 360 Data Lake接口,從部署容器中捕獲評分結果。
建立現代欺詐框架
雖然有效打擊欺詐是供應商和金融服務組織之間的共同責任,但通過部署有效的欺詐預防策略,金融服務機構可以最大限度地減少直接財務損失,並通過減少虛假拒絕來提高客戶的信任。beplay体育app下载地址正如我們在調查中所看到的,欺詐行為迅速多樣化,金融行業已經轉向分析模型和ML來管理損失和提高客戶滿意度。構建和維護基礎設施以支持多個產品團隊和角色是一項巨大的任務,這可能直接影響公司的收入底線。
我們相信,該解決方案解決了雲計算可擴展性、欺詐預防工作流管理和生產級開源ML框架的關鍵領域,通過使不同內部團隊之間更緊密地結合,為組織構建和維護現代欺詐和金融犯罪管理基礎設施。
本解決方案加速器是使用Databricks的統一分析平台構建欺詐和金融犯罪解決方案係列的第一部分。Beplay体育安卓版本試試Databricks上的以下筆記本,利用人工智能的力量來降低聲譽風險。聯係我們以了解更多有關我們如何協助金融服務機構處理類似用例的信息。
試試筆記本
請查看解決方案加速器下載本博客中提到的筆記。