基於合成的空間GCNs
1.MPNNs
MPNNs模型中,將圖卷積的前向傳播定義爲兩個階段:
1)信息傳遞階段
2)讀出階段
(1)信息傳遞階段
當信息傳遞到第t步時,就以節點自身hvt、該節點定義好的鄰域的隱藏狀態hwt(w∈N(v))以及邊的權重evw爲輸入,送入信息聚合函數Mt(∗),:
mvt+1=w∈N(v)∑Mt(hvt,hwt,evw)(1)
這個函數得到的是鄰域節點信息的聚合表示。
得到mvt+1後,再次結合節點當前的隱藏狀態hvt,送入頂點更新函數Ut(∗):
hvt+1=Ut(hvt,mvt+1)(2)
該函數將hvt,mvt+1以函數Ut的方式組合得到下一步t+1的節點表示。
所以整個信息傳遞階段的過程就是將節點鄰域信息聚集,結合中心節點狀態來更新中心節點,得到下一階段的隱藏狀態:
hvt+1=Ut(hvt,w∈N(v)∑Mt(hvt,hwt,evw))(3)
(2)讀出階段
該階段主要是將第t步節點的隱藏狀態輸入讀出函數R(∗),對整個圖或者每個節點進行分類任務:
y^=R(hvT∣v∈G)(4)
2.DCNNs
DCNNs可以按照MPNNs框架進行劃分:
(1)信息傳遞階段
在信息傳遞階段,DCNNs將節點相同跳的鄰域節點信息聚合,不同跳的聚合後信息拼接,得到每個節點的擴散卷積表示:
w∈N(v)∑Mt(hvt,hwt,evw)=l=1∑Nt(Pt∗)ijl(Xt)lm(5)
式(5)可以理解爲節點i的鄰域節點定義爲圖上所有的節點,(Xt)lm表示hvt,hwt的信息;由於Pt∗是由圖的鄰接矩陣A計算得來,表示了圖的結構信息,所以可以認爲(Pt∗)ijl表示evw,∑l=1Nt(Pt∗)ijl(Xt)lm是以概率方式對節點i的j跳節點的一個信息聚合。
式(5)的張量表示形式爲:
Mt=Pt∗Xt(6)
其中,Mt∈RNt×H×F表示每個節點的各個跳[0,H−1]的聚合信息。在利用Pt∗進行信息聚合時,對每個節點每個跳每個特徵都有不同的權值,所以在此處沒有體現權值共享的優勢。
頂點更新函數U(∗)在DCNNs模型中未使用。
(2)讀出階段
在DCNNs中,實現了節點分類的讀出以及圖分類的讀出:
節點分類:
在節點分類時,DCNNs對得到的聚合信息Pt∗Xt用可學習的權值以及激活函數進行調整,之後再調整後的聚合信息展平,並將其送入全連接層和softmax層:
P(Y∣X)=softmax(f(Wdflatten(f(Wc⨀Mt))))(7)
其中,⨀表示逐元素相乘,Wc∈RH×F,爲訓練權重;在計算Wc⨀Pt∗Xt,存在廣播機制,會將Wc複製Nt遍,然後逐元素相乘;f(Wc⨀Pt∗Xt)∈RNt×H×F。flatten(∗)表示展平,將f(Wc⨀Mt)變成二維矩陣RNt×(HF),Wd∈R(HF)×C,C表示分類種數。
對比式(4),式(7)可以理解爲讀出函數R(∗),將每個節點的隱藏狀態Mt送入讀出函數R(∗),得到每個節點的分類結果。
圖分類:
對於圖分類而言,與節點分類不同之處在於讀出函數多了一個加權的步驟,圖分類的讀出函數是將每個節點的聚合信息通過加權求和去取均值,之後用可學習的權值以及激活函數進行調整,再送入全連接層和softmax層:
P(Y∣X)=softmax(f(Wdflatten(f(Wc⨀Nt(1Nt)TMt))))(8)
其中Mt的意義不變,1Nt∈RNt×1表示將各個節點信息∈RH×F聚合的權重;除以Nt得到平均值。Wc訓練得到的加權權值。
3.PATCHY-SANs
PATCHY-SANs模型也可以概括爲信息傳遞階段和讀出階段,它和DCNNs模型的不同之處爲在於鄰域節點的選擇和聚合信息的方法。
(1)信息傳遞階段
確定節點鄰域:
1)根據選定的圖標註函數l對圖中的節點進行排序,得到有序節點集合V_sort。
2)根據V_sort,以s爲步長等間隔取出w個節點,當節點數量∣V_sort∣不足以取出w個節點時,則創建感受野值爲0作爲填充。得到w個節點的序列。
3)對於選出的節點序列中的每一個節點v,取它的1鄰域,如果自身和1−鄰域的節點數目∣N∣≥k,則得到v的感受野的候選,否則繼續取它的2−領域等等,直到滿足∣N∣≥k。對所有選定節點進行上述操作。
構建子圖
可以認爲節點v和它的鄰域候選節點構成原圖G的子圖U,如果鄰域候選節點的數目∣U∣>k,則利用再次圖標註函數l對子圖進行節點排序,在圖歸一化這個步驟中節點排序都必須滿足約束:對於 ∀u,w∈U, 當d(u,v)<d(w,v)時,滿足r(u)<r(w),然後取前k個節點作爲v真正的的鄰域,並得到新的新的子圖U′,並對新的子圖進行節點排序用來形成鄰接矩陣Al(U′);如果鄰域候選節點的數目∣U∣<k,則添加未連接的假節點使得∣U∣=k,並對新的子圖U′進行節點排序用來形成鄰接矩陣Al(U′)。
鄰域信息聚合
設an爲頂點特徵維度,am爲邊特徵維度。對於每個輸入圖G,在確定節點鄰域和構建子圖後,得到一個(w,k,an)頂點特徵的張量和 (w;k;k;am)邊特徵的張量。如下圖所示(k=4):
這些可以被重塑爲一個(w∗k;an)和(w∗k∗k;am)的張量。注意,an,am是輸入通道的數量。現在可以用一維的卷積層,對子圖的節點特徵和結構特徵進行卷積。對子圖節點的卷積核爲Rk×an×Fn,步長爲k;對子圖邊的卷積核爲Rk2×am×Fm,步長爲k2。如下圖所示節點信息的1維卷積(k=4):
對邊的1維卷積也類似,卷積後得到節點的聚合信息(∈Rw×Fn)和邊的聚合信息(∈Rw×Fm),之後直接將這兩個矩陣拼接得到最後的聚合信息(∈Rw×(Fn+Fm))。到此將圖結構數據轉化爲歐式結構的數據。之後的卷積只需要利用傳統的1維卷積即可。
(2)讀出階段
在前面的信息傳遞階段,已經將圖結構數據轉化爲歐式結構的數據,所以讀出階段的做法也和傳統的歐式數據一樣,利用全連接和sofymax得到每個節點或者整個圖的分類概率。
相比於DCNNs模型,在聚合信息時,PATCHY-SANs將不同跳的鄰域節點利用卷積的方式直接得到隱藏狀態(∈Rw×Fn),而不是像DCNNs那樣,將相同跳的節點聚合不同跳的節點拼接得到隱藏狀態。相比於DCNNs模型,在PATCHY-SANs中,對每個子圖而言,卷積核是權值共享的。
4.GraphSage
與PATCHY-SANs模型相比較,GraphSage將獲得子圖的過程簡化了,沒有使用卷積的方式,而是定義了出了具體聚合函數形式,對節點的鄰域信息進行聚合。
(1)信息傳遞階段
確定鄰域節點構建子圖
首先需要先給定一個部分節點集合B,這個集合是需要之後輸出嵌入向量。Nk(v)表示從節點v∈Bk的k-鄰域進行均勻採樣得到節點數量固定爲s的節點集合(k∈[1,K]),如果k-鄰域節點數量大於s,則無放回抽樣;如果小於s,則有放回抽樣。這個部分確定了在整個前向傳播過程中需要使用到的節點,可以理解爲以B中每個節點爲中心構建相應的樹狀子圖的過程,把其他不相關的節點除去。
鄰域信息聚合
1)均值聚合函數
信息聚合函數M(∗):
Mk=mean(hvk−1,{huk−1,∀u∈N(v)})(9)
頂點更新函數R(∗):
hvk=σ(Wk⋅Mk)(10)
這種k層的均值聚合網絡與k層的1stChebNet網絡近似。訓練的參數爲Wk。
2)池化聚合函數
信息聚合函數M(∗):
hN(v)k=max({σ(Wpoolkhuik+b),∀ui∈N(v)})(11)
其中,Wpoolkhuik+b表示多層感知機,爲了簡單表示,只表現了單層的結構,其目的是爲了計算出每個鄰域節點的特徵。max(∗)表示逐元素取最大值,即取每個特徵的最大值以捕獲鄰居集合上在每個維度的最突出表現(均值池化和最大池化結果沒有明顯區別)
頂點更新函數R(∗):
hvk=σ(Wk⋅concat(hN(v)k,hvk−1))(12)
訓練的參數爲Wpoolk,Wk。
(2)讀出階段
利用全連接層和sofymax得到每個節點分類概率。
(3)整個過程的僞代碼如下圖所示:
5.LGCN
LGCN模型使用了與GraphSage相同的隨機方法獲取子圖(節點的鄰域信息),然後對PATCHY-SANs模型的卷積部分進行了優化。
(1)信息傳遞階段
確定鄰域節點構建子圖
1)首先從所有節點N中,隨機採樣Ninit個節點,表示爲initNodes,並加入採樣節點集合S;(代碼第2-3行)
2)初始化newAddNodes,令newAddNodes等於initNodes(代碼第四行)
3)從newAddNodes節點的1-鄰域中再隨機採樣Nm個節點,更新newAddNodes,並將新的newAddNodes加入採樣節點集合S;(代碼6-10行)
3)循環過程(3)直到採樣節點總數S大於等於Ns停止循環;每次迭代過程中的Nm都爲不同值。
4)S>Ns時,需要把最後一次過程(3)得到的採樣節點再次採樣Nr個節點,使得S=Ns。(代碼11-14行)
僞代碼如下圖所示:
鄰域信息聚合
1)利用子圖的A矩陣,找到節點i的所有1-鄰域節點{i1,...,in}。將這n個節點拼接成矩陣Mli∈Rn×C;如果n<k,可以構造節點的所有特徵都爲0的僞節點進行拼接。
2)對Mli矩陣每一列的值進行由大到小的排序,並選出前k個值,得到M^li∈Rk×C矩陣,目的是選出鄰域節點的各個特徵中良好表現該特徵的值,之後將節點i拼接於M^li的第一行,得到最後的網格化數據M~li∈Rk+1×C,對所有節點上述操作後得到表示節點特徵的張量Xl~∈RN×(k+1)×C。
3)利用一維卷積核卷積實現信息聚合操作,得到最後的輸出。Xl~∈RN×(k+1)×C中,N可以視爲批大小(batch size),(k+1)可以視爲一維圖像(樣本)的大小,C可以認爲每個像素的通道數。所以與傳統卷積類比,卷積核的大小,與批大小無關,與輸入樣本的特徵維度C,輸出樣本維度D,以及自定義的卷積核大小m有關,卷積核∈Rm×C×D。可以使用多層1-D卷積神經網絡,但是對每個節點而言,多層1-D卷積神經網絡之後的輸出,必須還是一維向量∈R1×D,纔可以再次輸入k-最大節點選擇部分。最簡單的卷積爲卷積核大小選擇爲k+1,可以直接得到Xl+1∈RN×D。
鄰域信息聚合過程如下圖所示:
(2)讀出階段
利用全連接層和sofymax得到每個節點分類概率。