1.DualGCN模型框架
模型采用并行的两个简单的前馈网络ConvA,ConvP,其区别仅仅时输入的图结构信息不同,并且这两个并行图卷积的参数是共享的。首先,上面支路利用有标签的节点计算交叉熵损失,并对网络参数进行训练,得到一种后验分布。之后逐渐增加下面支路得到的均方差损失的权值,使得两个损失同时对模型参数产生影响。

2.局部一致性卷积
在实现局部一致性时,作者直接使用了《SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS》 中的1stChebNet模型:
Z(i)=ConvA(i)(X)=σ(D~−21A~D~−21Z(i−1)W(i))(7)
其中,A~=A+IN,D~ii=∑jA~ij,σ(∗)为**函数。D~−21A~D~−21Z(i−1)部分表示对图中每个节点的1-邻域信息的聚合更新,也可以成为1-跳扩散过程。
但是,对于图结构数据而言,不相似节点可能直接相连,也就是连通节点之间的相似度可能低于未连通节点。对于这种情况,1stChebNet模型无法处理,它对节点的邻域信息进行聚合时需要保证相邻节点的特征相似。所以作者引入了全局一致性卷积来解决这个问题。
3.全局一致性卷积
作者设计通过概率统计的方式获取了一种新的可以代表图的结构信息的频率矩阵F,利用逐点互信息(Pointwise mutual information)的方法构建了PPMI(positive pointwise mutual information) 矩阵。
每个节点的转移概率可以由等式(8)计算得到:
p(s(t+1)=xj∣s(t)=xi)=Aij/j∑Aij(8)
获得频率矩阵F:
(1)确定节点的随机游走长度γ,采样次数w,初始化频率矩阵F值为0。
(2)以节点xi为起点,开始以0为步长随机游走,得到所有可能的情况,表示为点对集合S={(xn,xm)},接着以等式(8)作为概率采样w次,得到w对点对。
(3)对于点对(xn,xm),在频率矩阵中对应位置Fn,m,Fm,n对应加1。
(4)将游走步长1逐渐变化到γ,循环(2)(3)步骤。
(5)对于所有的节点,执行(2)(3)(4)步骤得到频率矩阵F。
伪代码如下:

构建PPMI矩阵P:
PMI是一种用来衡量两个事物之间相似性的指标:
PMI(x,y)=lbp(x)p(y)p(xy)
其中p(xy)表示事件x和y同时发生的概率,p(x),p(y)分别表示事件x,y发生的概率。由概率论可知,如果下x,y不相关,则p(xy)=p(x)p(y),当x,y正相关时,PMI(x,y)>0,当x,y负相关时,PMI(x,y)<0。
利用式(9.1),得到节点i,j之间扩散的概率。
p(ij)=pi,j=∑i,jFi,jFi,j(9.1)
利用式(9.2),得到从节点i开始扩散的边缘概率。
p(i)=pi,∗=∑i,jFi,j∑jFi,j(9.2)
利用式(9.3),得到扩散到节点j的边缘概率。
p(j)=p∗,j=∑i,jFi,j∑iFi,j(9.3)
作者使得不相关和负相关的PMI值都为0,得到矩阵P:
Pi,j=max{pmii,j=log(pi,∗p∗,jpi,j),0}(9.4)
将矩阵P作为邻接矩阵,带入1stChebNet模型:
ConvP(i)(X)=Z(i)=σ(D−21PD−21Z(i−1)W(i))(10)
其中,ConvA,ConvP是共享权重的,即训练参数W(i)是一样的。
4.整合局部和全局一致性
由于缺少训练数据(半监督训练,只有少量有标签的节点),无法利用通常的类似直接拼接两个输出的方法对结果进行集成,否则得到的性能将会很差。所以作者提出了利用无监督的方法对这两个输出进行整合。
对于局部一致性卷积的结果ConvA(i)(X),使用传统有标签的交叉熵损失:
L0(ConvA)=−yL1l∈yL∑i=1∑cYl,ilnZ^l,iA(11)
其中,yL表示有标签节点集合,c为分类种数,Yl,i为节点l的标签,Z^l,iA表示节点的预测结果。
对于全局一致性卷积的结果ConvP(i)(X):虽然A,P矩阵不一样,但是最后的预测结果需要一致,所以可以采用均方差作为损失,将局部和全局一致性进行整合:
Lreg(ConvA,ConvP)=n1i=1∑n∣∣Z^l,iA−Z^l,iP∣∣2(12)
其中,Z^l,iA表示利用矩阵A的节点预测结果,Z^l,iP表示利用矩阵P的节点预测结果。该损失对所有的节点进行均方差计算,而不是只对有标签的节点。
最后损失函数为:
L=L0(ConvA)+λ(t)Lreg(ConvA,ConvP)
其中,λ(t)为动态权值,t表示时间。
在训练刚开始时,t比较小,损失函数由L0(ConvA)项主导,通过L0(ConvA)损失获得后验分布;随着时间的推移,λ(t)增大,Lreg(ConvA,ConvP)开始对模型参数产生影响,将同时考虑两者。这样的动态权值可以加速模型的收敛,同时使得参数可以收敛到正确的解上。
DualGCN框架如下:

DualGCN伪代码如下:
