跳轉到主要內容
工程的博客

識別與地理空間聚類金融欺詐

2021年4月13日 工程的博客

分享這篇文章

查看解決方案加速器附帶的筆記本

對於大多數金融服務機構(FSI),預防欺詐通常意味著一個複雜的生態係統構成的各種組件,傳統的基於規則的控製和人工智能(AI)和本地係統的大雜燴,開源的框架和私有雲技術。結合嚴格的監管要求(如模型explainability)、高的治理框架,低延遲和高可用性(子卡交易第二響應時間),這些係統昂貴的操作,很難維持,甚至更難適應客戶不斷變化的行為和騙子。beplay体育app下载地址類似於風險管理現代欺詐預防策略必須敏捷的核心數據,結合協作中心的運營模式的交付策略建立代碼,數據和機器學習(ML)如DataOps, DevOpsbeplay娱乐iosMLOps。在之前的解決方案加速器,我們解決的問題在一個共同的規則與人工智能相結合編製框架由MLflow。

隨著消費者越來越數字化,大型FSIs經常獲得每筆交易的實時GPS坐標由他們的客戶。beplay体育app下载地址大約每年有400億卡在美國處理事務,零售銀行有很多數據可以利用更好地理解為客戶交易行為選擇為帶有gps功能的銀行應用程序。beplay体育app下载地址考慮到數據量和複雜性,它通常需要訪問大量的計算資源和先進庫運行不“適合”的地理空間分析在傳統數據倉庫和關係數據庫模式。

地理空間聚類識別客戶的消費行為
地理空間聚類識別客戶的消費行為

在這個解決方案中圍繞地理空間分析,我們展示了磚Lakehouse平台使組織能夠更好地理解客戶的行為方麵的支出beplay体育app下载地址Beplay体育安卓版本他們是和如何他們銀行。這不是一個放之四海而皆準的基礎模型,但是真正個性化的人工智能。畢竟,確定異常模式隻能實現能夠首先理解什麼是正常行為,而且這樣做對數以百萬計的客戶是一個挑戰,需要數據和人工智能組合成一個平台。beplay体育app下载地址Beplay体育安卓版本

地理空間集群作為欺詐預防策略的一部分
地理空間集群作為欺詐預防策略的一部分

作為這現實的解決方案的一部分,我們正在釋放一個新的開源地理空間庫,GEOSCAN,在大規模檢測地理空間行為,跟蹤客戶模式隨著時間的推移和檢測異常卡交易。beplay体育app下载地址最後,我們將演示如何組織可以從一個表麵異常分析環境在線數據存儲(ODS)嚴格SLA需求後Lambda-like基礎設施支撐三角洲湖,Apache火花,MLflow

地理空間集群的信用卡交易

DBSCAN(density-based空間聚類的應用程序與噪音)是一種常見的ML技術用於組點緊緊擠在一起。與其他聚類方法相比,它不需要你事先表明集群的數量,可以有效地檢測不同形狀和大小的集群和發現異常值,不屬於任何密集區域。這使它偉大的候選人的地理空間分析信用卡交易和潛在的欺詐活動。然而,它有一個嚴重的價格標簽:DBSCAN需要比其他所有點指向找到密集的社區,這是一個重要的限製大FSIs的經營規模。我們無法找到一個可行的解決方案,它可以擴展到數以百萬計的客戶或超過幾成千上萬的記錄,我們創造了我們自己的beplay体育app下载地址開源智能圖書館:GEOSCAN。Scala和Python api可用,GEOSCAN DBSCAN算法的是我們實現地理空間大數據規模的集群。

基於密度的聚類(DBSCAN)
基於密度的聚類(DBSCAN)

利用超級的H3庫隻有集團在近點我們知道附近(至少分享一個H3多邊形)和依賴GraphX API,這可以在大規模檢測致密區域,理解用戶的消費行為和近實時檢測異常交易。

GEOSCAN邏輯使用H集團在近點

為了驗證我們的框架中,我們創建了一個人造數據集的信用卡交易在紐約地區。為用戶數據集隻包含一個標記化的價值,一個地理空間坐標(如緯度經度),一個時間戳和一個事務。在現實生活中,同樣也應該包含額外的事務上下文(比如商人敘事或MCC代碼)和通常富含清潔品牌信息(後者將解決作為一個未來的一部分磚方案加速器)。在這個演示,我們將提取對應更高的地區事務密集的商業街和購物中心等活動。

有兩種模式支持我們GEOSCAN實現,分布式和偽分布式。

  1. 分布,我們的框架檢測集群從整個dataframe(即所有用戶基地)。
  2. 偽分布,獲取集群分組謂詞,因此訓練數以百萬計的並行模型為數百萬顧客。beplay体育app下载地址兩種模式是有用的,以更好地了解顧客的購物行為個性化的欺詐防範策略。beplay体育app下载地址

檢測密集的購物區

工作完全分布式的核心GEOSCAN算法依賴於GraphX探測點距離(米)表達和鄰居> minPoints

geoscan進口Geoscan
              geoscan = geoscan () \.setLatitudeCol (“緯度”)\.setLongitudeCol (“經”)\.setPredictionCol (“集群”)\.setEpsilon (200年)\.setMinPts (20.)
              模型= geoscan.fit (points_df)clusters_df = model.transform (points_df)

極力倡導的開放標準,我們建立了GEOSCAN來支持RFC7946(又名GeoJSON)作為模型的輸出可以被處理與任何地理空間庫(如原樣geopandas)、GIS數據庫(geomesa)或可視化(葉形)。如下為代表,MLflow本地支持使用GeoJSON模型工件。

MLFlow顯示GeoJSON文件格式
MLflow顯示GeoJSON文件格式

讓我們走進一個例子GEOSCAN的行動。這個解決方案,我們有以編程方式提取地理形狀對應銀行卡交易的高密度在紐約市(紐約)地區。如上表示,我們的參數導致相對較大的形狀覆蓋大多數紐約。雖然減少minPts值或增加ε可以幫助改進,形狀,當然可能影響密度較低在布魯克林的威廉斯堡等領域。很大程度上特定領域,我們探索不同的方法來優化我們的模型和提高性能的筆記本電腦在這個博客報道。

模型推理和集群瓷磚

GEOSCAN的核心邏輯依賴於使用H3多邊形,它變成了自然利用相同的模型推理而不是引入額外的GIS的依賴關係貴點在多邊形查詢。我們的方法在於“瓷磚”我們的集群H3六邊形可以很容易地加入到我們的原始dataframe,利用最好的三角洲湖優化(如ZORDER索引)和提供複雜的地理空間查詢是一種簡單的SQL操作。

瓷磚H3六邊形的地理形狀
瓷磚H3六邊形的地理形狀

個性化的集群

我們演示了如何使用GEOSCAN我們整個數據集。然而,目的並不是機器學習紐約的形狀,也沒有找到最好的地方去購物,但跟蹤用戶消費行為隨著時間的推移,最重要的是,事務是最不希望發生的對於一個給定的客戶,因此需要一種個性化的地理空間聚類方法。

geoscan進口GeoscanPersonalized
              geoscan = GeoscanPersonalized () \.setLatitudeCol (“緯度”)\.setLongitudeCol (“經”)\.setPredictionCol (“集群”)\.setGroupedCol (“用戶”)\.setEpsilon (500年)\.setMinPts (3)
              模型= geoscan.fit (points_df)clusters_df = model.transform (points_df)

分布式的方法,類似於我們的模型可以存儲和檢索按標準的火花毫升API。在這種模式下,我們返回一個dataframe GeoJSON對象而不是單個文件的每個持卡人都有一個關聯的地理模式記錄捕捉他們的支出。

理解客戶的特定模式

退後一步思考是很重要的見解。當我們更多的了解我們整個客戶群(分布式的方法),我們可以利用這些信息來更好的理解是特定於每個個體的行為。如果每個人都在相同的位置,這樣一個區域不太特定於一個特定的用戶。我們可以發現“個性化”區域和公共區域的重疊程度,更好地理解我們的終端客戶,向真正的個性化的銀行鋪平了道路。beplay体育app下载地址

檢測領域最描述為每個用戶類似於檢測更具描述性的關鍵字,每個句子在自然語言處理用例。我們可以使用一個術語頻率/逆文檔頻率(TF-IDF)方法來增加重量的特定於用戶的位置,同時減少重量在公共區域。

地理給定客戶的消費模式
地理給定客戶的消費模式

我們突然獲得了難以置信的見解對我們顧客的購物行為。beplay体育app下载地址雖然這個用戶的核心事務是在切爾西和紐約的金融區領域,似乎更好地定義這個用戶是他們的交易在廣場酒店在第五大道和威廉斯堡。給定一個特定的用戶和位置,這個框架可以用來更好地理解卡交易是否屬於已知的購物模式在一個特定時間的一天或一天的星期。

欺詐預防使用個性化的人工智能

在前麵的小節中,我們表明,地理空間數據分析可以告訴我們很多信息關於客戶行為和趨勢,因此異常檢測模型的一個關鍵組成部分在一個over-hatching欺詐防範策略。beplay体育app下载地址在本節中,我們將演示如何使用這些信息來實時檢測可疑的行為。往往,欺詐檢測係統運行分析之外的環境由於數據敏感性的組合(PII),監管要求(PCI DSS)和模型物質(高sla和低延遲)。由於這些原因,我們探索多種策略來服務我們的見解作為一個獨立的框架使用MLflow或通過一個關係或NoSQL在線數據存儲,如複述,MongoDB,紅移或ElastiCache,盡管許多其他解決方案可能是可行的。

提取異常

因為我們有存儲和索引模型作為我們所有的個性化毫升H3多邊形在三角洲表,很容易充實每個事務的集群使用一個簡單的連接操作。在下麵的例子中,我們可以提取異常(交易不匹配任何已知的給定用戶模式)給定一個特定的H3決議(見決議表)嵌入在一個用戶定義的函數。

pyspark.sql進口功能作為F
              anomalous_transactions = (火花.read.table (“geospatial.transactions”).withColumn (“h3”to_h3 (“緯度”,“經”,10)). join(瓷磚,“用戶”,“h3”),“left_outer”)過濾器(F.expr (集群是空的))

一百萬交易,我們提取81條記錄在不到5秒。不一定欺詐,也許甚至沒有懷疑,但這些交易不匹配我們的任何用戶的“正常”的行為,因此,應標記為一個over-hatching欺詐預防框架的一部分,進一步結合其他規則和模型。在一個現實生活中的例子,我們應該因素時間和額外的事務上下文。將相同的事務發生在周日下午或周三早上起疑心給定用戶特征我們可以學習嗎?

數以百萬計的交易和低延遲需求,是不現實的實時加入這些大型數據集。雖然我們可以加載所有集群(H3瓷磚)在內存中,我們可能對多個模型在不同時間的天,為不同領域、不同的事務指標(如為不同類別或品牌MCC代碼數百萬消費者導致的)和一個複雜的係統,需要高效的查找策略對數以百萬計的變量。

布魯姆過濾

來了布魯姆過濾器,一個高效的概率數據結構,可以測試一個給定的存在記錄沒有一整套保持在內存中。盡管布魯姆過濾器已經存在了很長時間,其用法——不幸的是——未被民主化超越模糊的工程技術,如數據庫優化引擎和令人生畏的執行計劃(δ引擎罩下利用布魯姆過濾器優化,以及其他技術)。這種技術是一種強大的工具值得擁有在現代數據科學工具包。

布隆過濾器的概念是將一係列的記錄(在我們的例子中,一個卡事務位置H3多邊形)在一係列的散列值,覆蓋每一個字節數組表示的向量的1和0。測試給定記錄的存在導致測試的存在,它的每個位設置為1。布魯姆過濾器的記憶效率有一個不小的弊端在欺詐檢測的背景下。盡管布魯姆過濾器提供了一個假陰性率為0,有一個非零的假陽性率(記錄我們錯誤地假設被認為由於哈希碰撞),可以控製數組的長度和哈希函數的數量。

我們將使用pybloomfilterPython庫來驗證這種方法,訓練一個布隆過濾器對每一個已知的H3每個給定用戶的瓷磚。雖然我們的過濾邏輯上可能包含數百萬條記錄,我們隻需要身體保持1字節數組在內存中,使一個概率搜索,犧牲1%的異常交易(我們的假陽性率)較高的執行速度。

進口pybloomfilterdeftrain_bloom(記錄):num_records =len(記錄)集群= pybloomfilter.BloomFilter (num_records,0.01)cluster.update(記錄)返回集群記錄=列表(瓷磚。過濾器(F.col (“用戶”)= =用戶).toPandas () .h3)布魯姆= train_bloom(記錄)

測試(-)存在一個特定的信用卡交易位置可以啟用以閃電般的速度。

異常=交易(交易(“h3”蘋果(λx:bloom)]

在這個博客中列出的筆記本,我們演示數據科學家可以嵌入業務邏輯作為MLflow實驗可以進一步交付一批流處理或與更高的吞吐量要求(參見外部apiMLflow部署)。

進口mlflow模型= mlflow.pyfunc.load_model (模型:/花/生產的)異常= model.predict(事務)異常=異常(異常(“異常”]! =0]

然而,這種方法提出了一個重要的操作大型金融服務機構麵臨的挑戰,隨著新模型需要不斷重新訓練和重新部署,以適應用戶不斷變化的行為。

讓我們舉個例子來說,一個用戶會在假日。雖然第一次信用卡交易可能返回異常(不一定是可疑),這種策略需要適應和學習新的“正常”隨著越來越多的交易。需要一個運行相同的過程,新的訓練數據,導致模型的新版本發布,審核,由一個獨立的專家小組,通過治理實體並最終更新欺詐生產端點之外的任何改變凍結。技術上可能,肯定更容易與磚由於數據管理平台的協作方法,這種方法可能不是可行的。beplay娱乐iosBeplay体育安卓版本

在線數據存儲

是相當普遍的金融服務機構有一個在線數據存儲與分析平台。Beplay体育安卓版本實時流的信用卡交易通常從一個企業訪問消息代理如卡夫卡,活動中心(Azure)或運動(AWS)與參考實時數據點。上麵的另一種方法是使用一個在線數據存儲(如MongoDB)保持“推”參考數據指向端點作為生活一切照舊過程(因此ITSM改變windows之外)。任何傳入的事務將匹配一組規則不斷更新和通過次秒級查找查詢。使用MongoDB連接器(舉個例子),我們展示如何組織可以拯救我們的地理集群dataframes實時服務,結合先進的分析的預測能力和低延遲和explainability傳統的基於規則的係統。

進口com.mongodb.spark._
              瓷磚.withColumn (“createdAt”current_timestamp ()).write格式(“mongo”).mode (“添加”).option (“數據庫”,“欺詐”).option (“收集”,“瓷磚”).save ()

在上麵的示例中,我們添加新的參考數據(信用卡事務H3的位置)MongoDB集合(即一個表)為每一個我們的數百萬持卡人以固定時間間隔。在這種場合下,新的事務可以比作參考曆史數據存儲在MongoDB作為一個簡單的請求。給定一個用戶和事務位置(H3多邊形),是這張卡片交易發生在一個已知的用戶模式?

蒙戈>使用欺詐蒙戈> db.tiles.find ({“用戶”:“安東尼”,“瓦”:“8 a2a1008916ffff”})

作為這個解決方案的一部分,我們希望利用MongoDB的另一個內置的功能:生存時間(TTL)。除了操作的好處不必維護這個集合(TTL到期之後記錄被清除),我們可以將時間維度模型為了應對用戶改變模式。1周的TTL(例如)和一個新的模型訓練數據磚每一天,我們可以跟蹤集群隨著時間而動態地調整我們的欺詐策略新事務被觀察到,故意漂移模型跟隨用戶的行為變化。

的例子,如何跟蹤客戶交易行為變化beplay体育app下载地址

在上麵的可視化中,我們展示了一個例子,如何改變客戶的事務行為隨著時間的推移可以跟蹤(由於我們的TTL MongoDB實時和/或時beplay体育app下载地址間旅行在三角洲功能),在任何觀察到的位置保持一段X天,其中活性異常事務可以實時檢測。

以客戶為中心的銀行關閉的想法:地理空間分析

信用卡欺詐交易不會被放之四海而皆準的模式,但應該解決一些孤立的指標來自不同控製作為over-hatching欺詐預防策略的一部分。通常,這結合了先進的建模技術與基於規則的係統(如神經網絡),集成了先進的技術和遺留流程,基於雲計算的基礎設施和本地係統,必須符合嚴格的監管要求和關鍵的sla。盡管這個解決方案並不旨在識別欺詐性交易,我們演示了通過釋放一個新的開源庫,GEOSCAN,地理空間分析可以大大有助於提取異常事件及時,成本效益(自我維護)和fully-explainable方式,因此一個偉大的候選人更有效地打擊金融欺詐協調規則+人工智能策略。

作為這個練習的一部分,我們也發現了一些同樣重要的金融服務。我們演示了Lakehouse基礎設施的能力從傳統轉向個性化的銀行,消費者不再是分割通過人口(他們是誰),但他們的消費模式(銀行)如何,鋪平了道路朝著更以客戶為中心的和包容的零售銀行業務的未來。

開始

檢查解決方案加速器並嚐試這些筆記本在磚來加速你的欺詐防範今天和發展戰略聯係我們了解更多關於我們如何幫助客戶提供類似的用例。beplay体育app下载地址

免費試著磚
看到所有工程的博客的帖子
Baidu
map