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

1.DualGCN模型框架

模型采用并行的两个简单的前馈网络 C o n v A , C o n v P Conv_A,Conv_P ConvA,ConvP,其区别仅仅时输入的图结构信息不同,并且这两个并行图卷积的参数是共享的。首先,上面支路利用有标签的节点计算交叉熵损失,并对网络参数进行训练,得到一种后验分布。之后逐渐增加下面支路得到的均方差损失的权值,使得两个损失同时对模型参数产生影响。
《Dual Graph Convolutional Networks for Graph-Based Semi-Supervised Classification》论文理解_第1张图片

2.局部一致性卷积

在实现局部一致性时,作者直接使用了《SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS》 中的1stChebNet模型:
Z ( i ) = C o n v A ( i ) ( X ) = σ ( D ~ − 1 2 A ~ D ~ − 1 2 Z ( i − 1 ) 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 Z(i)=ConvA(i)(X)=σ(D~21A~D~21Z(i1)W(i))(7)

其中, A ~ = A + I N \tilde A = A+I_{N} A~=A+IN, D ~ i i = ∑ j A ~ i j \tilde D_{ii}=\sum_{j}\tilde A_{ij} D~ii=jA~ij σ ( ∗ ) \sigma(*) σ()为激活函数。 D ~ − 1 2 A ~ D ~ − 1 2 Z ( i − 1 ) \tilde D^{-\frac{1}{2}}\tilde A\tilde D^{-\frac{1}{2}}Z^{(i-1)} D~21A~D~21Z(i1)部分表示对图中每个节点的1-邻域信息的聚合更新,也可以成为1-跳扩散过程。
但是,对于图结构数据而言,不相似节点可能直接相连,也就是连通节点之间的相似度可能低于未连通节点。对于这种情况,1stChebNet模型无法处理,它对节点的邻域信息进行聚合时需要保证相邻节点的特征相似。所以作者引入了全局一致性卷积来解决这个问题。

3.全局一致性卷积

作者设计通过概率统计的方式获取了一种新的可以代表图的结构信息的频率矩阵 F F F,利用逐点互信息(Pointwise mutual information)的方法构建了PPMI(positive pointwise mutual information) 矩阵。
每个节点的转移概率可以由等式(8)计算得到:
p ( s ( t + 1 ) = x j ∣ s ( t ) = x i ) = A i j / ∑ j A i j (8) p(s(t+1)=x_j|s(t)=x_i)=A_{ij}/\sum_{j}{A_{ij}}\tag8 p(s(t+1)=xjs(t)=xi)=Aij/jAij(8)

获得频率矩阵 F F F:
(1)确定节点的随机游走长度 γ \gamma γ,采样次数 w w w,初始化频率矩阵F值为0。
(2)以节点 x i x_i xi为起点,开始以0为步长随机游走,得到所有可能的情况,表示为点对集合 S = { ( x n , x m ) } S=\{ {(x_n,x_m)}\} S={ (xn,xm)},接着以等式(8)作为概率采样 w w w次,得到 w w w对点对。
(3)对于点对 ( x n , x m ) (x_n,x_m) (xn,xm),在频率矩阵中对应位置 F n , m , F m , n F_{n,m},F_{m,n} Fn,m,Fm,n对应加1。
(4)将游走步长1逐渐变化到 γ \gamma γ,循环(2)(3)步骤。
(5)对于所有的节点,执行(2)(3)(4)步骤得到频率矩阵F。
伪代码如下:
《Dual Graph Convolutional Networks for Graph-Based Semi-Supervised Classification》论文理解_第2张图片
构建PPMI矩阵P:
PMI是一种用来衡量两个事物之间相似性的指标:
P M I ( x , y ) = l b p ( x y ) p ( x ) p ( y ) PMI(x,y)=lb\frac{p(xy)}{p(x)p(y)} PMI(x,y)=lbp(x)p(y)p(xy)

其中 p ( x y ) p(xy) p(xy)表示事件 x x x y y y同时发生的概率, p ( x ) , p ( y ) p(x),p(y) p(x),p(y)分别表示事件 x , y x,y x,y发生的概率。由概率论可知,如果下 x , y x,y x,y不相关,则 p ( x y ) = p ( x ) p ( y ) p(xy)=p(x)p(y) p(xy)=p(x)p(y),当 x , y x,y x,y正相关时, P M I ( x , y ) > 0 PMI(x,y)>0 PMI(x,y)>0,当 x , y x,y x,y负相关时, P M I ( x , y ) < 0 PMI(x,y)<0 PMI(x,y)<0
利用式(9.1),得到节点 i , j i,j i,j之间扩散的概率。
p ( i j ) = p i , j = F i , j ∑ i , j F i , j (9.1) p(ij)=p_{i,j}=\frac{F_{i,j}}{\sum_{i,j}{F_{i,j}}}\tag{9.1} p(ij)=pi,j=i,jFi,jFi,j(9.1)

利用式(9.2),得到从节点 i i i开始扩散的边缘概率。
p ( i ) = p i , ∗ = ∑ j F i , j ∑ i , j F i , j (9.2) p(i)=p_{i,*}=\frac{\sum_{j}{F_{i,j}}}{\sum_{i,j}{F_{i,j}}}\tag{9.2} p(i)=pi,=i,jFi,jjFi,j(9.2)

利用式(9.3),得到扩散到节点 j j j的边缘概率。
p ( j ) = p ∗ , j = ∑ i F i , j ∑ i , j F i , j (9.3) p(j)=p_{*,j}=\frac{\sum_{i}{F_{i,j}}}{\sum_{i,j}{F_{i,j}}}\tag{9.3} p(j)=p,j=i,jFi,jiFi,j(9.3)

作者使得不相关和负相关的 P M I PMI PMI值都为0,得到矩阵P:
P i , j = m a x { p m i i , j = l o g ( p i , j p i , ∗ 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} Pi,j=max{ pmii,j=log(pi,p,jpi,j),0}(9.4)

将矩阵 P P P作为邻接矩阵,带入1stChebNet模型:
C o n v P ( i ) ( X ) = Z ( i ) = σ ( D − 1 2 P D − 1 2 Z ( i − 1 ) 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} ConvP(i)(X)=Z(i)=σ(D21PD21Z(i1)W(i))(10)

其中, C o n v A , C o n v P Conv_A,Conv_P ConvA,ConvP是共享权重的,即训练参数 W ( i ) W^{(i)} W(i)是一样的。

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

由于缺少训练数据(半监督训练,只有少量有标签的节点),无法利用通常的类似直接拼接两个输出的方法对结果进行集成,否则得到的性能将会很差。所以作者提出了利用无监督的方法对这两个输出进行整合。
对于局部一致性卷积的结果 C o n v A ( i ) ( X ) Conv^{(i)}_{A}(X) ConvA(i)(X),使用传统有标签的交叉熵损失:
L 0 ( C o n v A ) = − 1 y L ∑ l ∈ y L ∑ i = 1 c Y l , i l n Z ^ l , i A (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} L0(ConvA)=yL1lyLi=1cYl,ilnZ^l,iA(11)

其中, y L y_L yL表示有标签节点集合, c c c为分类种数, Y l , i Y_{l,i} Yl,i为节点 l l l的标签, Z ^ l , i A \hat Z_{l,i}^A Z^l,iA表示节点的预测结果。
对于全局一致性卷积的结果 C o n v P ( i ) ( X ) Conv^{(i)}_{P}(X) ConvP(i)(X):虽然 A , P A,P A,P矩阵不一样,但是最后的预测结果需要一致,所以可以采用均方差作为损失,将局部和全局一致性进行整合:
L r e g ( C o n v A , C o n v P ) = 1 n ∑ i = 1 n ∣ ∣ Z ^ l , i A − Z ^ l , i P ∣ ∣ 2 (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} Lreg(ConvA,ConvP)=n1i=1nZ^l,iAZ^l,iP2(12)

其中, Z ^ l , i A \hat Z_{l,i}^A Z^l,iA表示利用矩阵 A A A的节点预测结果, Z ^ l , i P \hat Z_{l,i}^P Z^l,iP表示利用矩阵 P P P的节点预测结果。该损失对所有的节点进行均方差计算,而不是只对有标签的节点。

最后损失函数为:
L = L 0 ( C o n v A ) + λ ( t ) L r e g ( C o n v A , C o n v P ) L=L_{0}(Conv_A)+\lambda(t)L_{reg}(Conv_A,Conv_P) L=L0(ConvA)+λ(t)Lreg(ConvA,ConvP)

其中, λ ( t ) \lambda(t) λ(t)为动态权值, t t t表示时间。
在训练刚开始时, t t t比较小,损失函数由 L 0 ( C o n v A ) L_{0}(Conv_A) L0(ConvA)项主导,通过 L 0 ( C o n v A ) L_{0}(Conv_A) L0(ConvA)损失获得后验分布;随着时间的推移, λ ( t ) \lambda(t) λ(t)增大, L r e g ( C o n v A , C o n v P ) L_{reg}(Conv_A,Conv_P) Lreg(ConvA,ConvP)开始对模型参数产生影响,将同时考虑两者。这样的动态权值可以加速模型的收敛,同时使得参数可以收敛到正确的解上。

DualGCN框架如下:
《Dual Graph Convolutional Networks for Graph-Based Semi-Supervised Classification》论文理解_第3张图片
DualGCN伪代码如下:
《Dual Graph Convolutional Networks for Graph-Based Semi-Supervised Classification》论文理解_第4张图片

你可能感兴趣的:(深度学习,gcn,神经网络)