張杰俊 ,唐穎淳 ,季述鄖 ,李靜林
(1.中國電信股份有限公司上海分公司,上海 200041;2.北京郵電大學(xué) 網(wǎng)絡(luò)與交換技術(shù)國家重點實驗室,北京 100876)
隨著信息社會的發(fā)展,電信欺詐高發(fā),但由于通信關(guān)系的復(fù)雜性和不確定性,電信欺詐檢測成為了一個十分困難的問題。
傳統(tǒng)電信欺詐檢測技術(shù)主要基于用戶屬性和通話記錄來獲得用戶行為樣本,再通過SVM、LGB 等機器學(xué)習(xí)方法學(xué)習(xí)行為特征[1-2]。這些方法主要使用短時間的行為統(tǒng)計進行分類,往往會出現(xiàn)時間尺度特征不足的問題。同時,由于用戶通話行為的復(fù)雜性,以固定窗口的統(tǒng)計特征作為詐騙電話的統(tǒng)計依據(jù)[3-4],容易受到長期行為變化影響,分類效果差。
由于通信是一種社交行為,通信社交網(wǎng)絡(luò)包含豐富的關(guān)系信息,通過社交網(wǎng)絡(luò)能成功捕獲用戶的相關(guān)性,如兩個人的社交網(wǎng)絡(luò)重疊程度與其聯(lián)系強度相關(guān),即彼此認識的普通用戶可能會有共同好友[5-6]。而電信詐騙分子并不了解用戶社交特征,電信詐騙號碼與被騙號碼之間難以存在共享社交節(jié)點。同時不同用戶的社交關(guān)系存在不同的節(jié)點數(shù)量、節(jié)點度數(shù)、節(jié)點k-core 值、Page Rank 得分等[7-8],使得其社交網(wǎng)絡(luò)拓撲并不相同?;谶@一思路,可以利用通信社交網(wǎng)絡(luò)分析方法進行詐騙檢測[9]。
本文提出了基于圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network,GNN)的通信社交檢測方法。該方法建立了一種端到端學(xué)習(xí)GNN 模型,該模型基于游走采樣和節(jié)點融合策略動態(tài)構(gòu)建計算圖,之后通過節(jié)點卷積算子和關(guān)系邊卷積算子的混合算法基于計算圖實現(xiàn)圖卷積(Graph Convolution Network,GCN)[10]進行信息融合,最后引入均值池化讀出機制,聚合來自不同節(jié)點范圍的信息,并最終實現(xiàn)分類表示。該模型將用戶行為特征和社交關(guān)系特征結(jié)合在一起,以識別欺詐行為。通過上海市真實電信數(shù)據(jù)集實驗驗證,相比于傳統(tǒng)方法,基于GNN 的通信社交檢測模型可以提高電信詐騙識別的檢出率。
GNN 的核心思想是從局部圖鄰域迭代聚合特征信息[11]。局部圖中的邊表示兩個節(jié)點之間的依賴關(guān)系,并通過周圍的狀態(tài)來更新節(jié)點的狀態(tài),從而能夠解決通信社交關(guān)系拓撲的挖掘和基于節(jié)點間相關(guān)性強弱的迭代更新問題。
基于GNN 的通信社交行為檢測模型結(jié)構(gòu)如圖1 所示。模型劃分為三部分:(1)圖構(gòu)建模塊;(2)圖卷積層;(3)均值池化(Mean-pooling)讀出機制。
圖1 基于圖的通信社交行為檢測模型框架
輸入有向圖G 為一對(V,E),其中V 表示具有用戶特征xv∈Rdv的有限節(jié)點集合(例如,用戶屬性、用戶呼叫數(shù)量等),E 表示用戶交互的一組邊,邊特征為evw∈Rde(例如,通話次數(shù)、通話時長、呼叫類型等),dv表示節(jié)點特征數(shù),de表示關(guān)系邊特征數(shù)。
首先,GNN 為每個用戶構(gòu)造計算圖,然后將其映射到卷積層的輸入。圖卷積層由幾個節(jié)點卷積算子和邊卷積算子組成,它們對用戶之間的交互進行建模并提取不同范圍的融合信息。然后,均值池化讀出機制會利用多范圍節(jié)點信息,并逐步進行全局的圖迭代更新(Graph Embedding)。最后,將GNN 輸出與分類器結(jié)合起來,用于最終的欺詐預(yù)測。
為了處理大規(guī)模通信社交網(wǎng)絡(luò),本文提出一種基于相對關(guān)系強度的短步游走策略來對計算圖進行采樣,有效減輕了無效節(jié)點對模型訓(xùn)練的影響。
計算圖的構(gòu)建流程如圖2 所示。
圖2 計算圖的生成過程
該流程分為兩個步驟:
(1)針對通信社交網(wǎng)絡(luò)原始圖,對源節(jié)點u,通過固定長度l 游走策略生成用戶通信社交網(wǎng)絡(luò)子圖。方法是,從源節(jié)點u 開始以固定步長l 進行游走,并保留游走過程中的節(jié)點。為了保留相對較強的社交關(guān)系,游走根據(jù)親密關(guān)系采樣k-hops(2≤k≤l)鄰居。
(2)針對通信社交網(wǎng)絡(luò)子圖,合并用戶的k-hops 鄰居簇,生成用戶節(jié)點u 的最終計算子圖。為了降低計算復(fù)雜度,該策略保留了源節(jié)點及其直接鄰居,合并了k-hops 鄰居并刪除度為一的合并節(jié)點。
圖卷積(GCN)可看作為一個圖數(shù)據(jù)特征提取器,核心思想是利用邊的信息對節(jié)點信息進行聚合并把鄰居節(jié)點加和求平均,從而生成新的節(jié)點表示?;诶绽咕仃嚨淖V分解,GCN 采用以下圖卷積子:
其中,X 表示節(jié)點初始特征向量,X′表示節(jié)點更新后的狀態(tài)向量,表示帶自環(huán)的鄰接矩陣,并且I 表示節(jié)點度數(shù)矩陣,Θ 為卷積子學(xué)習(xí)參數(shù)。
可以找到一個函數(shù)f(x)作為節(jié)點卷積子,同時運用于當(dāng)前節(jié)點和鄰居節(jié)點。其中,可以通過一個可學(xué)習(xí)的參數(shù)來調(diào)整中心節(jié)點的權(quán)值εk:
為了對通信社交網(wǎng)絡(luò)的節(jié)點和關(guān)系邊進行建模,需要堆疊多個卷積層以學(xué)習(xí)圖中每個節(jié)點的內(nèi)部隱藏表示,完成行為內(nèi)容或社會關(guān)系的信息融合。
在傳統(tǒng)圖卷積中,領(lǐng)域消息傳遞階段運行固定步長T,并根據(jù)消息函數(shù)Mt和節(jié)點更新函數(shù)Ut進行節(jié)點學(xué)習(xí)。在當(dāng)前時刻t,根據(jù)當(dāng)前節(jié)點狀態(tài)、領(lǐng)域狀態(tài)和關(guān)系信息evw,計算消息并更新節(jié)點隱藏狀態(tài)。在GNN 中,為了聚合節(jié)點特征和關(guān)系邊特征,更新了卷積函數(shù),將其視為消息函數(shù)和更新函數(shù)的組合,以進行信息融合:
GNN 的圖卷積模塊結(jié)構(gòu)如圖3 所示。GNN 的圖卷積層通過3 層堆疊而成,每一層參數(shù)共享,每個節(jié)點的鄰居都進行一次卷積操作,并用卷積的結(jié)果更新該節(jié)點,然后經(jīng)過激活函數(shù)ReLU 完成節(jié)點隱藏狀態(tài)的更新。
圖3 3 層GNN 示意圖
局部圖中較小的鄰域范圍表示局部依賴關(guān)系,較大的范圍傾向于捕獲更高階的社交關(guān)系特征,不同范圍的信息在正常網(wǎng)絡(luò)和欺詐網(wǎng)絡(luò)中的貢獻均不相同。為了更好地利用多范圍信息,獲取最佳的圖表示,本文提出圖神經(jīng)網(wǎng)絡(luò)的均值池化讀出機制,以對各節(jié)點隱藏狀態(tài)的集合進行操作,并且這些節(jié)點隱藏狀態(tài)排列是保持不變的。
實驗數(shù)據(jù)集采用上海市的真實呼叫記錄,包含從2019 年5 月10 日~2019 年6 月23 日的全部用戶呼叫記錄,用戶之間可能存在多個通信事件。數(shù)據(jù)集的數(shù)據(jù)樣本統(tǒng)計信息如表1 所示。
表1 數(shù)據(jù)樣本統(tǒng)計
針對這一數(shù)據(jù)集,首先進行數(shù)據(jù)預(yù)處理,主要進行Z分數(shù)歸一化。之后對數(shù)據(jù)集按時間順序進行劃分,其中70%數(shù)據(jù)用于訓(xùn)練,10%數(shù)據(jù)用于驗證,20%數(shù)據(jù)用于測試。
針對數(shù)據(jù)集,選取8 種用于構(gòu)建計算圖的用戶特征,如表2 所示。
表2 用戶特征
對于每個用戶的采樣計算圖,實驗將最大游走長度l 設(shè)置為3。同時將每個卷積模型的卷積層數(shù)設(shè)置為3,將節(jié)點隱藏狀態(tài)維數(shù)和均值池化維數(shù)都設(shè)置為16,并將均值池化函數(shù)應(yīng)用于特征融合。最后的分類器采用兩層MLPs。
實驗使用Adam 優(yōu)化器將模型訓(xùn)練300 個epochs,以使平均絕對誤差(MAE)最小化。初始學(xué)習(xí)率設(shè)為0.001,batch 大小設(shè)為32。
實驗采用的各種算法對比模型包括:
(1)SVM:使用包含社交網(wǎng)絡(luò)結(jié)構(gòu)信息的用戶節(jié)點呼叫統(tǒng)計特征作為模型的輸入信息。
(2)LGB(LightGBM):使用包含社交網(wǎng)絡(luò)結(jié)構(gòu)信息的用戶節(jié)點呼叫統(tǒng)計特征作為模型的輸入信息。
(3)ANN:淺層人工神經(jīng)網(wǎng)絡(luò),采用兩層感知器進行分類[12]。使用包含社交網(wǎng)絡(luò)結(jié)構(gòu)信息的用戶節(jié)點特征作為模型的輸入信息。
(4)GCN:圖卷積網(wǎng)絡(luò)是基于圖結(jié)構(gòu)數(shù)據(jù)的半監(jiān)督學(xué)習(xí)[10]。其模型中的邊權(quán)重是通過用戶之間的親密關(guān)系計算得到,再根據(jù)權(quán)重構(gòu)造邊緣卷積算子完成對邊緣特征評估,之后通過加權(quán)平均的方式更新節(jié)點狀態(tài)。
(5)GIN:圖同構(gòu)網(wǎng)絡(luò)(Graph Isomorphism Network)是一種消息傳遞網(wǎng)絡(luò)(Message Passing Neural Network,MPNN)[11]。GIN 通過一個可學(xué)習(xí)的參數(shù)來調(diào)整中心節(jié)點的權(quán)值,再根據(jù)權(quán)值構(gòu)造節(jié)點卷積算子完成節(jié)點狀態(tài)更新[13]。
(6)GNN:本文構(gòu)建的圖神經(jīng)網(wǎng)絡(luò)。
實驗采用正確率、精確率、召回率和AUC 來評估電信詐騙識別的性能。
如表3 所示,GNN 模型比其他模型具有更好的識別能力,并且GNN 的AUC 比傳統(tǒng)機器學(xué)習(xí)模型SVM 和LGB分別提升了8.23%和7.57%,也比其他人工神經(jīng)網(wǎng)絡(luò)模型(ANN、GCN、GIN)分別實現(xiàn)了5.35%、3.98%和3.04%的AUC 提升。實驗結(jié)果表明,GNN 可以學(xué)習(xí)到通信社交網(wǎng)絡(luò)更多的信息,同時,均值池化(mean-pooling)讀出機制也比傳統(tǒng)的池化(max-pooling)具有更好的效果[14]。
表3 各模型的分類結(jié)果
圖卷積模塊中,圖卷積層數(shù)對識別性能的影響如圖4 所示。隨著迭代次數(shù)的增長,相比第1 層卷積和第2層卷積,第3 層卷積實現(xiàn)了2.2%和1.45%AUC 的提升。因此,圖卷積模塊中較深的卷積層有益于電信詐騙的識別。
圖4 卷積層對模型性能的影響
對于不同模型的分類效果,本文使用t-SNE(t-distributed Stochastic Neighbor Embedding)完成了高維圖表示學(xué)習(xí)結(jié)果的降維和可視化[15]。
ANN、LGB、GCN、GIN 模型的可視化結(jié)果如圖5(a)所示,GNN 模型的可視化結(jié)果如圖5(b)所示。其中,灰色表示普通用戶,黑色表示欺詐用戶;GNN-1 為1 層圖卷積操作,GNN-2 為2 層圖卷積操作,GNN-3 為3 層圖卷積操作。GNN-1、GNN-2、GNN-3 使用均值池化操作,GNN Max-pooling 采用最大值池化操作。從可視化結(jié)果中可以看到,采用均值池化操作的3 層GNN 模型,其準(zhǔn)確性始終高于其他方法。
圖5 可視化結(jié)果
本文提出了一種基于圖神經(jīng)網(wǎng)絡(luò)(GNN)的電信欺詐識別方法。這一方法基于短步游走采樣和節(jié)點合并來構(gòu)造計算圖以適應(yīng)大規(guī)模通信社交網(wǎng)絡(luò),通過融合通信社交信息的圖同構(gòu)算子和邊卷積算子的混合體和過均值池化操作,有效地利用多范圍信息對通信社交網(wǎng)絡(luò)的特征進行學(xué)習(xí)。本文通過真實數(shù)據(jù)集對GNN 模型進行了評估,與其他欺詐檢測方法相比,圖卷積方法能夠適應(yīng)大規(guī)模通信社交網(wǎng)絡(luò)的檢測,能滿足電信欺詐檢測的要求。未來的工作中,將進一步把圖神經(jīng)網(wǎng)絡(luò)應(yīng)用到現(xiàn)實系統(tǒng)中,以實現(xiàn)電信詐騙的實時攔截。