富 坤,禚佳明,郭云朋,李佳寧,劉 琪
河北工業(yè)大學(xué) 人工智能與數(shù)據(jù)科學(xué)學(xué)院,天津300401
現(xiàn)實生活中,存在大量不具備層次結(jié)構(gòu)的關(guān)系型數(shù)據(jù),例如城鎮(zhèn)之間的交通線路、論文之間的引用關(guān)系以及商品之間的購買聯(lián)系等,它們以圖的形式存儲在計算機(jī)中。這些圖數(shù)據(jù)有復(fù)雜的結(jié)構(gòu)和多樣化的屬性類型,能適應(yīng)多領(lǐng)域的學(xué)習(xí)任務(wù)。近些年隨著圖的規(guī)模逐漸擴(kuò)大,圖數(shù)據(jù)的高維性和稀疏性越來越強(qiáng),為了充分利用圖數(shù)據(jù)的優(yōu)勢,出現(xiàn)了一類數(shù)據(jù)表示方法——圖表示學(xué)習(xí)。圖表示學(xué)習(xí)的目標(biāo)是最大限度地保留圖中節(jié)點(diǎn)的內(nèi)容和結(jié)構(gòu)信息,學(xué)習(xí)節(jié)點(diǎn)低維、稠密、實值的向量表示,給予下游任務(wù)(例如鏈接預(yù)測[1-2]、節(jié)點(diǎn)分類[3-4]和推薦系統(tǒng)[5-6]等)高效的數(shù)據(jù)支持。
目前圖表示學(xué)習(xí)方法大體可分為兩類:
第一類是基于簡單神經(jīng)網(wǎng)絡(luò)的方法,包括DeepWalk[7]、Planetoid[8]等。DeepWalk首次將深度學(xué)習(xí)中神經(jīng)網(wǎng)絡(luò)概念引入圖表示學(xué)習(xí)領(lǐng)域,它將圖中的節(jié)點(diǎn)當(dāng)作詞,圖上隨機(jī)游走(random walk)生成的節(jié)點(diǎn)序列當(dāng)作句子,從而類比詞表示學(xué)習(xí)算法Word2vec,學(xué)習(xí)節(jié)點(diǎn)嵌入表示。Planetoid 在學(xué)習(xí)過程中融入標(biāo)簽信息,同時預(yù)測圖中的類標(biāo)簽和鄰域上下文進(jìn)行圖表示學(xué)習(xí)。盡管上述基于簡單神經(jīng)網(wǎng)絡(luò)的方法實踐效果很好,但是不能很好地反映鄰域相似性。例如,DeepWalk、Planetoid 假設(shè)游走序列中相鄰節(jié)點(diǎn)的嵌入表示相似,這種假設(shè)在游走次數(shù)極限形式下是正確的,但是在游走次數(shù)較少時算法低效。
第二類是基于圖卷積神經(jīng)網(wǎng)絡(luò)(graph convolutional neural networks,GCNN)的方法,包括SCNN(spatial convolutional neural network)[9]、Chebyshev[10]、圖卷積網(wǎng)絡(luò)(graph convolutional networks,GCN)[11]、SGC(simplifying graph convolutional networks)[12]等。Bruna 等人[9]首次考慮對卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行泛化來適應(yīng)非歐幾里德結(jié)構(gòu)的圖數(shù)據(jù)。他們根據(jù)卷積定義方式的不同將GCNN 分為:(1)基于頻域(或稱為譜域)的GCNN,借助圖的譜理論在頻域上實現(xiàn)拓?fù)鋱D上的卷積操作;(2)基于空域的GCNN,直接將卷積操作定義在每個節(jié)點(diǎn)的連接關(guān)系上;同時他們提出SCNN 算法,該算法的中心思想是:通過拉普拉斯矩陣的特征分解,得到可參數(shù)化的對角矩陣來替代頻域中的卷積核。上述SCNN 算法要學(xué)習(xí)的參數(shù)量與圖中節(jié)點(diǎn)數(shù)成正比,算法的時間復(fù)雜度為O(N3),在圖的規(guī)模較大時將產(chǎn)生大量計算消耗。
為了降低算法的計算復(fù)雜度,研究人員針對簡化圖卷積結(jié)構(gòu)進(jìn)行了大量研究。Defferrard 等人[10]采用固定的卷積濾波器來擬合卷積核,該濾波器建模K+1(K小于節(jié)點(diǎn)數(shù))階切比雪夫多項式(Chebyshev),能夠極大地減少計算復(fù)雜度。由于矩陣特征分解非常依賴計算,為了解決這個問題,GCN 采用建模一階切比雪夫多項式的濾波器,進(jìn)一步降低了矩陣特征分解帶來的計算消耗,時間復(fù)雜度降至O(|Ε|d)。通過該濾波器,節(jié)點(diǎn)能匯總來自一階鄰居的節(jié)點(diǎn)特征。SGC 通過移除非線性變換和壓縮卷積層之間的權(quán)重矩陣,在保證良好性能的同時進(jìn)一步降低了計算復(fù)雜度。以上GCNN 算法大多遵循固定策略的鄰域聚合,學(xué)習(xí)到的鄰域信息具有局部性,通常會影響算法的表示學(xué)習(xí),如GCN 和SGC 都使用固定的轉(zhuǎn)移概率矩陣和聚合操作。
近幾年提出了一些多樣化鄰域聚合的算法,例如GAT(graph attention networks)[13]、GraphSAGE(graph with sample and aggregate)[14]、APPNP(approximate personalized propagation of neural predictions)[15]等。GAT 算法在GCNN 中引入注意力機(jī)制概念,來為每個節(jié)點(diǎn)分配不同的重要性權(quán)重,利用學(xué)習(xí)的權(quán)重來聚合節(jié)點(diǎn)特征。GraphSAGE 改進(jìn)了GCN 的鄰居采樣和聚合方式。由全圖的采樣鄰居策略改為以節(jié)點(diǎn)為中心的小批量節(jié)點(diǎn)采樣,然后它又拓展了鄰域的聚合操作,使用元素平均或者加和、長短期記憶(long short-term memory,LSTM)和池化(pooling)方法聚合鄰域節(jié)點(diǎn)特征。這些方法只考慮幾個傳播步驟內(nèi)的節(jié)點(diǎn),并且所利用鄰域的大小很難擴(kuò)展。Klicpera 等人[15]研究了GCN 與PageRank 的關(guān)系,提出了改進(jìn)傳播方案和相應(yīng)算法APPNP。APPNP 解耦了預(yù)測和傳播過程,在不引入附加參數(shù)的情況下,通過可調(diào)的傳送概率α,對保留局部信息或是利用大范圍鄰居信息進(jìn)行平衡。上述算法展現(xiàn)了不錯的性能,但是無法從深度模型中獲益,因為增加層次會使算法出現(xiàn)過平滑問題,所以它們都聚焦于構(gòu)建淺層模型。
為了解決過平滑問題,通過增加模型深度來挖掘更多深層次信息,一批算法被提了出來,例如JKNet(graphs with jumping knowledge networks)[16]、GCNII(graph convolutional network with initial residual and identity mapping)[17]、DeepGWC(deep graph wavelet convolutional neural network)[18]等。Xu等人[16]首先驗證了嵌入節(jié)點(diǎn)的鄰域信息范圍存在差異,針對這個問題,JKNet 依次建模每個層級上的鄰域聚合信息,最終通過幾種聚合方式(如連接、最大池化、LSTM 等)組合了它們,實現(xiàn)了更好的結(jié)構(gòu)感知表示。GCNII在使用初始?xì)埐钸B接輸入的基礎(chǔ)上,增加了恒等映射將單位矩陣添加到權(quán)重矩陣,這兩種技術(shù)可以防止過平滑并提高算法性能。Chen 等人[17]從理論上證明了GCNII 能表示一個具有任意系數(shù)的K階多項式濾波器,能夠有效地聚合K階鄰域特征。DeepGWC 采用傅里葉基和小波基相結(jié)合的方法改進(jìn)了圖小波神經(jīng)網(wǎng)絡(luò)中靜態(tài)濾波矩陣的構(gòu)建方案,同時結(jié)合殘差連接和恒等映射,實現(xiàn)了更好的深度信息聚合的目標(biāo)。盡管通過聚合特征生成的嵌入表示已經(jīng)很好地反映了鄰域相似性,表現(xiàn)出良好的實踐效果,但是圖數(shù)據(jù)中仍存在尚未挖掘的深層次信息,獲取這些鄰域信息有助于提升算法在下游任務(wù)中的表現(xiàn)。
AIR-GCN[19]首次將鄰域交互納入建模思路中,以此獲取到圖中未被考慮到的非線性信息。它提供了一種鄰域聚合信息和鄰域交互信息的建模策略,該策略的執(zhí)行過程由端到端框架進(jìn)行監(jiān)督,具有優(yōu)異的特征學(xué)習(xí)能力。但是AIR-GCN 算法存在幾個問題,會導(dǎo)致學(xué)習(xí)的節(jié)點(diǎn)嵌入表示在下游任務(wù)中表現(xiàn)不佳:
(1)在融合鄰域聚合項和鄰域交互項時,AIRGCN 借助殘差學(xué)習(xí)[20]概念對這兩個信息項進(jìn)行跳躍連接加和,這種做法忽略了兩個鄰域信息項對于后續(xù)任務(wù)有不同的重要性。
(2)在AIR-GCN 學(xué)習(xí)過程中,未考慮到高熵值的預(yù)測概率可能會影響節(jié)點(diǎn)嵌入表示,導(dǎo)致局部鄰域內(nèi)節(jié)點(diǎn)特征的一致性不足。
(3)由于AIR-GCN 使用同一圖數(shù)據(jù),分別經(jīng)三條圖卷積通道獲得三組預(yù)測概率,可能出現(xiàn)各圖卷積通道的預(yù)測輸出之間獨(dú)立性不足問題,導(dǎo)致生成的嵌入表示之間差異性不足。
針對AIR-GCN 算法存在的問題,本文提出了自適應(yīng)融合鄰域聚合和鄰域交互的圖卷積網(wǎng)絡(luò)(graph convolutional network with adaptive fusion of neighborhood aggregation and interaction,AFAI-GCN)。本文的主要貢獻(xiàn)總結(jié)如下:
(1)注意力機(jī)制已經(jīng)被廣泛地應(yīng)用在圖神經(jīng)網(wǎng)絡(luò)研究中[13,21],其核心是從眾多信息中選擇對當(dāng)前任務(wù)目標(biāo)更關(guān)鍵的信息。受此啟發(fā),針對問題(1),在融合模塊中添加了注意力機(jī)制,它在信息融合時增加了關(guān)注標(biāo)簽信息的參數(shù),能自適應(yīng)地學(xué)習(xí)鄰域信息項的注意力值,加權(quán)融合后得到更適合下游任務(wù)的嵌入表示。這個方案建立了深層次信息的融合方法與節(jié)點(diǎn)表示之間的關(guān)系(見2.3 節(jié))。
(2)針對問題(2)和問題(3),在目標(biāo)函數(shù)中引入一致性正則化損失和差異性損失。一致性正則化損失能限制圖卷積通道輸出低熵值的預(yù)測,提高鄰域內(nèi)節(jié)點(diǎn)的一致性,從而提升算法在節(jié)點(diǎn)分類任務(wù)中的表現(xiàn)。差異性損失對通道施加獨(dú)立性限制,彌補(bǔ)嵌入表示之間差異性不足的問題(見3.2 節(jié)、3.3 節(jié))。
(3)三個公開經(jīng)典數(shù)據(jù)集上的實驗結(jié)果表明了AFAI-GCN 算法的有效性,AFAI-GCN 框架有效提高了基準(zhǔn)圖卷積算法在節(jié)點(diǎn)分類任務(wù)上的性能(見第4 章)。
定義1(屬性圖)屬性圖表示為G=(V,A,X),其中V是節(jié)點(diǎn)集合,A∈Rn×n是鄰接矩陣,Ai∈Rn×d表示節(jié)點(diǎn)i的鏈接情況,元素的取值有{0,1},Aij=1 表示節(jié)點(diǎn)i與節(jié)點(diǎn)j之間存在連接,Aij=0 表示節(jié)點(diǎn)i與節(jié)點(diǎn)j之間不存在連接。X∈Rn×d是屬性矩陣,Xi∈Rn×d表示節(jié)點(diǎn)i的屬性,n表示圖中節(jié)點(diǎn)總數(shù),d表示屬性維度。
定義2(殘差學(xué)習(xí))殘差學(xué)習(xí)是指在神經(jīng)網(wǎng)絡(luò)的兩個層之間增加捷徑(shortcut),它能緩解誤差反向傳播中出現(xiàn)的梯度消失和梯度彌散問題[20]。殘差網(wǎng)絡(luò)借助跳躍連接對輸入數(shù)據(jù)和它的非線性變換進(jìn)行線性疊加,這個環(huán)節(jié)有助于在高階特征的學(xué)習(xí)過程中注入低階特征,使算法脫離局部最優(yōu)值。殘差學(xué)習(xí)的特征表示為h(x),它的算式如式(1)所示:
其中,f(x)表示當(dāng)前隱藏層的嵌入特征,x表示輸入的特征表示。
定義3(鄰域聚合)鄰域聚合是節(jié)點(diǎn)通過匯總其局部鄰域中節(jié)點(diǎn)的特征信息,得到自身的嵌入表示。聚合鄰域特征的必要前提是鄰域相似性,它是指相互連接的節(jié)點(diǎn)應(yīng)該是相似的,即節(jié)點(diǎn)和其鄰居節(jié)點(diǎn)的嵌入表示應(yīng)該是相似的[22]。因此GCNN 算法利用節(jié)點(diǎn)之間的連接來傳播特征信息,從而保證了嵌入空間中節(jié)點(diǎn)的相似性近似于原始網(wǎng)絡(luò)中節(jié)點(diǎn)的相似性。
圖1 以節(jié)點(diǎn)A的一次鄰域聚合為例描述其流程。首先輸入一個屬性圖,利用權(quán)重矩陣對所有節(jié)點(diǎn)的屬性進(jìn)行仿射變換,將其從原始網(wǎng)絡(luò)空間映射到新的嵌入空間中(這個過程一般包含屬性維度的降維);然后借助圖的結(jié)構(gòu)信息,確定節(jié)點(diǎn)A的一階鄰域節(jié)點(diǎn)集合,這里節(jié)點(diǎn)A的一階鄰居節(jié)點(diǎn)集合為{A,B,C,D};使用這些節(jié)點(diǎn)的嵌入表示進(jìn)行加權(quán)求和,得到節(jié)點(diǎn)A關(guān)于鄰域聚合的嵌入表示;根據(jù)后續(xù)任務(wù)確定是否進(jìn)行非線性轉(zhuǎn)換。
圖1 建模鄰域聚合項Fig.1 Model neighborhood aggregation terms
定義4(鄰域交互)鄰域交互是節(jié)點(diǎn)通過匯總其局部鄰域中節(jié)點(diǎn)的相互影響,得到自身的嵌入表示。在訓(xùn)練過程增加鄰域交互計算環(huán)節(jié),可以幫助算法獲取更多圖中的非線性信息[19]。
圖2 以節(jié)點(diǎn)A進(jìn)行一次鄰域交互計算為例描述其流程。首先輸入一個屬性圖,用權(quán)重矩陣將節(jié)點(diǎn)的屬性從原始網(wǎng)絡(luò)空間仿射到嵌入空間;然后確定節(jié)點(diǎn)A的一階鄰居節(jié)點(diǎn)集合{A,B,C,D},將這些節(jié)點(diǎn)的嵌入表示每兩個一組進(jìn)行元素相乘,計算鄰域節(jié)點(diǎn)之間的相互影響,得到6 個鄰域相互影響因子;使用這6 個信息項進(jìn)行加權(quán)求和,得到節(jié)點(diǎn)A關(guān)于鄰域聚合的嵌入表示;最終的嵌入表示可以根據(jù)后續(xù)任務(wù)進(jìn)行非線性轉(zhuǎn)換。
圖2 建模鄰域交互項Fig.2 Model neighborhood interaction terms
為了實現(xiàn)更高效的信息融合,提高分類器的性能,保證各通道相對獨(dú)立地獲取信息,本文在引入鄰域聚合和鄰域交互概念的基礎(chǔ)上,設(shè)計了自適應(yīng)融合鄰域聚合和鄰域交互的圖卷積網(wǎng)絡(luò)AFAI-GCN,它的總體框架如圖3 所示。圖中數(shù)據(jù)輸入到圖卷積網(wǎng)絡(luò)通道后,不同的顏色代表不同的向量表示。
圖3 AFAI-GCN 的框架Fig.3 Framework of AFAI-GCN
算法使用屬性圖作為輸入數(shù)據(jù)。鄰域聚合模塊使用雙通道圖卷積層,匯總鄰域節(jié)點(diǎn)特征來生成節(jié)點(diǎn)嵌入表示,輸出兩個不同的鄰域聚合項;鄰域交互模塊使用這兩個鄰域聚合項,對應(yīng)位置進(jìn)行元素相乘,計算鄰域之間的相互作用,得到鄰域交互項;選擇上述兩個鄰域聚合項中的任意一個,和鄰域交互項一起輸入到自適應(yīng)融合模塊中;自適應(yīng)融合模塊中添加了注意力機(jī)制,它在算法學(xué)習(xí)過程中注入標(biāo)簽信息,分別計算鄰域聚合項和鄰域交互項的注意力權(quán)重,進(jìn)行注意力權(quán)重的加權(quán)融合,得到鄰域聚合與鄰域交互信息的融合項;輸出模塊使用三通道圖卷積層,進(jìn)一步匯總二階鄰域中節(jié)點(diǎn)的特征信息,分別輸出三組預(yù)測概率。
圖卷積層每增加一層,節(jié)點(diǎn)相應(yīng)地聚合更高一階的鄰域信息,但是圖卷積無法像CNN(convolutional neural networks)層結(jié)構(gòu)一樣堆疊很深的層次。Li 等人[23]的研究表明,GCN 在進(jìn)行一階、二階鄰域的特征聚合時,學(xué)習(xí)得到的節(jié)點(diǎn)表示向量在后續(xù)任務(wù)中表現(xiàn)最好。堆疊多層圖卷積反而會使節(jié)點(diǎn)的表示向量趨于一致,出現(xiàn)“過平滑(over-smooth)”現(xiàn)象。鄰域交互項量化了兩個鄰域聚合項之間的相互影響,需要利用雙通道圖卷積層分別學(xué)習(xí)兩個不同的鄰域聚合項。因此在AFAI-GCN 的算法框架中,構(gòu)建了兩個圖卷積網(wǎng)絡(luò)通道,每個通道包含兩個圖卷積層。
下文詳細(xì)介紹鄰域聚合模塊、鄰域交互模塊、自適應(yīng)融合模塊以及輸出模塊這四個主要環(huán)節(jié)。
第1 章中定義3 提到,鄰域聚合是指通過組合相鄰節(jié)點(diǎn)的特征信息來生成節(jié)點(diǎn)的特征表示,它是圖卷積層處理特征的主要環(huán)節(jié),節(jié)點(diǎn)i的鄰域聚合項為,它的計算過程如式(2)所示:
其中,eij是一個標(biāo)量,它表示節(jié)點(diǎn)j的特征對于節(jié)點(diǎn)i的重要性;是第j個節(jié)點(diǎn)的嵌入表示;是參數(shù)矩陣;σ()?是非線性的激活函數(shù);Ni是包含節(jié)點(diǎn)i本身和其一階鄰居的集合。
不同的GCNN 算法在設(shè)計鄰域聚合結(jié)構(gòu)時,采取的策略也不盡相同,這里主要介紹三個關(guān)于鄰域聚合的方法。
(1)GCN 中鄰域聚合結(jié)構(gòu)的設(shè)計思路是構(gòu)建重要性矩陣E,使其能合理地反映節(jié)點(diǎn)之間的影響。首先,為每個節(jié)點(diǎn)增加自連接,得到新的鄰接矩陣=A+I,I是單位矩陣,使得鄰域概念更符合邏輯;為了防止多層網(wǎng)絡(luò)優(yōu)化時出現(xiàn)梯度爆炸或梯度彌散,對進(jìn)行歸一化處理,即,將其元素取值限制在(-1,1]范圍內(nèi)。GCN 在第k層中生成的鄰域聚合項,它的計算過程如式(3)所示:
其中,中的元素aij是預(yù)處理后的重要性值,對應(yīng)式(2)中的eij。
(2)SGC 在設(shè)計鄰域聚合結(jié)構(gòu)時主要考慮如何使算法變得更簡單。從理論上證明了K>1 時,起低通濾波器的作用。因此它移除了鄰域聚合結(jié)構(gòu)中的非線性激活函數(shù),僅靠線性堆疊K層的歸一化鄰接矩陣和一層的權(quán)重矩陣來平滑圖的表示。任意取k≤K,SGC 在第k層中生成鄰域聚合項的過程如式(4)所示:
(3)GraphSAGE 在設(shè)計鄰域聚合結(jié)構(gòu)時,主要考慮擴(kuò)展固定的鄰域聚合策略。它為每個節(jié)點(diǎn)學(xué)習(xí)一組聚合函數(shù),以此靈活地聚合鄰居節(jié)點(diǎn)特征;它提出了三種聚合函數(shù)的選擇:元素平均或加和、LSTM 和池化。聚合函數(shù)為最大池化的鄰域聚合項,它的計算過程如式(5)所示:
其中,max{?}是最大值函數(shù)。
本文算法中,鄰域聚合模塊使用屬性圖G=(V,A,X)作為輸入,通過雙通道圖卷積層輸出兩項不同的鄰域聚合嵌入表示。節(jié)點(diǎn)i經(jīng)鄰域聚合模塊生成兩個鄰域聚合項,計算過程如式(6)所示:
其中,σ選擇ReLU(x)=max(0,x)函數(shù)。
選擇GCN 層結(jié)構(gòu)作為本文算法中鄰域聚合模塊的網(wǎng)絡(luò)結(jié)構(gòu),構(gòu)建了一個適用性較強(qiáng)的圖卷積網(wǎng)絡(luò)框架。大多數(shù)GCN 層結(jié)構(gòu)的改進(jìn)算法均可與本文提出的框架兼容。
第1 章中定義4 提到,鄰域交互是指通過組合局部鄰域中節(jié)點(diǎn)的相互影響來生成節(jié)點(diǎn)的特征表示。建模鄰域的相互影響,能夠使算法獲取到部分圖中深層次的非線性信息。
其中,σ選擇Sigmoid 函數(shù)。βju是一個標(biāo)量,表示節(jié)點(diǎn)j的鄰域聚合項與節(jié)點(diǎn)u的鄰域聚合項之間的交互權(quán)重,其值越大表示節(jié)點(diǎn)j和t的互相影響中包含越多節(jié)點(diǎn)i的相關(guān)信息。
計算兩次鄰域聚合之間的相互影響時可以選擇的向量運(yùn)算有:逐元素加、減、乘、除,逐元素取平均值、最大值、最小值等。本文采用逐元素乘法,這個運(yùn)算能滿足計算鄰域之間相互作用的實際需求。
為了利用殘差學(xué)習(xí)產(chǎn)生的性能優(yōu)勢,AIR-GCN在信息融合時基于鄰域聚合項和鄰域交互項進(jìn)行跳躍連接加和。這種做法忽略了兩個信息項對于任務(wù)重要程度的差異,融合后的嵌入表示可能在后續(xù)任務(wù)中性能不佳。針對上述缺陷,AFAI-GCN 在融合模塊中增加了注意力機(jī)制,它在融合過程中注入標(biāo)簽信息,學(xué)習(xí)關(guān)于上述兩個信息項的注意力值,使用學(xué)習(xí)的注意力值進(jìn)行加權(quán)求和,得到融合鄰域聚合和鄰域交互信息的嵌入表示。
目標(biāo)函數(shù)是指算法訓(xùn)練過程時需要優(yōu)化的損失函數(shù)集合。在設(shè)計半監(jiān)督的GCNN 算法時,目標(biāo)函數(shù)除了包含帶標(biāo)簽節(jié)點(diǎn)的監(jiān)督損失,通常還會組合圖正則化損失,通過正則化損失來平滑圖上的標(biāo)簽信息[11,24]。本文算法在目標(biāo)函數(shù)部分主要進(jìn)行了以下兩項改進(jìn):
(1)高熵值的預(yù)測概率可能會導(dǎo)致局部鄰域內(nèi)節(jié)點(diǎn)特征的一致性不足。因此在目標(biāo)函數(shù)中添加信息一致性約束,它有助于增強(qiáng)局部鄰域內(nèi)節(jié)點(diǎn)特征的一致性,提升算法在節(jié)點(diǎn)分類任務(wù)中的表現(xiàn)。
(2)多個通道使用同一圖數(shù)據(jù)并且它們并行工作,需要考慮通道的預(yù)測輸出之間的相互影響。因此在目標(biāo)函數(shù)中添加了信息差異性約束,它能對各個通道的預(yù)測輸出施加獨(dú)立性限制,使算法獲取更多樣的深層次信息。
綜上所述,本文在保留監(jiān)督損失的基礎(chǔ)上,在目標(biāo)函數(shù)中添加了兩個信息約束項,目標(biāo)函數(shù)包括監(jiān)督損失、一致性正則化損失和差異性損失三項,下面對它們進(jìn)行詳細(xì)說明。
其中,z∈Rn×C是分類器的預(yù)測概率,y∈Rn×C是真實數(shù)據(jù)標(biāo)簽,C表示類別總數(shù)。
為了優(yōu)化算法在分類任務(wù)中的表現(xiàn),應(yīng)該避免分類器的決策邊界穿過數(shù)據(jù)邊緣分布的高密度區(qū)域[25]。為了實現(xiàn)這個目標(biāo),一種常見的做法是限制分類器輸出未標(biāo)記數(shù)據(jù)低熵的預(yù)測[26]。遵循這個思路,本文在目標(biāo)函數(shù)中添加了信息一致性約束,它能限制算法的預(yù)測輸出,使其概率分布的平均方差更小,圖的嵌入表示更加平滑。
AFAI-GCN 中使用了三個圖卷積通道,為此需要拓展上述思路來適應(yīng)多通道結(jié)構(gòu)。首先使用式(13)計算所有預(yù)測概率的平均值,得到預(yù)測概率的中心。
如果標(biāo)簽分布的熵值較高,則意味著學(xué)習(xí)到的節(jié)點(diǎn)與其鄰居特征或標(biāo)簽的差異性較大,這不利于表達(dá)鄰域相似性,進(jìn)一步聚合可能會損害算法性能[22]。因此獲取到平均預(yù)測zˉ后,利用Sharpen[26]技巧來減少標(biāo)簽分布的熵。表示節(jié)點(diǎn)i在第j類上的低熵的預(yù)測概率,它的計算過程如等式(14)所示:
其中,T是一個參數(shù),當(dāng)T→0 時,Sharpen(,T)的輸出將接近Dirac 分布,此時概率分布中所有的值都集中在一點(diǎn)附近,因此使用較低的T值會使算法輸出較低熵的預(yù)測。
使用Lc表示一致性正則化損失,它表示與多個輸出預(yù)測z的平方L2范數(shù),計算過程如式(15)所示:
本文在目標(biāo)函數(shù)中添加了信息差異性約束,它能度量隨機(jī)變量之間的獨(dú)立性,有利于量化分析通道之間的相互影響。差異性約束采用一種基于核的獨(dú)立性度量——希爾伯特-施密特獨(dú)立性準(zhǔn)則(Hilbert-Schmidt independence criterion,HSIC)。
這類方法的總體思路是,利用再生核希爾伯特空間上定義的互協(xié)方差算子推導(dǎo)出適合度量獨(dú)立性的統(tǒng)計量來決定獨(dú)立性的大小[27]。
假設(shè)X、Y是兩組可觀測變量,對于x∈X和y∈Y分別定義其再生核希爾伯特空間B、Q上的映射Φ(x)∈B和Ψ(y)∈Q,得到對應(yīng)的核函數(shù)為k(x,x′)和l(y,y′),它們的計算過程如式(16)所示。
互協(xié)方差算子可以表示為Cxy:B→Q:
其中,?表示張量積,ExΦ(x) 和EyΨ(y) 分別表示Φ(x)和Ψ(y)的期望。
HSIC 通過計算Hilbert-Schmidt 互協(xié)方差算子范數(shù)的經(jīng)驗估計值得到獨(dú)立性判斷準(zhǔn)則,它的表達(dá)式如式(18)所示。
當(dāng)?shù)玫接^測數(shù)據(jù){(x1,y1),(x2,y2),…,(xn,yn)} 時,HSIC 的經(jīng)驗估計值如式(19)所示:
其中,R=I-(1/n)eeT,I表示單位矩陣,e是元素值為1 的列向量,K和L分別是核k和l關(guān)于觀測值的Gram 矩陣[28],即Kij=k(xi,xj),Lij=l(yi,yj)。
經(jīng)輸出模塊獲取三組預(yù)測概率zagg、zaair和。由于它們是從同一個圖G=(V,A,X)中學(xué)習(xí)的,需要增加一個信息約束項來確保它們可以獲取到不同的信息。為此在目標(biāo)函數(shù)中增加差異性損失Ld,它是zagg、分別與zaair計算的HSIC 值之和,計算過程如式(20)所示:
核函數(shù)相當(dāng)于兩個樣本之間的相似度,本文算法的實現(xiàn)中選擇內(nèi)積核函數(shù)來描述這種關(guān)系,即K=z?zT。
HSIC 的經(jīng)驗估計值在理論上已經(jīng)被證明,其值越大說明兩個變量關(guān)聯(lián)性越強(qiáng),越接近0 說明兩個變量獨(dú)立性越強(qiáng)[29]。引入這項約束可以輔助優(yōu)化算法,在訓(xùn)練過程中對其進(jìn)行最小化,能提高兩對預(yù)測概率之間的獨(dú)立性,有助于圖卷積通道學(xué)習(xí)本身的特有信息,從而提高兩組嵌入表示的差異性。
算法需要優(yōu)化的總體目標(biāo)函數(shù)是上述三種損失的加權(quán)和形式,計算過程如式(21)所示:
其中,κs是第s個圖卷積通道上監(jiān)督損失的權(quán)重,t和r分別為一致性正則化損失的權(quán)重和差異性損失的權(quán)重。算法利用帶標(biāo)簽的訓(xùn)練樣本進(jìn)行數(shù)據(jù)學(xué)習(xí),反向傳播時最小化目標(biāo)函數(shù)來進(jìn)行模型優(yōu)化。
根據(jù)第3 章對AFAI-GCN 中主要模塊及目標(biāo)函數(shù)的詳細(xì)介紹,算法1 給出了具體的算法流程。
算法1AFAI-GCN 算法
本章首先分析算法各模塊的時間消耗,得出總體時間復(fù)雜度,然后調(diào)用torchsummary 工具對模型占用的緩存大小進(jìn)行估計,計算其空間消耗。假定n是總節(jié)點(diǎn)數(shù),m是總邊數(shù),d是屬性維度,di表示第i個圖卷積層輸出的特征維度,d′表示注意力層的維度。
對于GCN 算法,計算的時間復(fù)雜度為O(md1+ndd1+md2+nd1d2)。ndd1、nd1d2涉及特征表示與參數(shù)矩陣的乘法環(huán)節(jié),md1、md2表示鄰域聚合過程的時間消耗。在Cora、Citeseer、Pubmed 數(shù)據(jù)集上的參數(shù)總量分別為0.09 MB、0.23 MB、0.03 MB。AIR-GCN的時間復(fù)雜度為O(md1+ndd1+md2+nd1d2+nd1),它在計算鄰域交互項時增加了元素乘法和加法環(huán)節(jié),所產(chǎn)生的時間代價大約為O(nd1)。AIR-GCN 采用雙通道圖卷積結(jié)構(gòu),因此其空間消耗大約是GCN 算法的兩倍,在Cora、Citeseer、Pubmed 數(shù)據(jù)集上的參數(shù)總量分別為0.18 MB、0.45 MB、0.06 MB。AFAI-GCN的總體時間復(fù)雜度為O(md1+ndd1+md2+nd1d2+nd1+nd1d′)。相較基準(zhǔn)算法AIR-GCN,AFAI-GCN 在融合模塊中添加了注意層來為融合過程注入標(biāo)簽信息,該環(huán)節(jié)的時間消耗大約為O(nd1d′)。由于通常限制d′比d1更小以得到稠密的注意力值中間向量,AFAIGCN與AIR-GCN具有相似的計算時間成本。在Cora、Citeseer、Pubmed數(shù)據(jù)集上的參數(shù)總量分別為0.18 MB、0.45 MB、0.06 MB,因此AFAI-GCN 與AIR-GCN 有相似的空間消耗。詳細(xì)內(nèi)容如表1 所示。
表1 算法參數(shù)量及復(fù)雜度Table 1 Algorithm parameters and complexity
本節(jié)主要介紹數(shù)據(jù)集及樣本選擇、基準(zhǔn)方法和參數(shù)設(shè)置。
5.1.1 數(shù)據(jù)集及樣本選擇
所有實驗在3 個公用引文數(shù)據(jù)集Cora(機(jī)器學(xué)習(xí)引文網(wǎng)絡(luò))、Citeseer(會議引文網(wǎng)絡(luò))和Pubmed(生物醫(yī)學(xué)引文網(wǎng)絡(luò))上進(jìn)行。
樣本選擇時采用統(tǒng)一方案,每類隨機(jī)選擇20 個帶標(biāo)簽的節(jié)點(diǎn)組成訓(xùn)練集,500 個節(jié)點(diǎn)組成驗證集,1 000 個節(jié)點(diǎn)組成測試集。表2 展示了3 個數(shù)據(jù)集的詳細(xì)信息以及樣本選擇情況。
表2 數(shù)據(jù)集及樣本選擇Table 2 Datasets and sample selection
5.1.2 基準(zhǔn)方法
在節(jié)點(diǎn)分類實驗中,將AFAI-GCN 算法與數(shù)種圖表示學(xué)習(xí)經(jīng)典的算法進(jìn)行比較,這些方法包含兩個神經(jīng)網(wǎng)絡(luò)模型MLP(multilayer perceptron)[30]、LP(label propagation)[31],兩個網(wǎng)絡(luò)嵌入算法DeepWalk、Planetoid 和6 個近期研究熱度較高的GCNN 算法GraphSAGE、Chebyshev、GCN、SGC、GAT、AIR-GCN。
5.1.3 參數(shù)設(shè)置
為了保證實驗的公平性,基準(zhǔn)算法均選擇其論文中的默認(rèn)參數(shù)。在重復(fù)參數(shù)進(jìn)行初始化時,AFAIGCN 與基準(zhǔn)算法GCN、AIR-GCN 保持相同參數(shù)值。設(shè)計模型結(jié)構(gòu)時,設(shè)定圖卷積層數(shù)為2,中間層維度為16,每一層的Dropout 率為0.5。算法優(yōu)化器選擇學(xué)習(xí)率為0.01 的Adam 優(yōu)化器,權(quán)重衰減率為5×10-4。參考文獻(xiàn)[26],一致性正則化約束中的超參數(shù)T設(shè)置為0.5,5.7 節(jié)中分析注意力層的維數(shù)和兩個新增損失函數(shù)的權(quán)重對算法性能的影響。
節(jié)點(diǎn)分類任務(wù)是現(xiàn)階段圖表示學(xué)習(xí)方法評估中常用的下游任務(wù)。表3 展示在相同實驗條件下每個算法隨機(jī)運(yùn)行10 次的平均值,結(jié)果使用準(zhǔn)確率(Accuracy)作為評價指標(biāo)。其中加粗的數(shù)值為最優(yōu)結(jié)果,帶下劃線的數(shù)值為次優(yōu)結(jié)果。
表3 節(jié)點(diǎn)分類的Accuracy 指標(biāo)結(jié)果Table 3 Accuracy performance of node classification 單位:%
從表3 中可以觀察出:在實驗條件相同情況下,與所有基準(zhǔn)算法相比,AFAI-GCN 算法節(jié)點(diǎn)分類的平均準(zhǔn)確率最高。在三個公用數(shù)據(jù)集Cora、Citeseer、Pubmed 上,AFAI-GCN 的平均準(zhǔn)確率比基準(zhǔn)算法GCN 的平均準(zhǔn)確率分別提高了1.6 個百分點(diǎn)、2.4 個百分點(diǎn)、0.9 個百分點(diǎn),比AIR-GCN 的平均準(zhǔn)確率分別提高了1.0 個百分點(diǎn)、1.1 個百分點(diǎn)、0.3 個百分點(diǎn)。以上結(jié)果驗證了AFAI-GCN 算法的有效性。
結(jié)果分析如下,相較于GCN、SGC 等圖卷積網(wǎng)絡(luò)算法僅通過建模鄰域聚合信息來進(jìn)行算法學(xué)習(xí),AIR-GCN 在建模時增加鄰域交互項來促使算法學(xué)習(xí)其他的非線性信息,補(bǔ)充了嵌入表示所包含的信息。AFAI-GCN 在AIR-GCN 基礎(chǔ)上,利用注意力機(jī)制在信息融合時增加了對重要信息項的關(guān)注,得到注意力值的加權(quán)融合項。這個環(huán)節(jié)能更充分地利用節(jié)點(diǎn)標(biāo)簽信息,為算法提供額外的弱監(jiān)督信息,更好地關(guān)注信息融合趨勢。在節(jié)點(diǎn)分類任務(wù)中,這些弱監(jiān)督信息會幫助算法學(xué)習(xí)到更適合下游任務(wù)的嵌入表示,因此AFAI-GCN 的分類性能優(yōu)于AIR-GCN。一致性正則化損失和差異性損失對算法學(xué)習(xí)的嵌入表示進(jìn)行信息約束,分別提高了節(jié)點(diǎn)特征一致性和嵌入表示之間的差異性,使算法的分類效果優(yōu)于上述基準(zhǔn)算法。
為了直觀地比較算法分類性能,本節(jié)進(jìn)行節(jié)點(diǎn)的嵌入表示的可視化處理。實驗利用t-SNE[32]工具,將算法學(xué)習(xí)到的嵌入表示投影到二維空間中,以便直接觀察原始網(wǎng)絡(luò)的群落結(jié)構(gòu)。圖4 展示了GCN、SGC、AIR-GCN、AFAI-GCN 算法在Citeseer數(shù)據(jù)集上的可視化結(jié)果。圖中每個點(diǎn)都代表真實網(wǎng)絡(luò)中的一個節(jié)點(diǎn),不同的顏色代表不同的節(jié)點(diǎn)類別,圖例中有6 個類別標(biāo)記{C0,C1,C2,C3,C4,C5}。
圖4 Citeseer數(shù)據(jù)集的可視化結(jié)果Fig.4 Visualization of Citeseer dataset
從圖4 可以觀察到:對于Citeseer 數(shù)據(jù)集,GCN可視化的節(jié)點(diǎn)分布較為混亂,存在混合較多不同顏色的節(jié)點(diǎn)簇,SGC、AIR-GCN 和AFAI-GCN 的可視化節(jié)點(diǎn)分布更合理,節(jié)點(diǎn)簇中顏色更統(tǒng)一。比較SGC、AIR-GCN 和AFAI-GCN,能看出AFAI-GCN 的可視化效果最好,簇內(nèi)節(jié)點(diǎn)的聚合程度更高,不同的團(tuán)簇之間邊界更清晰。例如:(d)圖中C1、C2 的團(tuán)簇結(jié)構(gòu)比(b)圖和(c)圖中對應(yīng)結(jié)構(gòu)更緊簇。結(jié)合圖4 的可視化結(jié)果和表3 的平均準(zhǔn)確率結(jié)果可知:節(jié)點(diǎn)分類任務(wù)中,AFAI-GCN 的性能優(yōu)于其他基準(zhǔn)算法的性能。
僅通過可視化圖像展示和節(jié)點(diǎn)分類結(jié)果的數(shù)值呈現(xiàn),不能得出各改進(jìn)部分對算法性能的實際影響。5.4 節(jié)、5.5 節(jié)將深入討論注意力機(jī)制的實際意義和兩個信息約束項的作用。
本節(jié)考慮到一致性正則化損失和差異性損失的不同組合,提出3 個AFAI-GCN 的變體算法,進(jìn)行消融實驗,證明添加一致性正則化損失和差異性損失的有效性。在3 個數(shù)據(jù)集上分別運(yùn)行這4 個算法,報告10 次隨機(jī)運(yùn)行的平均準(zhǔn)確率。實驗結(jié)果如圖5 所示,圖例中四個簡稱分別代表的含義是:AFAI-GCNo 表示無Lc和Ld約束的AFAI-GCN,AFAI-GCN-d 表示僅使用差異性約束Ld的AFAI-GCN,AFAI-GCN-c表示僅使用一致性正則化約束Lc的AFAI-GCN,AFAI-GCN 表示同時使用一致性正則化約束Lc和差異性約束Ld的完全體AFAI-GCN。
圖5 AFAI-GCN 及變體的節(jié)點(diǎn)分類結(jié)果Fig.5 Node classification results of AFAI-GCN and variants
觀察圖5 可以得出以下結(jié)論:(1)在3 個數(shù)據(jù)集上,添加一致性正則化約束Lc和差異性約束Ld的完全體AFAI-GCN 的準(zhǔn)確率均優(yōu)于其他三個變體算法,這表明了同時使用這兩種約束會提升算法的分類性能。(2)AFAI-GCN-d、AFAI-GCN-c 和AFAI-GCN 在所有數(shù)據(jù)集上的分類結(jié)果均優(yōu)于AFAI-GCN-o,表明了單獨(dú)使用或同時使用兩個約束均會提升算法的分類性能,結(jié)果驗證了這兩個約束的有效性。(3)比較圖5 和表3 的結(jié)果可以看出,與基準(zhǔn)算法AIR-GCN 對比,只有監(jiān)督損失項的AFAI-GCN-o 仍然有更好的分類表現(xiàn)。這表明在融合模塊中添加注意力機(jī)制對算法的性能產(chǎn)生了正面的影響,本文提出的基礎(chǔ)框架穩(wěn)定并且性能更優(yōu)。
為了考察在融合模塊中添加注意力機(jī)制的實際效果,本節(jié)詳細(xì)分析注意力層的學(xué)習(xí)細(xì)節(jié)。分別在3個數(shù)據(jù)集上,繪制注意力層生成的注意力平均值的變化趨勢,并標(biāo)記出最大值、最小值,結(jié)果如圖6 所示。x軸是迭代次數(shù),y軸是注意力平均值。圖例中,HirAtt、HaggAtt、MinAtt、MaxAtt 分別表示鄰域交互項的注意力值、鄰域聚合項的注意力值、最小注意力值和最大注意力值。
圖6 注意力值的變化Fig.6 Change of attention value
實驗結(jié)果顯示:訓(xùn)練開始時,鄰域聚合項和鄰域交互項的平均注意力值在0.5 附近,訓(xùn)練過程中它們發(fā)生了明顯的變化。例如在Citeseer 數(shù)據(jù)集上,鄰域交互項的平均注意力值的初始值為0.5,隨著算法迭代,該值逐漸減少,最終收斂值接近0。鄰域聚合項的平均注意力值則隨著訓(xùn)練進(jìn)行不斷增加,該值在30 次迭代后超過0.9。
實驗結(jié)果說明,自適應(yīng)融合模塊中的注意力層能夠逐步學(xué)習(xí)到不同嵌入表示的重要性。配合圖5中AFAI-GCN-o 的準(zhǔn)確率結(jié)果,能夠得出AFAI-GCN算法學(xué)習(xí)時注意力機(jī)制的有效性。
本節(jié)實驗對比AFAI-GCN 和基準(zhǔn)算法AIR-GCN的收斂性,在3 個數(shù)據(jù)集上分別繪制兩個算法訓(xùn)練過程中測試準(zhǔn)確率曲線。結(jié)果如圖7 所示。
圖7 收斂結(jié)果Fig.7 Convergence results
結(jié)果表明:在3 個數(shù)據(jù)集上,AFAI-GCN 的收斂速度普遍比基準(zhǔn)模型AIR-GCN 要快,訓(xùn)練過程的準(zhǔn)確率分布更穩(wěn)定。因此AFAI-GCN 算法展現(xiàn)出了更快的收斂速度和更高的收斂穩(wěn)定性。
本節(jié)通過實驗分析注意力層的維數(shù)p、一致性正則化損失權(quán)重t和差異性損失權(quán)重r對算法節(jié)點(diǎn)分類性能的影響。每次確定一個分析參數(shù),固定兩個非分析參數(shù),改變分析參數(shù)的數(shù)值來研究它對算法的影響。
注意力層維數(shù)p是一個可以調(diào)節(jié)模型結(jié)構(gòu)的超參數(shù)。考慮到算法的計算復(fù)雜度,注意力層維數(shù)p取區(qū)間[1,15]中的15 個整數(shù)值。保持其他參數(shù)不變,在3 個數(shù)據(jù)集上分別運(yùn)行10 次算法,報告它們的平均準(zhǔn)確率值,結(jié)果如圖8 所示。
圖8 參數(shù)p 的影響Fig.8 Influence of parameter p
實驗結(jié)果顯示:(1)三條折線的波動幅度較小,說明在上述取值區(qū)間內(nèi),p值對性能指標(biāo)準(zhǔn)確率的影響不大,說明本文算法對參數(shù)p的敏感性低。(2)在Cora、Citeseer、Pubmed 數(shù)據(jù)集上,注意力層的維數(shù)p分別取10、8、10 時,算法的分類準(zhǔn)確率最高。(3)結(jié)合圖8 和表3 的實驗結(jié)果,即使在分類性能最差的情況下,AFAI-GCN 對比其他基準(zhǔn)算法表現(xiàn)仍然更好。
圖9 展示一致性正則化損失權(quán)重t對算法節(jié)點(diǎn)分類性能的影響,實驗中將其取值從1.0E-04 調(diào)整到1.0E+00??梢杂^察到:在3 個數(shù)據(jù)集上,隨著權(quán)重t的增加,算法的分類性能均緩慢提高。t在1.0E-04 至1.0E+00 范圍內(nèi)時,AFAI-GCN 的分類表現(xiàn)都是穩(wěn)定的,說明AFAI-GCN 對參數(shù)t的敏感性較低。在3 個數(shù)據(jù)集上,一致性正則化損失權(quán)重t取值為1.0E+00時,算法分類準(zhǔn)確率最高。
圖9 參數(shù)t的影響Fig.9 Influence of parameter t
圖10展示差異性損失權(quán)重r對算法節(jié)點(diǎn)分類性能的影響,實驗中將其取值從1.0E-05 調(diào)整到1.0E-01。在圖10中可以觀察到:在3個數(shù)據(jù)集上,r在1.0E-05至1.0E-01 范圍內(nèi)時,AFAI-GCN 的準(zhǔn)確率呈現(xiàn)不穩(wěn)定狀態(tài),說明算法對參數(shù)r的敏感性較高。在3 個數(shù)據(jù)集上,差異性損失權(quán)重r取值為1.0E-04 時,算法分類準(zhǔn)確率最高。
圖10 參數(shù)r的影響Fig.10 Influence of parameter r
在圖表示學(xué)習(xí)方法研究的基礎(chǔ)上,利用圖卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)圖的嵌入表示,其結(jié)果在下游任務(wù)中表現(xiàn)出優(yōu)異的性能。本文在引入鄰域聚合和鄰域交互概念的基礎(chǔ)上,提出了自適應(yīng)融合鄰域聚合和鄰域交互的圖卷積網(wǎng)絡(luò)AFAI-GCN,探索了深層次信息的融合邏輯與節(jié)點(diǎn)表征之間的關(guān)系。AFAI-GCN 在融合模塊中添加了注意力結(jié)構(gòu),它能針對下游任務(wù)自適應(yīng)地學(xué)習(xí)融合權(quán)重,以合適的比例融合上述兩種信息,這是一種有效可行的GCNN 信息提取機(jī)制;同時算法中添加了一致性正則化約束和差異性約束兩項信息限制,分別提高了鄰域內(nèi)節(jié)點(diǎn)特征的一致性和嵌入表示之間的差異性,使得AFAI-GCN 在下游任務(wù)上的性能超越了基準(zhǔn)圖神經(jīng)網(wǎng)絡(luò)模型的性能。未來的研究包括提升模型效率使其適用于更大規(guī)模的網(wǎng)絡(luò),擴(kuò)展深度使其獲取到更多深度信息。