賴俊豪 李俊安
(華南農業大學電子工程學院(人工智能學院) 廣州省廣東市 510642)
隨著網絡購物的興起,無紙化支付的便捷,人們更傾向于網絡支付。網絡支付在帶給我們便捷的體驗的同時,也帶來了全新的交易風險。不同于傳統的線下交易,網絡交易的欺詐更具有隱藏性,朔源難的特點,一旦發生,損失難以追回。對風險交易進行識別與預警,可以有效減少公民損失,打擊網絡違法犯罪的氣焰囂張。目前對風險交易的提示,主要是靠提取雙方聊天中的關鍵詞進行識別,未能充分根據用戶地區,交易類型等進行綜合判斷。同時,風險交易的數據集是典型的高度不平衡的數據集,安全交易的數據量遠遠大于風險交易的數據量。通常在真實交易數據中,僅有1%是風險交易[1],這導致僅有少量的風險交易樣本可用于學習,至使大部分傳統神經網絡算法不佳。幸運的是,Facebook提出了一種利用梯度提升決策樹(GBDT)與邏輯回歸算法(LR)相結合的CTR預估模型[2],大量的文獻表明,該模型在多特征的機器學習中具有優良的效果。本文探索了典型非均衡的多特征數據集的處理流程,并用一組真實的風險交易的數據集,驗證了機器學習在預測風險交易中的應用。
對于實驗的數據集,往往需要進行一定的預處理步驟。如檢查數據集中有無缺失值,如果有,往往需要對缺失值進行刪除或插補,考慮到數據樣的來之不易,盲目地刪減特征值是對信息的極大浪費,實驗過程中,學者往往通過均值估計或極大似然估計對對缺失值進行插補。另一方面,數據集中的特征數據不一定是數值型,也可能是分類型,這對我們訓練模型對造成極大的不便,因此,需要根據一定的規則將其映射為數值型。部分分布密集的數據還需要通過標準化處理,擴展其分布空間。合理的預處理步驟可以提高模型的擬合速度,降低模型的復雜度。
在訓練模型時,過多的輸入特征不僅會大大添加訓練時長,導致模型過度復雜,還可能會降低模型的準確率,因此,對特征進行篩選十分有必要。在實驗過程中,首先要去除便是明顯與輸出結果無關的特征,比如序號、用戶名、交易日期等。其次是去除在不同輸出標簽下,分布規律相似度高的特征值。這可以通過頻率分布直方圖直觀反映,部分特征在正常樣本與異常樣本中高度重合,這樣特征不僅不利于模型的訓練,學習效率低下,會增加模型復雜度和訓練時間。最后,如果剩余特征值數量仍然過多,則考慮通過特征重要性進一步篩選特征,而特征對整體的重要性是通過其對所有樣本的重要性的平均值來衡量的[3]。目前主流的方法是通過GBDT算法或隨機森林算法來計算不同特征的重要度。特征的重要度越高,那么在特征節點在分裂時損失函數減少得便越多,根據不同特征中重要度的排序,就可以知道不同特征的優先級。

圖1:特征相似性排序圖
數據集還有另一個問題就是正常樣本遠遠大于異常樣本數量,這會給我們極大的訓練模型的難度。因此,在將數據代入模型訓練之前,需要對樣本進行均衡化處理。均衡化方法包括過采樣與欠采樣兩種,其中過采樣會添加少數樣本的數量,欠采樣會減少多數樣本的數量,不論哪種采樣方法,都是為了使正常樣本與異常樣本數量趨于一致。由于欠采樣會損失樣本數量,可能導致樣本數量過少,從而無法有效訓練我們的模型。因此考慮使用SMOET進行過采樣擴展我們的數據集。其原理是通過隨機線性插值,從而構造新的數據樣本。

圖2:特征重要度排序圖

圖3:閾值對模型的影響圖
判斷是否是風險交易,這是典型的二分類問題,可以將標簽值設為1表示其為風險交易,0表示其為安全交易。通過將特征值輸入到訓練好的模型中,可以得到事件發生的預測值,這個過程通過Sigmoid函數來實現:

其中x是輸入的變量,輸出的是一個概率值,一般情況下,我們可以設定閾值,如果概率值高于閾值則認為事件發生,否則反之。θT則是一維矩陣,是需要通過迭代學習的參數。邏輯回歸算法常常使用對數函數作為損失函數:

其中M是輸入的參數的個數,當y為1時,隨著的值增大,預測值越來越接近實際值,其損失越來越小。當y為0時,隨著的值增大,預測值越來越偏離實際值,其損失越來越大。我們可以通過梯度下降算法,來擬合回歸邏輯模型,在多次迭代中求解損失函數的偏導數,確認θT的值。
將均衡化處理后的數據集作為研究對象,將其按照一定的比例劃分為測試集與驗證集,測試集用于訓練模型,驗證集用于測試模型。
實驗采用了歐洲金融機構公開發布的數據集,其中包括了發生在2013年9月的共284807條交易記錄。出于保護隱私的目的,原始數據集進行了脫敏處理,數據集中的30個特征依次用B1-B30來表示。每條交易記錄包括30個特征值和一個標簽,沒有缺失值,其中標簽值為1表示該記錄是風險交易樣本,標簽值為0則表示是安全交易樣本。
在數據集中,部分參數集中分布在較小的區間中,部分參數則散落分布在較大區間中,需要進行z-score標準化,將數據按照比例進行縮放,映射為均值為0,標準差為1的訓練數據。并通過特征在安全交易樣本與風險交易樣本中的相似性來篩減特征量,不同特征的相似性如圖1所示。
人為剔除相似程度大于70%的變量(即排序在B22及之前的變量)。可以看到,余下的特征數量依然過多,需要進一步篩選特征,這里通過GBDT算法進行特征重要度的排序,部分特征的重要性如圖2所示。
如圖2所示,就是我們篩選出來的變量,其余變量重要度小于0.001,故剔除。隨后,使用SMOET進行過采樣擴展我們的數據集。
用篩選后的特征值建立模型,通過十重交叉驗證建立邏輯回歸模型,并與其他二分類常見模型進行比較,不同模型表現性能如表1所示。

表1:不同模型評價對比
解釋不同的問題,我們通常要使用不同的指標來度量模型的性能。把風險交易誤判為安全交易的危害要比將安全交易誤判為風險交易大得多,因此,我們要更多的關注召回率而不是精確率。從表1可以看到,邏輯回歸算法建立的模型召回率最高,通過其他維度都有比對比算法更優的表現。同時,通過設置閾值可以改變預測為風險交易的概率,從而改變模型的召回率,如圖3所示。
由圖3可以看到,隨著閾值逐漸變大,召回率逐漸下降,準確率逐漸上升。這表明召回率與精確率是此消彼長的一對指標,閾值過小,雖然可以提高召回率,讓模型找出更多的風險交易樣本,但隨之而來的是更頻繁的誤判。而提高閾值,則雖然犧牲了召回率,但保證了精確率,大幅減少誤判的發生,從理論上分析,我們是希望有較高的召回率,幫助提高風險交易的識別能力,但在實際應用中,過高的誤判率會帶來復核成本的增加,消耗大量的人力物力,得不償失。因此具體的閾值設定要通過調研來確定。
通過GBDT算法與邏輯回歸算法的配合,能有效建立風險交易的預測系統,并能通過調整模型判定為風險交易的閾值,來控制風險交易檢測的力度。若想找出更多的風險交易事件,剛設定較小的閾值,反之,剛設定較大的閾值。