GCN鼻祖paper笔记

https://arxiv.org/pdf/1609.02907.pdf

GCN,论文首发于2016,被ICLR2017接收。
采用的核心原理还是谱方法的卷积,spectral convolution。
结合了一项重要工作,利用切比雪夫多项式对谱卷积的计算复杂度进行化简。

化简部分我写在了这里《图上的卷积》

回顾谱卷积定义式。

g θ ⋆ x = U g θ U T x ≈ ∑ i = 0 K − 1 [ θ k T k ( L ^ ) ] x g_{\theta}\star x =Ug_{\theta}U^{T}x \approx\sum_{i=0}^{K-1}[\theta_{k}T_{k}(\hat{L})]x gθx=UgθUTxi=0K1[θkTk(L^)]x

L ^ = 2 λ m a x L − I n = U Λ ^ U T \hat{L}=\frac{2}{\lambda_{max}}L-I_{n}=U\hat{\Lambda}U^{T} L^=λmax2LIn=UΛ^UT

我们试着从工程角度去考虑这个式子的意义。

不妨假设N个结点,每个结点由一个标量表示,
于是,输入图信号 x ∈ R N x \in R^{N} xRN,卷积结果 g θ ⋆ x ∈ R N g_{\theta}\star x \in R^{N} gθxRN
若N个结点,每个结点由一个D维向量表示,
则输入图信号 x ∈ R N × D x \in R^{N\times D} xRN×D,卷积结果 g θ ⋆ x ∈ R N × D ′ g_{\theta}\star x \in R^{N\times D'} gθxRN×D

因为x左边的那部分总是 R N × N R^{N\times N} RN×N
所以输入图信号与卷积结果的张量形状总是一致。

这就很像在2D图像上进行Conv2d的操作了不是吗?
进去一个(B,C,H,W),出来一个(B,C’,H’,W’)。
进去一个(N,D),出来一个(N,D’)。

所以我们可以更进一步地,把这条定义式抽象为一个layer。
不妨命名为图卷积层,graph convolution layer,GCL。

那么我们原本熟悉的2D图像那套搭积木方法,又可以操作起来了。
Conv2d->Conv2d->Conv2d。
GCL->GCL->GCL->GCL。
要加残差跳接还是啥的都随意。

但是上式的计算仍然有些复杂了。
我们Deep Learning的门派特征就是deeeeeeeeeeeeeeeep啊。
如果纯粹按照定义式,搭不了太深层数就熄火了。
所以论文作者为了方便stacking more layers,对定义式进行了进一步的一阶近似

操作如下:
假设 λ m a x = 2 \lambda_{max}=2 λmax=2,(稍后我们可以证明这个假设是make sense的)
于是
L ^ = 2 λ m a x L − I n = L − I n \hat{L}=\frac{2}{\lambda_{max}}L-I_{n}=L-I_n L^=λmax2LIn=LIn
又有对称normalized拉普拉斯矩阵定义式
L s y m = I n − D − 1 2 A D − 1 2 L^{sym}=I_{n}-D^{-\frac{1}{2}}AD^{-\frac{1}{2}} Lsym=InD21AD21
于是
L ^ = L − I n = − D − 1 2 A D − 1 2 \hat{L}=L-I_n=-D^{-\frac{1}{2}}AD^{-\frac{1}{2}} L^=LIn=D21AD21

再考虑定义式的一阶近似
g θ ⋆ x ≈ ∑ i = 0 K − 1 [ θ k T k ( L ^ ) ] x = θ 0 T 0 ( L ^ ) x + θ 1 T 1 ( L ^ ) x + R 余 项 ≈ θ 0 T 0 ( L ^ ) x + θ 1 T 1 ( L ^ ) x = θ 0 x + θ 1 L ^ x = θ 0 x − θ 1 D − 1 2 A D − 1 2 x g_{\theta}\star x \\ \approx \sum_{i=0}^{K-1}[\theta_{k}T_{k}(\hat{L})]x \\ = \theta_0T_0(\hat{L})x+\theta_1T_1(\hat{L})x+R_{余项} \\ \approx \theta_0T_0(\hat{L})x+\theta_1T_1(\hat{L})x \\ =\theta_0x+\theta_1\hat{L}x \\ =\theta_0x-\theta_1D^{-\frac{1}{2}}AD^{-\frac{1}{2}}x gθxi=0K1[θkTk(L^)]x=θ0T0(L^)x+θ1T1(L^)x+Rθ0T0(L^)x+θ1T1(L^)x=θ0x+θ1L^x=θ0xθ1D21AD21x

如此一来,我们在一次卷积操作中,就只需要学习两个自由参数 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1

然后作者说

In practice, it can be beneficial to constrain the number of parameters further to address overfitting
and to minimize the number of operations (such as matrix multiplications) per layer.

他还想进一步简化参数。。。真是强欲的男人啊。
于是我们强行假设 θ 0 = − θ 1 \theta_0=-\theta_1 θ0=θ1,将2个自由参数合并为1个 θ \theta θ

g θ ⋆ x ≈ θ 0 x − θ 1 D − 1 2 A D − 1 2 x ≈ θ ( I n + D − 1 2 A D − 1 2 ) x g_{\theta}\star x \\ \approx \theta_0x-\theta_1D^{-\frac{1}{2}}AD^{-\frac{1}{2}}x \\ \approx \theta(I_n+D^{-\frac{1}{2}}AD^{-\frac{1}{2}})x gθxθ0xθ1D21AD21xθ(In+D21AD21)x

不要忘记这个近似式子来自我们假设 λ m a x = 2 \lambda_{max}=2 λmax=2
又由于实对称半正定特征值非负,现在特征值的取值范围只能是[0,2]。

得到了这个近似结果后,会发现很眼熟的 I n + D − 1 2 A D − 1 2 I_n+D^{-\frac{1}{2}}AD^{-\frac{1}{2}} In+D21AD21
这个东西式子是一个常用的变形操作的一部分。

按照习惯的符号记法,邻居矩阵记为 A A A
我们定义加自边的邻接矩阵 A ~ = A + I n \tilde{A}=A+I_n A~=A+In,即将A的对角线元素置1,表示有自边。
那么类似的,我们可以求出 A ~ \tilde{A} A~的度数矩阵
D ~ i i = ∑ j A ~ i j \tilde{D}_{ii}=\sum_{j}\tilde{A}_{ij} D~ii=jA~ij
显然每行只是多了个1,因此 D ~ = D + I n \tilde{D}=D+I_n D~=D+In

容易证明:
I n + D − 1 2 A D − 1 2 = D ~ − 1 2 A ~ D ~ − 1 2 I_n+D^{-\frac{1}{2}}AD^{-\frac{1}{2}} =\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}} In+D21AD21=D~21A~D~21

我不会证。。。

I n + D − 1 2 A D − 1 2 = D − 1 2 D D − 1 2 + D − 1 2 A D − 1 2 ! = D ~ − 1 2 A ~ D ~ − 1 2 I_n+D^{-\frac{1}{2}}AD^{-\frac{1}{2}} \\ =D^{-\frac{1}{2}}DD^{-\frac{1}{2}}+D^{-\frac{1}{2}}AD^{-\frac{1}{2}} \\ !=\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}} In+D21AD21=D21DD21+D21AD21!=D~21A~D~21

于是最终可以写出
g θ ⋆ x ≈ θ 0 x − θ 1 D − 1 2 A D − 1 2 x ≈ θ D ~ − 1 2 A ~ D ~ − 1 2 x g_{\theta}\star x \\ \approx \theta_0x-\theta_1D^{-\frac{1}{2}}AD^{-\frac{1}{2}}x \\ \approx \theta\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}x gθxθ0xθ1D21AD21xθD~21A~D~21x
这是单个卷积核的近似式。

再次类比2D图像上的卷积,我们用out_channel个卷积核去扫就能得到对应数量的feature map.
同理,我们用F个图卷积核,也能输出F个新的图信号。
F个图卷积核的卷积过程可以写成矩阵形式

设图信号 X ∈ R N × D X \in \mathbb{R}^{N\times D} XRN×D,F个filter对应的参数 Θ ∈ R D × F \Theta \in \mathbb{R}^{D\times F} ΘRD×F
则有
Z = D ~ − 1 2 A ~ D ~ − 1 2 X Θ Z=\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}X\Theta Z=D~21A~D~21XΘ
卷积结果 Z ∈ R N × F Z\in \mathbb{R}^{N\times F} ZRN×F

输入 R N × D \mathbb{R}^{N\times D} RN×D,输出 R N × F \mathbb{R}^{N\times F} RN×F,有内味了?

这里比较神奇的是突然把 θ \theta θ移到最后面,之前的证明中小 θ \theta θ明明一直看作标量的,突然变成了D维向量。

再记 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,上式继续化简,得到
Z = A ^ X Θ Z=\hat{A}X\Theta Z=A^XΘ

直呼内行。

要知道,对GCN的运算而言,邻接关系是不会变的,所以 A ^ \hat{A} A^运算过程中恒不变。
每层只会接受上一层传来的X,与本层的待学习参数 Θ \Theta Θ

我们考虑一个简单的2层GCN,第一层参数为 W 0 W^0 W0,第二层 W 1 W^1 W1
则给定输入,图信号X与邻接矩阵A。
对一个半监督的多分类任务,输出肯定要softmax。
Z = f ( X , A ) = softmax ( A ^ ReLU ( A ^ X W 0 ) W 1 ) Z=f(X,A)=\text{softmax}(\hat{A}\text{ReLU}(\hat{A}XW^{0})W^{1}) Z=f(X,A)=softmax(A^ReLU(A^XW0)W1)

论文用到的数据集

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值