蔡青松, 吳金迪, 白宸宇
(北京工商大學 計算機學院, 北京 100048)
近年來, 關于信用貸款的違約預測已成為高校科研人員和金融機構重點研究的內容[1]. 信用貸款是根據借款人的綜合信用發放的一筆借款資金, 其不需要固定資產抵押, 但是對借款人征信有著嚴格要求. 網貸公司、互聯網公司等機構的信貸業務, 也伴隨著互聯網的高速發展而飛速前進, 與此同時, 這些貸款機構面臨著部分客戶無法按時還款的問題, 違約現象愈發顯著[2].對于貸款申請是否通過, 以前是憑借人工處理與機器審核相結合的方式來做出決策, 在大數據時代, 這種方式已經不再適合市場發展的需要. 要解決此類問題, 必須構建一個可靠的預測模型[3]. 信貸違約預測模型是金融大數據風控領域必不可少的一部分, 能夠幫助審批人員準確高效地識別客戶是否具有償還貸款的能力,在一定程度上能夠減輕貸款審批人員的工作壓力, 同時提高審批通過的準確率. 因此, 對信貸違約預測模型進行研究具有很大的現實意義[4].
近年來, 國內外關于信貸違約預測的研究都取得了一定的成果. 章寧等人針對借貸過程中的信息不對稱問題, 為更有效地整合不同的數據源和貸款違約預測模型, 提出一種基于AUC和Q統計值的學習方法[5].Deng等人使用LendingClub平臺提供的數據進行研究, 選出影響最大的前20個因素, 使用Logistic回歸模型, 確定了影響違約風險的主要因素, 并通過可視化一些變量之間的關系, 得到定性分析結果[6]. Kim等人提出了一種半監督學習方法, 通過考慮社會借貸數據的特點, 利用社會貸款的大量未標記數據來強化邊界, 利用標簽傳播、轉換支持向量機(TSVM)與Dempster-Shafer理論相結合的方法, 實現對社交借貸的準確預測[7]. 魏力等人針對P2P信貸項目如何減少借貸過程中的風險沖擊, 建立由規則推導而成的標簽模型, 從多角度描述用戶, 構建客戶畫像, 提升分類任務的效果[8].
上述信貸違約預測模型主要是以簡單模型為主.采用這種模型雖然保證了一定的可解釋性, 但也出現了預測精確率低的情況. 因此, 為了避免使用簡單模型存在的問題, 一些研究人員將目光投向了使用多模型的方式來構建信貸違約預測模型. Tong等人針對英國的貸款違約問題, 利用來自英國銀行的大量房屋抵押貸款違約數據集, 針對拖欠貸款產生的總損失金額建立了混合離散連續模型, 從而提高預測方面的性能[9].馬曉君等人運用CatBoost算法對于P2P網絡借貸中的違約預測情況展開了研究, 通過對違約影響因素進行綜合分析, 使得模型出錯所導致的損失成本進行有效控制[10]. Ma等人又使用了多角度和多維的數據清洗方法, 將XGBoost算法應用于真實數據, 其使用基于分布式的模式結合弱學習器, 提高了模型的訓練效率[11].
受上述研究啟發, 本文基于Stacking[12]策略, 構建了基于LightGBM-DeepFM-Catboost的信貸違約預測模型[13-15]. 此外, 本文新穎性地引入了基于局部可解釋的、與模型無關的LIME方法[16], 能夠對于復雜模型的預測結果做出值得人們信賴的解釋, 在提升違約預測精確度的同時, 進一步提升本文所提出模型的可解釋性.
LightGBM是對GBDT算法進行改進和提升后的優化版本, 屬于集成模型, 主要采用了基于leaf-wise的決策樹生長策略和基于直方圖的決策樹算法. 基于leafwise的決策樹生長策略每次從當前所有葉子中找到分裂增益最大的一個葉子, 然后分裂, 如此循環, 因此同level-wise相比, 在分裂次數相同的情況下, leaf-wise可以降低更多誤差, 得到更好的精度, 在保證高效率的同時防止過擬合. 同時基于直方圖的決策樹算法不需要額外存儲預排序的結果, 而且可以只保存特征離散化后的值, 明顯降低了內存消耗, 從而對于內存的利用率會更低, 在二叉樹中可以通過利用葉節點的父結點和相鄰結點的直方圖的相減來獲得該葉節點的直方圖,所以只要為一個葉節點建立直方圖, 就可以通過直方圖的相減來獲得相鄰結點的直方圖, 因此花費的代價較小, 有助于提高融合模型的效率.
DeepFM是一個集成了DeepNN和FM的神經網絡框架, 由DeepNN和FM通過并行的方式組合而成.DeepNN是用來做特征之間的高階組合, 所有的特征都會被轉化成Embedding向量作為Deep部分的輸入,在DNN層利用深度學習數據在網絡間的傳播性得到高階特征. FM是用于特征之間的低階組合, 在Dense Embedding Layer的基礎上, 做了二項交叉特征, 能夠自動識別特征組合, 來減少手工提取特征的工作量, 且計算過程中不需要用戶干預. 這兩個部分分配同樣的特征輸入, 在經過模型后, 將他們的輸出匯總成為最終的預測結果. 既考慮低階又考慮高階特征的方式在違約預測模型領域具有較好的覆蓋性.
CatBoost能夠很好地處理類別型特征, 對于每個樣本, 都單獨構建一個利用該樣本之前的樣本點的梯度估計得到的模型. 針對這些模型, 估計該樣本的梯度,然后利用新模型重新對樣本打分. 與原有的梯度提升方法不同, 它具有有序提升的特點, 通過在每個訓練步驟中, 使用獨立置換的歷史樣本進行無偏差的提升, 相比其他提升算法能夠更好地響應過擬合問題. CatBoost還可以提供類似于基于決策樹的特征重要性, 是在訓練過程中處理類別型特征, 而無需進行包括調整超參數在內的額外預處理. 因為其簡單性和高性能的特性,所以該算法已被越來越多的應用在各領域中.
集成方法可分為兩類, 分別是同質集成和異質集成, 同質集成是使用同一種機器學習算法來構建集成模型, 異質集成是使用不同的機器學習算法來構建集成模型. 傳統上構建集成模型時, 每個模型都具有相同的權重, 有時可能認為某些模型更好或更準確, 希望手動為其分配更高的權重. 有一種方法是通過使用另一層學習算法來自動地估計每個模型的權重, 這種方法稱為Stacking策略, 具體流程如圖1所示.

圖1 Stacking流程圖
由于每個基模型都做出了重大貢獻, 而且每個模型各有優劣, 使用了Stacking策略后, 通過集成的方式使得其他模型的優勢彌補了某個模型的弱點和不足,提高了整個預測模型的準確度. 將Stacking策略應用于現實世界中的大數據問題, 也可以產生更高的預測準確性. 其主要思想是將原始數據集劃分為訓練集和測試集, 采用交叉驗證的方式對第一層的各種模型進行訓練, 使訓練后的模型在驗證集和測試集上進行預測, 將驗證集上的預測結果疊加作為新的特征, 用作第二層學習模型的輸入, 將測試集上的預測結果的平均作為第二層模型的測試集. 該第二層算法經過訓練, 從而做出最終預測結果. 算法流程如算法1所示.

算法1. Stacking算法D(x1,y1),···,(xn,yn) x′輸入: 訓練集 ; 測試數據y′輸出: 預測結果i=1→m 1. for do hi←ci(D)2. 3. end for D′←?4. j=1→n 5. for do i=1→m 6. for do zji←hi(xj)7. 8. end for D′←D′∪((zj1,···,zjm),yj)9. 10. end for h′←c′(D′)11. y′←h′(h1(x′),···,hm(x′))12.
針對模型的可解釋性分為全局解釋和局部解釋,預測結果可解釋性對于本文研究問題的意義有以下4點: 首先針對于信貸領域. 可解釋性能夠將不可信任的預測結果轉換為值得信任的, 讓用戶對于預測結果產生充分信任. 其次提供了觀察信貸違約預測模型的新視角, 以便應對來自銀保監會和人行的監管壓力, 同時保證了信貸領域的公平性. 再次可以幫助金融機構決定是否部署融合模型和進一步改善模型. 最后可以消除風控模型在金融機構部署時的潛在威脅, 建立起機構、用戶與信貸違約預測模型之間的信任關系.
全局可解釋性是指能夠基于全部數據集上的響應變量和輸入特征之間的互相作用來解釋模型的決策.對于本文所研究的信貸違約預測模型, 全局可解釋性可以在模塊級別上幫助我們理解模型, 比如說針對不同特征, 目標變量的分布是什么, 這對于本文的研究具有一定的意義, 但是對于參數級層面的解釋, 在信貸違約預測模型具有大量參數的情況下, 人們很難想象特征之間是如何通過相互作用, 才能獲得這樣的預測結果.
LIME是一種利用簡單模型來解釋任何復雜模型的局部解釋技術, 與被解釋的模型無關, 不需要進行模型適配, 也不會深入模型內部, 它用人們理解的方式來解釋模型. LIME解釋技術對于數據集中特征相關與否并無明確要求, 只是復雜模型的預測精度會隨著不相關特征的篩除而不斷上升, 其主要是通過擾動局部的人類容易理解的特征來改變輸入, 通過對復雜模型的局部近似, 觀察預測結果的變化來理解模型內部的行為, 生成人們可以信賴的解釋. 對于模型預測結果進行事后解釋, 我們能擁有更多的信息來決定是否信任信貸違約預測模型以及模型的預測結果.
我們將g作為預測模型f的解釋:g∈G, 定義一個目標函數ξ, 同時, 為了測量g在局部如何逼近f, 我們定義了一個損失函數L, 在保持模型復雜度Ω (g)足夠低的同時, 我們通過最小化損失函數L得到目標函數ξ 的最優解.
目標函數定義為:

損失函數定義為:

其中,z是原始數據集中一個被擾動的樣本點,z′是通過對該樣本隨機擾動產生的新樣本點的集合, 通過LIME的可視化機制, 給出模型預測結果的局部解釋.
信貸違約預測模型通過在脫敏數據集上完成訓練,來預測客戶后期產生違約的概率, 目的是幫助機構人員對客戶的資質完成審核, 預測客戶的還款能力, 提前發現貸款的潛在損失, 避免產生不必要的糾紛, 降低借貸風險. 本文采用Stacking策略, 使用單個模型來學習如何最佳地組合互補模型, 并將第一層模型的輸出作為標簽附加到我們的樣本中, 還需要使用交叉驗證來比較模型的泛化性能.
由于不同的算法模型具有不同的性能特征, 所以在綜合比較了常用的模型后, 我們選擇了LightGBM、DeepFM、CatBoost作為第一層模型, 將第一層基模型的輸出作為第二層模型的輸入. 由于CatBoost模型在Stacking中的應用對于模型融合更為有效, 所以我們使用CatBoost模型作為第二層的次模型. CatBoost模型學習第一層模型中子模型的性能, 并根據子模型的誤差給子模型賦予不同的權重后進行訓練, 以進行最終預測. 因此, 如果單個模型表現不佳, 不一定會對結果產生不利影響. 兩層模型融合后的新模型優于第一層的單個子模型, 這也表明多模型融合比單一模型具有更好的預測準確度.
基于Stacking與LIME信貸違約預測模型, 其預測的流程如圖2所示.

圖2 信貸違約預測模型
基于Stacking策略的融合模型, 通過引入LIME方法, 構造了具備可解釋性的異質集成模型. LIME為了搞清楚哪一部分輸入對預測結果產生貢獻, 在要解釋的樣本周圍做微小的擾動, 然后我們根據這些擾動的數據點距離原始數據的距離分配權重, 基于學習得到一個可解釋的稀疏線性模型, 對于融合模型最終的預測結果, 事后解釋機制LIME通過可視化的方式在局部進行了解釋.
在實驗過程中, 我們使用開源語言Python 3編寫代碼, 利用Python的NumPy和Pandas等進行數據預處理和特征工程. 操作系統為Windows 10, 機器配置為2.40 GHz Intel i5-9300H GTX1650.
本文使用的數據是來自Kaggle的公開數據集, 包含了貸款客戶脫敏后的信用交易數據, 并帶有一個標簽, 指示客戶是否會違約. 3個數據集中分別存儲了不同用戶的基本信息數據, 每一行代表一個樣本, 來自3個數據集的主要特征的含義均展示在如表1所示的主要特征含義表中.

表1 主要特征含義表
每筆借貸樣本屬性主要包括年齡、借款利率、借款用途、借款目的、借貸持續時間、信用賬戶額度、借款時長、活期存款、借款人現在拖欠賬目的逾期情況、過去12個月的征信查詢次數、過去6個月的貸款違約次數、房屋狀況、教育程度、性別、工作等信息.
(1) 數據預處理
由于原始數據集具有缺失值、類別不平衡和高維特征等問題. 在預測模型中, 類別不平衡會導致預測不準確, 而高維稀疏數據也會產生維數問題, 為了解決上述問題, 我們進行了以下工作. 首先關注類別不平衡問題, 經過分析表明, 由于模型中正負樣本比例過大, 從而導致過擬合, 以至于訓練后的模型預測效果差. 導致訓練后的模型精度雖然高, 但是卻沒有價值, 通過下采樣對這一問題進行了控制.
對于應用了級聯原理模型的正負樣本閾值的確定,我們將數據集分出一部分作為驗證集, 對于級聯中選取的每個基模型進行訓練后去不斷的動態調整閾值,通過在實驗中調整參數, 找到在驗證集上效果最好的閾值. 部分樣本的缺失值過多, 會影響模型訓練效果.但是缺失數據的比例占總體樣本的比例較少, 而且缺失數據是隨機出現的, 所以我們從訓練數據中直接刪除了這部分缺失值過高的數據, 這樣刪除缺失數據, 對后續的分析結果影響不大. 數據集中還有一些類別特征樣本數過低的以及為0的特征, 由于它們對最終的預測結果影響不大, 因此, 我們將其進行直接刪除.
(2) 特征工程
原始數據集中有近百維的數值特征變量, 擁有過多的維數容易導致過擬合問題, 所以我們需要對數據進行降維. 除了平常使用的PCA和t-SNE等方法外,我們還可以選擇克拉默相關系數、最大信息系數、皮爾遜相關系數等方法. 我們選擇使用皮爾遜相關系數來進行連續特征的篩選. 皮爾遜相關系數是一種線性相關系數, 是最常用的一種相關系數, 記為r, 用來反映兩個變量X和Y的線性相關程度, 值介于-1到1之間.相關系數越接近于1或-1, 相關性越強, 相關系數越接近于0, 相關度越弱. 通過計算特征間的皮爾森系數進行特征降維, 兩個特征間皮爾遜相關系數高于0.95已經是屬于極強相關, 可以隨機選擇刪去一個. 基于上述的方法, 可以用減少特征數量的方式實現對數據的降維.
為了驗證該模型的性能, 選擇ACC、F1-Score、Precision和AUC作為評價指標, 其中AUC表示預測的正樣本排在負樣本前面的概率, 相較于ROC能夠更好的評價模型性能. 混淆矩陣如表2所示.


表2 混淆矩陣
將我們所提出的融合模型與其他3個模型進行比較, 通過在3個數據集上進行的實驗可以看出, 本文所提出的模型較LightGBM、DeepFM、CatBoost來說,在AUC、ACC、Precision和F1-Score這些指標上面均有明顯提升, 說明本文所提出的模型有效的提升了信貸違約預測準確度.
從表3中我們可以得到如下結論: 我們提出的模型, 在4項指標上對比LightGBM、DeepFM和CatBoost模型均有提高, 其中AUC最高提升了12.47%,F1-Score最高提升了2.8%,ACC最高提升了9%,Precision最高提升了9.07%. 通過對表4和表5中實驗指標的觀察分析, 可以看出我們提出的模型也優于其他模型, 證實了我們所提出的模型有效提升了預測精確度.

表3 German數據集實驗結果對照表

表4 Lending club數據集實驗結果對照表

表5 L&T數據集實驗結果對照表
我們用信貸違約預測模型的目的是判斷一個客戶在未來產生違約的可能性. 通過前邊的實驗分析, 可以說該模型適用于信貸機構的需求, 但是想要理解一些客戶為什么會被預測為違約, 而其他客戶不會被預測為違約, 同時風控部門也需要評估模型所作出的預測是否值得相信. 因此, 本文認為能解釋每個模型的預測是獲取信任的一種重要方式.
為了實現這一目標, 通過LIME方法來研究預測結果中不同特征的貢獻, 可以證明我們的模型是值得信任的. 這將極大地改善風控部門原有復雜模型解釋性不足的問題.
對于本文所提出的融合模型在公開數據集上的預測結果(圖3-圖5), 利用事后解釋機制LIME進行可視化解釋, 輸出了模型對這3個數據集中單個樣本的解釋結果, 分別顯示影響樣本預測結果重要性前10的特征, 及其相應貢獻度和特征對應的值. 第1列表示從預測模型得到的負面結果和正面結果的預測概率, 第2列顯示某個特征對正面或負面結果的貢獻, 為了清楚起見, 只顯示了前10個特征. 第3列顯示特征的原始數據值或將離散變量經Label編碼后的值.

圖3 German數據集樣本預測結果解釋
接下來, 如圖3所示, 可以看出模型對該客戶有72%的概率相信其不會違約, 那么模型預測該客戶大概率不會違約的理由就是基于該客戶信用卡額度、借貸持續時間、儲蓄賬戶、年齡這些因素, 另外活期存款、房屋狀況、目的, 成為了預測該用戶不會違約的一個干擾. 這種解釋結果在現實世界中是有意義的, 并揭示了我們可以在一定程度上信任我們的預測模型.
在圖4中, 對于該客戶模型有74%的概率相信他不會產生違約行為, 根據解釋結果可以得出, 該客戶在12個月中除了醫療收藏品以外的收藏品數目、借款利率、借款目的、12個月內的貸款沖銷總數這些方面信用是十分好的, 但是該客戶現在拖欠賬目的逾期情況、過去12個月的征信查詢次數, 會對系統的解釋結果產生負面影響. 用戶通過可解釋性結果了解自己接下來需要在哪方面進行改進.

圖4 Lending club數據集樣本預測結果解釋
從圖5看出, 我們的融合模型判斷該客戶違約的概率是72%, 可解釋機制給我們的解釋就是基于該客戶在過去6個月的貸款違約次數、貸款資產的價值這些方面信用不好, 導致了該預測結果, 另外該客戶在資產成本、年齡這些方面的表現還是不錯的, 接下來可以繼續加強, 以提升自己的信用度.

圖5 L&T數據集樣本預測結果解釋
本文為了獲得具備可解釋性的信貸違約預測模型,通過不同模型間的異質集成, 以融合的方式構建了一個由LightGBM、DeepFM和CatBoost算法組成的異質融合模型, 用于信貸審批時預測申請人的違約風險.在基于Stacking策略的融合模型中, 采用LightGBM、DeepFM和CatBoost三個不同的模型作為第一層的預測模型, 然后我們使用CatBoost作為第二層模型, 在預測精確度、泛化性能等方面都有較好的表現. 實現了信貸違約預測模型預測精確度的提高. 此外, 通過引入事后解釋機制LIME, 也顯著的提升了模型的可解釋性. 通過在3個公開數據集上的實驗表明, 本文建立的融合模型可以在準確預測信貸違約的同時, 又兼具可解釋性. 對于具備解釋性的黑盒信貸違約模型的研究有一定的現實意義. 此外, 本文采用融合模型在提升準確度的同時, 還存在的時間效率較低的問題, 在后續的研究中, 我們希望能夠改進特征選擇方法, 進一步降低原始特征中存在的冗余和噪聲, 將有意義的特征輸入機器學習模型中進行訓練, 同時通過網格計算實現資源共享, 使用多線程模式結合基模型, 合理利用硬件資源, 以提高基于融合方法模型的時間效率.