乾貨 | 解析機器學習技術在反欺詐領域的應用
反欺詐簡單說,就是:根據借款人提供的信息,查找多方面資料,進行不同屬性的比對,從而發現「羊群中的狼」。這種工作複雜而枯燥,為了識別團伙欺詐,往往需要收集、整理、分析各種維度的數據,工作量更是成倍增加。但是枯燥的工作往往是單純且有樂趣的。
舉個栗子:
一個客戶A來信貸公司進件,說他的妻子是B。另外一個客戶C來進件,說他的姐姐是D。分別去看A和C的進件,我們發現不了任何的異常情況。但是把A和C放在大數據系統(需要模型支撐)搜索裡面,就發現問題了:A的妻子B的電話和C的姐姐D的電話是一樣的,但是名字不一樣。
看到這個信息,我們肯定會思考到底B和D是不是同一個人?所以我們要調查一下,假如我們通過打電話來做調查,發現兩個人的聲音竟然是一樣的,但是針對不同的調查,她所描述的個人信息是不一樣的,所以我們確定B和D是同一個人,且她在撒謊。那麼A和C也在撒謊,所以他們有很大的欺詐風險。
然後在系統中看到,有一個客戶E,他和客戶A的工作單位是一樣的。繼續對他們所在的工作單位進行調查,發現分別調查的時候,兩人提到的公司的詳細信息不一樣。再後來,發現A和E所說的這個工作單位是一個中介公司包裝的,並不真實存在。所以,現在可以確定:A、E是欺詐客戶,那麼和A通過B(D)關聯起來的C也是欺詐客戶;所有和A、E是同一個工作單位的客戶都是欺詐客戶。
這是一個典型的通過個別客戶的異常信息逐步發現欺詐客戶甚至欺詐團伙的案例。在這些風險用戶組成的關係網中,含有欺詐可能的信息,都會被標註出來,業務人員可以直觀地發現它們,從而降低欺詐風險。
反欺詐一直是風控的核心,事實上,根據相關第三方數據調查統計顯示,消費金融以及互聯網金融公司的壞賬中有超過50%來自於欺詐。對於消費金融公司來說,欺詐風險遠遠大於信用風險。
欺詐者以非法牟利為目的,在真實交易方不知情的情況下,採取盜取賬號、偽造身份、提供虛假信息、進行虛假交易等行為,給正常提供交易的各方造成損失,對互聯網消費金融業務提供機構造成嚴峻的挑戰。
什麼是機器學習?
廣義:作為人工智慧最重要的技術——機器學習(Machine Learning, ML)是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、演算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。
金融領域的機器學習:本質上是進行特徵提取和問題描述。將銀行龐大的數據通過特徵表達的方式轉化到複雜的數據模型上,並依靠深層的神經網路,生成多層非線性的表達,從而表達一些以往很難描述的金融現象,因此特別適合處理風險、欺詐以及金融產品的營銷這些依靠過往經驗難以準確定量的事件。
機器學習技術的反欺詐原理
利用機器的深度學習技術反欺詐的原理,實際上是從信貸反欺詐的薄弱點著手,通過機器收集到大量異構、多源化的信息,包括可交叉驗證信息主體所提供的信息以及第三方信息來源的真實性,形成共享庫。
通過對數據的採集和分析,再通過機器學習及複雜網路等模型演算法技術,對數據進行深度挖掘,從傳統歷史數據中量化抽取風險特徵指標,利用複雜網路關聯分析技術從歷史違約數據中發現實時欺詐業務風險指標,豐富深度學習風險模型的業務維度,建立人工智慧反欺詐模型,從而發現欺詐者隱藏的蛛絲馬跡,分析其數據的矛盾點和可疑點,從而識別欺詐者身份,加上與傳統經驗規則配合使用,大幅提升銀行欺詐風險的防控能力。
欺詐分析所使用的數據主要來源內部數據和外部數據,針對不同的數據源,通過多種採集方式對數據進行有效採集,並集中在數據湖中進行融合存儲。根據預測模型分析的需求,通過配套的數據處理技術工具對數據進行預處理,最終輸出模型訓練所需的樣本數據。
機器學習技術的反欺詐應用
機器學習可以根據豐富的數據和監控模型,對數據進行多重處理分析,建立實時反欺詐規則和模型,結合當前用戶特徵,實時識別用戶欺詐行為。機器學習流程遵循一個標準程序,稱為「訓練演算法」:包括數據抽取、數據清洗、特徵推導、特徵工程和轉換、特徵選擇、模型訓練和模型性能評價。
一、數據可視化
數據可視化 - 相關矩陣(Correlation Matrix) & 多維尺度變換(Multidimensional Scaling) ,人是視覺動物,可以在第一時間「看到」數據中存在的問題。因此,對於大部分反欺詐問題,建議至少要做以下兩個可視化嘗試:
一是,對不同的特徵(feature)做一個相關矩陣分析並可視化,分析相關矩陣的目的是告訴我們特徵兩兩之間的關係,以便於我們快速發現一些數據裡面可能存在的問題。最重要的是幫助我們檢查數據是否存在問題,有沒有什麼違反常理的情況。
二是,多維尺度變換(MDS)來直接可視化數據分布,我們都知道一般來說欺詐和正常數據應該「長得不一樣」,那是否可以直接把它們畫出來來分析。
然而,數據可視化往往都是二維或者三維的,但現實往往是成百上千維。即使我們把一個特徵作為一個維度,我們最多也只能可視化三個維度。而多維尺度變換(MDS)可以將高維的數據在二維或者三維的框架裡面進行可視化,類似的數據點會更加接近。通過觀察數據點的分布,我們可以直觀的猜測數據是否有規律,是否存在潛在異常點。
以一個項目為例,我們用MDS將一個8維的數據在2維上展示出來。我們似乎可以直觀的看到一些近似線性的關係,以及一些看起來「很可疑」的點,在圖中標註了出來。
這樣做的好處有兩點:
首先我們可以看到數據是否存在特定的特徵,如果所有的點都是隨機散亂分布,那我們的麻煩就大了。
我們似乎可以看到有一些離群的數據點,這些點可能是潛在的「欺詐」,也有可能只是噪音而已。但我們可以向客戶或者老闆展示這個可視圖,向他們證明項目有潛在的價值。
如果在可視化中我們看到了一些規律,這讓有信心繼續往下做,進入建模階段。
二、欺詐檢測-演算法
一般我們對欺詐檢測做兩種假設:
時序相關(time dependent)。對於時序相關的問題,我們假設欺詐的發生依賴於時間,通過時間序列分析,我們可以發現異常的地方。舉例,假設一個人的信用卡平時1-11月每月消費2000美元,但12月突然消費了5000美元,此時時間就對我們的項目存在意義。
時序獨立(time independent)。對於時序獨立的問題,我們假設每一個欺詐都是獨立,和時間無關。於是在分析中,我們移除了時間這個特徵,我們不再把時間作為一個分析軸或者影響欺詐發生的特徵。
有監督機器學習模型
有監督機器學習模式是反欺詐檢測中最為廣泛使用的機器學習模式。其中包含的幾個學習技術分別有決策樹演算法,隨機森林,最近鄰演算法,支持向量機和樸素貝葉斯分類。機器學習通常從有標籤數據中自動創建出模型,來檢測欺詐行為。
在創建模型的過程中,清楚了解哪些是欺詐行為,哪些不是,會起到至關重要的作用。模型中倒入的數據會影響其檢測效果。用已知欺詐數據和正常數據做訓練集,可以訓練出學習模型來填補並增強規則引擎無法覆蓋的複雜欺詐行為。
下面是一個關於有監督機器學習機制如何將新的數據劃分為欺詐和非欺詐的例子。訓練數據通過識別模型特點,可以預知兩種類型欺詐者: 1. 信用卡欺詐者 2. 垃圾信息製造者。
以下三種特徵對識別欺詐攻擊類型非常有幫助:1. 郵件地址結構 2. IP地址類型 3. 關聯賬戶密度指示欺詐攻擊類型(如變化的回復)。實際上,一個典型的模型有成百上千種特徵。
在此例中,擁有以下特徵的用戶會被訓練出的模型識別為信用卡欺詐:
郵箱地址前5個是字母,後3個是數字
使用匿名代理
中等密度關聯賬號(例如10)
有以下特徵的用戶會被識別為垃圾信息製造者:
郵箱地址按某種形式隨機生成的
使用數據中心的IP地址
高密度關聯賬號(例如30+)
假設現在你的模型正在從下面一批用戶里評估風險,這個模型會計算每個用戶的郵件地址結構,IP地址類型以及賬號關聯密度。正常情況下,模型會將第二種和第三種用戶歸類為垃圾製造者,把第一、第四、第五種歸為信用卡欺詐者。
無監督學習
無監督檢測演算法無需依賴於任何標籤數據來訓練模型。這種檢測機制演算法的核心內容是無監督欺詐行為檢測,通過利用關聯分析和相似性分析,發現欺詐用戶行為間的聯繫,創建群組,並在一個或多個其他群組中發掘新型欺詐行為和案例。
像Isolation Forest就是一種非常穩定的演算法,是周志華老師提出的。而且在Sklearn裡面已經得到了實現。基本的原理就是一種集成學習,通過計算每個數據點需要多少次節點拆分(splitting)才能被劃分到獨立的空間。異常點因為和其他正常點離得較遠不大相似,因此更容易用很少的拆分就可以被划到獨立的空間裡面去。
各種Density Based的聚類方法(CBLOF)。此處需要注意,大家熟知的K-Means為原型的聚類,如K-Modes都不大適合用於異常值檢測,因為其本身很容易受到異常值和噪音的擾動。
各種以K近鄰(KNN)為原型的檢測方法。從本質上說,和聚類方法是比較類似的。
四、如何構建可行的欺詐檢測方案?
首先,我們必須先要認清一個殘酷的現實: 單純依靠機器學習模型來檢測欺詐是愚蠢的。至少在現階段我們不能單純依靠純粹的數據模型來做這一點。比較折中且可行的方法是做 混合模型(hybridmodel),也就是把人為規則和機器學習模型合二為一,一起來使用。
首先我們通過對領域專家的訪談和對歷史數據的分析,可以得到一些非常可靠的評判標準。以保險行業為例,如果一個人剛買短期保險沒兩天就意外身亡,這存在欺詐的風險就很高。這樣的標準或許從機器學習中可以學到,或許學不到。如果有成本更低方法做到更好的效果,不要迷信全自動模型。
總結來說,反欺詐模型難度很高,而且需要和領域專家一起協作才能有最好的結果。機器學習從業者千萬不要閉門造車,試圖自己靠調參就搞個大新聞。
推薦的步驟是:
對數據進行必要的可視化,如MDS
同時考慮時間是否是重要因素,如果是那麼進行時序分析
用無監督學習得到一些可能的異常點,如Isolation Forests
通過統計學方法分析得到的異常點是否有顯著的不同,有特徵可供我們研究
歸納特徵並構造一個故事,與領域專家共同驗證故事的可靠性
重複1-5直到被派到下一個項目上搬磚,爭取找到盡量多有效的欺詐
構造[規則+機器學習]的混合模型,進一步調參優化模型
如何提升反欺詐模型性能
基於數據
藉助演算法
用演算法調參
藉助模型融合
最後講一講在建模過程中一些調優的經驗。如果發現反欺詐模型的效果不是很滿意,應該採用怎樣的方法提升。可以嘗試這四個方面。
第一個是基於數據的方法。如果這個模型效果不太好,我們首先要思考的是特徵是否還不夠好或者還不夠多。我們能否想方法找出更多的特徵來。同時也要考慮到我們對數據的分析是不是到位,是不是對數據的處理上還不夠細緻,是否在數據的整理上犯了一些低級錯誤,而導致模型效果不太好。
第二個可以藉助演算法的方法。如果你用到的演算法是線性的,它的效果可以作為你的一個 benchmark。你可以嘗試使用複雜一點的演算法去擬合你的數據集,比如用非線性的,boosting 的一些演算法。用複雜的演算法一般會比一些線性的演算法得到更好的效果,但也同時意味著你要花更多時間調優模型的參數。
第三個用演算法調參的方法。一般說來,非線性演算法是有一些超參數的。越複雜的演算法超參數越多。比如像深度學習的超參數就非常多。你要通過一個複雜的演算法得到一個很好的模型,是需要花很多時間去調參的,而且在調參過程中意味著你需要對演算法本身有一定了解,而且了解的越深入對調參過程越有把握。
最後通過融合(ensemble)我們的模型。我們使用 random forest 或者 GBDT 的演算法,本身就是一種融合的方式。我們在用好幾種演算法得到不同 Model 後,可以把這些 Model 再次融合起來。最直接的方法是把不同 Model 的結果當成新的 Model 的 input 重新去訓練。在你遇到 Model 效果不太好的時候,可以嘗試使用模型融合。
來源|知乎、DataVisor
推薦閱讀:
※從ROE到P/E,其實你只需要一個P/B
※大佛:平台線下調研之銀湖網
※公司印章的使用管理方面需要採取什麼措施?
※城市規劃導論(二)
※Hi,這有一份風控體系建設乾貨
TAG:風險控制 |