论文学习笔记:Deep Insights into GCN for Semi-Supervised Learning


自从深度学习兴起,许多机器学习中有趣的问题重新被提起。最近提出的图卷积完美的整合了局部顶点特征和图拓扑信息。虽然GCN优于其他state-of-the-art的方法,但是GCN的工作机制并不清晰。本文介绍来自AAAI 2018的工作,深入的剖析了图卷积层中是什么在起作用,并且针对少量标签数据集上的GCN训练,提出Co-Training和self-Training方法。

Graph Conv

Kipf & Welling提出的图卷积包括下面几步:
1.利用图邻接矩阵创建图卷积滤镜。每个节点增加self-loop。这样新的邻接矩阵为 A ~ = A + I \tilde{A}=A+I A~=A+I,新的节点度矩阵 D ~ = D + I \tilde{D}=D+I D~=D+I。归一化得到滤镜 A ^ = D ~ − 1 2 A ~ D ~ − 1 2 \hat{A} = \tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}} A^=D~21A~D~21

2.定义图卷积层传播规则
H ( l + 1 ) = σ ( A ^ H ( l ) Θ ( l ) ) H^{(l+1)} = \sigma (\hat{A}H^{(l)}\Theta^{(l)}) H(l+1)=σ(A^H(l)Θ(l))
其中, H ( l ) H^{(l)} H(l)为第l层的激活值矩阵, H ( 0 ) = X H^{(0)}=X H(0)=X Θ ( l ) \Theta^{(l)} Θ(l)表示第l层训练权重矩阵。代表图卷积的操作是归一化的邻接矩阵 A ^ \hat{A} A^左乘每层的输入。然后,节点的卷积特征输入标准的全连接层。

3.叠加两层卷积,后接softmax,构建预测模型
Z = s o f t m a x ( A ~   R E L U ( A ~ Θ ( 0 ) ) Θ ( 1 ) ) Z = \mathrm{softmax} \Bigl(\tilde{A}\ \mathrm{RELU}(\tilde{A}\Theta^{(0)})\Theta^{(1)}\Bigl) Z=softmax(A~ RELU(A~Θ(0))Θ(1))
在有标签的数据集上,使用交叉熵损失函数训练模型。

Why GCNs Work

The Key of GCN

对比GCN与普通的全连接网络的区别,FC分层传播规则为:
H ( l + 1 ) = σ ( H ( l ) Θ ( l ) ) H^{(l+1)} = \sigma (H^{(l)}\Theta^{(l)}) H(l+1)=σ(H(l)Θ(l))
GCN与FC的传播法则唯一的区别在图卷积矩阵 A ^ \hat{A} A^。分别使用GCN和FC在标记点为20个的Cora citation数据集上测试,发现即使只使用单层的GCN,效果也远远优于单层FC。

compare_gcn_with_fc.png-42.8kB

只看单层的GCN,他实际上只对输入数据做了两步操作:1)通过图卷积生成了新的特征矩阵, Y = D ~ − 1 2 A ~ D ~ − 1 2 X Y=\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}X Y=D~21A~D~21X。2)将生成的新特征 Y Y Y喂给FC层。很显然,关键就在图卷积层。

那么图卷积层做了什么? 搞清楚这个问题之前,我们先来看看什么是拉普拉斯平滑。

Laplacian Smoothing

一条折线包含一系列离散的点 p i p_i pi。如何平滑这条折现?一个有效的方法是,将每个点移动到其邻居点的加权平均值
p i ← p i + 1 2 L ( p i ) p_i \leftarrow p_i + \frac{1}{2} L(p_i) pipi+21L(pi)
其中, L ( p i ) = ( p i + 1 + p i − 1 ) / 2 L(p_i)=(p_{i+1}+p_{i-1})/2 L(pi)=(pi+1+pi1)/2。如此操作,反复迭代

image_1cslat8441a4p13ut1cu612l81dd419.png-39.2kB

将折线换成邻接矩阵为 A A A的图,对角矩阵 D D D对角线上的元素 d i i d_{ii} dii表示第i个顶点的度。那么上述的平滑写成矩阵的形式
P ← ( I − 1 2 L r w ) P P \leftarrow (I - \frac{1}{2}L_{rw}) P P(I21Lrw)P
其中,
image_1csik7v6u1dvsha7o9013mf4da9.png-8.8kB
这里的L是归一化的图拉普拉斯算子。定义 L = D − A L = D - A L=DA,它有两个版本,即对称形式 L s y m : = D ~ − 1 2 L ~ D ~ − 1 2 L_{sym}:=\tilde{D}^{-\frac{1}{2}}\tilde{L}\tilde{D}^{-\frac{1}{2}} Lsym:=D~21L~D~21和标准形式 L r w : = D ~ − 1 L ~ L_{rw} := \tilde{D}^{-1}\tilde{L} Lrw:=D~1L~。这样拉普拉斯平滑就是:
P ← ( I − γ L r w ) P P \leftarrow (I - \gamma L_{rw}) P P(IγLrw)P
这里 0 ≤ γ ≤ 1 0 \leq \gamma \leq 1 0γ1,控制平滑的强度。

如果为图中的每个节点增加self-loop,邻接矩阵变为 A ~ = A + I \tilde{A}=A+I A~=A+I, 再将拉普拉斯算子的标准形式替换为对称形式,那么平滑方法与与GCN中的图卷积层一样。
Y ^ = ( I − γ D ~ − 1 2 L ~ D ~ − 1 2 ) X \hat{Y} = (I - \gamma \tilde{D}^{-\frac{1}{2}}\tilde{L}\tilde{D}^{-\frac{1}{2}})X Y^=(IγD~21L~D~21)X
此时 L ~ = D ~ − A ~ \tilde{L} = \tilde{D}-\tilde{A} L~=D~A~ γ \gamma γ参数控制节点本身特征和邻居特征之间的权重,设置 γ = 1 \gamma=1 γ=1,可以得到熟悉的图卷积形式
Y ^ = D ~ − 1 2 A ~ D ~ − 1 2 X \hat{Y} = \tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}X Y^=D~21A~D~21X
拉普拉斯平滑法计算每个顶点的局部邻居特征的平均值,作为顶点的新特征。因为同一类别的顶点之间往往连接紧密,所以平滑时他们的特征趋于相似,为后续的工作降低了难度。这就是GCN的工作原理。

When GCNs Fail

半监督GCN中建议最多使用两层叠加,可见,图卷积不是叠加层次越多越好。一方面卷积层越多越难训练,另一方面频繁使用拉普拉斯平滑会导致over-smoothing。来自不同类别的节点的特征会通过节点簇之间的连接混淆,这时,即使来自不同类别的两个节点特征也会很相似。

作者使用不同层数的图卷积模型,在karate club数据集上试验。随机初始化模型参数,不训练。隐藏层维度为16,输出层维度为2,所有节点特征使用one-hot向量。实验结果,如图Figure2,它有效的说明了图卷积(拉普拉斯平滑)在小数据集上的影响。当使用一次时,两类节点没有很好的分开,使用两次时,已经能够比较好的分开了,继续增加次数,效果变得越来越差。由于节点数量少,两个类别的节点之间存在一定数量的连接,通过这些连接,不同类别节点之间的差异被平滑掉了。
image_1cs5tj9kjo4p11pt1p68qci11td16.png-95.1kB

graph中节点类别簇之间总是存在连接,多次使用拉普拉斯平滑,不同类别的顶点特征会收敛到同一个值。假设graph中有k个连通分量,各连通分量的指示向量为 1 j ( i ) \mathbb{1}^{(i)}_j 1j(i)。对称拉普拉斯算子 L s y m L_{sym} Lsym的特征值为0的特征空间,由各连通分量 D − 1 / 2 1 D^{-1/2}\mathbb{1} D1/21组成。对 L s y m L_{sym} Lsym做特征分解, L s y m = V Λ V T L_{sym} = V\Lambda V^T Lsym=VΛVT。根据图谱理论,如果图中没有二分分量,拉普拉斯矩阵的特征值范围[0, 2),特征值0对应的特征向量值为1。 m次重复拉普拉斯平滑法矩阵形式:
P ( m ) = V ( I − γ Λ ) m V T P ( 0 ) P^{(m)} = V(I-\gamma \Lambda)^mV^T P^{(0)} P(m)=V(IγΛ)mVTP(0)
由于 0 ≤ γ ≤ 1 0 \leq \gamma \leq 1 0γ1,m趋于正无穷时,m次重复平滑矩阵 V ( I − γ Λ ) m V T V(I-\gamma \Lambda)^mV^T V(IγΛ)mVT的最大特征值为1(其他特征趋于0)。结果会收敛于特征值为1的特征向量,比如 D − 1 / 2 1 D^{-1/2}\mathbb{1} D1/21的线性组合。回到图卷积,由于为graph中的每个节点加上self-loop,graph中没有二分组件。所以over-smoothing会使节点的特征没有差异。下图直观的给出了over-smoothing的影响。

image_1csggn7cpel31iuu18vj73vr0q9.png-147.3kB

另一方面,Kipf and Welling 2017中的GCNs使用了两层卷积,然而图卷积是一个局部滤镜,它线性聚合邻居节点的特征。当GCNs模型层数太浅,标记的数据太少时,标签信息恐怕不能够传播到整个图。在图Figure1,中可以看到当graph中标记数据的比率下降时,模型效果下降的速度很快。
image_1cs5thtnbjij1bvv1dcbuki3os9.png-124.8kB

Solutions

图卷积可以是一个强大的特征提取器,可以简化分类任务,但是它是一个局部滤镜,无法适应少量标记样本。这里作者给出的解决办法是从增加标记节点的数量入手。提出Co-Training和Self-Training方法,实际训练的时候,综合Co-Training和Self-Training两个方法,将random walk和GCN模型预测的高度置信的样本加入训练。至于两个方法标记的样本,可以取并集也可以取交集。视实际表现来定。

Co-Training

利用随机游走模型对图全局结构信息的探索,与GCN协同训练。随机游走是对GCN的补充。随机游走模型直接标记一部分置信度高的节点,这些节点都是每类labeled节点的最近邻居。将这部分模型标记的节点加入到labeled训练集,训练GCN。

这里作者选择PARW作为协同训练的随机游走模型。首先,计算标准化absorption概率矩阵, P = ( L + α Λ ) − 1 P=(L + \alpha \Lambda)^{-1} P=(L+αΛ)1 P i , j P_{i,j} Pi,j表示节点i与节点j来自相同类别的概率。然后计算顶点属于类别K的置信度。将已经有标签的节点划分为集合 S 1 , S 2 , . . . \mathcal{S}_1,\mathcal{S}_2,... S1,S2,...,其中, S k \mathcal{S}_k Sk表示标签为类别K的节点集合。对每个类别K,计算置信度矩阵 p = ∑ j ∈ S k P : , j \mathbf{p}=\sum_{j\in \mathcal{S}_k} P_{:,j} p=jSkP:,j,那么 p i p_i pi就是顶点i属于类别k的置信度。最后,选择置信度最高的t个节点,将它们标签记为K,加入样本集,训练GCN。

Self-Training

另一个增加labeled节点的方式是self-train。首先,在当前标记节点上训练GCN,使用训练好GCN预测节点的类别,然后,比较softmax得分,选择最有信心的预测节点和预测标签,加入有标签训练集。这样,利用扩增的数据集,继续训练GCN。当然,使用之前pre-train的GCN初始化参数。

对比高度置信的GCN预测节点和原始标记节点,如果它们标签相同,那么它们特征必然近似。将这些预测节点加入训练集有助于提升鲁棒性和准确度。

Experiment

分别在 CiteSeer, Cora, 和 PubMed 三个文献引用数据集上测试模型表现。对与ParWalks设置 Λ = I , α = 1 0 − 6 \Lambda = I, \alpha = 10^{-6} Λ=I,α=106。GCNs超参数设置与(Kipf and Welling 2017)中一样。GCN+V中,采样另外的500个标记样本作为验证集。从实验结果中可以看出,当训练数据很小时,本方法表现优于GCN。当训练数据足够大时,效果与GCN持平,因为足够多的标记样本已经可以训练出一个比较好的分类器了。

image_1csj4u0qfdqo6l0fvq1o5u1ndam.png-131kB
image_1csj509181du5if91alc1e5aijd1g.png-131.6kB

相关资料

https://arxiv.org/pdf/1801.07606.pdf
https://graphics.stanford.edu/courses/cs468-12-spring/LectureSlides/06_smoothing.pdf
http://www.kyb.mpg.de/fileadmin/user_upload/files/publications/attachments/Luxburg07_tutorial_4488%5b0%5d.pdf
http://www1.se.cuhk.edu.hk/~manchoso/papers/parw-nips12.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值