论文笔记:Semi-Supervised Classification with Graph Convolutional Networks

Semi-Supervised Classification with Graph Convolutional Networks

1、四个问题

  1. 要解决什么问题?
    • 半监督任务。给定一个图,其中一部节点已知标签,剩下的未知,要对整个图上的节点进行分类。
  2. 用了什么方法解决?
    • 提出了一种卷积神经网络的变种,即提出了一种新的图卷积方法。
    • 使用谱图卷积(spectral graph convolution)的局部一阶近似,来确定卷积结构。
    • 所提出的的网络可以学习图上局部结构的特征,并进行编码。
  3. 效果如何?
    • 在引文网络(citation network)和知识图谱(knowledge graph)等的数据集上比其之前的方法效果更好。
  4. 还存在什么问题?
    • 最大的问题就是对GPU显存的占用较大,要使用较大规模的图来训练网络只能用CPU替代。
    • 文中的模型只是为无向图设计的,并不支持对边特征的提取。尽管能够将一个有向图看做一个无向加权联合图,但这个模型对于有向图的支持能力还是有限。

2、论文概述

1、简介

  • 使用神经网络 f ( X , A ) f(X, A) f(X,A)对图的结构进行编码,对所有带标签的节点进行有监督训练。
  • X X X是输入数据, A A A是图邻接矩阵。
  • 在图的邻接矩阵上调整 f ( ⋅ ) f(\cdot) f()能让模型从监督损失 L 0 L_0 L0

2、图上的快速近似卷积

  • 图卷积的前向传播公式:

(1) H ( l + 1 ) = σ ( D ~ − 1 2 A ~ D ~ − 1 2 H ( l ) W ( l ) ) H^{(l+1)} = \sigma( \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)} ) \tag{1} H(l+1)=σ(D~21A~D~21H(l)W(l))(1)

  • $ \tilde{A} = A + I_N $ 是无向图 G G G的自环邻接矩阵。
  • I N I_N IN是单位矩阵。
  • $ \tilde{D}{ii} = \sum_j \tilde{A}{ij} $ 是 A ~ \tilde{A} A~的度矩阵。
  • W ( l ) W^{(l)} W(l)是可训练的权重矩阵,即网络的参数。
  • σ ( ⋅ ) \sigma(\cdot) σ()是激活函数,比如ReLU。
  • H ( l ) ∈ R N × D H^{(l)} \in \mathbb{R}^{N \times D} H(l)RN×D是第 l l l层的激活矩阵,即网络的输出。 H ( 0 ) = X H^{(0)}=X H(0)=X,第一层为输入。

2、谱图卷积

2.1、原始GCN
  • 将图卷积通过傅里叶变换拓展到图的频域中。
  • 对于一个输入信号 x ∈ R N x \in \mathbb{R}^N xRN,在傅里叶域中取一个 θ ∈ R N \theta \in \mathbb{R}^N θRN为参数的滤波器 g θ = d i a g ( θ ) g_{\theta} = diag(\theta) gθ=diag(θ)
  • (2) g θ ⋆ x = U g θ U ⊤ x g_{\theta} \star x=U g_{\theta} U^{\top} x \tag{2} gθx=UgθUx(2)
    • U U U是图的拉普拉斯矩阵 L L L的特征向量矩阵。
    • 拉普拉斯矩阵: L = I N − D − 1 2 A D − 1 2 = U Λ U T L=I_N - D^{-\frac{1}{2}} A D^{-\frac{1}{2}} = U \Lambda U^T L=IND21AD21=UΛUT
      • Λ \Lambda Λ是拉普拉斯矩阵 L L L的特征值组成的对角矩阵。
      • U T x U^T x UTx就是图上的傅里叶变换。
    • 也可以将 g θ g_{\theta} gθ看成是拉普拉斯矩阵 L L L的一系列特征值组成的对角矩阵 g θ ( Λ ) g_{\theta}(\Lambda) gθ(Λ)
    • 公式(2)中做的事就是,借助傅里叶变换,将原始信号 x x x变换到频域,在频域乘上一个信号,再做傅里叶逆变换还原到空域。由傅里叶变换的特性有,在频域相乘相当于空域卷积,这样就回避了空域上对不确定结构的图进行卷积的问题。
  • 这是最原始的GCN,但是这套方法的缺点就是计算非常复杂,每次需要对矩阵进行分解,如果图的规模非常大,这会带来巨大的计算开销。
2.2、加速版本的GCN
  • 为了减少计算量,有人提出一个特殊的卷积核设计方法,即:将 g θ ( Λ ) g_{\theta}(\Lambda) gθ(Λ)用切比雪夫多项式进行 K K K阶逼近。
  • 切比雪夫多项式:
    • T 0 ( x ) = 1 T_0 (x) = 1 T0(x)=1
    • T 1 ( x ) = x T_1(x) = x T1(x)=x
    • T k ( x ) = 2 x T k − 1 ( x ) − T k − 1 ( x ) T_k(x) = 2x T_{k-1}(x) - T_{k-1}(x) Tk(x)=2xTk1(x)Tk1(x)
  • 改进的卷积核:
    • (3) g θ ′ ( Λ ) ≈ ∑ k = 0 K θ k ′ T k ( Λ ~ ) g_{\theta^{\prime}}(\Lambda) \approx \sum_{k=0}^{K} \theta_{k}^{\prime} T_{k}(\tilde{\Lambda}) \tag{3} gθ(Λ)k=0KθkTk(Λ~)(3)
      • Λ ~ = 2 λ max ⁡ Λ − I N \tilde{\Lambda}=\frac{2}{\lambda_{\max }} \Lambda-I_{N} Λ~=λmax2ΛIN λ m a x \lambda_{max} λmax是拉普拉斯矩阵 L L L中最大的特征值。
      • θ ′ ∈ R K \theta^{\prime} \in \mathbb{R}^{K} θRK是切比雪夫多项式的系数。
  • 将该卷积核代入图卷积的公式:
    • (4) g θ ′ ⋆ x ≈ ∑ k = 0 K θ k ′ T k ( L ~ ) x g_{\theta^{\prime}} \star x \approx \sum_{k=0}^{K} \theta_{k}^{\prime} T_{k}(\tilde{L}) x \tag{4} gθxk=0KθkTk(L~)x(4)
      • L ~ = 2 λ max ⁡ L − I N \tilde{L}=\frac{2}{\lambda_{\max }} L-I_{N} L~=λmax2LIN
      • 这个公式为拉普拉斯算子的 K K K阶切比雪夫多项式形式,即它受到距离中央节点 K K K步以内的节点影响。
  • 这里的加速版本的GCN,将参数减少到了 K K K个,并且不再需要对拉普拉斯矩阵做特征分解,直接使用即可。
2.3、线性模型
  • K = 1 K=1 K=1时,模型有两个参数,GCN公式:
  • (4) g θ ′ ⋆ x ≈ ∑ k = 0 K θ k ′ T k ( L ~ ) x g_{\theta^{\prime}} \star x \approx \sum_{k=0}^{K} \theta_{k}^{\prime} T_{k}(\tilde{L}) x \tag{4} gθxk=0KθkTk(L~)x(4)
  • 这里的公式(4)就对应一个GCN层。
  • 作者在论文中提到,通过使用这种形式的GCN,我们可以缓解模型在图的局部结构上的过拟合。此外,很大程度上减小了计算开销,使得我们可以堆叠多个GCN来获得一个更深的模型,提取特征。
  • 近似地认为 λ m a x ≈ 2 \lambda_{max} \approx 2 λmax2,公式(5)可以简化为下式:
  • (5) g θ ′ ⋆ x ≈ θ 0 ′ x + θ 1 ′ ( L − I N ) x = θ 0 ′ x − θ 1 ′ D − 1 2 A D − 1 2 x g_{\theta^{\prime}} \star x \approx \theta_{0}^{\prime} x+\theta_{1}^{\prime}\left(L-I_{N}\right) x=\theta_{0}^{\prime} x-\theta_{1}^{\prime} D^{-\frac{1}{2}} A D^{-\frac{1}{2}} x \tag{5} gθxθ0x+θ1(LIN)x=θ0xθ1D21AD21x(5)
    • 这里有两个自由参数: θ 0 ′ \theta_0^{\prime} θ0 θ 1 ′ \theta_1^{\prime} θ1。滤波器的参数在整个图上共享。
    • 通过连续堆叠这种形式的滤波器,可以作用到卷积节点的 K K K阶领域上,其中 K K K是卷积层的个数。
  • 进一步简化公式(5)中的模型,公式如下:
  • (6) g θ ⋆ x ≈ θ ( I N + D − 1 2 A D − 1 2 ) x g_{\theta} \star x \approx \theta\left(I_{N}+D^{-\frac{1}{2}} A D^{-\frac{1}{2}}\right) x \tag{6} gθxθ(IN+D21AD21)x(6)
    • 这里令 θ = θ 0 ′ = − θ 1 ′ \theta=\theta_{0}^{\prime}=-\theta_{1}^{\prime} θ=θ0=θ1,将公式(5)中的两个参数都替换成了 θ \theta θ
    • 但是,这里的 I N + D − 1 2 A D − 1 2 I_{N}+D^{-\frac{1}{2}} A D^{-\frac{1}{2}} IN+D21AD21的特征值范围为 [ 0 , 2 ] [0, 2] [0,2],这可能会导致数值不稳定和梯度消失/爆炸。所以还需要增加一步归一化操作。
    • 归一化:
      • I N + D − 1 2 A D − 1 2 → D ~ − 1 2 A ~ D ~ − 1 2 I_{N}+D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \rightarrow \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} IN+D21AD21D~21A~D~21
      • A ~ = A + I N \tilde{A}=A+I_{N} A~=A+IN
      • D ~ i i = ∑ j A ~ i j \tilde{D}_{i i}=\sum_{j} \tilde{A}_{i j} D~ii=jA~ij
  • 现在可以将卷积操作推广到信号 X ∈ R C × F X \in \mathbb{R}^{C \times F} XRC×F,输入通道数为 C C C,有 F F F个滤波器。推广的图卷积形式如下:
  • (7) Z = D ~ − 1 2 A ~ D ~ − 1 2 X Θ Z=\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} X \Theta \tag{7} Z=D~21A~D~21XΘ(7)
    • Θ ∈ R C × F \Theta \in \mathbb{R}^{C \times F} ΘRC×F是滤波器的参数矩阵。
    • Z ∈ R N × F Z \in \mathbb{R}^{N \times F} ZRN×F是卷积后输出的信号矩阵。

3、半监督节点分类

  • 回到半监督任务上,前面介绍了优化后的图卷积结构。在现在的半监督任务中,作者希望通过已知的数据 X X X和邻接矩阵 A A A来训练图卷积网络 f ( X , A ) f(X, A) f(X,A)。 作者认为,在邻接矩阵中包含了一些 X X X中没有的隐含的图的结构信息,而我们可以利用这些信息进行推理。
  • 下图中,左图是一个GCN网络示意图,输入有 C C C维特征,输出有 F F F维特征,中间有若干隐藏层, X X X是训练数据, Y Y Y是标签。右图是使用一个两层GCN在Cora数据集上(只是用了5%的标签)得到的可视化结果。
  • 在这里插入图片描述
3.1、实例
  • 在预处理中,首先计算好: 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
  • 然后,前向传播的模型可以写成下式:
  • (8) Z = f ( X , A ) = softmax ⁡ ( A ^ ReLU ⁡ ( A ^ X W ( 0 ) ) W ( 1 ) ) Z=f(X, A)=\operatorname{softmax}\left(\hat{A} \operatorname{ReLU}\left(\hat{A} X W^{(0)}\right) W^{(1)}\right) \tag{8} Z=f(X,A)=softmax(A^ReLU(A^XW(0))W(1))(8)
    • 这是一个很简单的两层GCN。
    • W ( 0 ) ∈ R C × H W^{(0)} \in \mathbb{R}^{C \times H} W(0)RC×H是输入到隐藏层的权重矩阵,隐藏层上的特征维度是 H H H
    • W ( 1 ) ∈ R H × F W^{(1)} \in \mathbb{R}^{H \times F} W(1)RH×F是隐藏层到输出的权重矩阵。
    • s o f t m a x softmax softmax就不多说了。
  • 损失函数采用交叉熵,评估所有有标签的数据:
  • (9) L = − ∑ l ∈ Y L ∑ f = 1 F Y l f ln ⁡ Z l f \mathcal{L}=-\sum_{l \in \mathcal{Y}_{L}} \sum_{f=1}^{F} Y_{l f} \ln Z_{l f} \tag{9} L=lYLf=1FYlflnZlf(9)
  • Y L \mathcal{Y}_{L} YL为带标签节点组成的集合。
  • 训练:SGD,引入了BN和Dropout。

4、实验

  • 数据集描述:
  • 在这里插入图片描述
  • 半监督分类准确率:
  • 在这里插入图片描述

3、参考资料

  • 28
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值