復(fù)雜網(wǎng)絡(luò)在信用風(fēng)險中的實踐

在信貸領(lǐng)域主要有兩種風(fēng)險:
欺詐風(fēng)險:借款人的目的就是騙貸。
信用風(fēng)險:又稱違約風(fēng)險,是借款人因各種原因,不愿或無力履行合同條件而構(gòu)成違約,致使平臺遭受損失。
針對信用風(fēng)險,需要對借款人的財務(wù)狀況、還款意愿、履約能力等各方面因素綜合量化評估,并根據(jù)風(fēng)險等級制定不同的差異化定價(不同額度利率)和策略。

白話一點的解釋就是:
業(yè)務(wù):需要訓(xùn)練一個模型,去預(yù)測借款人違約概率,并根據(jù)違約概率高低表示信用好壞,信用好的給予更高的額度和更低的貸款利率,針對信用較差的制定更嚴(yán)格的審核,更高的利率。
模型:傳統(tǒng)是使用評分卡,可解釋性比較好。但現(xiàn)在越來越多會使用機(jī)器學(xué)習(xí)(如XGBoost),快速出結(jié)果且效果更好。
特征:上圖針對各個維度設(shè)計,并保證可解釋性。
樣本:歷史上是否違約的人群作為訓(xùn)練樣本(都是錢?。?。
如何將借款人所處的系統(tǒng)抽象成復(fù)雜網(wǎng)絡(luò)?下面介紹基礎(chǔ)層次和業(yè)務(wù)層次的抽象,最終得到什么樣的復(fù)雜網(wǎng)絡(luò),以及為什么要這樣做。
基礎(chǔ)層次抽象
從原始數(shù)據(jù)中提取節(jié)點及關(guān)系抽象成復(fù)雜網(wǎng)絡(luò):
節(jié)點:用戶、商戶、公司、設(shè)備、LBS、IP/WIFI
關(guān)系:社交、消費、就職、使用、位置、上網(wǎng)

業(yè)務(wù)層次抽象
物以類聚,人以群分,一個人周圍鄰居的信用資質(zhì)可以反應(yīng)其自身信用資質(zhì)。
基于上述業(yè)務(wù)假設(shè)對網(wǎng)絡(luò)進(jìn)一步抽象:
節(jié)點:用戶
關(guān)系:社交、同位置、同設(shè)備、同公司、同商戶、同WIFI....

我們?yōu)槊總€節(jié)點附上信用資質(zhì),最終可以得到一個復(fù)雜網(wǎng)絡(luò)。

為什么要這么做?
1. 基礎(chǔ)層次的抽象可以供多個不同的業(yè)務(wù)使用。
2. 基于業(yè)務(wù)經(jīng)驗對數(shù)據(jù)進(jìn)一步精煉 garbage in garbage out。
3. 適用同類型節(jié)點的算法較多,計算復(fù)雜度低。
4. 壓縮圖,減少降低噪聲以及緩解數(shù)據(jù)稀疏性。
我們可以從復(fù)雜網(wǎng)絡(luò)中抽取什么信息呢?

鄰居屬性:鄰居信用資質(zhì)。
異構(gòu)關(guān)系:不同關(guān)系的鄰居的信息。
拓?fù)浣Y(jié)構(gòu):周圍鄰居的拓?fù)浣Y(jié)構(gòu)信息
實體交互:節(jié)點資質(zhì)和鄰居資質(zhì)是如何交互的?
如何提取以上的信息?

上面的模型都可以是解決方案,但是也存在著一定的局限:
1. 首先GNN是黑箱,解釋性不夠,對于和錢直接相關(guān)的業(yè)務(wù),對解釋性的要求非常高。
2. 穩(wěn)定性:金融模型上線會運行很久,對穩(wěn)定性要求較高。
3. 性價比,雖然對圖經(jīng)過了壓縮,但是也有億級別規(guī)模,落地成本比較大,包括訓(xùn)練架構(gòu)、算法優(yōu)化等等。
如何解決這些局限性呢?
拆解上面算法,提取關(guān)鍵模塊,用數(shù)理統(tǒng)計方法解題:
1. 聚合直接相連鄰居特征:參考單層卷積的aggregator操作,其實也就是對鄰居特征不帶參數(shù)求mean、max、加權(quán)平均;
2.獲得k跳鄰居特征及拓?fù)洌嚎梢試L試多層遞歸卷積 / 社區(qū)發(fā)現(xiàn);
3.與鄰居特征做交互:拼接、比較、平均;
4.如何融合異構(gòu)關(guān)系:每種關(guān)系網(wǎng)絡(luò)都通過上述方法衍生特征,不同業(yè)務(wù)通過模型來學(xué)習(xí)權(quán)重。
某場景:借款人提交完認(rèn)證資料后,觸發(fā)信用評估并返回額度和利率,對時效性要求較高。
離線+實時 實現(xiàn)t跳鄰居特征計算
離線:T+1計算好所有節(jié)點(t-1跳)特征,存儲在HBASE上。
實時:借款人提交完資料后,實時查找其一跳鄰居(如mysql),調(diào)用HBASE查找每一個鄰居特征,并聚合和交互生成特征。(一跳計算實時可以滿足,如果誰說二跳計算實時也可以支持那就牛逼了)。
復(fù)雜網(wǎng)絡(luò)在風(fēng)控中更多是“找黑的”,比如反欺詐規(guī)則關(guān)聯(lián) N 個黑名單,N 個中介,以及團(tuán)伙挖掘等。
本文是從“找白的”角度下介紹復(fù)雜網(wǎng)絡(luò)在信用資質(zhì)上的應(yīng)用,方法具有普適性,在找黑的上驗證效果也不錯:)。
如果精力/資源有限,建議優(yōu)先選擇某類關(guān)系和某些節(jié)點特征進(jìn)行實驗:
關(guān)系選擇:優(yōu)選覆蓋度較高、噪聲低、符合業(yè)務(wù)直覺的關(guān)系,如社交、支付,像LBS雖然覆蓋度高,但是噪聲也是比較大,在使用時需要謹(jǐn)慎。
節(jié)點特征選擇:優(yōu)先選擇已被驗證效果不錯的特征,如收入、信用額度等。
另外值得注意的是,比較容易數(shù)據(jù)穿越,有多個時間需要考慮,如”申請時間“、“建立關(guān)系時間”、“特征時間”等。
聚合一跳鄰居特征
一跳鄰居即直接相連的鄰居,我們需要設(shè)計一個聚合函數(shù),在考慮關(guān)系權(quán)重的基礎(chǔ)上,如何表示一跳鄰居特征分布。
如下圖所示,假設(shè)是關(guān)系為親密度、節(jié)點特征為收入,如何聚合借款人不同親密度的鄰居收入特征?
我們可以設(shè)計這樣的聚合函數(shù)來加工信息(不考慮未知):
簡單平均:

假設(shè)不同親密度的朋友對借款人信用風(fēng)險的影響是相同的(假設(shè)收入一樣)。
加權(quán)平均:

假設(shè)親密好友收入高低對借款人信用風(fēng)險影響較大。
最大值:

假設(shè)親密好友收入高低對借款人信用風(fēng)險影響較大。

哪個聚合函數(shù)效果比較好?不同聚合函數(shù)的業(yè)務(wù)假設(shè)是不同的,建議都使用。特征工程即把可能有用的特征都加工出來,再通過 y 做特征選擇。
特征取值“未知”,怎么處理?因為未知其實也可能包含信息,建議聚合計算分考慮未知和不考慮未知進(jìn)行計算。
鄰居特征是離散的,怎么聚合?轉(zhuǎn)換成one-hot編碼,計算在屬于某個類別鄰居比例。
聚合多跳鄰居特征
問題:鄰居數(shù)量隨著“跳數(shù)”增加而指數(shù)增長,直接獲得借款人多跳鄰居比較困難。假設(shè)平均節(jié)點度為100,那么每個借款人一跳鄰居數(shù)量為100,二跳鄰居100^2,三跳鄰居100^3。
下面介紹“多跳遞歸傳播”和”社區(qū)發(fā)現(xiàn)“這兩種方法
多跳遞歸傳播
以計算二跳鄰居特征為例,該方法大概的思路是:將當(dāng)前節(jié)點的二跳鄰居特征傳播到一跳鄰居上,然后將一跳鄰居新特征再傳播到當(dāng)前節(jié)點。
細(xì)節(jié):
1. 因為每次傳播只會涉及直接相連的鄰居,故計算復(fù)雜度大為降低。
2. 原文前向傳播計算是帶參數(shù)W的,這里簡化為將所有參數(shù)相等(因為是特征工程,不是學(xué)習(xí),故會損失一些信息)
3. 對鄰居節(jié)點進(jìn)行固定數(shù)量抽樣,而不是取全部(避免數(shù)據(jù)傾斜),采樣方法使用計算復(fù)雜度為O(1)的Alias Method。
4. 遞歸實現(xiàn),每輪對所有節(jié)點聚合其鄰居(隱)特征及交互,并更新節(jié)點特征,作為下一輪輸入。
5. 第一輪得到所有節(jié)點一跳鄰居特征,第二輪得到二跳鄰居特征,以此類推。

社區(qū)發(fā)現(xiàn)
大致思路:通過社區(qū)發(fā)現(xiàn)算法將graph分成一個個社區(qū),然后計算每個節(jié)點所屬社區(qū)的特征,如社區(qū)中黑名單比例、社區(qū)中平均收入。
這種方法相當(dāng)于對多跳鄰居根據(jù)拓?fù)浣Y(jié)構(gòu)進(jìn)行了分類(社區(qū)),故額外提取了網(wǎng)絡(luò)中拓?fù)浣Y(jié)構(gòu)信息。
工業(yè)界graph規(guī)模比較大,一般會用Louvain,速度快,效果也不錯,下面是spark版本實現(xiàn):
https://link.zhihu.com/?target=https%3A//github.com/Sotera/spark-distributed-louvain-modularity
實體間特征交互
聚合鄰居特征h1后,如何與自身特征h2做交互?
拼接:直接將h1拼接作為其一個新的特征
比較:h1-h2 或者 h1/h2 。例如求鄰居平均收入與借款人自身收入差距較大,是否有異常?
平均:(h1+h2)/2。
最大值:max(h1,h2),金融是重召回的,若特征表示風(fēng)險程度,這樣即取最大風(fēng)險。
處理不同異構(gòu)關(guān)系
將異構(gòu)關(guān)系拆成多個單一關(guān)系,每個關(guān)系都經(jīng)過上述方法生成特征,供下游不同場景使用。
這樣做的好處是:不同關(guān)系權(quán)重在不同場景是不同的,應(yīng)該是通過這些場景的y去學(xué)習(xí)。
形式化描述:
有|D|種類型關(guān)系,則可以拆解為|D|個graph:?
將上面提取graph特征方法記為 f
對每個
?,都可以通過方法 f?提取特征?
將不同的
?作為下游任務(wù)的輸入特征,根據(jù)任務(wù)目標(biāo)來賦予權(quán)重。
借鑒螞蟻處理異構(gòu)網(wǎng)絡(luò)的思路:
https://zhuanlan.zhihu.com/p/59666737
實踐結(jié)果
不同社區(qū)發(fā)現(xiàn)算法比較
在實際小規(guī)模graph上對比了主流的社區(qū)發(fā)現(xiàn)算法,Louvain在劃分社區(qū)質(zhì)量和劃分穩(wěn)定性上均表現(xiàn)不錯的,且能分布式實現(xiàn)。
Walktrap:基于隨機(jī)游走的社區(qū)發(fā)現(xiàn)算法 《Computing communities in large networks using random walks》
Leading Eigenvector:基于特征矩陣求模塊度,自底而上定層次聚類《Finding community structure in networks using the eigenvectors of matrices》
Fast-Greedy:自底而上的層次聚類《Finding community structure in very large networks》
Louvain:基于模塊度最大化的算法《Fast unfolding of communities in large networks》
LPA:基于標(biāo)簽傳播多社區(qū)發(fā)現(xiàn)算法 《Near linear time algorithm to detect community structures in large-scale networks.》
實驗結(jié)果
下面是脫敏后的實驗網(wǎng)絡(luò)的規(guī)模:

劃分質(zhì)量:模塊度指標(biāo)

劃分?jǐn)?shù)量合理性

這是louvain劃分的某個graph的可視化效果(繪制工具:gephi)

感謝
感謝作者,一個快樂的數(shù)據(jù)玩家,從事風(fēng)控、圖挖掘方面的工作!
https://zhuanlan.zhihu.com/p/90813791
感谢您访问我们的网站,您可能还对以下资源感兴趣:
国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频