《Dual Graph Convolutional Networks for Graph-Based Semi-Supervised Classification》論文理解

1.DualGCN模型框架

模型採用並行的兩個簡單的前饋網絡ConvA,ConvPConv_A,Conv_P,其區別僅僅時輸入的圖結構信息不同,並且這兩個並行圖卷積的參數是共享的。首先,上面支路利用有標籤的節點計算交叉熵損失,並對網絡參數進行訓練,得到一種後驗分佈。之後逐漸增加下面支路得到的均方差損失的權值,使得兩個損失同時對模型參數產生影響。
在這裏插入圖片描述

2.局部一致性卷積

在實現局部一致性時,作者直接使用了《SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS》 中的1stChebNet模型:
Z(i)=ConvA(i)(X)=σ(D~12A~D~12Z(i1)W(i))(7)Z^{(i)}=Conv^{(i)}_{A}(X)=\sigma(\tilde D^{-\frac{1}{2}}\tilde A\tilde D^{-\frac{1}{2}}Z^{(i-1)}W^{(i)})\tag7

其中,A~=A+IN\tilde A = A+I_{N},D~ii=jA~ij\tilde D_{ii}=\sum_{j}\tilde A_{ij}σ()\sigma(*)爲激活函數。D~12A~D~12Z(i1)\tilde D^{-\frac{1}{2}}\tilde A\tilde D^{-\frac{1}{2}}Z^{(i-1)}部分表示對圖中每個節點的1-鄰域信息的聚合更新,也可以成爲1-跳擴散過程。
但是,對於圖結構數據而言,不相似節點可能直接相連,也就是連通節點之間的相似度可能低於未連通節點。對於這種情況,1stChebNet模型無法處理,它對節點的鄰域信息進行聚合時需要保證相鄰節點的特徵相似。所以作者引入了全局一致性卷積來解決這個問題。

3.全局一致性卷積

作者設計通過概率統計的方式獲取了一種新的可以代表圖的結構信息的頻率矩陣FF,利用逐點互信息(Pointwise mutual information)的方法構建了PPMI(positive pointwise mutual information) 矩陣。
每個節點的轉移概率可以由等式(8)計算得到:
p(s(t+1)=xjs(t)=xi)=Aij/jAij(8)p(s(t+1)=x_j|s(t)=x_i)=A_{ij}/\sum_{j}{A_{ij}}\tag8

獲得頻率矩陣FF:
(1)確定節點的隨機遊走長度γ\gamma,採樣次數ww,初始化頻率矩陣F值爲0。
(2)以節點xix_i爲起點,開始以0爲步長隨機遊走,得到所有可能的情況,表示爲點對集合S={(xn,xm)}S=\{{(x_n,x_m)}\},接着以等式(8)作爲概率採樣ww次,得到ww對點對。
(3)對於點對(xn,xm)(x_n,x_m),在頻率矩陣中對應位置Fn,m,Fm,nF_{n,m},F_{m,n}對應加1。
(4)將遊走步長1逐漸變化到γ\gamma,循環(2)(3)步驟。
(5)對於所有的節點,執行(2)(3)(4)步驟得到頻率矩陣F。
僞代碼如下:
在這裏插入圖片描述
構建PPMI矩陣P:
PMI是一種用來衡量兩個事物之間相似性的指標:
PMI(x,y)=lbp(xy)p(x)p(y)PMI(x,y)=lb\frac{p(xy)}{p(x)p(y)}

其中p(xy)p(xy)表示事件xxyy同時發生的概率,p(x),p(y)p(x),p(y)分別表示事件x,yx,y發生的概率。由概率論可知,如果下x,yx,y不相關,則p(xy)=p(x)p(y)p(xy)=p(x)p(y),當x,yx,y正相關時,PMI(x,y)>0PMI(x,y)>0,當x,yx,y負相關時,PMI(x,y)<0PMI(x,y)<0
利用式(9.1),得到節點i,ji,j之間擴散的概率。
p(ij)=pi,j=Fi,ji,jFi,j(9.1)p(ij)=p_{i,j}=\frac{F_{i,j}}{\sum_{i,j}{F_{i,j}}}\tag{9.1}

利用式(9.2),得到從節點ii開始擴散的邊緣概率。
p(i)=pi,=jFi,ji,jFi,j(9.2)p(i)=p_{i,*}=\frac{\sum_{j}{F_{i,j}}}{\sum_{i,j}{F_{i,j}}}\tag{9.2}

利用式(9.3),得到擴散到節點jj的邊緣概率。
p(j)=p,j=iFi,ji,jFi,j(9.3)p(j)=p_{*,j}=\frac{\sum_{i}{F_{i,j}}}{\sum_{i,j}{F_{i,j}}}\tag{9.3}

作者使得不相關和負相關的PMIPMI值都爲0,得到矩陣P:
Pi,j=max{pmii,j=log(pi,jpi,p,j),0}(9.4)P_{i,j}=max\{pmi_{i,j}=log(\frac{p_{i,j}}{p_{i,*}p_{*,j}}),0\}\tag{9.4}

將矩陣PP作爲鄰接矩陣,帶入1stChebNet模型:
ConvP(i)(X)=Z(i)=σ(D12PD12Z(i1)W(i))(10)Conv^{(i)}_P(X)=Z^{(i)}=\sigma(D^{-\frac{1}{2}}PD^{-\frac{1}{2}}Z^{(i-1)}W^{(i)})\tag{10}

其中,ConvA,ConvPConv_A,Conv_P是共享權重的,即訓練參數W(i)W^{(i)}是一樣的。

4.整合局部和全局一致性

由於缺少訓練數據(半監督訓練,只有少量有標籤的節點),無法利用通常的類似直接拼接兩個輸出的方法對結果進行集成,否則得到的性能將會很差。所以作者提出了利用無監督的方法對這兩個輸出進行整合。
對於局部一致性卷積的結果ConvA(i)(X)Conv^{(i)}_{A}(X),使用傳統有標籤的交叉熵損失:
L0(ConvA)=1yLlyLi=1cYl,ilnZ^l,iA(11)L_{0}(Conv_A)=-\frac{1}{y_L}\sum_{l\in y_L}{\sum_{i=1}^{c}{Y_{l,i}ln{\hat Z}_{l,i}^A}}\tag{11}

其中,yLy_L表示有標籤節點集合,cc爲分類種數,Yl,iY_{l,i}爲節點ll的標籤,Z^l,iA\hat Z_{l,i}^A表示節點的預測結果。
對於全局一致性卷積的結果ConvP(i)(X)Conv^{(i)}_{P}(X):雖然A,PA,P矩陣不一樣,但是最後的預測結果需要一致,所以可以採用均方差作爲損失,將局部和全局一致性進行整合:
Lreg(ConvA,ConvP)=1ni=1nZ^l,iAZ^l,iP2(12)L_{reg}(Conv_A,Conv_P)=\frac{1}{n}\sum_{i=1}^{n}{||\hat Z_{l,i}^A-\hat Z_{l,i}^P||^2}\tag{12}

其中,Z^l,iA\hat Z_{l,i}^A表示利用矩陣AA的節點預測結果,Z^l,iP\hat Z_{l,i}^P表示利用矩陣PP的節點預測結果。該損失對所有的節點進行均方差計算,而不是隻對有標籤的節點。

最後損失函數爲:
L=L0(ConvA)+λ(t)Lreg(ConvA,ConvP)L=L_{0}(Conv_A)+\lambda(t)L_{reg}(Conv_A,Conv_P)

其中,λ(t)\lambda(t)爲動態權值,tt表示時間。
在訓練剛開始時,tt比較小,損失函數由L0(ConvA)L_{0}(Conv_A)項主導,通過L0(ConvA)L_{0}(Conv_A)損失獲得後驗分佈;隨着時間的推移,λ(t)\lambda(t)增大,Lreg(ConvA,ConvP)L_{reg}(Conv_A,Conv_P)開始對模型參數產生影響,將同時考慮兩者。這樣的動態權值可以加速模型的收斂,同時使得參數可以收斂到正確的解上。

DualGCN框架如下:
在這裏插入圖片描述
DualGCN僞代碼如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章