GCN | 图卷积 | Graph Convolution 入门笔记

图卷积目标

实现一个函数, Z = f ( X , A ) Z=f(X,A) Z=f(X,A), 其中 X ∈ R N × D 1 X\in R^{N\times D_1} XRN×D1为输入特征, A ∈ R N × N A\in R^{N\times N} ARN×N为稀疏邻接矩阵, Z ∈ R N × D 2 Z\in R^{N\times D_2} ZRN×D2为输出特征, N N N是图 (graph) 中的节点数.

Naive GCN

信号在空域的卷积等于其在频域相乘, 即 f ∗ g = F − 1 ( F ( f ) F ( g ) ) f*g=F^{-1}(F(f)F(g)) fg=F1(F(f)F(g)), 其中 F F F为傅里叶变换. 常见的图卷积的做法是将图的信息转换到频域, 然后作乘, 这个过程也称为谱卷积.

对于图像而言,时频傅里叶变换的基是拉普拉斯算子的特征函数;
对于图而言, 我们可以通过对图的拉普拉斯矩阵 L L L进行特征值分解来得到图上的傅里叶变换的数学形式.他们之间的关系可以参考这个链接.

拉普拉斯矩阵的定义如下

  • D D D N × N N\times N N×N的对角矩阵, D i i D_{ii} Dii为图上结点 v i v_i vi的度
  • A A A为邻接矩阵
  • 拉普拉斯矩阵 L = D − A L=D-A L=DA
  • 对其进行正则化则有 L = I − D − 1 2 A D − 1 2 L=I-D^{-\frac{1}{2}}AD^{-\frac{1}{2}} L=ID21AD21, 其中 I I I为单位矩阵

L L L是一个实对称阵, 对其进行特征值分解得到 L = U Λ U T L=U\Lambda U^T L=UΛUT, 特征向量构成的矩阵 U U U即为图所对应的傅里叶基.
因此我们可以将图上的傅里叶变换形式化为:

  • 傅里叶变换: x ^ = U T x \hat{x}=U^Tx x^=UTx
  • 逆变换: x = U x ^ x=U\hat{x} x=Ux^

图的谱卷积从而可以形式化为 g ∗ x = U ( U T g ⊙ U T x ) , g*x=U(U^Tg\odot U^Tx), gx=U(UTgUTx),其中 ⊙ \odot 为哈达玛积 (element-wise Hadamard product).

在最早的GCN (graph convolution network) 中, 令 g θ g_\theta gθ为定义在频域的filter, 即 g ∗ x = g θ ( L ) x = g θ ( U Λ U T ) x = U g θ ( Λ ) U T x . g*x=g_\theta(L)x=g_\theta(U\Lambda U^T)x=Ug_\theta(\Lambda)U^Tx. gx=gθ(L)x=gθ(UΛUT)x=Ugθ(Λ)UTx.
g θ ( Λ ) = d i a g ( θ ) g_\theta(\Lambda)=diag(\theta) gθ(Λ)=diag(θ)为一个non-paramatric filter, 即它的所有参数 θ ∈ R N \theta\in R^N θRN是自由的.

上述计算涉及到三次 N × N N\times N N×N的矩阵乘法, 以及对 L L L的特征值分解, 计算开销为 O ( N 2 + M ) O(N^2+M) O(N2+M), 且考虑输入输出的channel数量,可学习的参数必须为 N × D 1 × D 2 N\times D_1 \times D_2 N×D1×D2

Fast Localized Spectral Filtering

上述的谱卷积计算开销很大, 不利于神经网络的训练, 于是有了利用切比雪夫多项式 (Chebyshev polynomials)进行近似的改进版.
切比雪夫多项式常用于多项式插值逼近, 可以参考这个链接对它进行进一步的了解, 其递归定义如下:

  • 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 − 2 ( x ) T_k(x)=2xT_{k-1}(x)-T_{k-2}(x) Tk(x)=2xTk1(x)Tk2(x)

于是可以近似表示 g θ ( Λ ) = ∑ k = 1 K θ k T k ( Λ ~ ) g_\theta(\Lambda)=\sum_{k=1}^K\theta_kT_k(\tilde{\Lambda}) gθ(Λ)=k=1KθkTk(Λ~), 其中 Λ ~ = 2 Λ λ m a x − I \tilde{\Lambda}=\frac{2\Lambda}{\lambda_{max}}-I Λ~=λmax2ΛI, (归一化到 [ − 1 , 1 ] [-1,1] [1,1]).
由于 U U T = I UU^T=I UUT=I, 因此 U T k ( Λ ~ ) U T = T k ( L ~ ) UT_k(\tilde{\Lambda})U^T=T_k(\tilde{L}) UTk(Λ~)UT=Tk(L~), 其中 L ~ = 2 L λ m a x − I \tilde{L}=\frac{2L}{\lambda_{max}}-I L~=λmax2LI
滤波操作可以进一步写成: g θ ( L ) x = ∑ k = 1 K θ k T k ( L ~ ) x g_\theta(L)x=\sum_{k=1}^K\theta_kT_k(\tilde{L})x gθ(L)x=k=1KθkTk(L~)x

于是可学习的参数变为了 K K K个, 类似传统卷积的kernel size, 常取 K = 3 K=3 K=3 K = 5 K=5 K=5, 计算复杂度由于递推关系和 L L L的稀疏性, 也降低为 O ( K ∣ E ∣ ) O(K|E|) O(KE), E E E为图的边数.

Layer-wise Linear model

进一步的, 如果令上述 K = 1 , λ m a x = 2 K=1,\lambda_{max}=2 K=1,λmax=2, 可以使得图卷积运算变成一个与 L L L线性相关的函数:
g θ ( L ) = θ 0 + θ 1 ( L − I ) = θ 0 − θ 1 D − 1 2 A D − 1 2 g_\theta(L)=\theta_0+\theta_1(L-I)\\ =\theta_0-\theta_1D^{-\frac{1}{2}}AD^{-\frac{1}{2}} gθ(L)=θ0+θ1(LI)=θ0θ1D21AD21
约束 θ = θ 0 = − θ 1 \theta=\theta_0=-\theta_1 θ=θ0=θ1以进一步防止过拟合,得到: g θ ∗ x = θ ( I + D − 1 2 A D − 1 2 ) x g_\theta*x=\theta(I+D^{-\frac{1}{2}}AD^{-\frac{1}{2}})x gθx=θ(I+D21AD21)x

为了防止梯度爆炸/弥散, 对A和D进行正则化:

  • A ~ = A + I \tilde{A}=A+I A~=A+I
  • D ~ i i = ∑ j A ~ i j \tilde{D}_{ii}=\sum_{j}\tilde{A}_{ij} D~ii=jA~ij
  • g θ ∗ x = θ ( D ~ − 1 2 A ~ D ~ − 1 2 ) x g_\theta*x=\theta (\tilde{D}^{-\frac{1}{2}}\tilde A \tilde D^{-\frac{1}{2}})x gθx=θ(D~21A~D~21)x

考虑channel数量, 图卷积层可表示为: 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Θ, Θ ∈ R D 1 × D 2 \Theta\in R^{D_1\times D_2} ΘRD1×D2为可学习参数

Reference

Semi-Supervised Classification with Graph Convolutional Networks
Graph Convolution Network
Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值