Semi-Supervised Classification with Graph Convolutional Networks
1、四个问题
- 要解决什么问题?
- 半监督任务。给定一个图,其中一部节点已知标签,剩下的未知,要对整个图上的节点进行分类。
- 用了什么方法解决?
- 提出了一种卷积神经网络的变种,即提出了一种新的图卷积方法。
- 使用谱图卷积(spectral graph convolution)的局部一阶近似,来确定卷积结构。
- 所提出的的网络可以学习图上局部结构的特征,并进行编码。
- 效果如何?
- 在引文网络(citation network)和知识图谱(knowledge graph)等的数据集上比其之前的方法效果更好。
- 还存在什么问题?
- 最大的问题就是对GPU显存的占用较大,要使用较大规模的图来训练网络只能用CPU替代。
- 文中的模型只是为无向图设计的,并不支持对边特征的提取。尽管能够将一个有向图看做一个无向加权联合图,但这个模型对于有向图的支持能力还是有限。
2、论文概述
1、简介
- 使用神经网络f(X,A)对图的结构进行编码,对所有带标签的节点进行有监督训练。
-
X是输入数据,A是图邻接矩阵。
- 在图的邻接矩阵上调整f(⋅)能让模型从监督损失L0。
2、图上的快速近似卷积
H(l+1)=σ(D~−21A~D~−21H(l)W(l))(1)
- $ \tilde{A} = A + I_N $ 是无向图G的自环邻接矩阵。
-
IN是单位矩阵。
- $ \tilde{D}{ii} = \sum_j \tilde{A}{ij} $ 是A~的度矩阵。
-
W(l)是可训练的权重矩阵,即网络的参数。
-
σ(⋅)是**函数,比如ReLU。
-
H(l)∈RN×D是第l层的**矩阵,即网络的输出。H(0)=X,第一层为输入。
2、谱图卷积
2.1、原始GCN
- 将图卷积通过傅里叶变换拓展到图的频域中。
- 对于一个输入信号x∈RN,在傅里叶域中取一个θ∈RN为参数的滤波器gθ=diag(θ):
-
gθ⋆x=UgθU⊤x(2)
-
U是图的拉普拉斯矩阵L的特征向量矩阵。
- 拉普拉斯矩阵:L=IN−D−21AD−21=UΛUT。
-
Λ是拉普拉斯矩阵L的特征值组成的对角矩阵。
-
UTx就是图上的傅里叶变换。
- 也可以将gθ看成是拉普拉斯矩阵L的一系列特征值组成的对角矩阵gθ(Λ)。
- 公式(2)中做的事就是,借助傅里叶变换,将原始信号x变换到频域,在频域乘上一个信号,再做傅里叶逆变换还原到空域。由傅里叶变换的特性有,在频域相乘相当于空域卷积,这样就回避了空域上对不确定结构的图进行卷积的问题。
- 这是最原始的GCN,但是这套方法的缺点就是计算非常复杂,每次需要对矩阵进行分解,如果图的规模非常大,这会带来巨大的计算开销。
2.2、加速版本的GCN
- 为了减少计算量,有人提出一个特殊的卷积核设计方法,即:将gθ(Λ)用切比雪夫多项式进行K阶逼近。
- 切比雪夫多项式:
- T0(x)=1
- T1(x)=x
- Tk(x)=2xTk−1(x)−Tk−1(x)
- 改进的卷积核:
-
gθ′(Λ)≈k=0∑Kθk′Tk(Λ~)(3)
-
Λ~=λmax2Λ−IN。λmax是拉普拉斯矩阵L中最大的特征值。
-
θ′∈RK是切比雪夫多项式的系数。
- 将该卷积核代入图卷积的公式:
-
gθ′⋆x≈k=0∑Kθk′Tk(L~)x(4)
-
L~=λmax2L−IN。
- 这个公式为拉普拉斯算子的K阶切比雪夫多项式形式,即它受到距离*节点K步以内的节点影响。
- 这里的加速版本的GCN,将参数减少到了K个,并且不再需要对拉普拉斯矩阵做特征分解,直接使用即可。
2.3、线性模型
-
K=1时,模型有两个参数,GCN公式:
- gθ′⋆x≈k=0∑Kθk′Tk(L~)x(4)
- 这里的公式(4)就对应一个GCN层。
- 作者在论文中提到,通过使用这种形式的GCN,我们可以缓解模型在图的局部结构上的过拟合。此外,很大程度上减小了计算开销,使得我们可以堆叠多个GCN来获得一个更深的模型,提取特征。
- 近似地认为λmax≈2,公式(5)可以简化为下式:
-
gθ′⋆x≈θ0′x+θ1′(L−IN)x=θ0′x−θ1′D−21AD−21x(5)
- 这里有两个*参数:θ0′和θ1′。滤波器的参数在整个图上共享。
- 通过连续堆叠这种形式的滤波器,可以作用到卷积节点的K阶领域上,其中K是卷积层的个数。
- 进一步简化公式(5)中的模型,公式如下:
-
gθ⋆x≈θ(IN+D−21AD−21)x(6)
- 这里令θ=θ0′=−θ1′,将公式(5)中的两个参数都替换成了θ。
- 但是,这里的IN+D−21AD−21的特征值范围为[0,2],这可能会导致数值不稳定和梯度消失/爆炸。所以还需要增加一步归一化操作。
- 归一化:
- IN+D−21AD−21→D~−21A~D~−21
- A~=A+IN
- D~ii=j∑A~ij
- 现在可以将卷积操作推广到信号X∈RC×F,输入通道数为C,有F个滤波器。推广的图卷积形式如下:
-
Z=D~−21A~D~−21XΘ(7)
-
Θ∈RC×F是滤波器的参数矩阵。
-
Z∈RN×F是卷积后输出的信号矩阵。
3、半监督节点分类
- 回到半监督任务上,前面介绍了优化后的图卷积结构。在现在的半监督任务中,作者希望通过已知的数据X和邻接矩阵A来训练图卷积网络f(X,A)。 作者认为,在邻接矩阵中包含了一些X中没有的隐含的图的结构信息,而我们可以利用这些信息进行推理。
- 下图中,左图是一个GCN网络示意图,输入有C维特征,输出有F维特征,中间有若干隐藏层,X是训练数据,Y是标签。右图是使用一个两层GCN在Cora数据集上(只是用了5%的标签)得到的可视化结果。
![论文笔记:Semi-Supervised Classification with Graph Convolutional Networks 论文笔记:Semi-Supervised Classification with Graph Convolutional Networks](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzc4Ni9jMGMxYzlmYzBiZjg2NzczMTJhOGRjZTNhY2JhYjQ1YS5wbmc=)
3.1、实例
- 在预处理中,首先计算好:A^=D~−21A~D~−21。
- 然后,前向传播的模型可以写成下式:
-
Z=f(X,A)=softmax(A^ReLU(A^XW(0))W(1))(8)
- 这是一个很简单的两层GCN。
-
W(0)∈RC×H是输入到隐藏层的权重矩阵,隐藏层上的特征维度是H。
-
W(1)∈RH×F是隐藏层到输出的权重矩阵。
-
softmax就不多说了。
- 损失函数采用交叉熵,评估所有有标签的数据:
- L=−l∈YL∑f=1∑FYlflnZlf(9)
-
YL为带标签节点组成的集合。
- 训练:SGD,引入了BN和Dropout。
4、实验
- 数据集描述:
![论文笔记:Semi-Supervised Classification with Graph Convolutional Networks 论文笔记:Semi-Supervised Classification with Graph Convolutional Networks](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQ1MS85MjRmM2ZiMGU2ZTQwOTI0ZDc1YjBhZDg5NjYxOTUwYi5wbmc=)
- 半监督分类准确率:
![论文笔记:Semi-Supervised Classification with Graph Convolutional Networks 论文笔记:Semi-Supervised Classification with Graph Convolutional Networks](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzE0MC85MDUzZmM2NWM0NGI3YzJmMjBkYmEzMmMwZDljNzY0NC5wbmc=)
3、参考资料