譚鑫媛,裴頌文,2
1(上海理工大學(xué) 光電信息與計算機(jī)工程學(xué)院,上海 200093)
2(中國科學(xué)院計算機(jī)體系結(jié)構(gòu)國家重點(diǎn)實(shí)驗室,北京100190)
圖(Graph)作為計算機(jī)數(shù)據(jù)結(jié)構(gòu)中的一種基礎(chǔ)結(jié)構(gòu),相對其他數(shù)據(jù)結(jié)構(gòu)更加靈活,因此常被用來描述和建模較為復(fù)雜的系統(tǒng).對圖進(jìn)行多角度、多層次的分析能夠幫助用戶更深入地了解數(shù)據(jù)背后所隱含的內(nèi)容,從而使其可以作用于各業(yè)務(wù)場景的后續(xù)任務(wù)中,如節(jié)點(diǎn)分類、鏈接預(yù)測、節(jié)點(diǎn)相似度分析、節(jié)點(diǎn)推薦等.圖嵌入(Graph Embedding)將圖數(shù)據(jù)轉(zhuǎn)換到一個低維空間,在這個空間中圖的結(jié)構(gòu)信息和屬性被最大限度地保留[1],能夠解決圖數(shù)據(jù)難以高效輸入機(jī)器學(xué)習(xí)算法的問題.
包括GNN和GCN在內(nèi)的大多數(shù)現(xiàn)有的圖神經(jīng)網(wǎng)絡(luò)都基于一個前提:節(jié)點(diǎn)和邊的類型是唯一的,即它們的數(shù)據(jù)是同構(gòu)圖(Homogeneous Graph).然而現(xiàn)實(shí)生活中的許多圖結(jié)構(gòu)通常具有多種類型的節(jié)點(diǎn)和邊.因此,越來越多的研究人員開始關(guān)注通過異構(gòu)圖(Heterogeneous Graph)神經(jīng)網(wǎng)絡(luò)來挖掘數(shù)據(jù).異構(gòu)圖所特有的異構(gòu)性,使它能夠蘊(yùn)含更多的信息,但同時也使它比同構(gòu)圖面臨更多的挑戰(zhàn),即如何聚合不同類型的鄰居、平衡不同類型節(jié)點(diǎn)或邊之間的關(guān)系.許多異構(gòu)圖嵌入模型為了探索異構(gòu)圖的語義信息,需要依靠元路徑(meta-path)、元關(guān)系(meta relation)或元圖(meta graph),而它們使得模型至多只能聚合一階同類型鄰居節(jié)點(diǎn).MixHop[2]已經(jīng)證明高階鄰居對圖分析任務(wù)是非常有用的,然而現(xiàn)有的圖嵌入模型常常忽視對于高階鄰居中有效信息的挖掘.當(dāng)不同目標(biāo)節(jié)點(diǎn)的鄰域高度重合時,可能會使輸出的嵌入向量過于相似,使節(jié)點(diǎn)無法區(qū)分,產(chǎn)生過平滑[3]的現(xiàn)象.此外,堆疊多層GCN模塊也可能產(chǎn)生過平滑問題.
因此,本文提出一種聚合節(jié)點(diǎn)高階鄰居的異構(gòu)圖神經(jīng)網(wǎng)絡(luò)HONG(Higher-Order Neighbors Heterogeneous Graph Neural Network).首先引入目標(biāo)節(jié)點(diǎn)基于元路徑的k階鄰居子圖;其次,提出一種根據(jù)k階鄰居子圖計算鄰居節(jié)點(diǎn)重要性得分的方式,與RepPool[4]中的節(jié)點(diǎn)代表性形成組合分?jǐn)?shù),通過該組合分?jǐn)?shù)對k階鄰居子圖進(jìn)行下采樣,防止過平滑現(xiàn)象的發(fā)生,并結(jié)合GCN學(xué)習(xí)目標(biāo)節(jié)點(diǎn)復(fù)雜結(jié)構(gòu)特征;最后使用注意力機(jī)制與HAN學(xué)習(xí)到的低階語義信息進(jìn)行融合,得到節(jié)點(diǎn)的最終表示.
本文的主要貢獻(xiàn)是:
1)提出一種構(gòu)造節(jié)點(diǎn)高階鄰居子圖的方法,以及一種面向異構(gòu)圖的池化層HetRepPool(Heterogeneous Graph Pooling with Representativeness),結(jié)合GCN生成了異構(gòu)圖高階鄰居節(jié)點(diǎn)中的復(fù)雜結(jié)構(gòu)信息.
2)提出一種能夠聚合高階鄰居節(jié)點(diǎn)中復(fù)雜結(jié)構(gòu)信息的異構(gòu)圖嵌入模型HONG,實(shí)現(xiàn)了異構(gòu)圖節(jié)點(diǎn)在低維空間中的表示.
目前存在的圖嵌入方法可分為兩類,即淺層嵌入學(xué)習(xí)和圖神經(jīng)網(wǎng)絡(luò)[5].node2vec[6]是較為典型淺層嵌入學(xué)習(xí)方法.圖神經(jīng)網(wǎng)絡(luò)的概念是由M Gori等人[7]首次提出的,該研究擴(kuò)展了遞歸神經(jīng)網(wǎng)絡(luò),使其應(yīng)用于不規(guī)則的圖數(shù)據(jù),并做了進(jìn)一步的闡述.隨后,有大量關(guān)于圖神經(jīng)網(wǎng)絡(luò)的研究出現(xiàn).Wu等人[8]將現(xiàn)有的圖神經(jīng)網(wǎng)絡(luò)分為4類,即遞歸圖神經(jīng)網(wǎng)絡(luò)、卷積圖神經(jīng)網(wǎng)絡(luò)、圖自動編碼器、時空圖神經(jīng)網(wǎng)絡(luò).但是,大多數(shù)圖神經(jīng)網(wǎng)絡(luò)模型都是針對同構(gòu)圖的神經(jīng)網(wǎng)絡(luò).
近年來,越來越多的研究開始專注于挖掘異構(gòu)圖中的豐富信息.異構(gòu)圖中不同類型的邊隱含著不同的語義,而聚合語義信息對異構(gòu)圖嵌入來說至關(guān)重要.常見的探索不同語義的方法有元路徑、元關(guān)系、元圖等.HGT[9]通過基于元關(guān)系三元組分解每條邊,使模型在捕獲不同關(guān)系之間的模式時所用的參數(shù)更少或相等.Meta-GNN[10]提出元圖的概念,并以此定義目標(biāo)節(jié)點(diǎn)在進(jìn)行卷積時周圍的感受野.由于在探索語義時受到元路徑、元關(guān)系、元圖等的限制,使得模型至多只能聚合目標(biāo)節(jié)點(diǎn)一階同類型鄰居內(nèi)所蘊(yùn)含的信息.
池化操作在圖像處理中展現(xiàn)出優(yōu)越的能力,圖池也隨之發(fā)展起來.由于池化和上采樣操作無法自然地使用到圖數(shù)據(jù)上,Gao等人[11]提出gPool和gUnpool,使編碼器-解碼器架構(gòu)U-Nets應(yīng)用于圖嵌入.RepPool[4]通過節(jié)點(diǎn)重要性和節(jié)點(diǎn)代表性這兩個維度對圖進(jìn)行粗化,使得神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)圖的層次表示,并用于圖分類任務(wù)上.KGCN-PL[12]引入池化層得到鄰居的差異化權(quán)值,實(shí)現(xiàn)知識圖推薦.然而這些模型都是針對同構(gòu)圖的池化操作,很少有針對異構(gòu)圖的池化操作.
圖嵌入模型將圖數(shù)據(jù)表示為低維度向量后,可以更方便地輸入其他機(jī)器學(xué)習(xí)方法,來實(shí)現(xiàn)具體業(yè)務(wù)場景下的需求,如Ying等人[13]使用ConvGNNs作為編碼器,查找節(jié)點(diǎn)的最近鄰并進(jìn)行推薦,Nikolentzos等人[14]使用圖級嵌入對化合物、有機(jī)分子或蛋白質(zhì)結(jié)構(gòu)等化學(xué)物質(zhì)進(jìn)行分類.此外,根據(jù)圖嵌入模型的輸出,可以將其分為3種不同的任務(wù)類型:節(jié)點(diǎn)級、邊級、圖級[8].大多圖池操作都是用于圖級任務(wù)上,很少有用于節(jié)點(diǎn)級任務(wù)的圖池.
本節(jié)將詳細(xì)闡述所提出的聚合高階鄰居節(jié)點(diǎn)的異構(gòu)圖神經(jīng)網(wǎng)絡(luò)HONG,模型總體框架如圖1所示,可分為語義學(xué)習(xí)、結(jié)構(gòu)學(xué)習(xí)和信息融合3個階段.
圖1 HONG模型整體框架圖Fig.1 Overall framework of the HONG
在語義學(xué)習(xí)階段,使用通過元路徑聚合目標(biāo)節(jié)點(diǎn)直接鄰居的HAN模型.HAN將注意力機(jī)制用在了節(jié)點(diǎn)級和語義級兩方面,分別學(xué)習(xí)節(jié)點(diǎn)和元路徑的重要性,其細(xì)節(jié)已在文獻(xiàn)[15]詳細(xì)闡述.本文將該階段得到的目標(biāo)節(jié)點(diǎn)vi的嵌入向量表示為:
zsem i=HAN(V,E,Q,R,P,Xi)
(1)
在結(jié)構(gòu)學(xué)習(xí)階段,使用GCN聚合節(jié)點(diǎn)的高階鄰居,學(xué)習(xí)節(jié)點(diǎn)的局部拓?fù)浣Y(jié)構(gòu)信息;提出并使用面向異構(gòu)圖的池化層HetRepPool,防止過平滑的同時學(xué)習(xí)更高維的特征.
信息融合階段,使用注意力機(jī)制,平衡語義信息與結(jié)構(gòu)信息,生成最終的嵌入向量.
異構(gòu)圖與同構(gòu)圖的不同之處在于,同構(gòu)圖只擁有一種類型的節(jié)點(diǎn)和一種類型的邊,而異構(gòu)圖包含多種類型的節(jié)點(diǎn)或多種類型的邊.異構(gòu)圖與元路徑的定義可參考文獻(xiàn)[15].
圖2 生成子圖的過程Fig.2 Process of generating subgraphs
Z=F(V,E,Q,R,P,Gsub·k,Asub·k,X)
(2)
其中,模型所得到的最終嵌入Z∈Rn×d,d是嵌入維度.
為了能夠?qū)W習(xí)目標(biāo)節(jié)點(diǎn)高階鄰居中更高維的結(jié)構(gòu)信息,需要池化操作保留數(shù)據(jù)中最為突出的特征.本文使用GCN配合所提出的HetRepPool學(xué)習(xí)異構(gòu)圖高階鄰居的結(jié)構(gòu)信息,該階段的框架如圖3所示.具體地說,就是將一個HetRepPool組件放在GCN組件之后,將得到的結(jié)果再輸入到一個GCN組件中,并如此重復(fù)數(shù)次.
圖3 結(jié)構(gòu)學(xué)習(xí)階段框架圖Fig.3 Framework of structural-level learning
1)構(gòu)造子圖
卷積操作在圖像處理領(lǐng)域上,常用來學(xué)習(xí)整張圖片的信息.相應(yīng)地,GCN在圖結(jié)構(gòu)上,也常用來卷積全圖,繼而為圖級任務(wù)所服務(wù).因此,首先需要通過構(gòu)造目標(biāo)節(jié)點(diǎn)的子圖,使GCN通過卷積子圖而非全圖,來實(shí)現(xiàn)節(jié)點(diǎn)嵌入.
(3)
(4)
其中,Vi·k是gi·k是中節(jié)點(diǎn)的集合,Ei·k是gi·k中邊的集合.由于gi·k是根據(jù)元路徑所生成的子圖,所以Vi·k中的每一個節(jié)點(diǎn)類型與目標(biāo)節(jié)點(diǎn)類型相同.根據(jù)子圖gi·k可以輕易得到鄰接矩陣Ai·k,Xi·k則在矩陣X中選取與Vi·k對應(yīng)的特征向量并組成新的矩陣.
2)節(jié)點(diǎn)選擇
為了學(xué)習(xí)目標(biāo)節(jié)點(diǎn)高階鄰居中的有效信息,并盡可能保留目標(biāo)節(jié)點(diǎn)的結(jié)構(gòu)信息,需要選取對目標(biāo)節(jié)點(diǎn)而言重要的節(jié)點(diǎn).本文認(rèn)為在異構(gòu)圖中,對目標(biāo)節(jié)點(diǎn)而言,各種語義下反復(fù)出現(xiàn)的鄰居節(jié)點(diǎn)對目標(biāo)節(jié)點(diǎn)而言具有更高的重要性,因此本文提出的異構(gòu)圖節(jié)點(diǎn)重要性分?jǐn)?shù)通過語義層面進(jìn)行評估.此外,為了在使用GCN時能夠?qū)W習(xí)到更高階的結(jié)構(gòu)特征,需要覆蓋盡可能多的子結(jié)構(gòu),防止池化后的圖向某一子結(jié)構(gòu)傾斜,而使用了代表性分?jǐn)?shù).HetRepPool通過重要性分?jǐn)?shù)與代表性分?jǐn)?shù)形成的組合分?jǐn)?shù)選擇節(jié)點(diǎn).
(5)
如果一個節(jié)點(diǎn)的語義代表性得分較高,且其鄰居的語義代表性得分也很高,則意味著該節(jié)點(diǎn)包含更豐富的信息,更為重要.具體地說,公式(6)與公式(7)描述了k階鄰居子圖中節(jié)點(diǎn)重要性的計算.節(jié)點(diǎn)vj的重要性得分sj為:
(6)
其中,N(vj)是節(jié)點(diǎn)vj的直接鄰居,m(vt)的定義如下:
(7)
其中,xt是節(jié)點(diǎn)vt的輸入特征,即特征矩陣Xi·k的第t行.m∈Rd是一個可學(xué)習(xí)的向量,將xt投影到m(vt).
B.節(jié)點(diǎn)代表性:由于僅根據(jù)重要性選擇節(jié)點(diǎn)可能會使所選節(jié)點(diǎn)局限于子圖中的某些子結(jié)構(gòu),而忽略其他子結(jié)構(gòu),但這些具有偏向性的信息聚合已經(jīng)在語義學(xué)習(xí)部分完成了.因此除節(jié)點(diǎn)重要性分?jǐn)?shù)外,為了學(xué)習(xí)到更高階的結(jié)構(gòu)特征,還需要代表性分?jǐn)?shù)使選取的節(jié)點(diǎn)覆蓋更多子結(jié)構(gòu),即選取那些遠(yuǎn)離已選節(jié)點(diǎn)的節(jié)點(diǎn),以此保證能學(xué)習(xí)到子圖中更豐富結(jié)構(gòu)信息.
在選擇節(jié)點(diǎn)時需要對節(jié)點(diǎn)逐一進(jìn)行選擇.具體地說,假如已經(jīng)選擇了一組節(jié)點(diǎn),其索引集表示為idx,則候選節(jié)點(diǎn)vj的代表性得分δj為:
δj=f(h(vi,vj),i∈idx)
(8)
其中,h(·)是測量vi于vj之間距離的函數(shù),f(·)是定義vj與已選擇的所有節(jié)點(diǎn)之間的距離函數(shù).根據(jù)經(jīng)驗,將h(·)定義為vi與vj與之間的最短路徑,f(·)定義為vj與idx各節(jié)點(diǎn)的最小成對路徑較為有效.因此,公式(8)可寫作:
(9)
這使得越靠近已選節(jié)點(diǎn)的候選節(jié)點(diǎn)獲得的代表性分?jǐn)?shù)越低,而距離已選節(jié)點(diǎn)越遠(yuǎn)的候選節(jié)點(diǎn)獲得的代表性分?jǐn)?shù)越高.
C.節(jié)點(diǎn)選擇算法:通過結(jié)合節(jié)點(diǎn)重要性分?jǐn)?shù)與代表性分?jǐn)?shù),可以得到節(jié)點(diǎn)選擇的分?jǐn)?shù)γj:
γj=g(sj,δj)
(10)
其中,g(·)是組合重要性分?jǐn)?shù)與代表性分?jǐn)?shù)的函數(shù),可以選擇設(shè)置為線性組合、神經(jīng)網(wǎng)絡(luò)等.本文設(shè)置γj=sj×δj.
在進(jìn)行節(jié)點(diǎn)選擇時,首先計算重要性分?jǐn)?shù)sj,并選取重要性分?jǐn)?shù)最高的節(jié)點(diǎn)作為初始選擇節(jié)點(diǎn),其索引存入idx集合.其次,計算其余節(jié)點(diǎn)對已選節(jié)點(diǎn)vi(i∈idx)而言的代表性分?jǐn)?shù)δj.接下來,將重要性分?jǐn)?shù)與代表性分?jǐn)?shù)合并得到γj,選擇γj最大的節(jié)點(diǎn)vj,并將其索引存入idx中.將上述過程重復(fù)(α-1)次,節(jié)點(diǎn)將以貪婪算法的思想逐一進(jìn)行選擇,最終會得到包括初始選擇節(jié)點(diǎn)在內(nèi)共α個節(jié)點(diǎn).
3)粗圖生成
在完成節(jié)點(diǎn)選擇后,將根據(jù)所選節(jié)點(diǎn)idx生成一個池化后的粗子圖.對粗子圖進(jìn)行卷積操作,能夠?qū)W習(xí)到圖中更高階的信息.通過特征矩陣和鄰接矩陣可以確定一個粗子圖.本文生成粗子圖特征矩陣和鄰接矩陣的方式與文獻(xiàn)[4]類似,因此不再贅述.本文使用Xgi·knew表示新生成粗子圖的特征矩陣,使用Agi·knew表示新生成粗子圖的鄰接矩陣.
4)圖卷積
HetRepPool剔除掉了圖結(jié)構(gòu)中的冗余信息,保留下來更重要、更具有結(jié)構(gòu)代表性的節(jié)點(diǎn),之后還需要學(xué)習(xí)這些節(jié)點(diǎn)之間的關(guān)系.GCN[16]的本質(zhì)就是提取圖的結(jié)構(gòu)特征,因此本文使用GCN對原始子圖和粗化后的子圖進(jìn)行學(xué)習(xí),接著使用Max Pool對卷積后的結(jié)果進(jìn)行降維.
如果將第1次粗化后的子圖表示為g′i·k,則GCN首先對原始子圖gi·k進(jìn)行卷積并降維,再對池化后的子圖g′i·k進(jìn)行卷積并降維.得到的結(jié)果可表示為:
z′str i·k=MAXPool(GCN(gi·k))
(11)
z″str i·k=MAXPool(GCN(g′i·k))
(12)
其中,GCN(·)是GCN模塊,其計算方式與文獻(xiàn)[16]相同.MAXPool(·)是最大池化層.z′str i·k是對原始子圖使用圖卷積并降維后的結(jié)果,z″str i·k是對一次粗化后的子圖使用圖卷積并降維后的結(jié)果.結(jié)構(gòu)學(xué)習(xí)階段所學(xué)習(xí)到k的階子圖的最終表示為:
zstr i·k=Concatenates(z′str i·k,z″str i·k)
(13)
其中,Concatenates(·)表示拼接函數(shù),將z′str i·k與z″str i·k與按行拼接,得到最終的結(jié)構(gòu)學(xué)習(xí)輸出zstr i·k.
在通過語義學(xué)習(xí)階段和結(jié)構(gòu)學(xué)習(xí)階段后,得到目標(biāo)節(jié)點(diǎn)vi的語義表示zsem i和拓?fù)浣Y(jié)構(gòu)表示zstr i·k,使用注意力機(jī)制將兩者進(jìn)行融合,生成vi最終的嵌入表示:
zfinal i=β·zsem i+(1-β)·zstr i·k
(14)
其中,β是可學(xué)習(xí)的注意力向量.用Z表示HONG模型的最終輸出結(jié)果,zfinal i即為Z的第i行.
本文將最終的嵌入向量用于節(jié)點(diǎn)分類任務(wù),并根據(jù)分類的結(jié)果對節(jié)點(diǎn)的嵌入向量表示進(jìn)行訓(xùn)練.對于全監(jiān)督分類任務(wù),本文選擇最小化預(yù)測值與真實(shí)值之間的交叉熵:
(15)
其中,C是分類器的參數(shù),V是節(jié)點(diǎn)索引集,Yi是節(jié)點(diǎn)的真實(shí)標(biāo)簽,Z是節(jié)點(diǎn)的嵌入.本文通過反向傳播與早停法優(yōu)化模型.
本文使用了網(wǎng)絡(luò)上公開的異構(gòu)圖數(shù)據(jù)集(1)https://github.com/Jhy1993/Datasets-for-Heterogeneous-Graph,并分別從3種不同領(lǐng)域的數(shù)據(jù)集中提取出一個子集.
1)ACM.本文提取出一個包含1110篇論文、2467位作者、38個主題的ACM子集,其中論文具有3種標(biāo)簽:數(shù)據(jù)庫、無線通信、數(shù)據(jù)挖掘.使用的元路徑為{PAP,PSP}.從中隨機(jī)選取600篇論文作為訓(xùn)練集,150篇論文作為驗證集,360篇論文作為測試集.
2)DBLP.本文提取出一個包含5158篇論文、960位作者、20個會議、5122個術(shù)語的DBLP子集,其中作者具有3種標(biāo)簽:數(shù)據(jù)庫、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí).使用的元路徑為{APA,APCPA,APTPA}.從中隨機(jī)選取550位作者作為訓(xùn)練集,150位作者作為驗證集,260位作者作為測試集.
3)Douban Movie.本文提取出一個包含1541部電影、2266名演員、811位導(dǎo)演的Douban Movie子集,其中電影可分為3類:動作片、喜劇片、戲劇片.使用的元路徑為{MAM,MDM}.從中隨機(jī)選取800部電影作為訓(xùn)練集,200部電影作為驗證集,541部作為測試集.
本文將所提出的HONG模型與其他基準(zhǔn)實(shí)驗進(jìn)行了比較,以驗證HONG的優(yōu)越性.
GCN[16]是半監(jiān)督的圖卷積網(wǎng)絡(luò),主要針對同構(gòu)圖.本文將GCN用于異構(gòu)圖的所有元路徑,并取最佳性能.
GAT[17]通過多頭注意力機(jī)制為每個鄰居節(jié)點(diǎn)分配權(quán)重,主要針對同構(gòu)圖.本文將GAT用于異構(gòu)圖的所有元路徑,并取最佳性能.
GraphSAGE[18]通過學(xué)習(xí)從節(jié)點(diǎn)的局部鄰域采樣和聚合特征的聚合函數(shù)來生成節(jié)點(diǎn)的嵌入表示,主要針對同構(gòu)圖.本文選擇的聚合方式為LSTM,并將GraphSAGE用于異構(gòu)圖的所有元路徑,取最佳性能.
HetGNN[19]利用重啟的隨機(jī)游走策略和Bi-LSTM來對異構(gòu)圖節(jié)點(diǎn)進(jìn)行編碼,可以通過游走得到不同類別的鄰居.
HAN[15]是一種同時采用節(jié)點(diǎn)級注意和語義級注意的半監(jiān)督異構(gòu)圖神經(jīng)網(wǎng)絡(luò).
GAHNE[20]面向異構(gòu)圖,在圖卷積的基礎(chǔ)上進(jìn)行了改進(jìn),可以聚合來自不同單一類型子網(wǎng)絡(luò)的語義表示.本文選擇的聚合方式為池化.
HONG是本文所提出的聚合節(jié)點(diǎn)高階鄰居的異構(gòu)圖神經(jīng)網(wǎng)絡(luò)模型.
對于語義學(xué)習(xí)階段,本文將學(xué)習(xí)率設(shè)置為0.005,正則化參數(shù)設(shè)置為0.001,語義層面注意向量的維度為64,注意頭的數(shù)量為8,注意力的dropout為0.6.對于結(jié)構(gòu)學(xué)習(xí)階段,設(shè)置兩層GCN與池化,GCN隱藏層維度為64;在進(jìn)行節(jié)點(diǎn)選擇時,最大選擇節(jié)點(diǎn)數(shù)為當(dāng)前子圖中節(jié)點(diǎn)總個數(shù)的30%.構(gòu)造子圖時的鄰居階數(shù)k=3.
訓(xùn)練時,采用Adam優(yōu)化器進(jìn)行優(yōu)化,最大訓(xùn)練數(shù)設(shè)置為150.并使用早停法(Early Stopping),耐心值設(shè)置為50.
為了公平比較,所有算法的最終嵌入維度都被設(shè)置為256.
當(dāng)HONG模型被訓(xùn)練好后,就可以通過前饋得到輸入圖的節(jié)點(diǎn)嵌入向量.本文使用KNN分類器對節(jié)點(diǎn)進(jìn)行分類,以驗證嵌入模型的有效性.其中,KNN的參數(shù)K設(shè)置為5,并使用Macro F1分?jǐn)?shù)和Micro F1分?jǐn)?shù)作為評價指標(biāo),分?jǐn)?shù)越接近1則代表模型的精確率越高.
表1是將各模型訓(xùn)練完成并作用于測試集上的表現(xiàn).可以看出,HONG聚合了更高階的鄰居,在分類任務(wù)中的準(zhǔn)確率較HAN而言,不但沒有下降,反而有所提升.由此可證明,所提出的HONG能夠顯著改善節(jié)點(diǎn)嵌入的結(jié)果,并進(jìn)一步證明了高階鄰居中存在有效信息.
表1 節(jié)點(diǎn)分類任務(wù)的結(jié)果(%)對比Table 1 Quantitative results(%)on the node classification task
本文使用KMeans方法,將模型所得到的嵌入向量用到了聚類任務(wù)上.其中,KMeans的參數(shù)K設(shè)置為數(shù)據(jù)集的標(biāo)簽種類數(shù),即節(jié)點(diǎn)實(shí)際的種類數(shù),并使用NMI及ARI對聚類結(jié)果進(jìn)行評價.NMI是標(biāo)準(zhǔn)化互信息,用于度量聚類結(jié)果的相近程度;ARI是調(diào)蘭德指數(shù),反映劃分的重疊程度.NMI或ARI的結(jié)果越接近1,說明聚類的結(jié)果越好.
各模型在測試集上執(zhí)行聚類任務(wù)的結(jié)果如表2所示.可以看出,HONG在聚類任務(wù)上比其他基準(zhǔn)模型表現(xiàn)得更好.這表明了高階鄰居對于節(jié)點(diǎn)嵌入表示的重要性.
表2 節(jié)點(diǎn)聚類任務(wù)的結(jié)果(%)對比Table 2 Quantitative results(%)on the node clustering task
為了驗證HONG模型中HetRepPool組件的有效性,本文還將HONG與僅結(jié)合了GCN的HAN的模型(沒有使用HetRepPool)進(jìn)行了對比,并稱之為HAN-GCN.它是HONG的變體,消除了HetRepPool而僅使用GCN,以驗證HetRepPool的有效性.
圖4是訓(xùn)練過程中,HAN、HAN-GCN、HONG三者分別作用在ACM驗證集的損失函數(shù)變化.其中橫坐標(biāo)為訓(xùn)練批次,縱坐標(biāo)為損失函數(shù)的值.由于實(shí)驗中使用了早停法,得到的實(shí)際訓(xùn)練次數(shù)會有所不同.突出的黑色點(diǎn)表示:1)通過早停法得到的訓(xùn)練最佳結(jié)果;2)達(dá)到迭代最大次數(shù)后得到的最佳訓(xùn)練結(jié)果.可以看出,HONG的損失函數(shù)值最小,且比HAN收斂更快.
圖4 訓(xùn)練時損失函數(shù)的變化Fig.4 Changes of loss during training
圖5是訓(xùn)練過程中,HAN、HAN-GCN、HONG三者作用在ACM驗證集數(shù)據(jù)上的Micro F1分?jǐn)?shù)的變化.圖中橫坐標(biāo)為訓(xùn)練批次,縱坐標(biāo)為Micro F1得分.不難看出,在驗證集上執(zhí)行分類任務(wù)時,使用HONG得到的精度最高.由于實(shí)驗過程中Macro F1分?jǐn)?shù)的變化趨勢與Micro F1基本一致,因此圖5僅展示了Micro F1得分變化趨勢.
圖5 訓(xùn)練時Micro F1的變化Fig.5 Changes of Micro F1 during training
綜合圖4、圖5的結(jié)果,可以得出,HONG比HAN、HAN-GCN都取得了更好的訓(xùn)練成果.由此可證明本文所提出的HetRepPool組件的有效性.
為了更直觀地進(jìn)行比較,本文將HONG模型得到的節(jié)點(diǎn)嵌入向量進(jìn)行可視化.模型訓(xùn)練時的參數(shù)設(shè)置同4.3節(jié)所述,并將訓(xùn)練好的模型用于ACM數(shù)據(jù)集的測試集,使用t-SNE[21]投影到二維空間中,根據(jù)節(jié)點(diǎn)的真實(shí)標(biāo)簽進(jìn)行著色,如圖6所示.
圖6 HAN與HONG結(jié)果的可視化Fig.6 Visualization of HAN and HONG results
圖6(a)是HAN結(jié)果的可視化,圖6(b)是HONG結(jié)果的可視化,其中不同灰度的點(diǎn)代表著不同的真實(shí)標(biāo)簽.本文所用ACM數(shù)據(jù)子集共有3種標(biāo)簽.不難看出,HONG相較于HAN有著更為明顯的邊界,這表明它能為節(jié)點(diǎn)計算出更好的嵌入表示,效果更佳.
本節(jié)研究了HONG模型在ACM數(shù)據(jù)集節(jié)點(diǎn)分類任務(wù)中的參數(shù)敏感性,并將實(shí)驗結(jié)果(Micro F1分?jǐn)?shù))報告于圖7中.
圖7 HONG模型參數(shù)實(shí)驗Fig.7 Parameter experiments of HONG
1)最終嵌入的維度d.本文研究了最終嵌入的維度d對HONG模型的影響,結(jié)果如圖7(a)所示.總體來看,模型在分類實(shí)驗上的準(zhǔn)確率最初會隨嵌入維度的增大而有所提升,之后會隨嵌入維度的增大而減小.這是因為HONG在語義學(xué)習(xí)階段需要一個合適的維度對語義進(jìn)行編碼,過大的維度可能會產(chǎn)生冗余.
2)多頭注意力的頭數(shù)K.改變語義學(xué)習(xí)階段注意力頭數(shù)K,HONG模型的實(shí)驗結(jié)果如圖7(b)所示.不難看出,注意力頭數(shù)K的增加能夠改善HONG在節(jié)點(diǎn)分類任務(wù)上的結(jié)果,但當(dāng)K達(dá)到一定數(shù)值后,對HONG的改善幅度將會越來越小.需注意,當(dāng)注意力頭數(shù)K被設(shè)置為1時,是單頭注意力而非多頭注意力.
3)構(gòu)造子圖的鄰居階數(shù)k.本文研究了構(gòu)造子圖時使用不同鄰居階數(shù)k對HONG模型的影響,結(jié)果如圖7(c)所示.最初,HONG模型在分類任務(wù)上的性能會隨著鄰居階數(shù)k的增加而提升,之后會隨著k的增加而降低.這是因為,當(dāng)子圖鄰居階數(shù)k達(dá)到一定值后,會使不同目標(biāo)節(jié)點(diǎn)子圖所覆蓋的節(jié)點(diǎn)大量重合,難以區(qū)分.
本文提出一種面向節(jié)點(diǎn)級任務(wù)的異構(gòu)圖神經(jīng)網(wǎng)絡(luò)模型HONG,該模型不僅能聚合節(jié)點(diǎn)基于元路徑的直接鄰居,還能聚合節(jié)點(diǎn)的高階鄰居,學(xué)習(xí)復(fù)雜的結(jié)構(gòu)特征.模型在3個真實(shí)異構(gòu)圖數(shù)據(jù)集上的節(jié)點(diǎn)分類任務(wù)及節(jié)點(diǎn)聚類任務(wù)均取得了優(yōu)于其它基線模型(GCN、GAT、GraphSAGE 、HetGNN、HAN、GAHNE)的表現(xiàn):在節(jié)點(diǎn)分類任務(wù)上的Micro F1平均提升了3.88%,Macro F1平均提升了4.13%;在節(jié)點(diǎn)聚類任務(wù)上的ARI平均提升了12.66%,NMI平均提升了12.02%.下一步,將在語義學(xué)習(xí)階段使用其他異構(gòu)圖神經(jīng)網(wǎng)絡(luò)模型(如Meta-GNN)與HetRepPool相融合,并考慮通過剪枝、矩陣壓縮等方法,對該網(wǎng)絡(luò)模型進(jìn)行壓縮.