郝曉培,朱建生,單杏花
(中國鐵道科學研究院,北京 100081)
高速鐵路以及鐵路信息化技術的快速發展,為旅客的出行、購票等提供了極大的便利。目前鐵路12306互聯網售票系統售票量占全渠道的80%以上,日均售票量超過千萬,已成為全球最大的票務系統。然而節假日運力資源緊張,旅客“一票難求”的情況依然存在,從而衍生出一批線上黃牛利用互聯網法律法規不健全的漏洞以及高效的云資源,囤積大量黑產賬戶進行搶票、囤票、倒票等不正當的方式謀取利益。為了維護客運購票場景的公平公正以及系統的安全穩定,客運團隊研發并上線了風控系統,采用實時行為分析以及基于行為特征進行有監督的用戶分類的方式,識別出了大量的異常購票行為,進行不同策略的卡控,取得了明顯的效果。不僅僅在鐵路客運,其他互聯網行業也存在黑產用戶非法活動,故國內外針對黑產用戶識別進行了大量的研究。在用戶個體特征領域,周亮謹等人[1]基于購票流程中主要購票行為為用戶特征,基于樸素貝葉斯分類算法構建行為分類器,實現異常用戶識別,運行效率和準確率均滿足需要。Moh等人[2]構建Twitter用戶的相關特征,構建特征矩陣計算用戶信任度,從而識別異常用戶。在社交網絡領域,宋艷紅[3]利用G-N社區發現算法以及粗糙集理論計算用戶特征權重以及特征信用值,并構建用戶可行度,從而識別異常用戶。Din I U等人[4]基于社交網絡自身的拓撲結構,對類似社交網絡中的異常郵件進行識別。仲麗君等人[5]介紹了當前基于社交網絡進行異常用戶識別的方式,包括分類、聚類、統計、信息論、混合、圖等六大類,并對各類方法進行了對比。
基于個體特征的異常用戶識別,忽略了個體間的社會關系,無法完整描述用戶特征,社區發現也只關注局部的拓撲結構,沒有很好利用每個節點的語義信息,均存在一定的局限性。為了進一步完善用戶特征表示,該文在研究鐵路客運售票業務的基礎上,構造了旅客個體特征以及社交關系網絡,利用圖神經網絡充分融合個體特征及社交關系特征,構建特征向量,以提高識別異常用戶的準確率。
為了提高黑產用戶識別準確率,該文提出了一種基于旅客個體特征及旅客社交關系的黑產用戶識別模型,其總體流程如圖1所示。

圖1 模型總體方案流程
主要包括特征構建、圖嵌入向量表示以及黑產用戶識別等。
(1)特征構建。
圖數據中同時包含兩部分信息:實體特征屬性和實體之間的關系[6]。其中屬性信息描述圖中個體節點的固有特征,對應鐵路旅客的出行及購票特征;結構信息描述了個體之間的關聯性質,對應鐵路旅客之間的購票關系以及同行關系[7]。
綜合考慮鐵路購票系統以及其他出行服務數據的復雜性、多樣性以及安全性,實現了對不同系統,不同類型數據進行獲取、轉碼、清洗、入庫、關聯等處理,從時間、空間等兩個維度構建用戶特征體系[8]。
鐵路旅客之間的購票關系以及同行關系代表了鐵路旅客的社交關系,通過分析具有鐵路同出行社交關系的旅客具有相似度較高的出行特征,比如:常駐地、出行目的等,同時旅客的特征除了跟自身的購票及出行特征有關之外,還與其有同行關系或購票關系相關的旅客特征有關系,這里基于鐵路購票及出行社交關系構建旅客社交關系網絡,如圖2所示。

圖2 關系網絡構建
(2)圖嵌入向量表示。
基于旅客個體特征以及關系網絡生成的數據組成了非歐氏數據集,無法采用傳統的方式進行處理,而圖神經網絡是針對典型的不具備規則空間結構的非歐氏數據類型進行深度學習而發展起來的,可以挖掘出節點之間的關系特征[9],故這里采用圖神經網絡對旅客特征進行處理。其主要采用一定的方法對旅客社交網絡中的旅客節點進行向量表示,隨著節點自身特征、鄰居節點的特征的更新以及圖形拓撲結構的變化得到最終的表示向量,該特征向量保留原始圖的結構和節點屬性信息。
(3)黑產用戶識別。
該文主要采用無核二次曲面支持向量機作為黑產用戶識別模型,該模型可在原空間中使用非線性二次曲面對樣本進行直接分類,避免了核函數結構以及參數的選擇,提高了模型的效率及可用性,該模型將圖嵌入向量成特征向量作為樣本的輸入,實現黑產用戶識別。
本節主要基于旅客個體特征及關系網絡通過圖神經網絡模型進行特征向量表示。其核心思想是通過學習一個對鄰居頂點進行聚合表示的函數來產生目標頂點的embedding向量[10]。
(1)算法流程。
目前鐵路12306互聯網售票系統已有6億注冊用戶,每年出行人次達到30億,購票及同行關系復雜,其旅客社交網絡組成了規模較大的圖數據,其子圖的節點數存在呈指數級增長的問題,同時也存在部分度非常大的超級節點,導致進行全圖訓練的時間代價、計算代價以及存儲代價不可控。為了解決該問題,該文針對GraphSAGE[11]模型進行訓練,該模型從聚合鄰居節點操作出發,對鄰居節點進行抽樣以控制實際運算節點的規模,同時防止鄰居節點隨機采樣導致局部信息丟失。增加了特征初始化操作,以降低信息丟失率,其主要訓練過程如下:
算法:改進GraphSAGE算法主要流程。
Input:樣本集B;圖G=(V,E),其中V代表用戶節點集合,E代表節點之間的關系;層數K;權重矩陣L(k),?k∈{1,2,…,k};非線性函數σ;聚合函數Agg(k);鄰居采樣函數N(k):v→2v,?k∈{1,2,…,k}
Output:輸出所有節點的特征向量zv,k∈B
1.fori=1…Ndo
2.forj=1…bihdo
4. end
5.end
6.B(k)←B
7.fork=K…1 do
8.B(k-1)←B
9. foru∈B(k)do
10.B(k-1)←B(k-1)∪Nk(u)
11. end
12.end
14.fork=1…Kdo
15.foru∈B(k)do
19. end
20.end
(2)特征值初始化。
如上述算法所示,為了防止對鄰居節點采樣導致局部信息丟失,算法的1~5行,遍歷每一個節點,提前將節點的特征向量與它所有的鄰居節點的特征向量按照固定的權重進行線性組合,使得每一個節點初始狀態下已經包含周圍鄰居節點的一些信息,從而在采樣初始階段保留部分局部信息。
(3)鄰居節點采樣。
算法的6~12行,首先遍歷出樣本集B內參與中心節點聚合操作的所有k階子圖,并在這些節點上進行K次聚合操作的迭代運算,基本思路是:要獲得某個中心節點第k層的特征,需要對第k-1層的鄰居進行采樣,接著對k-1層的每個節點采樣其k-2層的鄰居節點,不斷循環,直到采樣完第1層的所有鄰居位置。
(4)聚合操作。
算法的13~20行主要是對鄰居節點進行聚合操作,其中第15行通過聚合函數對每個節點的鄰居節點特征進行聚合,接著第16行對聚合后的鄰居特征與中心節點的上一層特征進行拼接,輸到單層網絡中獲得中心節點的特征向量,最后對計算好的特征向量進行歸一化處理,以保證所有節點向量在相同的單位尺度上。
(5)參數學習。
該文主要采用無監督學習,即節點與其鄰居具有類似的特征標識,沒有直接相連的節點特征標識相差較大,損失函數如下:

(1)
其中,Zu表示節點u的圖特征向量表示,v表示u節點的鄰居節點,σ指的是sigmod函數,表示樣本數,vn~Pn(v)表示負樣本數。
本節以圖嵌入向量表示生成的特征向量為輸入,利用無核二次曲面支持向量機[12]以實現黑產用戶識別,該算法基本原理如下:
(1)模型輸入。

(2)模型輸出。
(2)
其滿足分類曲面g(z)=0可以將黑產用戶與正常用戶分開。
(3)優化函數。


(3)
故二次曲面支持向量機優化問題可以表示為:
(4)

(4)決策函數。
該模型的目標是將所有的正常用戶樣本點分布在g(z)=1的外側,黑產用戶在g(z)=-1的外側,并最大化所有樣本到分類曲面的相對幾何距離,其對應的分類所測函數為:
f(x)=sign(g(z))
(5)
假設參數最優解為:W*,b*,c*,則最終分類決策函數為:
f(x)=sign(ZTW*Z+b*TZ+c*)
(6)
本模型基于目前鐵路客運固定時間段的生產數據作為原始數據,構建用戶基礎特征以及關系網絡。面對海量的交易信息,實驗主要采用Spark進行基礎特征處理,Spark GraphX[13]進行關系網絡構建,最后基于Spark實現GraphSAGE以及支持向量模型。
該文主要解決的是二分類問題,將黑產用戶用-1表示,正常用戶用1表示。以現有的風控策略以及鐵路客運用戶畫像系統為基礎,隨機抽取100個正常用戶以及100個黑產用戶作為種子樣本,以整個旅客關系網絡為基礎,擴展出100萬個樣本作為測試數據,其中正常用戶897 813,黑產用戶102 187。為降低模型復雜度,主要挑選了11個基礎特征,如表1所示,并對跨度較大的特征進行歸一化處理。

表1 旅客個體特征
首先將100萬樣本數據按照1∶9分為兩部分,其中90%作為訓練集,10%作為測試樣本,以驗證模型的好壞。同時為了排除不同訓練子集帶來的統計誤差,采用k折交叉驗證(k-fold-cross-validation)方法[14],即將數據隨機分為k組,依次將其中一組作為測試集,剩下的k-1組作為訓練組構建模型,基于本實驗樣本的數據量,隨機將訓練樣本集分成20組。
在圖嵌入向量表示模型中,基于鐵路旅客購票關系以及同行關系構造的關系網絡結構復雜,為了保證模型訓練的效率,設k為2,關系網絡中每個用戶節點可以最多根據其2跳鄰接點的信息進行聚合學習。常見的聚合函數包括平均、GCN歸納式、LSTM、pooling聚合器。其中LSTM具有更強的表達能力,故該文主要采用LSTM聚合。
分別從準確率、ROC曲線、誤傷率以及滯后性對模型進行對比分析。
準確率:即整個樣本集預測結果的準確性,準確率越高越好。
ROC曲線以及AUC值:ROC曲線反映敏感性和特異性連續變量的綜合指標;AUC值即ROC曲線下方面積的大小,值越大代表分類器效果越好[15]。
誤傷率:將正常用戶識別為黑產用戶的比例,比例越小越好。
滯后性:識別異常用戶的耗時對比情況,耗時越短越好。
該文主要采用兩種對比方案進行實驗,實驗一:將原始特征向量,圖嵌入表示生成的特征的向量分別作為二次曲面支持向量機進行對比;實驗二:將該黑產用戶識別模型與現有的風控策略模型進行對比。
4.3.1 實驗一
該實驗的目的是對比旅客個體原始特征與聚合相鄰節點特征(下面簡稱融合特征)對相同模型性能的影響,分別對兩類特征采用二次曲面支持向量機模型訓練之后,分別對測試樣本進行測試,同時對兩個模型的準確率、ROC曲線進行對比分析。
(1)準確率。
從表2可以看出,在相同的黑產用戶識別模型中,基于融合特征的樣本的準確率明顯高于原始特征,同時融合特征的方差相對較小,具有更好的魯棒性,且相對穩定,因此基于圖嵌入向量表示生成的旅客特征更能完整地表達旅客的特征,對黑產用戶的識別具有積極作用。

表2 準確率對比 %
(2)ROC曲線。
ROC曲線和對應的AUC值是衡量分類模型性能以及能力的重要指標,是研究模型泛化能力的主要工具,實驗一兩個模型對應的ROC曲線以及AUC值如圖3所示。

圖3 ROC 曲線與AUC值
如圖3所示,橫軸FPR表示假正率,縱軸TPR表示真正率,其中融合特征模型的ROC曲線完全覆蓋原始特征的ROC曲線,同時融合特征模型的AUC值相對較大,因此融合特征模型的性能更優且泛化能力更強。
4.3.2 實驗二
該實驗的目的是對比現有風控策略模型與黑產用戶識別模型,由于目前樣本的訓練集以及測試集的類別標簽均是采用現在的風控策略進行標記,僅僅依靠針對測試集進行測試的準確率以及ROC無法體現黑產用戶識別模型的性能。因此,測試樣本改為隨機抽取一周的互聯網購票用戶作為測試集,依次用兩個模型進行異常用戶標記,分別從誤傷率以及滯后性兩個方面進行分析。
(1)誤傷率。
誤傷率即將正常購票的用戶識別為異常用戶的比例,通過分析一個月的用戶訪問日志、投訴、行為分析等,發現黑產用戶識別模型的誤傷率降低了10%。
(2)滯后性。
滯后性即識別出異常用戶需要的時間。采用兩個模型識別近半年的異常用戶,并隨機抽取1 000個異常賬戶(編號為1到1 000)進行識別時間分析,如圖4所示(為方便顯示1 000個賬戶隨機抽取節點繪制),其中橫坐標表示時間,縱坐標表示異常賬戶的編號。可以看出,文中模型的散點相對當前風控模型比較集中在左側,經過統計,文中模型在隨機抽取的異常賬戶中,超過60%識別時間有所提前,即現有的風控策略需要積累一定的用戶行為特征才能夠識別出異常用戶,而文中黑產用戶識別模型可以同時通過用戶關系層面的關聯挖掘潛在的黑產用戶,在其進行異常操作之前進行相應的控制。

圖4 異常用戶識別時間對比
分析了現有售票系統的數據特點,構建了用戶實體特征以及實體之間關系特征,基于GraphSAGE模型進行鄰居節點采樣,將旅客個體特征與其相鄰節點特征進行融合,生成最終的旅客特征向量,將其作為無核二次曲面支持向量機的輸入進行黑產用戶識別。實驗證明融合個體特征及鄰居節點特征生成的特征向量在相同的模型下,準確率及AUC值都表現較好,而且相對現有的風控策略模型,降低了誤傷率,縮短了黑產用戶識別的時間。