樊春美,朱建生
(中國鐵道科學(xué)研究院,北京 100081)
隨著互聯(lián)網(wǎng)技術(shù)和電子商務(wù)的蓬勃發(fā)展,第三方支付機(jī)構(gòu)利用互聯(lián)網(wǎng)技術(shù)在支付領(lǐng)域快速拓展,支付賬戶以其便捷的支付功能被公眾廣泛使用[1]。當(dāng)前中國使用較多的第三方支付主要有微信、支付寶。由于它們不僅具有虛擬貨幣的功能,還能夠社交,因此人們?cè)谌粘I钪惺褂玫念l率越來越高,同時(shí)也帶來了一些安全問題。一些學(xué)者[2-5]探討了電子商務(wù)面臨的一些安全問題,如電腦系統(tǒng)漏洞、賬戶被盜用、密碼被篡改等等。但是大部分學(xué)者主要關(guān)注財(cái)產(chǎn)是否被盜用,及這些安全問題的解決方案。文中則重點(diǎn)關(guān)注以第三方支付賬戶為工具從事惡意行為的現(xiàn)象。利用網(wǎng)上支付賬戶申請(qǐng)的便利性注冊(cè)支付賬戶,主要用來從事電商活動(dòng)中的交易,但是由于網(wǎng)絡(luò)支付賬戶現(xiàn)在一般需要實(shí)名制,人臉驗(yàn)證等各種安全措施,所以非法用戶會(huì)存在使用較集中的支付賬戶為多個(gè)電商用戶發(fā)起支付行為,從而達(dá)到獲利的目的。
在過去,銀行每天的交易量較少,大部分的安全問題主要通過人工審核來完成。然而現(xiàn)在銀行支持了網(wǎng)絡(luò)支付,交易量劇增,再通過人工審核來發(fā)現(xiàn)其中的問題會(huì)耗費(fèi)巨大的人力同時(shí)效率較低。與此同時(shí),機(jī)器學(xué)習(xí)的應(yīng)用[6-9]變得越來越火熱,通過算法來自動(dòng)識(shí)別惡意的行為,減少人工干預(yù),可以大大地提高風(fēng)險(xiǎn)識(shí)別的效率。因此文中主要使用機(jī)器學(xué)習(xí)的算法,研究如何發(fā)現(xiàn)在電子商務(wù)平臺(tái)使用的惡意支付賬號(hào),從而提高甄別電子商務(wù)平臺(tái)惡意用戶的行為。
針對(duì)支付賬戶的研究,邵建利等[10]采用Logistic回歸構(gòu)建第三方支付的欺詐風(fēng)險(xiǎn)識(shí)別模型,對(duì)欺詐風(fēng)險(xiǎn)進(jìn)行量化估計(jì),大大地提高風(fēng)險(xiǎn)識(shí)別能力,對(duì)第三方支付機(jī)構(gòu)的風(fēng)險(xiǎn)管理具有重要作用。杜煜男[11]介紹了支付寶與其他同業(yè)機(jī)構(gòu)間的差異,支付寶的風(fēng)險(xiǎn)分析優(yōu)勢在于風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)評(píng)估過程中對(duì)各種模型算法的創(chuàng)新與應(yīng)用,如神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)、決策樹、隨機(jī)森林復(fù)合模型的應(yīng)用。由于一些社交賬戶具有虛擬貨幣的功能,也會(huì)存在一些惡意行為,如在促銷活動(dòng)中作弊等,通過大量的惡意社交賬戶達(dá)到獲取金錢利益的目的。Zhou Yadong等人[8]以騰訊QQ為例,詳細(xì)地分析了在社交網(wǎng)絡(luò)中惡意賬戶的識(shí)別情況。總的來說,現(xiàn)在大部分學(xué)者和公司都在使用機(jī)器學(xué)習(xí)算法來識(shí)別欺詐風(fēng)險(xiǎn)。
但是目前的一些識(shí)別算法大都是針對(duì)第三方支付平臺(tái)風(fēng)險(xiǎn)的研究,而對(duì)于電子商務(wù)中的電商平臺(tái),并不能獲取這些支付賬戶的詳細(xì)信息,只能看到這些賬戶的在電商平臺(tái)的消費(fèi)記錄,因此分析的維度變得受限了。文中主要從商戶的角度出發(fā),對(duì)支付賬戶的交易行為進(jìn)行區(qū)分,結(jié)合支付賬戶的一些特征,提出了發(fā)現(xiàn)專門用來從事作惡行為的支付賬戶的算法。
基于電商平臺(tái)交易記錄的惡意支付賬戶識(shí)別算法主要包括四部分內(nèi)容:(1)基礎(chǔ)特征構(gòu)建;(2)樣本標(biāo)記;(3)特征篩選;(4)分類模型。
獲取電商平臺(tái)的交易記錄日志,根據(jù)業(yè)務(wù)特點(diǎn)分析可選取的特征。
(1)關(guān)聯(lián)的用戶數(shù)。
一個(gè)支付賬戶在短時(shí)間內(nèi)支付的用戶數(shù)過多,說明這個(gè)支付賬戶是不正常的,一般情況下,一個(gè)支付賬戶不會(huì)給多個(gè)用戶名去支付,除非一個(gè)人操作了多個(gè)用戶名。
(2)活躍度情況。
一個(gè)惡意的支付賬戶,為了獲取利益,使用的頻率也會(huì)比較高,因此可以考慮這些支付賬戶使用的活躍度情況。
(3)支付時(shí)間間隔。
一般惡意行為不是由人來操作的,往往是機(jī)器自動(dòng)完成的,因此在時(shí)間上,機(jī)器的響應(yīng)速度會(huì)比人快很多,所以通過分析在短時(shí)間內(nèi)連續(xù)兩筆訂單的支付時(shí)間間隔,可以很好地區(qū)分人和機(jī)器人。
(4)消費(fèi)額度。
雖然每件商品價(jià)格不同,但是如果一個(gè)支付賬戶連續(xù)多次支付,必然會(huì)與正常支付賬戶的消費(fèi)額度不同。
結(jié)合業(yè)務(wù)特點(diǎn)分析的結(jié)果,以一個(gè)小時(shí)出現(xiàn)的賬戶為分析對(duì)象,為了更能全面地分析賬戶的特征,需要綜合短期、中長期、長期的特征指標(biāo)。所以分析的時(shí)間維度分為小時(shí)、天、周、月。因此最終選取的特征如表1所示。

表1 特征維度
支付的用戶數(shù)特征具體為:該賬戶每小時(shí)共支付的用戶數(shù)hour_user_num;該賬戶每天共支付的用戶數(shù)day_user_num;該賬戶每周共支付的用戶數(shù)week_user_num;該賬戶每月共支付的用戶數(shù)month_user_num。
支付的訂單數(shù)特征具體為:該賬戶每小時(shí)共支付的訂單hour_sequence_no_num;該賬戶每天共支付的訂單數(shù)day_sequence_no_num;該賬戶每周共支付的訂單數(shù)week_sequence_no_num;該賬戶每月共支付的訂單數(shù)month_sequence_no_num。
支付的金額特征具體為:該賬戶每小時(shí)共支付的總金額hour_amount_num;該賬戶每天共支付的總金額day_amount_num;該賬戶每周共支付的總金額week_amount_num;該賬戶每月共支付的總金額month_amount_num。
該賬戶一個(gè)小時(shí)內(nèi)連續(xù)支付兩次的平均時(shí)間間隔hour_avg_time。
活躍度:該賬戶在一天平均每個(gè)小時(shí)支付的訂單數(shù)day_active;該賬戶在一個(gè)星期內(nèi)平均每天支付的訂單數(shù)week_active;該賬戶在一個(gè)月內(nèi)平均每天支付的訂單數(shù)month_active。
支付的天數(shù):該賬戶在一個(gè)星期內(nèi)共支付的天數(shù)week_acday;該賬戶在一個(gè)月內(nèi)共支付的天數(shù)month_acday。
對(duì)樣本的標(biāo)記需要結(jié)合業(yè)務(wù)的實(shí)際情況,制定一些有效規(guī)則。雖然明顯的規(guī)則可以參考幫助人們?nèi)プR(shí)別樣本,但是面對(duì)大量的數(shù)據(jù)樣本,人工分析樣本的方式顯得力不從心。于是文中提出使用無監(jiān)督的聚類算法,先將數(shù)據(jù)進(jìn)行劃分,劃分后最有問題的類別和最沒有問題的賬戶可以很容易地得到,對(duì)于那些混合的數(shù)據(jù)再進(jìn)行人工標(biāo)識(shí)。該算法可以極大地提高樣本標(biāo)記的效率。
其中k-means[12-13]是應(yīng)用比較廣泛的聚類算法,該算法是通過多次迭代找到滿足終止條件的劃分方法,具有運(yùn)算簡單、速度快的優(yōu)勢。使用該算法對(duì)特征數(shù)據(jù)進(jìn)行劃分時(shí),首先獲取最適合的分類個(gè)數(shù),以和方差SSE[14]為衡量的指標(biāo),其中
(1)
(1)關(guān)聯(lián)分析。
為了使惡意支付賬戶識(shí)別模型更加高效,對(duì)冗余特征進(jìn)行挖掘,通過計(jì)算各個(gè)特征之間的Person相關(guān)系數(shù)[15],來判定各個(gè)特征之間是否具有強(qiáng)關(guān)聯(lián)性。Person相關(guān)系數(shù)的計(jì)算公式為:
(2)
如果關(guān)聯(lián)系數(shù)大于0.9,就認(rèn)為具有強(qiáng)關(guān)聯(lián)性,故將強(qiáng)關(guān)聯(lián)性的數(shù)據(jù)去掉。
(2)重要性分析。
Xgboost[16]是GDBT[17]實(shí)現(xiàn)的一種算法,GDBT是一種迭代的決策樹算法,它基于集成學(xué)習(xí)中的boosting思想,每次迭代都在減少殘差的梯度方向新建立一棵決策樹,迭代多少次就會(huì)生成多少棵決策樹。其算法思想使其可以發(fā)現(xiàn)數(shù)據(jù)中有區(qū)分性的特征以及特征組合。因此使用GBDT的實(shí)現(xiàn)算法Xgboost來篩選特征,該算法最大的特點(diǎn)是能夠自動(dòng)利用CPU的多線程進(jìn)行并行計(jì)算,效率較高。
風(fēng)險(xiǎn)識(shí)別模型現(xiàn)在使用較多的算法有邏輯回歸[18]和隨機(jī)森林[19]。其中邏輯回歸(logistic regression)是用于處理因變量為分類變量的回歸問題,常見的是二分類或二項(xiàng)分布問題,也可以處理多分類問題,它實(shí)際上屬于一種分類方法。二分類問題的概率與自變量之間的關(guān)系圖形往往是一個(gè)S型曲線,采用Sigmoid函數(shù)實(shí)現(xiàn)。其中邏輯回歸模型的計(jì)算公式為:
(3)
Logistic回歸的最終結(jié)果是得到各個(gè)變量的系數(shù)。Logistic回歸做分類的最大問題是,當(dāng)自變量有較多的定性變量或者定性變量的水平較多時(shí),Logistic回歸完全無法進(jìn)行。而隨機(jī)森林是通過集成學(xué)習(xí)的思想將多棵樹集成的一種算法,它的基本單元是決策樹,它的核心是集成學(xué)習(xí)(ensemble learning)方法,體現(xiàn)的是bagging思想,集成了所有的分類投票結(jié)果,將投票次數(shù)最多的類別指定為最終的輸出。隨機(jī)森林對(duì)數(shù)據(jù)的要求相對(duì)來說較少,具有更廣泛的適用性。
從電商網(wǎng)站中大量的交易日志獲取原始數(shù)據(jù),其中每條日志記錄了支付時(shí)間、用戶名、訂單、支付賬戶、下單金額等一些關(guān)鍵信息,原始日志存儲(chǔ)在hive大數(shù)據(jù)平臺(tái)中,使用時(shí)需要從大數(shù)據(jù)平臺(tái)數(shù)據(jù)庫中導(dǎo)出本地文件。
為了得到表1所示的數(shù)據(jù)特征,需要對(duì)原始的日志信息進(jìn)行一定的預(yù)處理。在數(shù)據(jù)預(yù)處理時(shí)去掉支付賬戶為空的惡意日志信息,在計(jì)算一個(gè)小時(shí)內(nèi)里連續(xù)支付兩次的平均時(shí)間間隔時(shí),對(duì)于只支付了一次的支付賬戶,給一個(gè)固定值。在對(duì)用戶數(shù)和訂單數(shù)進(jìn)行計(jì)算時(shí),需要對(duì)這些維度的數(shù)據(jù)進(jìn)行去重。通過hive腳本在大數(shù)據(jù)平臺(tái)計(jì)算出一個(gè)小時(shí)的支付賬戶對(duì)應(yīng)的特征數(shù)據(jù)。
在該電商平臺(tái)中同時(shí)支持微信、支付寶、網(wǎng)上銀行各種網(wǎng)絡(luò)支付方式,因此日志里記錄了多種平臺(tái)的賬戶,由于文中旨在探索發(fā)現(xiàn)惡意支付賬戶的方法,對(duì)于不同第三方的平臺(tái)的賬戶分析方法將會(huì)是一樣的,所以這里選取使用量比較多的支付寶賬戶進(jìn)行分析。
(1)關(guān)聯(lián)的用戶數(shù)特征分布如圖1所示,從中可以發(fā)現(xiàn)正常支付賬戶和惡意支付賬戶在一個(gè)月內(nèi)支付的用戶名個(gè)數(shù)分布區(qū)別比較大,因此可以考慮這個(gè)作為數(shù)據(jù)的特征。
(2)以在一個(gè)月內(nèi)使用的天數(shù)month_acday,作為活躍度的一個(gè)特征,該特征的分布如圖2所示,從中可以看到大部分支付賬戶在一個(gè)月內(nèi)支付的天數(shù)大部分都小于6天,而一部分支付賬戶在一個(gè)月內(nèi)使用的天數(shù)達(dá)到了30天,每天都有操作,這是非常不正常的一個(gè)行為,因此該特征具有較好的說明性。

圖1 一個(gè)支付賬戶支付的用戶名個(gè)數(shù)分布

圖2 一個(gè)支付賬戶支付的用戶名個(gè)數(shù)分布
(3)支付時(shí)間間隔特征分布如圖3所示,可以看到比較集中在兩端,時(shí)間間隔在1 000秒以內(nèi),都不可能是人為操作的,因此該指標(biāo)也可以作為一個(gè)參考指標(biāo)。一個(gè)小時(shí)的支付金額的分布也類似,具有較明顯的區(qū)別。

圖3 一個(gè)支付賬戶連續(xù)兩次支付的時(shí)間間隔
使用2.2介紹的標(biāo)記算法進(jìn)行標(biāo)記,首先尋找最適合的聚類個(gè)數(shù),運(yùn)行結(jié)果如圖4所示。

圖4 聚類個(gè)數(shù)
從圖中可以看出,劃分3類是比較合適的,于是將類別個(gè)數(shù)帶入k-means算法的參數(shù)中,為了從圖形展示k-means聚類的效果,使用主成分分析法,將多個(gè)變量壓縮成兩個(gè)變量分別為x0,x1,k-means的聚類結(jié)果展示如圖5所示。

圖5 聚類結(jié)果
從圖5可以看到,將樣本分成了較明顯的三部分,結(jié)合原始日志可以發(fā)現(xiàn),“△”表示是非常惡意的支付賬戶,這些賬戶大都連續(xù)支付30天,而“-”表示的樣本活躍度較低,支付的用戶名也比較單一,可以認(rèn)為是正常的用戶名。從聚類結(jié)果中可以很容易得到正負(fù)樣本,從而降低了標(biāo)注的成本,使得樣本標(biāo)注的時(shí)間減少了90%。
計(jì)算支付的用戶數(shù)和支付的訂單數(shù)的Person相關(guān)系數(shù)r=0.99,因此可以認(rèn)為二者具有強(qiáng)相關(guān)性,保留其中一個(gè)即可。去掉強(qiáng)關(guān)聯(lián)性的特征之后,使用Xgboost對(duì)特征的重要性進(jìn)行計(jì)算,Xgboost選擇的特征重要性如圖6所示。

圖6 特征的重要性
結(jié)合Xgboost的特征重要性的輸出,最終選擇month_active,hour_avg_time,month_acday,week_acday,month_amount,hour_amount,day_user_num,week_active,week_amount共8個(gè)特征,從中可以看到篩選的特征幾乎覆蓋了文中分析的全部業(yè)務(wù)特點(diǎn)。
主要對(duì)比了Logistic回歸、隨機(jī)森林兩種算法的準(zhǔn)確率、召回率、F-measure、運(yùn)行效率等指標(biāo)。
(1)Logistic回歸。
根據(jù)文中的樣本數(shù)據(jù)得到ROC曲線[20],在面積為0.99時(shí),閾值為0.7,因此用此值作為最佳的分割點(diǎn)。Logistic回歸模型的主要參數(shù)設(shè)置如下:
采用懲罰項(xiàng)penalty='l2',優(yōu)化算法選擇solver='liblinear',是否存在截距fit_intercept=True。
最終求得的logistic回歸模型結(jié)果:
系數(shù)為:
[-2.11432978e-08 -2.36863219e-08
-9.11727486e-05 -1.47211550e-09
-7.55707456e-09 -3.37322802e-09
-3.46007946e-08 1.95984958e-08
-9.14759102e-10 -6.14976655e-08
-1.49284610e-04 -1.17324171e-04
-2.80855483e-06 8.93945312e-06]
截距為:[-2.38195295e-08]
模型的效果如表2所示。
(2)隨機(jī)森林。
隨機(jī)森林的主要參數(shù)設(shè)置如下:使用bootstrap=True,特征的重要性通過計(jì)算criterion='gini'來實(shí)現(xiàn),max_depth=20,樹的最大深度設(shè)置為20。
文中算法是在內(nèi)存為125 G、28個(gè)CPU的Linux服務(wù)器上,通過python語言實(shí)現(xiàn)的,模型的測試效果如表2所示。

表2 算法結(jié)果對(duì)比
從表2可以看到兩種算法的準(zhǔn)確率和召回率差別不是很大,但是誤傷率和運(yùn)行效率相差較大,從實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn),隨機(jī)森林的誤傷率低于Logistic回歸的誤傷率,并且在模型的訓(xùn)練效率上,隨機(jī)森林訓(xùn)練模型時(shí)耗時(shí)更短,效率更高。
從電商平臺(tái)的角度挖掘惡意的第三方支付賬戶,提出了一種有效的惡意支付賬戶識(shí)別算法。實(shí)驗(yàn)表明文中選取的特征具有較強(qiáng)的區(qū)分性,而且標(biāo)記的算法可以提升建模的效率,選取的隨機(jī)森林算法具有較高的準(zhǔn)確率和運(yùn)行效率。惡意的行為復(fù)雜多變,后續(xù)需要挖掘更多的維度進(jìn)行分析。提出的分析方法對(duì)于電商平臺(tái)分析惡意數(shù)據(jù)具有一定的指導(dǎo)意義,還可以輔助發(fā)現(xiàn)相關(guān)聯(lián)的電商平臺(tái)賬戶的異常,因此文中研究的問題具有一定的現(xiàn)實(shí)意義。