李保安, 張雨祺,李培巒
(1.河南科技大學 數學與統計學院, 河南 洛陽 471023;2.洛陽職業技術學院,河南 洛陽 471000)
作為互聯網信息技術所衍生的新興產物,移動支付具有高效、快捷、便攜、便利等優勢,給人們的生活帶來了便捷,也推動著社會經濟和其他行業的進步。但同時,移動支付的發展過程也產生了政策風險、法律風險、資金安全風險等諸多問題,這些問題均可能對用戶造成資金損失,因此,尋找一種能夠對移動支付交易記錄進行風險偵測的方法至關重要。
由于移動支付仍屬于較新事物,故相應研究文獻相對較少。文獻[1]基于粒子群算法優化對支持向量機(support vector machine,SVM)進行改進,用于對電子商務移動支付風險進行預測。文獻[2]使用層次分析法對農村移動支付風險因素進行了研究分析。文獻[3]提出使用數據挖掘相關技術,對多維電子商務移動支付風險的時間序列進行分析,構建了預測模型。文獻[4]先使用威脅模型(spoofing tampering repudiation information disclosure denial of service elevation of privilege,STRIDE)建立指標體系,再使用模糊綜合評價法對移動支付交易進行風險評估。文獻[5]對移動支付存在的風險進行分類并確定權重后,使用反向傳播(back propagation,BP)神經網絡對移動支付的整體風險評價程度進行了預測。文獻[6]以銀聯手機閃付為例,將各種風險分類后,使用層次分析法建立各級指標體系,并使用內容效度比進行指標檢驗,最后建立了神經網絡進行訓練驗證和風險預測。以上對于移動支付風險研究多是從移動支付本身存在的風險因素進行研究分析,而對于移動支付交易記錄存在的風險偵測相關研究較少。
極端梯度提升樹(extreme gradient boosting,Xgboost)算法屬于Boosting集成,是基于傳統梯度提升算法的改進,具有防止過擬合效果好、運算速度快、效率高等優勢,近年來應用廣泛,發展良好,不少學者對其進行了改進。文獻[7-8]使用隨機森林對Xgboost算法進行了改進,使其在回歸預測上的精度得到了提升。文獻[9]使用改進網格搜索調參改進Xgboost算法用于個人信用評估。文獻[10]使用粒子群優化改進Xgboost模型用于高速公路服務區交通量的預測,預測性能得到提升。文獻[11-12]使用代價敏感激活函數改進Xgboost算法用于處理不平衡數據分類方法,增強了Xgboost算法對不平衡數據的處理能力。文獻[13-15]利用貝斯優化Xgboost調參提高其預測性能。綜上,大部分對于Xgboost算法的改進是使用不同的優化算法對其尋參調整的改進,且仍存在一定的不足,如在利用遺傳算法和隨機森林對Xgboost算法改進時,使用遺傳算法對兩模型權重進行優化的過程中。以均方誤差為目標函數,未兼顧到其他評價指標[7];使用代價敏感激活函數對Xgboost算法進行改進用于處理不平衡數據分類方法時,對誤分類代價的設置過程進行了簡化,但導致了模型性能的下降[11]。
SVM作為傳統的機器學習算法,已有相當多的研究和改進,文獻[16-18]均是對SVM進行參數尋優等改進,提高其預測準確率后應用于解決各種問題。另外,貝葉斯優化是機器學習中常用且較好的調參方法,具有比傳統網格搜索更快的運行速度及性能,已有研究使用貝葉斯優化對Xgboost[13-15]、極限學習機[19]、LightGBM[20]模型調參優化,優化后的模型預測準確率都有較大幅度的提升。
為了解決現有技術的不足,綜合上述模型及算法的優勢,本文提出一種基于貝葉斯優化的SVM-Xgboost組合模型,用于移動支付交易記錄風險偵測方法。該模型使用貝葉斯優化分別對SVM和Xgboost的參數組合進行尋優,再將優化后的兩模型使用堆疊法進行組合。經驗證,該組合模型預測性能較改進前的模型性能均有所提升,能夠準確地對移動支付交易記錄進行風險偵測。
本文利用貝葉斯優化,將SVM算法與Xgboost算法進行組合,將兩種不同的學習方法進行組合,可以結合兩種方法的優點。
SVM是一種基于統計學習理論的通用算法,根據結構風險最小化原理進行建模,主要原理是根據數據分布,選擇最大邊緣化的超平面將數據分開,即兩類數據中距離該平面最近的點到該平面距離最遠的超平面。
具體過程如下:
步驟1:將數據集分為訓練數據集和測試數據集。
步驟2:訓練數據樣本為(xi,yi),共m個樣本,其中,xi為第i個樣本的屬性集,yi為類別標號。設存在一個超平面可將樣本分開,該平面可表示為:w·x+b=0,其中,w和b為模型參數。使用特征空間的φ(x)代替x,則可表示為w·φ(x)+b=0。

(1)
其中:σ為徑向基寬度參數。
其對偶優化問題為:
(2)
(3)
步驟4:對該對偶優化問題求解,得最優超平面的w和b,即可得到SVM決策函數為:
f(x)=w·φ(x)+b。
(4)
貝葉斯優化算法[21]利用貝葉斯優化原理,選擇概率代理模型對目標函數進行擬合。
隨機選擇一組參數,將訓練數據集代入該模型進行訓練,并使用貝葉斯優化算法進行參數調整,得到基于貝葉斯優化的SVM模型,具體過程如下:
步驟1:本文選擇樹結構概率密度估計(tree structure probability density estimation,TPE)作為概率代理模型進行貝葉斯優化。
定義
(5)
p(c|q)即模型損失函數為q時超參數為c的條件概率,即后驗概率。
首先,根據已有的數據選取一個損失函數的閾值c*;然后,對大于閾值和小于閾值的數據,分別學習兩個概率密度估計t(c) 和u(c)。
步驟2:本文選擇預期改進(expected improvement,EI)作為采樣函數進行概率密度估計,并計算先驗數據集中每個超參數的后驗分布:
(6)
其中:q*=min{(c1,f(c1)),…,(ci,f(ci))};p(c)為c的先驗概率;p(q|c)為c的似然概率。

(7)
最大化采集函數,則u(c)/t(c)最小時,得到一個新的超參數值c**,將該值重新代入SVM模型中,再次擬合t(c)和u(c),選出最大EI值對應的超參數值,直到迭代結束,這里設置迭代次數為100次,最終選擇100次迭代中SVM準確率最高的參數組合。
步驟4:將尋找到的最優參數組合記錄下來,代入SVM模型中,可得到基于貝葉斯優化的SVM模型。
Xgboost算法是由文獻[22]設計的,是基于傳統梯度提升算法的改進。傳統梯度提升算法基本原理是根據當前模型損失函數的負梯度信息來訓練新加入的弱分類器,然后將訓練好的弱分類器以累加的形式結合到現有模型中,得到最終預測模型。
具體過程如下:
步驟1:確定Xgboost模型迭代訓練的目標函數為:
(8)

(9)

(10)
其中:Ω(fk)為第k棵樹的模型復雜度;T為所建決策樹的葉子數量;ω為所建決策樹第j個葉子節點上的預測分數,也稱作葉子權重;γ、λ為懲罰系數,默認γ=0、λ=1。
步驟2:訓練模型,每一次迭代,就在目標函數中加入一個新函數,第t輪,則加入新函數ft(xi),使得目標函數降低最多,故第t輪的目標函數為:
(11)
用泰勒公式展開取前3項,進行化簡,最終化簡結果為
(12)

步驟3:求目標函數最小值,即對目標函數求偏導使其等于0,求出ωj表達式,并將其代入目標函數中,得目標函數表達式為:
(13)
根據表達式直接探索到最優樹結構,即能夠使目標函數降低最多的函數ft(xi),并可求出最小值。
步驟4:最后,求得最終樣本數據的預測值:
(14)
即每次迭代所得預測結果之和,由于采用邏輯回歸的損失函數,故最終預測結果表示分類概率,為[0,1]的任意一個數。
隨機選擇1組參數,將訓練數據集代入該模型進行訓練,并使用貝葉斯優化算法進行參數調整,得到基于貝葉斯優化的Xgboost模型,具體步驟與貝葉斯優化SVM相似,詳細過程見1.2。
采用堆疊法將兩模型進行融合,建立基于SVM-Xgboost的組合模型,將訓練數據集代入模型進行訓練后,代入測試數據集,得到最終預測結果,具體模型融合過程如下:
步驟1:將上述兩個模型在訓練數據集上所產生的結果作為新的訓練集,使用邏輯回歸模型對其進行訓練,也就是將上述兩模型的答案作為輸入,通過邏輯回歸給上述兩個模型的答案分配權重。
步驟2:將測試數據集導入上述兩個模型,分別得到預測類別概率值,作為新的測試集。
步驟3:使用步驟1訓練好的邏輯回歸模型,將步驟2得到的特征值代入該邏輯回歸模型,進行預測,得出最終測試集上的預測類別或概率。
算法具體流程圖如圖1所示。

圖1 算法流程圖
實證數據集來源于kaggle平臺,共有1 048 575條數據,其中1 142條數據有風險,類別標簽為1,其余為無風險數據,類別標簽為0。由此可知,該數據集比例極不平衡,但這與現實生活相符,因為移動支付風險交易為一類“小概率大風險”的事件。該數據集包含10個屬性列,1個標簽列,屬性列包括時間、交易類型(X1)、交易金額(X2)、交易發起方姓名、交易前本金(X3)、交易后本金(X4)、交易接收方身份、交易前接收方本金(X5)、交易后接收方本金(X6)、單次交易是否超過20萬(X7)、標簽列為交易風險(Y),具體類別變量及含義如表 1 所示。

表1 類別變量及含義
該數據集不存在缺失值和重復值,刪除無關變量如時間、交易發起方姓名、交易接收方身份。由于該數據集中數據量充足,但出現風險的數據過少,數據極不平衡,故采用隨機欠采樣的方式對數據進行采樣預處理,即隨機刪除大樣本數據量,保留小樣本數據,使得兩類數據達到平衡,并將數據集的70%作為訓練集,30%作為測試集。
將測試數據集代入建立好的基于貝葉斯優化的SVM-Xgboost組合模型中,進行檢驗,檢驗指標包括準確率、召回率、接受者操作特性(receiver operating characteristic,ROC)曲線及ROC曲線下的面積(area under curve,AUC)值。準確率表示預測正確的樣本數占總樣本數中的比例,召回率表示模型正確預測的交易記錄存在風險的樣本數占所有實際交易記錄存在風險的樣本數,AUC值為ROC曲線與X軸和Y軸在右下方圍成的面積,該值越大則模型預測性能越好。具體計算如下:

(15)

(16)
ROC曲線及AUC值。
其中:TP是實際為正樣本且預測為正樣本的樣本數;TN是實際為正樣本且預測為負樣本的樣本數;FP是實際為負樣本但預測為正樣本的樣本數;FN是實際為正樣本但預測為負樣本的樣本數。
分別運用訓練好的未改進的SVM、貝葉斯優化的SVM、未改進的Xgboost、貝葉斯優化的Xgboost和貝葉斯優化的SVM-Xgboost對測試數據集進行預測,預測結果如表2所示,ROC曲線如圖2所示。

表2 模型結果
由表2可知:基于貝葉斯優化的SVM-Xgboost組合模型的準確率為97.3%,該模型較單個模型在準確率上分別提升17.4%、0.8%,即模型分類預測的準確性有較大提升;召回率分別提升40.7%、3.0%,即樣本中有風險的記錄被預測正確的比率有較大提升;AUC值分別提升16.4%、0.8%,可見基于貝葉斯優化的SVM-Xgboost模型對于移動支付風險偵測具有良好性能。

圖2 ROC曲線
ROC曲線如圖2所示,圖2中,橫坐標為假正率,即預測為正的負樣本數與負樣本實際數之比;縱坐標為真正率,與召回率計算公式相同,表示模型預測正樣本數占所有實際正樣本數的比例。該曲線越靠近左上角則模型性能越好。由圖2可知:基于貝葉斯優化的SVM-Xgboost模型ROC曲線更靠近左上角,性能更好。
本文通過建立基于貝葉斯優化的SVM-Xgboost模型對移動支付交易記錄是否存在風險進行偵測,其中所使用的貝葉斯優化相較于傳統的網格搜索和隨機搜索效率更高,且具有不容易陷入局部最優的特點。Xgboost算法運行效率更高,泛化能力更強,且具有良好的防止過擬合效果。SVM是基于統計學習理論的通用算法,使用核技術,使其處理非線性問題功能強大,其算法結構簡單,易于操作,3者進行結合,建立基于貝葉斯優化的SVM-Xgboost組合模型能夠使三者的優勢進行融合,得到更好的移動支付風險偵測模型,可以進一步改善預測效果。
該模型可用于移動支付領域交易風險的偵測,可以根據交易類型、交易金額、交易前本金、交易后本金等變量來推測出該筆交易是否存在風險,可以及時給予用戶反饋提醒,提高用戶警惕,及時追回支付金額,減少用戶經濟損失。