社交網路分析與金融反欺詐應用
社交網路分析(SNA)演算法並不新鮮,且已經廣泛應用於社交人物影響力計算、好友和商品推薦、社交圈子分析等領域。近幾年,社交網路分析演算法的應用不斷拓展,已經開始應用於各種金融反欺詐領域,且效果很好。
為了講解基於SNA的反欺詐,本文先簡單介紹下SNA的基本原理,然後介紹幾種典型的SNA方法,最後是在金融領域的反欺詐場景應用。為了方便理解,文章會直接忽略若干細節,以下內容都是為了有助於理解反欺詐建模,想了解SNA更系統的知識請參看其他材料。
社交網路分析的基本原理
一、基礎知識
1、節點(Vertice)和邊(Edge)
社交網路,顧名思義,就是表現人和人之間關係的網路。類似的,社交網路分析演算法,也就是為了研究節點(可以理解成人)和節點關係(邊,可以理解成人和人之間的關係)的演算法。通過對關係的研究,可以對節點關係做梳理,從而聚成團。為了方便對下文指標的理解,我們定義節點數 N = |V|, 邊數 M = |E|
2、圖(Graph),有向圖,無向圖
用邊把節點連接起來形成的網路,稱為圖(Graph)。圖又可以分成無向圖和有向圖,分別如下圖所示:
無向圖僅表示節點和節點之間是否有關係,例如:在P2P行業反欺詐建模中,可以通過申請者通訊錄去獲取其社會關係,例如,如果張三和李四的通訊錄都有老賴王五,那麼,張三和李四的貸款申請違約風險就會比較高。
有向圖相比於無向圖會攜帶方向信息,一個最簡單的例子就是傳銷圖。傳銷有非常成熟的上下線制度,是發展團隊十分迅速有效的手法,也被互聯網公司廣泛用於發展用戶——好友邀請制度,此外,保險銷售公司也有類似的提成機制。如被不法分子利用規則,對互聯網公司,產生的後果就是大規模虛假註冊;對保險銷售公司,產生的後果就是內外勾結騙取額外提成。
3、社區(Community),非重疊社區,重疊社區
社區可以理解成UML中的群組,也就是同一個社區中節點和節點關係緊密,而社區和社區之間關係稀疏。如果任意兩個社區的節點集合的交集為空則被稱為非重疊社區,否則稱為重疊社區。
4、派系(Clique),完全子圖
派系是指任意兩個點都相連的節點的集合,又稱為完全子圖。
二、常用分析指標
1、度
簡單來講,度就是指從你這個節點發散出去了多少條邊,或者可以理解成你有多少個朋友。
2、度中心性
我們在每個節點上都標註上其度的值大小,如下圖所示:
我們接下來做標準化處理,用度除以最大連接可能(N-1),則得到:
形象來說,中心性指越高,表示與你有聯繫的人越多,或者說,你的社交人物影響力就大。這是一個社交網站分析用戶行為時一個常用的指標。
3、集中度(Centrality)
集中度表示一個群體的緊密程度,或者可以理解成密度。集中度又可以分為度集中度,緊密集中度和介數集中度,還有圖集中度、特徵向量集中度等,以下我們主要介紹前三種。
度集中度(Degree centrality)
度量集中度的方式有很多,例如,基尼係數、標準差和Freeman集中度公式。以下,我們以Freeman集中度通用公式為例計算如下兩圖的度集中度:
緊密集中度(Closeness centrality)
依賴於從一個結點出發到其它所有結點的最短路徑長度,並被定義為總長度的倒數。通常我們講節點i的緊密中心度,是指其標準化形式,也即總距離長除以(N-1)。
介數集中度(betweenness centrality)
直觀理解,介數就是多少個節點對必須經過本節點實現最小跳數互達。還是以上面兩圖作為示例來計算介數集中度:
常用社交網路分析演算法
一、PageRank演算法
PageRank演算法用一句古文來講,就是「近朱者赤,近墨者黑」,也就是被高質量網頁引用的網頁也是高質量網頁,或者被用戶訪問越多的網頁可能質量越高。我們在大學寫論文投期刊的時候,也會看到類似的數字,比如:期刊的影響因子、被引用次數。影響因子和被引用次數越高,表示這個期刊越好,如果被這樣的期刊錄用,也表示你的學術水平得到了極大的認可。再比如,相信每個支付寶用戶都受到過芝麻信用的善意提醒:多結交信用度高的朋友,有助於提高自己的芝麻分,也是一樣的道理。《黑鏡》第三季第一集便是把信用評分社會誇張到極致,也是對社交網路的一種詮釋。
PageRank演算法被廣泛用於搜索引擎結果排序,而為了抵禦Spam,各搜索引擎採用的排名演算法實際上是保密的,PageRank的具體計算方法也不盡相同。
二、社區發現演算法
社區發現演算法的思路就是在複雜網路中發現連接緊密的節點簇(社區結構),與聚類的思路如出一轍。發現這些社區結構的方式有很多中,本文主要介紹幾種簡單但常用的演算法:GN演算法,Louvain演算法,LPA演算法和SLPA演算法。
1、GN(Girvan-Newman)演算法
GN演算法是一個最經典的社區發現演算法,屬於分裂的層次聚類演算法(自上而下)。因最初由Michelle Girvan和Mark Newman提出而得名。GN演算法的基本思想是不斷刪除網路中具有相對於所有源節點的最大邊介數的邊,然後,再重新計算網路中剩餘的邊的相對於所有源節點的邊介數,重複這個過程,直到網路中所有的邊都被刪除。怎麼理解呢?通過介數的定義我們知道,介數是多少個節點對必須經過本節點實現最小跳數互達的值,而介數高的邊必然要比介數低的邊更可能是社區之間的邊(兩個社區中的節點之間的最短路徑都要經過那些社區之間的邊,所以它們的介數會很高)。為了方便理解,可以參看下圖,方塊節點和圓形節點的最短路徑,必然要經過邊AB,因此邊AB的介數最大,拆除這條邊,就可以將其分成1#和2#兩個團體了,或者稱之為兩個社區。然而,雖然GN演算法的準確率很高,但是計算量大,時間複雜度也很高。
2、Louvain演算法
Louvain可以理解成GN的逆過程,GN的思路是不斷拆邊,類似於自上而下的層次聚類。而Louvain則是不斷凝聚,類似於自下而上的層次聚類。為了理解Louvain演算法的過程,先來學習一個社區評價指標——模塊度。模塊度(Modularity)用來衡量一個社區的劃分是不是相對比較好的結果。一個相對好的結果在社區內部的節點相似度較高,而在社區外部節點的相似度較低。
模塊度的大小定義為社區內部的總邊數和網路中總邊數的比例減去一個期望值,該期望值是將網路設定為隨機網路時同樣的社區分配所形成的社區內部的總邊數和網路中總邊數的比例的大小。模塊度為Q為,在進行每次劃分的時候計算Q值,Q取值最大的時候則是此網路較理想的劃分。Q值的範圍在0-1之間,Q值越大說明網路劃分的社區結構準確度越高,在實際的網路分析中,Q值的最高點一般出現在0.3-0.7之間。
介紹完模塊度,我們就可以開始使用Louvain演算法了。首先,我們把每一個節點當作一個獨立的社區,假如我們把V1和V2加入到i都會使其模塊度增加, 我們比較兩者的數值,選擇增量較大的一個加入到i社區中。如此這般反覆迭代,直到模塊度Q的值不再增加為止。
3、LPA(Label Propagation Algorithm)
LPA演算法的穩定性不是很好,但優點是可擴展性強,時間複雜度接近線性,且可以控制迭代次數來劃分節點類別,不需要預先給定社區數量,適合處理大規模複雜網路。LPA的計算步驟也十分簡單:
第一步:為所有節點指定一個唯一標籤;
第二步:刷新標籤:對於某一個節點,考察其所有鄰居節點的標籤,並進行統計,將出現個數最多的那個標籤賦給當前節點(如果最多的標籤不唯一,隨機選擇一個);
第三步:重複步驟二,直到收斂為止。
4、SLPA (Speaker-listener Label Propagation Algorithm)
SLPA是一種改進的LPA,是一種重疊社區發現演算法,其中涉及一個重要的閾值參數r。通過對r的適當選取,可將其退化為非重疊型。
SLPA中引入了listener和speaker兩個比較形象的概念。可以這麼理解:在刷新節點的過程中,我們講要被刷新的節點定義為listener,其臨近節點就是它的speaker,speaker通常不止一個,在眾多speaker七嘴八舌時,listener該聽誰的呢?這時我們就要制定一個規則。
在LPA中,我們以出險次數最多的標籤來做決斷,這其實就是一種規則。只不過在SLPA框架里,規則的選取方式多由用戶指定(通常結合業務邏輯和場景決定)。與LPA相比,SLPA最大的特點在於它不是僅僅的刷新替代原標籤,而是記錄每一個節點在刷新迭代過程中的歷史標籤序列(例如迭代T此,則每一個節點將保留一個長度為T的序列,見上面著名的手繪圖)。當迭代停止時,對每一個節點歷史標籤序列中各標籤出現的頻率做統計,按照某一個給定的閾值過濾掉那些出現概率小的標籤,剩下的標籤為該節點的標籤(通常有多個)。
反欺詐應用場景
一、消費金融反欺詐
近年來,消費金融行業快速發展,相比於傳統商業銀行,形成了自己獨特的優勢:填寫欄位少、在線操作、審核速度快、放貸及時。這類申請人群通常因缺乏徵信信息(一是客戶年輕化,而是一些消費金融公司不具有查詢徵信的資格)而給消費金融企業帶來了巨大的信用和欺詐風險。
如何在有限信用記錄甚至是「零」信用記錄下進行更準確的風險控制和欺詐識別是消費金融公司降本增效的關鍵問題。解決這個問題通常有兩種方案,一是運用商業銀行廣泛使用的成熟的評分卡模型;二是新興的基於機器學習的信用預測(評分)模型。事實上,巧妙利用機器學習,可以將兩種方案結合,互為補充。
機器學習的原料是數據,數據主要分為三類:一是用戶主動提交的申請表信息;二是企業主動獲取的信息,如:用戶行為數據,設備數據,通訊錄等;三是第三方數據(徵信公司、運營商、社保公積金中心、法院執行、醫院等)。有了數據,第二步就是要進行特徵工程,這也是整個演算法中最核心的一步。第三步,跑模型。由於本文我們的主角是SNA,我們看下面一個典型社區。
圖中,紅色的點代表被拒絕的用戶,黑色的點代表穿越用戶(通過申請但有逾期表現的用戶),綠色的點代表通過且表現良好的用戶。總結一下,該團伙的拒絕率達到66.8%,說明該團伙的平均用戶信用值較低;穿越用戶占所有通過用戶的91.4%,進一步驗證了該團伙的欺詐性。
特別地,在利用SNA進行社區分析時,派系圖具有更高的風險性。這種圖的背後通常是多人協作的團伙作案,其兩兩互通表示兩兩認識,背後的目的多為相互勾結,偽造信息以達到消費金融借貸審核要求,且這類社群多有內外勾結的情況,需要重點關注。
二、信用卡申請反欺詐
信用卡申請欺詐與消費金融類似,只是目前信用卡線上化平均水平只有70%,且有些銀行甚至還沒有開始採集設備信息,因此缺乏一些在線電子化信息。但由於信用卡中心具有查詢用戶徵信數據的資質,所以相比於消費金融會增加徵信數據,對模型輸入是一個很好的補充。
三、保險理賠反欺詐
SNA應用於保險理賠反欺詐已經有幾年的時間了,據某保險公司產險風控部專家透露,自其上線SNA演算法後,每年可提高預檢率2%,多識別出400+欺詐團伙,為公司節約2億+虛假理賠款。
車險理賠欺詐案件的識別,通常是利用車輛涉案人員、包括司機、報案人、受益人和傷者,以及修理廠、報案電話、檢修地點、GPS信息等數據進行SNA分析,識別可能的騙保團伙。例如,平安保險林晟副總經理在2015年分享的一個案例:有兩個上海車牌車輛與兩個江蘇車牌車輛發生了碰撞事故,單看感覺每個案件都很正常,但把他們放到SNA網路時,發現這個車的司機是那個案件的傷者,而一個案件的報案人又是另一個案件的司機。通過進一步調查分析,發現兩個駕駛員駕駛不同車輛,一年內共5次。
還有一個典型案例,可以與大家分享。一修理廠員工通過駕駛道具車,充當三者,故意製造雙方事故,短期內高頻出險,利用交警「微損案件快速處理」的漏洞,自行拍攝車輛損失代替現場勘查,騙取保險賠款。通過SNA分析,除了修理廠的趙某某和蔡某某外,還發現了其他7名駕駛員,一舉拿下這個騙保團伙。
由於現在各保險公司的價格都已經不斷趨於同質化,而對於保險人選擇保險公司的依據也早已不是單獨的價格敏感了,快速理賠已經成為保險公司吸引保險人的重要因素之一了。因此有不法分子利用小額(
四、銷售網路反欺詐
銷售網路反欺詐是有向圖的一個典型應用。為了促進銷售量,很多公司在促銷產品和服務時,都有發展二級代理或更下級代理的提成策略。而通常下級代理在賣出產品或服務時,上級代理會得到銷售公司的額外獎勵。例如,某保險銷售公司,如果二級代理銷售出一份保險,上級代理可獲得銷售公司額外的1%提成。如此,上級代理便利用這個規則,將自己的保單全部掛在二級代理上,以此獲得不法收入。據統計,僅一年時間,某銷售網點就利用銷售提成獎勵機制獲取800萬額外提成(涉案金額8000萬元人民幣)
寫在最後
反欺詐是金融行業永恆的主題,尤其是進入大數據、人工智慧時代,欺詐風險逐漸成為信用風險之外的一個主要風險;為此需要深入應用社交網路分析等智能化演算法,將反欺詐手段進行持續升級和優化。本文基於維基百科、博客、微博等網路素材和黃姐姐實際項目經驗所作,在此特別感謝所有提供素材的作者和客戶朋友們。
作者:DataVisor黃姐姐(工科女詩人,資深貓奴)


※關於銀行金融科技發展的若干思考
※基於Alteryx的Kaggle實戰入門
TAG:金融科技實戰 |