李 忠 靳小龍 王亞杰 孟令賓 莊傳志 孫 智
在大數(shù)據(jù)時代背景下,屬性網(wǎng)絡(luò)的結(jié)構(gòu)復(fù)雜度與屬性信息維度都具有相當(dāng)大的規(guī)模,如何充分利用網(wǎng)絡(luò)的結(jié)構(gòu)信息和網(wǎng)絡(luò)節(jié)點的屬性信息進行網(wǎng)絡(luò)數(shù)據(jù)挖掘獲得學(xué)者們越來越多的注意力[1].屬性網(wǎng)絡(luò)中異常節(jié)點檢測任務(wù)的目標(biāo)是從屬性網(wǎng)絡(luò)中查找統(tǒng)計數(shù)據(jù)或分布規(guī)律和大多數(shù)正常節(jié)點不同的節(jié)點[2],因此屬性網(wǎng)絡(luò)異常檢測在網(wǎng)絡(luò)分析與數(shù)據(jù)挖掘領(lǐng)域也受到學(xué)者們的關(guān)注[3].在現(xiàn)實的屬性網(wǎng)絡(luò)中,根據(jù)具體應(yīng)用場景的不同,異常個體節(jié)點主要分為3類:結(jié)構(gòu)異常[4-6]、屬性上下文異常[7-9]、混合結(jié)構(gòu)和屬性信息異常.
近年來,圖神經(jīng)網(wǎng)絡(luò)由于能結(jié)合網(wǎng)絡(luò)結(jié)構(gòu)信息和節(jié)點特征信息進行隱層特征學(xué)習(xí),在很多圖數(shù)據(jù)挖掘任務(wù)中表現(xiàn)出較優(yōu)性能[10].但在實際的屬性網(wǎng)絡(luò)異常檢測場景中,通常絕大多數(shù)樣本是正常樣本,異常樣本數(shù)量占比極少,并在很多場景中,缺少真正可信的異常標(biāo)注數(shù)據(jù),因此有監(jiān)督的屬性網(wǎng)絡(luò)異常檢測算法普適性較差.由于異常的原因和類型多種多樣,而正常節(jié)點的結(jié)構(gòu)和屬性特征具有一定的規(guī)律,因此,可利用無監(jiān)督方法學(xué)習(xí)正常節(jié)點的特征規(guī)律,結(jié)合重建誤差以識別網(wǎng)絡(luò)中的異常節(jié)點.
按照網(wǎng)絡(luò)的節(jié)點是否包含屬性信息,可將網(wǎng)絡(luò)異常檢測分為無屬性網(wǎng)絡(luò)異常節(jié)點檢測和屬性網(wǎng)絡(luò)異常節(jié)點檢測.
無屬性網(wǎng)絡(luò)異常節(jié)點檢測方法包括:1)基于節(jié)點結(jié)構(gòu)的方法,如權(quán)重圖異常檢測(Spotting Anoma-lies in Weighted Graphs)[11].2)基于社團的異常檢測,使用群體檢測方法[12-14]查找異常節(jié)點,此類算法可解釋性較強,但效果依賴于不同的群體檢測方法,只能檢測固定類型的異常節(jié)點.3)基于圖譜分析技術(shù)異常檢測方法,如EigenSpokes(Surprising Pa-tterns and Scalable Community Chipping in Large Graphs)[15],F(xiàn)RAUDAR(Bounding Graph Fraud in the Face of Camouflage)[16],M-Zoom(Fast Dense-Block Detection in Tensors with Quality Guarantees)[17],D-Cube(Dense-Block Detection in Terabyte-Scale Ten-sors)[18],此類算法計算效率較高,可擴展性較強,但檢測結(jié)果存在較高偏差,異常數(shù)據(jù)中存在較多的正常數(shù)據(jù).由于網(wǎng)絡(luò)表示學(xué)習(xí)技術(shù)可將高維度的網(wǎng)絡(luò)映射到一個低維的網(wǎng)絡(luò)中,使用網(wǎng)絡(luò)表示學(xué)習(xí)技術(shù)進行個體節(jié)點嵌入及群體嵌入,并結(jié)合分類技術(shù),可查找影響結(jié)構(gòu)穩(wěn)定的異常節(jié)點[19-20].無屬性網(wǎng)絡(luò)異常節(jié)點檢測方法通常只能利用網(wǎng)絡(luò)的結(jié)構(gòu)信息,無法利用網(wǎng)絡(luò)節(jié)點屬性信息,也無法利用網(wǎng)絡(luò)隱層特征進行異常檢測.
屬性網(wǎng)絡(luò)融合網(wǎng)絡(luò)結(jié)構(gòu)和節(jié)點屬性信息,屬性的多樣性及結(jié)構(gòu)與屬性融合也給屬性網(wǎng)絡(luò)異常節(jié)點檢測帶來極大挑戰(zhàn).傳統(tǒng)的屬性網(wǎng)絡(luò)異常檢測方法主要依賴特征選擇方法,如基于屬性相似度云模型的網(wǎng)絡(luò)異常檢測方法[21].
為了充分利用網(wǎng)絡(luò)結(jié)構(gòu)和屬性信息,研究者利用殘差矩陣進行檢測.Li等[22]提出RADAR(Resi-dual Analysis for Anomaly Detection in Attributed Networks),利用網(wǎng)絡(luò)和屬性信息結(jié)合的殘差矩陣進行異常檢測.Peng等[23]提出ANOMALOUS(Joint Mo-deling Approach for Anomaly Detection on Attributed Networks),利用重建和殘差矩陣分析進行異常檢測.
隨著卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)在計算機視覺方面的成功應(yīng)用,學(xué)者們考慮將CNN應(yīng)用于網(wǎng)絡(luò)數(shù)據(jù)挖掘.為了克服網(wǎng)絡(luò)數(shù)據(jù)結(jié)構(gòu)稀疏及網(wǎng)絡(luò)結(jié)構(gòu)為不規(guī)則的非歐氏空間的問題[10],利用圖卷積網(wǎng)絡(luò)(Graph Convolution Network, GCN)進行節(jié)點分類檢測異常的方法是有監(jiān)督的機器學(xué)習(xí)方法,而異常節(jié)點檢測通常沒有可信標(biāo)注數(shù)據(jù),因此多使用無監(jiān)督或半監(jiān)督的方法.Ding等[24]提出DOMINANT(Deep Anomaly Detection on Attributed Networks),對原始訓(xùn)練數(shù)據(jù)依賴性較高,檢測結(jié)果存在較大偏差.
針對極少數(shù)現(xiàn)實世界中可以以較小的成本獲得異常標(biāo)注數(shù)據(jù)的異常檢測問題,Pang等[25]提出弱監(jiān)督異常檢測算法,在建模期間還可使用有限數(shù)量的標(biāo)記異常數(shù)據(jù),使用標(biāo)記的小規(guī)模異常數(shù)據(jù)進行學(xué)習(xí),有助于識別感興趣的異常并解決無監(jiān)督異常檢測中高誤報率問題.
針對使用圖訓(xùn)練機制學(xué)習(xí)目標(biāo)發(fā)現(xiàn)異常但無法擴展,且無法連接到大型網(wǎng)絡(luò)的問題,Liu等[26]提出CoLA(Contrastive Self-Supervised Learning Framework for Anomaly Detection on Attributed Networks),可用于大型網(wǎng)絡(luò),但算法結(jié)果對于節(jié)點對的選擇具有一定的依賴性.
因此,本文提出基于圖變分自編碼器的異常節(jié)點檢測方法(Anomaly Node Detection Method Based on Variational Graph Auto-Encoders, VGAEE),通過重建誤差判斷節(jié)點是否為異常節(jié)點.模型包含兩個編碼器和一個解碼器,利用一個編碼器和一個解碼器構(gòu)成的變分自編碼器模型重建原始輸入數(shù)據(jù),再利用解碼器和第二個編碼器,使模型學(xué)習(xí)到不包含異常節(jié)點數(shù)據(jù)的網(wǎng)絡(luò)隱層表達.通過雙變分自編碼器學(xué)習(xí)正常節(jié)點子特征,并利用重建誤差作為節(jié)點的異常度量,將由正常節(jié)點子特征構(gòu)成的正常節(jié)點判別為正常節(jié)點.在真實網(wǎng)絡(luò)數(shù)據(jù)集上的實驗表明,本文方法能有效進行屬性網(wǎng)絡(luò)異常節(jié)點檢測.本文方法源代碼開源在https://github.com/lizhong2613/VGAEE.
本文使用的標(biāo)識符號和常用的網(wǎng)絡(luò)定義符號相同,具體如下.
定義 1屬性網(wǎng)絡(luò) 定義一個屬性網(wǎng)絡(luò)ζ=(V,ε,X)由,其中,V={v1,v2,…,vn}表示網(wǎng)絡(luò)中所有節(jié)點的集合,網(wǎng)絡(luò)中節(jié)點個數(shù)為n,|V|=n.ε表示網(wǎng)絡(luò)中所有節(jié)點連接邊的集合,其中|ε|=m.X為n×d矩陣,表示網(wǎng)絡(luò)中所有節(jié)點屬性組成的集合.第i個節(jié)點的屬性xi∈Rd,i=1,2,…,n.連接矩陣A∈Rd×d,表示網(wǎng)絡(luò)節(jié)點和節(jié)點之間的連接關(guān)系,如果節(jié)點i、j之間存在連接,Ai, j=1,否則Ai, j=0.對于一個有向連接網(wǎng)絡(luò),連接矩陣A=max(A,AT),將有向網(wǎng)絡(luò)轉(zhuǎn)為無向網(wǎng)絡(luò)進行處理.
定義 2屬性網(wǎng)絡(luò)異常節(jié)點檢測 給定一個屬性網(wǎng)絡(luò)ζ=(V,ε,X),從該網(wǎng)絡(luò)中檢測一個異常節(jié)點集合O={o1,o2,…,ok},其中oi,i=1,2,…,k的結(jié)構(gòu)和屬性分布規(guī)律和其它大多數(shù)節(jié)點不同.
圖神經(jīng)網(wǎng)絡(luò)類型開始主要為圖卷積神經(jīng)網(wǎng)絡(luò)和圖注意力網(wǎng)絡(luò),后期其它神經(jīng)網(wǎng)絡(luò)遷移到圖數(shù)據(jù)挖掘領(lǐng)域,如圖時空網(wǎng)絡(luò)、圖生成網(wǎng)絡(luò)、圖自編碼器網(wǎng)絡(luò).圖神經(jīng)網(wǎng)絡(luò)的本質(zhì)是在圖上對節(jié)點進行自動特征提取.
由于異常節(jié)點檢測任務(wù)標(biāo)注樣本較少,使得有監(jiān)督的方法不適用于屬性網(wǎng)絡(luò)異常節(jié)點檢測,如利用圖卷積神經(jīng)網(wǎng)絡(luò)和圖注意力網(wǎng)絡(luò)進行分類.
無監(jiān)督的圖神經(jīng)網(wǎng)絡(luò)異常節(jié)點檢測可利用原始無標(biāo)注樣本數(shù)據(jù),學(xué)習(xí)屬性網(wǎng)絡(luò)的低維表達,并利用重建數(shù)據(jù)與原始數(shù)據(jù)誤差,檢測異常節(jié)點.自編碼器是由多個編碼函數(shù)和解碼函數(shù)構(gòu)成的可無監(jiān)督學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),并在自然語言處理、計算機視覺及語音識別等領(lǐng)域存在廣泛應(yīng)用[27].圖自編碼器網(wǎng)絡(luò)是將自編碼器遷移至圖數(shù)據(jù)上[28].目前圖自編碼器網(wǎng)絡(luò)及其變種廣泛應(yīng)用于圖節(jié)點表示,圖自編碼器一般包含兩部分:圖自編碼器和圖解碼器.圖編碼器將原始的網(wǎng)絡(luò)數(shù)據(jù)表示為一個隱層表達,圖解碼器根據(jù)隱層還原圖的原始數(shù)據(jù).根據(jù)采用降維的目標(biāo)函數(shù)的不同,可分為L2重建、拉普拉斯特征映射、遞歸重建、排序、生成對抗網(wǎng)絡(luò)(Generative Adversarial Networks, GAN)等,其中部分方法可應(yīng)用于屬性網(wǎng)絡(luò)[29].
變分圖自編碼器(Variational Graph Auto-Enco-ders, VGAE)的隱層表示不是通過一個函數(shù)獲得,而是先通過一個GCN,確定一個多維高斯分布,再計算均值向量和協(xié)方差矩陣,即通過采樣得到隱層表示:
μ=GCNμ(X,A), log2σ=GCNσ(X,A),
其中用到的2個卷積層權(quán)重矩陣是不同的.
區(qū)別于自編碼器通過提取特征建立輸入輸出之間的映射,應(yīng)用VGAE的目標(biāo)是讓模型學(xué)習(xí)屬性圖的隱層特征,通過訓(xùn)練數(shù)據(jù),可得到正常數(shù)據(jù)子特征的分布,而通過學(xué)習(xí)訓(xùn)練數(shù)據(jù)的分布,可生成與訓(xùn)練數(shù)據(jù)相似的數(shù)據(jù),生成數(shù)據(jù)與真實的正樣本數(shù)據(jù)極為相似,而異常數(shù)據(jù)會與生成數(shù)據(jù)存在較大不同,因此,可利用生成式模型進行異常檢測.生成式模型GAN是一種學(xué)習(xí)范式,并不特定于某種模型架構(gòu),并且由于其存在2個模型互相博弈的特點,理論的近似極限也無法確定.本文嘗試將變分自編碼器(Variational Auto-Encoders, VAE)應(yīng)用于屬性網(wǎng)絡(luò),利用隱變量模型,推斷真實分布的近似值,取得較優(yōu)效果.
本文提出基于變分圖自編碼器的異常節(jié)點檢測方法(VGAEE),框架采用圖變分自編碼器,在編碼過程中增加一些限制,使生成的隱含向量能粗略遵循一個標(biāo)準(zhǔn)正態(tài)分布.
具體地,在編碼器中,增加計算均值的網(wǎng)絡(luò)和計算方差的網(wǎng)絡(luò).在計算均值的網(wǎng)絡(luò)上施加高斯噪聲,使解碼器對噪聲具有魯棒性,增加一個KL散度損失函數(shù),目的是讓均值為0,方差為1.對應(yīng)計算方差的網(wǎng)絡(luò)用于動態(tài)調(diào)節(jié)噪聲的強度.在解碼器初始訓(xùn)練階段,重構(gòu)誤差遠大于KL散度損失,適當(dāng)降低噪聲,使結(jié)果容易擬合.在訓(xùn)練后期,重構(gòu)誤差小于KL散度損失,增加噪聲,增加重構(gòu)誤差,使用解碼器提升它的生成能力.
利用均值網(wǎng)絡(luò)和誤差網(wǎng)絡(luò),結(jié)合隱層向量概率分布,使生成的結(jié)果包含由正常子特征構(gòu)成的新樣本,避免由于輸入網(wǎng)絡(luò)中不存在而被自編碼器為主的方法判斷為異常情況.
在DOMINANT[24]中,如果原始輸入網(wǎng)絡(luò)包含異常數(shù)據(jù),重構(gòu)的屬性網(wǎng)絡(luò)也包含異常數(shù)據(jù),從而導(dǎo)致無法進行異常檢測的問題.針對上述問題,本文方法使用兩層編碼器結(jié)構(gòu),使生成器可學(xué)習(xí)正常樣本編碼隱層特征.由于生成器和編碼器都是為正常樣本優(yōu)化而設(shè)計,異常樣本無法最小化輸入和生成樣本之間的距離,通過兩層編碼器,可增加異常樣本和正常樣本之間的距離,提高異常檢測效果.
VGAEE框圖如圖1所示.整個模型的框架按順序主要包含3個子網(wǎng)絡(luò):一個自編碼器、一個解碼器、一個自編碼器.
圖1 本文方法框圖Fig.1 Sketch map of the proposed method
網(wǎng)絡(luò)結(jié)構(gòu)的自編碼器和自解碼器構(gòu)成一個變分自動編碼器結(jié)構(gòu),通過自編碼器實現(xiàn)將輸入的網(wǎng)絡(luò)結(jié)構(gòu)矩陣和網(wǎng)絡(luò)屬性矩陣進行降維,得到網(wǎng)絡(luò)的隱層表示,并通過解碼器重建.
具體流程為:對于一個屬性網(wǎng)絡(luò),編碼器首先讀取網(wǎng)絡(luò)的鄰接矩陣A∈Rn×k和屬性矩陣X∈Rn×n,將數(shù)據(jù)前向傳播至編碼器網(wǎng)絡(luò)GE.GE由兩層GCN組成,采用批量標(biāo)準(zhǔn)化(BatchNorm)加速神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程,使用線性整流函數(shù)(Rectified Linear Unit, ReLU)作為激活函數(shù).通過GE進行特征提取,將原始的輸入數(shù)據(jù)壓縮至一個隱層表示z∈Rd,其中d為z能保存網(wǎng)絡(luò)特征的最小維度.然后隱層網(wǎng)絡(luò)信息傳輸給解碼器網(wǎng)絡(luò)GD,解碼器網(wǎng)絡(luò)針對網(wǎng)絡(luò)結(jié)構(gòu)和網(wǎng)絡(luò)屬性分別進行重建.X采用兩層卷積網(wǎng)絡(luò)進行重建,使用ReLU作為激活函數(shù).A采用一層卷積層進行解碼,再采用內(nèi)積操作進行重建.通過解碼器GD重建得到的鄰接矩陣和屬性矩陣與原始數(shù)據(jù)的維度相同.該過程可表示為
給定一個屬性網(wǎng)絡(luò)數(shù)據(jù)G,包含異常個體節(jié)點數(shù)據(jù),盡管GE盡量將所有的網(wǎng)絡(luò)結(jié)構(gòu)信息和網(wǎng)絡(luò)屬性信息包含在隱層表示z內(nèi),但GD無法通過z對異常節(jié)點進行重建.這是因為在訓(xùn)練和調(diào)參的過程中,VGAEE只能捕獲正常數(shù)據(jù),并根據(jù)正常數(shù)據(jù)獲取數(shù)據(jù)的高維特征,而異常數(shù)據(jù)因為數(shù)據(jù)量較少,且不具備正常子特征,因此在降維過程中,對應(yīng)信息不包含在隱層z中.
重建損失函數(shù)和自編碼器是相同的,重建損失函數(shù)的目標(biāo)是使通過解碼器還原的數(shù)據(jù)和原始輸入數(shù)據(jù)盡量接近.
通過重建損失函數(shù),本文方法能學(xué)習(xí)屬性網(wǎng)絡(luò)的上下文信息,為了能盡量學(xué)習(xí)到正常的子特征,忽略其它非重要及非正常的子特征,重建損失函數(shù)采用L1正則化范式計算原始數(shù)據(jù)與重建數(shù)據(jù)之間的重建誤差:
其中α表示屬性矩陣重建誤差和鄰接矩陣重建誤差之間的加權(quán)值.
Lrec使解碼器生成的數(shù)據(jù)盡量和原始數(shù)據(jù)接近,可能會包含部分噪聲數(shù)據(jù).因此本文模型包含另外一個編碼器E,編碼損失函數(shù)Lenc的目標(biāo)是使通過編碼器GE得到的中間變量z和重建變量經(jīng)過編碼器E之后的隱層表示盡量接近.Lenc定義如下:
整個方法的損失函數(shù)通過重建損失函數(shù)和編碼損失函數(shù)加權(quán)求得:
L=βLrec+(1-β)Lenc,
β表示兩部分的相對權(quán)重.
使用樣本數(shù)據(jù)不斷訓(xùn)練,多次迭代,通過梯度下降法不斷優(yōu)化權(quán)重矩陣,變分自編碼器使目標(biāo)函數(shù)不斷減小,并最終收斂.利用最終的隱層進行數(shù)據(jù)重建,對每個節(jié)點利用重建誤差作為衡量節(jié)點異常的度量值.對網(wǎng)絡(luò)中每個節(jié)點的異常度定義如下:
節(jié)點的重建誤差越大,說明節(jié)點的異常度越高.因此可通過計算節(jié)點的異常重建誤差,按照節(jié)點的重建誤差進行排序,最后得到網(wǎng)絡(luò)中異常節(jié)點的排序.按照給定的閾值,最終得到滿足閾值的前k個異常節(jié)點的集合O={o1,o2,…,ok}.
本節(jié)選擇使用較多的BlogCatalog、ACM、Flickr數(shù)據(jù)集進行對比實驗.
1)BlogCatalog數(shù)據(jù)集.從BlogCatalog社交博客網(wǎng)站上爬取的數(shù)據(jù),在該博客社交網(wǎng)絡(luò)中,用戶可關(guān)注另外一位用戶形成朋友關(guān)系,每位用戶都具有一些描述標(biāo)簽,該標(biāo)簽整理之后形成節(jié)點的屬性信息.
2)ACM數(shù)據(jù)集.ACM學(xué)術(shù)文章發(fā)表的一個引文網(wǎng)絡(luò),網(wǎng)絡(luò)中的每個節(jié)點都是一篇文章,節(jié)點和節(jié)點之間的引用形成一條連接邊,每個節(jié)點的屬性信息為該文章的摘要信息和關(guān)鍵詞信息.
3)Flickr數(shù)據(jù)集.從Flickr網(wǎng)站爬取的社交網(wǎng)絡(luò)數(shù)據(jù).用戶可在該網(wǎng)站上分享照片,網(wǎng)絡(luò)中每個節(jié)點對應(yīng)一位用戶,節(jié)點的屬性信息是用戶的標(biāo)簽信息,主要包括用戶的興趣愛好等.
以往的屬性網(wǎng)絡(luò)異常檢測方法對上述三個數(shù)據(jù)集中插入一定數(shù)量的異常節(jié)點,為了便于對比,本文使用的數(shù)據(jù)集和以往的工作數(shù)據(jù)集相同,3個數(shù)據(jù)集的具體信息如表1所示.
表1 實驗數(shù)據(jù)集的詳細情況Table 1 Details of experimental datasets
本文選擇近年來具有代表性的屬性網(wǎng)絡(luò)異常檢測方法作為基線方法進行對比.
1)LOF(Local Outlier Factor)[30].LOF基于距離的異常檢測算法,可直接對矩陣檢測離群點.對于屬性網(wǎng)絡(luò),可直接將屬性矩陣應(yīng)用LOF,或針對網(wǎng)絡(luò)特征可結(jié)合節(jié)點屬性矩陣直接進行拼接,再應(yīng)用LOF.本文采取第1種方法,直接對屬性矩陣采用LOF.
2)SCAN(Structural Clustering Algorithm for Networks)[6].該方法利用網(wǎng)絡(luò)結(jié)構(gòu)信息進行網(wǎng)絡(luò)社團發(fā)現(xiàn),并將不屬于任何社團的孤立節(jié)點作為異常節(jié)點,時間復(fù)雜度較低,可擴展性較強.本文直接利用SCAN,輸入網(wǎng)絡(luò)鄰接矩陣計算異常節(jié)點.
3)RADAR[22].該方法利用網(wǎng)絡(luò)屬性信息和網(wǎng)絡(luò)結(jié)構(gòu)信息的殘差矩陣,查找屬性網(wǎng)絡(luò)孤立異常節(jié)點.
3)ANOMALOUS[23].該方法是利用降維和殘差矩陣分析的屬性網(wǎng)絡(luò)異常檢測方法.
4)DOMINANT[10].該方法是基于自編碼器的屬性網(wǎng)絡(luò)異常檢測方法,利用CNN進行特征提取,利用重建誤差進行異常節(jié)點檢測.
5)AMEN(Anomaly Mining of Entity Neighborhoods)[7].該方法是基于自我網(wǎng)絡(luò)結(jié)構(gòu)特征的異常檢測方法,統(tǒng)計屬性網(wǎng)絡(luò)中自我網(wǎng)絡(luò)的屬性分布規(guī)律,判斷節(jié)點是否為異常節(jié)點.
6)CoLA[26].該方法是基于自編碼器的屬性網(wǎng)絡(luò)異常檢測方法,利用CNN進行特征提取,利用重建誤差進行異常節(jié)點檢測.
7)DGI(Deep Graph Infomax)[31].該方法是使用非監(jiān)督方式學(xué)習(xí)節(jié)點嵌入表示的方法,通過最大化局部特征與全局特征的互信息,將屬性網(wǎng)絡(luò)的兩者相關(guān)性用于分類任務(wù),進行正常節(jié)點與異常節(jié)點的分類.
異常檢測問題可認為是從給定的樣本中進行分類,識別正負例,本節(jié)使用分類問題中常用評價指標(biāo),具體如下.
1)Recall@K.在前面TopK個查詢結(jié)果中,正確結(jié)果數(shù)量與所有正確結(jié)果數(shù)量的比率,也叫查全率.
2)ROC-AUC.對于分類問題,一般會設(shè)置一個閾值,控制檢索結(jié)果中正例和負例的不同權(quán)重.閾值越低,較多的樣本會被識別為正例,雖然提高識別率,但更多的負例會被識別為正例.根據(jù)不同的閾值設(shè)置,橫坐標(biāo)由假正率,縱坐標(biāo)由真正率構(gòu)成的分類結(jié)果的曲線成為受試者工作特征(Receiver Operating Characteristic, ROC)曲線.ROC曲線下的面積(Area Under Curve, AUC)越大,算法效果越優(yōu).
3)對于異常檢測模型,結(jié)果預(yù)測為正例或負例,可使用二分類的評價指標(biāo)說明模型的優(yōu)劣.常用的二分類評價指標(biāo)有真陽性(True Positive Rate, TPR)、真陰性(True Negative Rate, FPR)、假陽性(False Positive Rate, FPR)、假陰性(False Negative Rate, FNR).TPR為所有正例中被預(yù)測為正例的比率,也叫召回率或查全率.FRP為所有反例中被預(yù)測為正例的比率.TNR為所有反例中被預(yù)測為反例的比率.FNR為所有正例中被預(yù)測為反例的比率.TPR越高,F(xiàn)RP越低,說明模型性能越優(yōu).
由于自適應(yīng)矩估計(Adaptive Moment Estimation, Adam)優(yōu)化器可利用動量和自適應(yīng)學(xué)習(xí)率,替代梯度下降實現(xiàn)權(quán)重尋優(yōu),因此在實驗中使用Adam優(yōu)化器加速神經(jīng)網(wǎng)絡(luò)收斂.設(shè)置迭代次數(shù)為200.實驗中設(shè)置學(xué)習(xí)率為0.001,隱層維度分別設(shè)置為8,16,32,64,128,256,512,1 024,采用網(wǎng)格搜索交叉驗證(Grid Search Cross Validation, gridSearchCV),確定最優(yōu)參數(shù).
在對比實驗中,SCAN的鄰居閾值ε設(shè)置為0.7,鄰居數(shù)量μ設(shè)置為1.Radar中超參數(shù)α=0.1,β=0.01,γ=0.1,在第17次迭代收斂,因此設(shè)置迭代次數(shù)為20.LOF中設(shè)置鄰居數(shù)量為20.DOMINANT中,設(shè)置α=0.7,迭代次數(shù)為300,圖自編碼器隱層的維度設(shè)置為128.
各方法在3個數(shù)據(jù)集上的AUC值對比如表2所示,對于CoLA[26]與DGI[33],由于未找到可復(fù)現(xiàn)的代碼,本文直接使用文獻[26]中AUC指標(biāo)進行對比.
表2 各方法在3個數(shù)據(jù)集上的AUC值對比Table 2 AUC value comparison of different methods on 3 datasets
由表2可見,VGAEE的AUC值最高,LOF、RA-DAR、SCAN由于只能使用網(wǎng)絡(luò)的結(jié)構(gòu)或節(jié)點的屬性信息,AUC值均低于0.5.
各方法在3個數(shù)據(jù)集上的Recall@K值對比如圖2所示.
(a)ACM
(b)BlogCatalog
(c)Flickr圖2 各方法在3個數(shù)據(jù)集上的Recall@K值對比Fig.2 Recall@K value comparison of different methods on 3 datasets
由圖2可看到,在3個數(shù)據(jù)集上,DOMINANT和VGAEE優(yōu)于僅使用網(wǎng)絡(luò)結(jié)構(gòu)信息或僅使用節(jié)點屬性的方法.DOMINANT能捕獲異常程度較大的節(jié)點,之后性能下降,無法捕獲異常節(jié)點的隱層子特征,存在偏差,會將正常節(jié)點判定為異常節(jié)點,召回率隨著K的增大,無法識別更多的異常節(jié)點,而VGAEE的召回率迅速增加,識別更多的異常節(jié)點.
在ACM、BlogCatalog數(shù)據(jù)集上不同參數(shù)對實驗結(jié)果的影響如圖3所示.
(a)ACM
(b)BlogCatalog圖3 α對AUC值的影響Fig.3 Influence of different α on AUC values
由圖3(a)可看出,當(dāng)僅采用網(wǎng)絡(luò)結(jié)構(gòu)信息(α=1.0)時,AUC值最低,說明僅采用單一因素進行異常檢測效果不理想,而當(dāng)α=0.8時AUC值最優(yōu),說明結(jié)構(gòu)信息和節(jié)點的屬性信息在異常檢測上權(quán)重不同,節(jié)點的屬性信息占比更大.在ACM數(shù)據(jù)集上,隨著隱層維度的增大,檢測結(jié)果更優(yōu),而在隱層維度達到128維之后,AUC值基本達到最優(yōu),在維度達到256時,無更好提升.
由圖3(b)可知,在BlogCatalog數(shù)據(jù)集上,α=0.9時AUC值最優(yōu),隱層維度在256時達到最優(yōu).該結(jié)果說明不同數(shù)據(jù)集上,節(jié)點的屬性信息對于異常檢測比網(wǎng)絡(luò)結(jié)構(gòu)更重要,但不同的數(shù)據(jù)集節(jié)點屬性對異常節(jié)點檢測的重要性不同,并且網(wǎng)絡(luò)隱層維度在達到128或256時能更好地提取網(wǎng)絡(luò)的深層特征.
本文提出基于變分圖自編碼器的異常節(jié)點檢測方法,可充分利用網(wǎng)絡(luò)結(jié)構(gòu)信息和節(jié)點屬性信息進行異常節(jié)點檢測.利用變分自編碼器獲取正常節(jié)點深度子特征,并識別由正常子特征構(gòu)成的節(jié)點為正常節(jié)點,減少預(yù)測誤差,提升系統(tǒng)的召回率.通過兩層編碼器,充分學(xué)習(xí)屬性網(wǎng)絡(luò)隱層特征,并利用重建誤差進行屬性網(wǎng)絡(luò)異常檢測.實驗表明,本文方法優(yōu)于僅利用網(wǎng)絡(luò)結(jié)構(gòu)信息或?qū)傩孕畔⑦M行異常檢測的方法,并且優(yōu)于使用自編碼器的網(wǎng)絡(luò)模型,能有效地從屬性網(wǎng)絡(luò)中檢測出異常節(jié)點.今后可考慮使用變分自編碼器的改進算法,如基于流模型的算法,以提高檢測效果,也可在大規(guī)模網(wǎng)絡(luò)上預(yù)訓(xùn)練模型并遷移至其它網(wǎng)絡(luò)上進行異常檢測,降低時間成本,提高檢測效率.異常檢測的可解釋性也是今后的一個研究方向.