劉向宇,燕 瑋,孟星妤,侯開茂
(華北計算機系統(tǒng)工程研究所,北京 100083)
發(fā)現(xiàn)社交媒體中的網(wǎng)絡安全用戶可以有效追蹤網(wǎng)絡安全動態(tài),對網(wǎng)絡安全防護具有重要意義。實際上,識別社交網(wǎng)絡中的網(wǎng)絡安全用戶也是對社交網(wǎng)絡節(jié)點進行分類發(fā)現(xiàn)。
現(xiàn)實生活中,人們傾向于與類似的人發(fā)展社會關系,所以社交用戶的好友會分享更多的屬性,如種族、民族、宗教和職業(yè)——這就是所謂的“同質(zhì)性原則”[1]。這導致了在Twitter上相互關注的人通常有共同的話題興趣,可以通過相互關注關系來推斷社交媒體用戶的屬性。另外,社交用戶還具備其他可以獲取的數(shù)據(jù),如社交文本和用戶資料,這些資料構成新的用戶屬性,也有助于推斷用戶的興趣或者職業(yè),與用戶的社交關系形成互補。
當前已經(jīng)有大量的用戶分類工作都是基于網(wǎng)絡拓撲結構進行節(jié)點的分類。比如,網(wǎng)絡表示學習方法直接對網(wǎng)絡結構特征進行學習提取,將得到的特征用于分類可以取得不錯的效果。然而,現(xiàn)有的網(wǎng)絡表示學習方法缺乏對社交文本和社交基本資料特征的學習,極大地限制了其分類效果。相對于單純利用社交網(wǎng)絡結構對用戶進行分類,當前主流的圖神經(jīng)網(wǎng)絡算法創(chuàng)新性地融入了網(wǎng)絡節(jié)點的其他屬性特征,獲得了更高的分類準確率。本文針對網(wǎng)絡表示學習方法缺乏社交文本特征的問題,通過改進Node2vec[2]方法,使其融合多種網(wǎng)絡屬性特征而更加有利于分類,從而識別出社交媒體中的網(wǎng)絡安全用戶。
本文的創(chuàng)新性工作包括:
(1)利用網(wǎng)絡表示學習模型Node2vec來進行網(wǎng)絡節(jié)點的特征表示,將結構特征向量和相應用戶節(jié)點的文本特征向量進行拼接,形成社交用戶節(jié)點的向量表示。
(2)標注了部分網(wǎng)絡安全用戶,初步形成網(wǎng)絡安全用戶資料庫。對于每個用戶節(jié)點,生成其網(wǎng)絡安全文本特征。
(3)利用自監(jiān)督學習方法進行分類模型的訓練樣本擴充,提升了分類效果。
結果表明,在已經(jīng)收集的Twitter數(shù)據(jù)集上,所提方法的平均識別準確率為96.37%,比現(xiàn)有常用的算法平均高出0.48%~3.67%。
本文通過對社交媒體用戶進行分類來發(fā)現(xiàn)網(wǎng)絡安全用戶。首先,基于好友的特點進行分類,隨著自然語言處理的興起,出現(xiàn)了基于社交文本的分類方法[3-4]。而近年來,結合社交網(wǎng)絡拓撲和社交用戶屬性的方法逐漸引起關注,比如[5-6]等。
2014年Bryan Perozzi等人根據(jù)Word2vec對詞的嵌入方法,提出Deepwalk[7]模型。此模型將節(jié)點看作是自然語言處理中的單詞,利用隨機游走采集節(jié)點的方式,將得到的序列看作是語句,采集到節(jié)點語句后用自然語言處理中的Skip gram模型進行向量的學習,得到每一個節(jié)點的向量表示。2016年斯坦福大學的Grover和Leskovec提出Node2vec,對Deepwalk模型進行了改進,可以支持有向圖的表示學習,并且提出了新的游走方法。通過調(diào)節(jié)游走的參數(shù),取得比較好的節(jié)點表示效果。同樣在2016年,Kip提出了GCN[8]模型,將卷積神經(jīng)網(wǎng)路的理論應用到圖結構上。2019年Pan[9]等人將GCN理論應用到社交用戶職業(yè)分類上,分類效果好于眾多的網(wǎng)絡表示學習的方法。隨著圖神經(jīng)網(wǎng)絡的興起,2017年Graph-Sage[10]和GAT[11]模型被提出。GraphSage通過聚合鄰居節(jié)點特征的方式來生成目標節(jié)點的特征,相對于GCN,這種方法可以顯著提升特征生成靈活性。同時,利用batch-training的方法,提升了訓練效率。GAT模型的創(chuàng)新之處是加入attention機制,給節(jié)點之間的邊不同的權重,幫助模型學習網(wǎng)絡的結構信息。Cao等人于2018年提出基于自編碼器的社區(qū)發(fā)現(xiàn)算法,分別對網(wǎng)絡拓撲和節(jié)點屬性進行向量表示然后拼接進行分類。2019年提出的NOCD[12]模型基于GCN和伯努利泊松分布,學得節(jié)點和類別的隸屬關系矩陣,矩陣中的每個元素表示節(jié)點屬于某個類別的概率,當概率值大于0.5即判定其屬于此類別。此方法是一個多標簽分類方法,最終每個節(jié)點屬于多個不同的類別,在重疊社區(qū)發(fā)現(xiàn)方面取得不錯的效果。
除社交關系和文本信息外,2014年Huang[13]等人將社交網(wǎng)絡其他信息(如簡介信息和轉發(fā)信息等)加入進行分類。2017年Liao[14]等人將結構信息和其他屬性信息同時輸入深度神經(jīng)網(wǎng)絡,實現(xiàn)非線性特征抽象,相對于傳統(tǒng)的圖神經(jīng)網(wǎng)絡模型,有較大性能提升。具體的向量表示方式如表1所示。
表1 社交網(wǎng)絡用戶向量表示
以上工作并沒有針對某一特定領域進行分類,且學到的社交節(jié)點的向量表示沒有結合用戶文本和基本信息等多種特征。
為了解決現(xiàn)有用戶分類方法在語義特征提取的不足,本文提出了新的社交用戶分類方法,包括三個階段:首先進行網(wǎng)絡表示學習學得社交網(wǎng)絡節(jié)點的結構特征;然后將結構特征與人工提取的語義特征進行拼接得到社交節(jié)點的特征向量;最后用邏輯回歸模型(Logistic Regression,LR)[15]進行分類預測網(wǎng)絡安全用戶。具體各階段介紹如下。
網(wǎng)絡表示學習也稱為圖嵌入是將圖網(wǎng)絡結構中的節(jié)點、邊或者整體表示為一個低維度的向量,此向量被稱為嵌入向量。Node2vec的節(jié)點采樣方法比較靈活,結合了兩種節(jié)點采樣方式,如圖1所示。
圖1 兩種節(jié)點采樣方式
虛線箭頭表示廣度優(yōu)先游走BFS,實線箭頭表示深度優(yōu)先游走DFS,是兩種極端的節(jié)點采樣方法,分別適用于提取結構等價性和同質(zhì)性的網(wǎng)絡節(jié)點特征。廣度優(yōu)先游走算法能夠表達網(wǎng)絡節(jié)點的同質(zhì)性,深度優(yōu)先游走可以表達網(wǎng)絡節(jié)點的結構對等性[2]。然而,現(xiàn)實中的網(wǎng)絡根據(jù)結構的不同,需要結合兩種游走方法,才可以比較好地提取到特征。
對于Node2vec的游走采樣方法如圖2所示,上一步在節(jié)點u,當前游走在節(jié)點v。通過控制游走的參數(shù)來控制廣度優(yōu)先和深度優(yōu)先的比例,根據(jù)式(1)計算出下一步游走到節(jié)點x1,x2,x3或者回到節(jié)點u的概率。
圖2 Node2vec游走采樣圖
式中,p被稱為返回參數(shù)(return parameter),q被稱為進出參數(shù)(in-out parameter)。當算法隨機游走到節(jié)點v時,p越小,下一步走到u的可能性越大,即游走到相鄰節(jié)點的可能性越大;q越小,Node2vec中深度優(yōu)先游走成分會更多,則隨機游走到遠處節(jié)點的可能性越大,更能表達網(wǎng)絡節(jié)點的結構對等性。所以針對不同的網(wǎng)絡特性,控制p,q的值可以保留更多網(wǎng)絡的特征。
2.2.1 邏輯回歸
邏輯回歸是機器學習中的經(jīng)典分類方法,二項邏輯回歸模型是一種二分類模型,模型具體形式如下:
其中,P(yi=1|xi)是第i個樣本xi條件下,事件yi=1發(fā)生的概率,記作Pi(0<Pi<1)。同理,P(yi=0|xi)也可以求得。LR比較二者的大小,將實例xi判斷到概率值較大的那一類。本文使用了Sklearn庫中的二項邏輯回歸算法進行分類。
2.2.2 支持向量機
支持向量機(Supported Vector Machine,SVM)[16]也是經(jīng)典的二分類算法。當訓練集線性可分時,SVM的目標是構造線性最優(yōu)解分類超平面w·x+b=0,這個超平面可以將兩類數(shù)據(jù)完全分類,并使分類間隔最大,即使得此平面到兩類數(shù)據(jù)的距離最大。所以,可以表示為一個凸二次規(guī)劃問題,如式(4)所示。
求得最優(yōu)化問題的解是w*,b*,分離超平面是w·xi+b=0,決策函數(shù)是:
現(xiàn)實中訓練數(shù)據(jù)線性可分的情況較少,但是近似線性可分的情況較多,當訓練集線性不可分時,一般使用線性支持向量機或者軟間隔支持向量機。對于非線性分類問題,可以通過非線性變換將它轉化為某個高維特征空間中的線性分類問題。在高維線性特征空間中學習線性支持向量機[17]。
本文收集到的社交媒體數(shù)據(jù)中包括關系數(shù)據(jù)、文本數(shù)據(jù)和基本信息數(shù)據(jù)。將所有用戶的文本和基本信息數(shù)據(jù)進行整理,提取并挑選了256個網(wǎng)絡安全詞匯,組成一個網(wǎng)絡安全詞匯向量:
根據(jù)向量V對節(jié)點進行one-hot編碼,組成一個256維的0/1向量。如果一個用戶節(jié)點的社交文本和基本信息有相應的網(wǎng)絡安全單詞,則在對應維度上標注為1,沒有則為0。此向量即用戶節(jié)點的網(wǎng)絡安全特征向量。將每個用戶節(jié)點的特征向量和利用Node2vec生成的特征向量拼接,得到用戶節(jié)點最終的表示向量。利用此節(jié)點表示向量進行下游任務完成網(wǎng)絡安全用戶的分類識別。
算法的時間復雜度與網(wǎng)絡節(jié)點的數(shù)量n有關。Node2vec算法自身引入了別名采樣提高采樣效率,每次采樣的時間復雜度為O(1),采樣模塊的復雜度為O(rln),r為采樣迭代次數(shù),l是隨機游走的長度。Skipgram模塊特征生成時間為O(nlogn),Node2vec的算法復雜度為O(nlogn)。因為向量拼接和邏輯回歸分類的時間復雜度也是線性的,所以算法的時間復雜度為線性時間復雜度O(nlogn)。
實驗環(huán)境采用的服務器配置為CPU:Intel?Xeon?CPU E5-2640 v3@2.60 GHz(8核16線程),采用的操作系統(tǒng)為Ubuntu 16.04 LTS,算法實現(xiàn)的語言及版本為Python 3.9以及PyTorch 2.0。
本文將收集的用戶關系數(shù)據(jù)、文本數(shù)據(jù)和基本信息數(shù)據(jù)應用于不同的圖神經(jīng)網(wǎng)絡算法(如GCN、GAT、Graphsage)和表示學習算法(如Deepwalk等),來發(fā)現(xiàn)網(wǎng)絡安全用戶。由于網(wǎng)絡安全用戶在社交媒體上分布較為稀疏,本文根據(jù)100個網(wǎng)絡安全關鍵詞,選擇一部分含有網(wǎng)絡安全用戶較多的社交媒體,總共收集了30 000個社交媒體用戶和相關的用戶基本信息。將大型的社交網(wǎng)絡分割為3個不同大小級別的社交網(wǎng)絡以驗證Node2vec和LR結合分類準確率。三種網(wǎng)絡的節(jié)點規(guī)模分別是275,2 005,15 000。不同規(guī)模的社交網(wǎng)絡如圖3所示。
圖3 不同規(guī)模Twitter網(wǎng)絡
將用戶的屬性特征和網(wǎng)絡拓撲特征作為圖神經(jīng)網(wǎng)絡的輸入,每個圖神經(jīng)網(wǎng)絡都經(jīng)過至少100個epoch訓練。Deepwalk和Node2vec的嵌入維度設置為256,游走節(jié)點的序列長度為15,Node2vec的p值設置為0.25,q值設置為4。最終,本文所提的算法(Node2vec+LR)與現(xiàn)有常用圖模型(GCN、GAT、Deepwalk+LR)的預測準確率對比如表2所示。
表2 不同模型分類準確率 (%)
由表2可知,Node2vec與LR的組合可獲得最高的平均分類準確率96.37%。且在網(wǎng)絡節(jié)點規(guī)模為275時,準確率最高。比現(xiàn)有常用的其他網(wǎng)絡表示學習算法和圖神經(jīng)網(wǎng)絡算法平均高出0.48%~3.67%。可以發(fā)現(xiàn),表示學習加二分類的方法適合用于網(wǎng)絡安全用戶發(fā)現(xiàn)。本文也將SVM用于分類,其結果和LR相近但是耗時較長不適合用于規(guī)模較大的網(wǎng)絡。
因為用機器學習分類算法進行分類需要標注一部分網(wǎng)絡安全數(shù)據(jù),本文人工標注了1 000條Twitter數(shù)據(jù)。找到其中的1 000條用戶數(shù)據(jù)。對于規(guī)模相對較大的社交網(wǎng)絡,訓練量仍然太少,因此本文采取了自訓練的方法來進行擴充數(shù)據(jù)集。先用分類算法在包含標注數(shù)據(jù)的網(wǎng)絡上進行預測。取1 000條數(shù)據(jù)進行訓練,300條數(shù)據(jù)用于驗證,逐漸將訓練集擴充到8 000,用2 000條數(shù)據(jù)進行測試。最后,將結果與不進行訓練集擴充的對照組進行精確率和F1-Score的對比。
F1-Score也是分類問題的一個衡量指標,它是精確率和召回率的調(diào)和平均數(shù),最大為1,最小為0。定義如式(6)所示:
如圖5所示,自訓練組精確率最高可以達到90.40%,平均高于對照組3.38%。圖6中,自訓練組F1-Score明顯高于對照組,在所有的實驗數(shù)據(jù)集上F1-Score均高于88%,最高可達89.43%,平均高于對照組4.16%。這充分說明模型的訓練集規(guī)模的增加有助于提高精確率和F1-Score。在一定的數(shù)量下,隨著訓練節(jié)點數(shù)量的增多,訓練得到的模型更加精確。值得說明的是,在嵌入維度的選擇上本文選擇256,當嵌入維度減小時精確率會有明顯的下降,當超過300后提升效果不明顯。
圖5 F1-Score對比(單位:%)
圖4 精確率對比(單位:%)
本文通過人工添加網(wǎng)絡安全語義特征,并與網(wǎng)絡表示學習結合的方式來生成社交網(wǎng)絡節(jié)點的特征表示,使得表示向量包含了節(jié)點的語義特征和結構特征。利用經(jīng)典的機器學習二分類方法進行網(wǎng)絡安全用戶的預測。預測效果優(yōu)于常用的圖神經(jīng)網(wǎng)絡算法,并且驗證了通過自訓練的方法對于預測效果有積極的影響。未來可以繼續(xù)擴充語料庫,改進語義和網(wǎng)絡拓撲兩類特征的拼接方式,用更加精確的表示學習或者圖神經(jīng)網(wǎng)絡方法進行更多特征的融合,來發(fā)現(xiàn)特定領域的社交用戶。