反欺詐之四大殺器
人們常說,有人的地方就有江湖。而我們要說,有江湖的地方就有欺詐。反欺詐由來已久,從最原始的人工檢測,到後來的黑白名單、規則引擎、有監督學習演算法,再到現如今的無監督學習,演化至今,欺詐與反欺詐手法可謂變化多端,此消彼長。常言道,道高一尺,魔高一丈。這句話用在欺詐與反欺詐行業再合適不過了。在巨額利益的誘惑下,欺詐者不斷擴充隊伍,升級技術,變化攻擊方式,給個人和企業帶來了巨大威脅。
在與欺詐分子鬥爭的諸多年間,反欺詐不斷形成了自己的方法論。具體都有哪些方法?都適應哪些場景?哪種方法更有效?且聽黃姐姐娓娓道來。
方法一、黑白名單
黑白名單是最原始的反欺詐手段,顧名思義,黑名單就是壞人,白名單則指好人。舉個??:人行徵信記錄著每個信用卡持卡人的還款記錄,如果你有信用卡逾期且拒絕還款,甚至直接從人間蒸發,那麼恭喜你,你可能就上了人行的黑名單。一段時間後,你重新在江湖上復出,想著:申請個新信用卡吧!銀行在接到你的申請表後,在黑名單上一查,發現了你,於是乎,駁回!這就是黑名單的使用方式。黑名單的應用非常廣,且一份黑名單通常能賣到很高的價格,例如:你經常在淘寶上購買退貨險,又屢屢退貨,那麼,你就有可能上了騙保的黑名單,想再次購買退貨險就很難了。
方法二、規則引擎
黑名單的優缺點十分明顯,優點就是簡單方便,各行各業各產品的反欺詐都可以用黑名單,缺點就是無法發現新騙子。黑名單的升級版本是規則引擎,還是拿退貨險舉例。之前,保險公司拿著一個清單來比對哪些人可以購買退貨險,經過一段時間的積累,保險公司發現,退貨比例超過80%的用戶極可能再次退貨,疑似騙保;或者連續退貨超過5次的用戶的騙保嫌疑也非常大。於是乎,保險公司設定了一個閾值,規則如下:
1. 連續退貨5次的用戶,拒絕其購買退貨險;
2. 退貨比例超過80%,拒絕其再次購買退貨險。
很明顯,只要符合這兩種規則的任何一個,就會被保險公司拒之門外。這相比於黑名單,可以檢測到新的欺詐者,算是進了一大步。但是,規則引擎卻無法檢測到新的欺詐模式。假設,通過不斷的測試規則,我發現了這個閾值。於是乎,我準確控制自己的退貨率在79%以下, 便可以繼續自己的騙保生涯,躺著賺錢了。一段時間後,保險公司再次發現了我的伎倆,於是把閾值下調到50%。
規則引擎通常可配合黑名單一起使用,通過規則引擎抓到的壞人被列到黑名單中。
規則引擎的規則是如何生成的?答案是:經驗!這聽起來有點不靠譜,萬一經驗錯了怎麼辦?事實上,的確會發生這樣的情況。例如,通過我們之前的經驗判斷,認為退貨比例超過80%的就是壞用戶。那麼,假設我是一個網購新人,第一次買衣服,發現號碼小了,於是退貨。那麼,我購買的第一單就退貨哦,退貨比例100%,能說我就是騙保的嗎?下次就不讓我買退貨險了?這顯然不符合邏輯!
正因為經驗的不確定性,規則通常需要投入大量的精力維護,不斷更新、修改、刪除、添加等等,否則就會造成大量的FP和FN。
方法三、有監督學習
有監督學習是應用最為廣泛的反欺詐方法。有監督學習通常需要大量的有標籤數據來訓練模型,以此來預測還未被標註的數據。拿垃圾郵件舉例,假設你把5000封已經由人工確認過的垃圾郵件輸入到了模型,告訴模型:hey,這些是垃圾郵件,幫我分析下!於是模型開始工作,通過對標題的識別,對郵件內容句子的分割,關鍵詞的識別等各種分析方法,找到了某種你沒辦法說得清楚的內在關係。為了方便說明,我嘗試把這種關係抽象出來:
標題里有「福利」二字的,有90%的可能性是垃圾郵件;
內容里有「匯款賬號:xxxxxx」的,有10%的可能性是垃圾郵件;
一次性發送超過200封的,有60%的可能性是垃圾郵件;
回復率低於10%的賬戶,有70%的可能性是垃圾郵件;
這裡,百分之多少稱為權重。
訓練好後,你給模型一封新郵件,模型通過檢測以上各個子項,並對每一個子項乘以權重後相加,就得出一個分數,例如,這封有80%的可能性是垃圾郵件。
以上就是一個有監督學習的抽象過程,其中一個重要的步驟就是通過不斷的迭代計算每一個子項應該被賦予的權重值。權重值計算好後,就可以說這個模型訓練好了。
有監督學習的好處也十分明顯,它可以幫我們分析隱層關係。我們可以不必知道到底有監督是如何做分析的,每一個子項被賦予了多少權重,我們只需要知道符合某種規則的就是壞人。此外,有監督還有助於處理多維數據。由於規則是人憑經驗產生了,而如果老闆丟給你一組數據,每一條數據都有多達500個欄位,讓你憑肉眼看出其中的關係,你恐怕要抓狂了。此時,有監督就可以解決你的問題了。
但有監督也有一個明顯的弊端,每一個模型都需要大量的訓練數據,訓練一個模型也需要較長的時間。現在的騙子是何其聰明啊,到處打游擊戰。在你發現有入侵者後,你立馬開始訓練模型,然而,再你還沒有訓練好,騙子們可能就已經離開,開始找下一個目標了。如此,有監督便無法應對複雜多變,詭計多端的欺詐者了。
方法四、無監督學習
近年來,無監督為反欺詐打開了新大門,主要方式有聚類和圖形分析。無監督無需任何訓練數據和標籤,通過發現用戶的共性行為,以及用戶和用戶的關係來檢測欺詐。下圖描述了聚類的方式:
有這樣一群用戶註冊事件,我們通過聚類發現其幾個小群符合某些共性:例如:註冊時間集中,都使用了某操作系統,某一個瀏覽器版本等。這個用戶任何一個單獨拿出來分析,看上去都是再好不過的用戶了,而如果其符合某種超乎尋常的一致性就十分可疑了。例如,你發現一群人在凌晨2點-3點,採用chrome瀏覽器註冊了某產品,其ip的前20位相同,GPS定位小於1公里,且註冊後都去修改了昵稱和性別。如果一個人這麼做,你覺得正常啊,某個夜貓子隨便逛網站而已。而如果一群人這麼做,你心裡恐怕就要犯嘀咕了吧!
下圖描述了圖形分析的方式:
為了解釋分析邏輯,還是拿垃圾郵件舉例。一個正常的郵箱,往來信件比例不會相差特別離譜,中國有句古話「來而不往非禮也」!你收到人家的一封郵件,回復一下「well received」是起碼的禮儀。而我相信你基本上不會回復任何一個垃圾郵件或廣告郵件,而是直接刪除吧!通過回復率來判斷垃圾郵件也是一個常用的方式。
圖中,左下角是一個低端的攻擊者,只是單純地發送大量垃圾郵件,而郵件的回復率幾乎為0,對於這種郵箱,我們很容易判斷其為垃圾郵箱。右下角的群體就聰明多了,他們通過互相間的往來郵件來增加回復率,告訴反欺詐者:看,我有收到郵件哦!人家有回復我哦!你可不能抓我!這些郵箱通常互加好友,互通郵件,以此來偽裝成正常用戶。
通過無監督學習,我們可以發現這種類型的偽裝者,將其一網打盡。
無監督演算法應用於反欺詐檢測,通常還有一個優勢,那就是提前預警。現在聰明的騙子都知道要潛伏一段時間再發起攻擊,以免太容易被發現。而由於其在潛伏期的行為依然符合某種規律,具有某些一致性,所以同樣還是會無監督演算法捕捉到。在攻擊發生前就指認騙子,這一點,其他三種方法恐怕是望塵莫及!這也是無監督之所以在反欺詐檢測大放光彩的重要原因之一。
可見,反欺詐手法無分優劣,選擇適合自己的就是最好的!
如果你的欺詐問題非常多,不妨將所有方法綜合起來用,建立一個全棧式檢測平台。
推薦閱讀:
※基於雲上分散式NoSQL的海量氣象數據存儲和查詢方案
※大數據在政府中的應用舉例?
※起航~~~初見Scala
※用什麼軟體可以切割10個G的txt數據?
※大數據發展現狀與趨勢