互聯網金融時代下機器學習與大數據風控系統
編者按:本文來自點融網旗下微信公眾號點融黑幫(微信號:DianrongMafia),作者甘華來,點融網高級數據分析師,曾在 Ebay 和攜程從事數據分析與機器學習方面的工作,關注統計與機器學習方面的研究、大數據風控系統的建設。本文探討的是:互聯網金融時代,如何借助互聯網思維利用 機器學習方法建立高效安全的大數據風控系統?
隨著互聯網的發展,互聯網金融已成為當前最熱門的話題,包括支付、理財、眾籌、消費等功能在內的各類互聯網金融產品和平臺如雨后春筍般涌現。互 聯網金融是傳統金融行業與互聯網精神相結合的新興領域,是對傳統金融行業的有效補充,因此互聯網金融的健康發展應遵循金融業的基本規律和內在要求,核心仍 是風險控制。
傳統金融的風險控制,主要是基于央行的征信數據及銀行體系內的生態數據依靠人工審核完成。在國內的征信服務遠遠不夠完善的情況下,互聯網金額風 險控制的真正核心在于可以依靠互聯網獲取的大數據,如 BAT 等公司擁有大量的用戶信息,這些數據可以用來更加全面的預測小額貸款的風險。而機器學習將是大數據時代互聯網金融企業構建自動化風控系統的利器。
1. 什么是機器學習?
機器學習這個詞相信大家都是耳熟能詳,尤其是近幾年機器學習界的執牛耳者與互聯網界的大鱷的聯姻(見圖 1),更加推動了大眾對機器學習的追求熱情和在互聯網行業中應用的探索熱情。
圖 1:機器學習界的執牛耳者與互聯網界的大鱷的聯姻(左起分別是 Geoffrey Hinton,加拿大多倫多大學教授,"Google Brain"負責人;Yann LeCun,紐約大學教授,非死book 人工智能實驗室主任;Andrew NG,斯坦福大學副教授,百度首席科學家,"Baidu Brain"負責人。)
那么,什么是機器學習呢?機器學習這個詞是英文名稱 Meaching Learning 的直譯,從字面意義不難知道,這門技術是讓計算機具有 “自主學習” 的能力,因此她是人工智能的一個分支。我個人還是比較喜歡 Tom Mitchell 在《Machine Learning》一書中對其的定義:
"A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E."
關于機器學習的具體概念及介紹,有很多這方面的資料,有興趣的話大家可以去查看,在這里我就不贅述。簡而言之,機器學習方法就是計算機利用已有 的數據(經驗),得出某種模型,并利用模型來預測未來的一種方法,這種方法很類似于人類的思考方式(見圖 2)。也就是說,機器學習的一個主要目的就是把人類思考歸納經驗的過程轉化為計算機對數據的處理計算得出模型的過程。
圖 2:機器學習與人類思考的對比
2. 機器學習算法的類型
一般來說,機器學習算法可以分為監督學習,無監督學習,半監督學習,強化學習(Reinforcement learning)以及推薦這幾大類。各部分常見應用場景和算法詳見圖 3。
圖 3:機器學習算法分類
3. 機器學習在互聯網金融行業中的應用
在企業數據的應用的場景下,人們最常用的主要是監督學習和無監督學習的模型,在金融行業中一個天然而又典型的應用就是風險控制中對借款人進行信 用評估。因此互聯網金融企業依托互聯網獲取用戶的網上消費行為數據、通訊數據、信用卡數據、第三方征信數據等豐富而全面的數據,可以借助機器學習的手段搭 建互聯網金融企業的大數據風控系統。
除了在放貸前的信用審核外,互聯網金融企業還可以借助機器學習完成傳統金融企業無法做到的放貸過程中對借款人還貸能力進行實時監控,以及時對后 續可能無法還貸的人進行事前的干預,從而減少因壞賬而帶來的損失。以點融網為例,經過這兩年的發展,我們積累了很多用戶的借款還款信息,這為我們提供了高 質量的模型訓練樣本,也為我們搭建點融的大數據自動化審批系統奠定了堅實的基礎。除了自動化審批系統外,后續我們將在用戶還款能力實時監控,標的的有效組 合,資產的合理配置等方面進行發力。
目前互聯網金融企業以及第三方征信公司在信用評估這方面比較常用的架構是規則引擎加信用評分卡。說到信用評分卡,最常用的算法就是 Logistic Regression,這也是被銀行信用卡中心或金融工程方面奉為法寶的算法。的確,Logistic Regression 因其簡單、易于解釋、開發及運維成本較低而受到追捧。然而互聯網中獲取的用戶的數據維度較多,以離散或分類屬性變量居多,且缺失數據較多,在這種情況 下,Logistic Regression 的適應性會較差。而且規則引擎和信用評分卡模型分開的模式,有時會因為規則引擎里面某些規則過強而拒絕掉很多優質客戶。比如,某人因學生時代的助學貸款在 剛畢業時未能及時償還而發生過逾期,按現有銀行審批規則是無論現在怎樣,申請信用卡時一律拒絕。因此比較好的改進方法是,將規則引擎作為一系列弱的分類 器,與信用卡評分分類器一塊構成強的分類器模型。在這方面,GBDT 將是一個不錯選擇。
GBDT (Gradient Boosting Decision Tree) 又叫 MART (Multiple Additive Regression Tree),該模型不像決策樹模型那樣僅由一棵決策樹構成,而是由多棵決策樹構成,通常都是上百棵樹,而且每棵樹規模都較小(即樹的深度會比較淺)。模型 預測的時候,對于輸入的一個樣本實例,首先會賦予一個初值,然后會遍歷每一棵決策樹,每棵樹都會對預測值進行調整修正,最后得到預測的結果。
F (x)+β_1 T_1 (x)+β_2 T_2 (x)+?+β_m T_m (x)
其中,F_0 為設置的初值,T_i 是一棵棵的決策樹(弱的分類器)。
GBDT 在被提出之初就和 SVM 一起被認為是泛化能力(generalization)較強的算法。近些年更因被廣泛應用于搜索排序以及推薦中而引起大家的關注,如 Yahoo, Ebay 等大型互聯網公司就采用過 GBDT 進行搜索排序。在國內,我在攜程工作時就曾應用 GBDT 算法對客人進行酒店 noshow 和延住的預測,為公司每年帶來千萬的收入,該項目是攜程技術驅動業務發展的典型代表。
GBDT 作為一種 boosting 算法,自然包含了 boosting 的思想,即將一系列弱分類器組合起來構成一個強分類器。它不要求每個分類器都學到太多的東西,只要求每個分類器都學一點點知識,然后將這些學到的知識累加起來構成一個強大的模型。
4. 分類模型的性能評估
分類模型應用較多的除上面講的 Logistic Regression 和 GBDT,還有 Decision Tree、SVM、Random forest 等。實際應用中不僅要知道會選用這些模型,更重要的是要懂得對所選用的模型的性能做評估與監控。
涉及到評估分類模型的性能指標有很多,常見的有 Confusion Matrix (混淆矩陣),ROC,AUC, Recall, Performance, lift, Gini ,K-S 之類。其實這些指標之間是相關與互通的,實際應用時只需選擇其中幾個或者是你認為是重要的幾個即可,無須全部都關注。下面就以 Logistic Regression 為例對這些常見的指標做些簡單的說明,以方便大家理解與應用。
注: 以下所有說明均以信用評分中的好壞用戶為例,壞客戶(壞人)標識為 1(也稱正例),好客戶(好人)標識為 0(也稱負例)。
1)Confusion Matrix
一個完美的分類模型就是,一個客戶實際上屬于壞的類別,模型也將其預測為壞人,實際上是好人時也預測為好人。而實際情況是模型不可能做到這一點,即常說的模型會存在誤判,因此我們必須知道模型預測對的有多少,預測錯的部分又占了多少,混淆矩陣就是囊括了這些所有信息。
注:
- a 是正確預測到的負例的數量,True Negative (TN)
- b 是把負例預測成正例的數量,False Positive (FP)
- c 是把正例預測成負例的數量,False Negative (FN)
- d 是正確預測到的正例的數量,True Positive (TP)
- a+b 是實際上為負例的數量,Actual Negative
- c+d 是實價上為正例的數量,Actual Positive
- a+c 是預測成負例的數量,Predicted Negative
- b+d 是預測成正例的數量,Predicted Positive
2)Accuracy(準確分類率)
Accuracy=(true positive and true negative)/total=(a+d)/(a+b+c+d)
3)Error Rate(誤分類率)
Error Rate=(false positive and false negative)/total=(c+b)/(a+b+c+d)
4)Recall(正例覆蓋率)
recall 也稱為 sensitivity,在機器學習中稱 recall 較多,而 sensitivity 是生物統計中的常用叫法
Recall=(true positive )/(actual positive)/(c+d)
5)Performance 也稱為 Precision(正例的命中率簡稱命中率)
Performance=(true positive )/(predicted positive)/(b+d)
6)Specificity(負例覆蓋率)
Specificity=(true negative )/(actual negative)/(a+b)
7)Negative predicted value (負例命中率)
Negative predicted value=(true negative )/(predicted negative)/(a+c)
一般在工業化應用中看重的是 recall 和 performance,以信用審批為例,我們更關注的是在一定審批通過率的情況下,盡量降低壞賬率。
8)ROC
ROC 曲線就是不同的閾值下,Sensitivity 和 1-Specificity 的組合,ROC 曲線是根據與 45 度線的偏離來判斷模型好壞。
圖 4:ROC 曲線圖
9)AUC 與 GINI
曲線下的面積
GINI=2AUC-1
10)K-S
用于衡量好壞兩個群體分布之間的最大差異,(Sensitivity-Specificity),KS 取值處即為統計意義上的最佳 cutoff 切點
圖 5:KS 關系圖
5. 結語
本文簡單介紹了下什么是機器學習,機器學習的常用算法,點融網應用機器學習搭建大數據風控系統的探索以及分類模型的性能評估指標。機器學習聽起 來很高大上,在實際工作中也經常會遇到一味炒作概念的人,過分夸大機器學習所能起到的作用,或者盲目的追求高深復雜的算法。我個人的觀點還是一方面現階段 機器學習是可以幫我們提高工作效率的科學方法,另外一個方面就是能用簡單方法解決問題絕不為了高大上而去選擇復雜的方法,畢竟算法是沒有三六九等之分。最 后,希望有更多的同學加入到統計與機器學習的研究中來。