图卷积目标
实现一个函数,
Z=f(X,A), 其中
X∈RN×D1为输入特征,
A∈RN×N为稀疏邻接矩阵,
Z∈RN×D2为输出特征,
N是图 (graph) 中的节点数.
Naive GCN
信号在空域的卷积等于其在频域相乘, 即
f∗g=F−1(F(f)F(g)), 其中
F为傅里叶变换. 常见的图卷积的做法是将图的信息转换到频域, 然后作乘, 这个过程也称为谱卷积.
对于图像而言,时频傅里叶变换的基是拉普拉斯算子的特征函数;
对于图而言, 我们可以通过对图的拉普拉斯矩阵
L进行特征值分解来得到图上的傅里叶变换的数学形式.他们之间的关系可以参考这个链接.
拉普拉斯矩阵的定义如下
- 设
D为
N×N的对角矩阵,
Dii为图上结点
vi的度
-
A为邻接矩阵
- 拉普拉斯矩阵
L=D−A
- 对其进行正则化则有
L=I−D−21AD−21, 其中
I为单位矩阵
L是一个实对称阵, 对其进行特征值分解得到
L=UΛUT, 特征向量构成的矩阵
U即为图所对应的傅里叶基.
因此我们可以将图上的傅里叶变换形式化为:
- 傅里叶变换:
x^=UTx
- 逆变换:
x=Ux^
图的谱卷积从而可以形式化为
g∗x=U(UTg⊙UTx),其中
⊙为哈达玛积 (element-wise Hadamard product).
在最早的GCN (graph convolution network) 中, 令
gθ为定义在频域的filter, 即
g∗x=gθ(L)x=gθ(UΛUT)x=Ugθ(Λ)UTx.
gθ(Λ)=diag(θ)为一个non-paramatric filter, 即它的所有参数
θ∈RN是自由的.
上述计算涉及到三次
N×N的矩阵乘法, 以及对
L的特征值分解, 计算开销为
O(N2+M), 且考虑输入输出的channel数量,可学习的参数必须为
N×D1×D2个
Fast Localized Spectral Filtering
上述的谱卷积计算开销很大, 不利于神经网络的训练, 于是有了利用切比雪夫多项式 (Chebyshev polynomials)进行近似的改进版.
切比雪夫多项式常用于多项式插值逼近, 可以参考这个链接对它进行进一步的了解, 其递归定义如下:
-
T0(x)=1
-
T1(x)=x
-
Tk(x)=2xTk−1(x)−Tk−2(x)
于是可以近似表示
gθ(Λ)=∑k=1KθkTk(Λ~), 其中
Λ~=λmax2Λ−I, (归一化到
[−1,1]).
由于
UUT=I, 因此
UTk(Λ~)UT=Tk(L~), 其中
L~=λmax2L−I
滤波操作可以进一步写成:
gθ(L)x=k=1∑KθkTk(L~)x
于是可学习的参数变为了
K个, 类似传统卷积的kernel size, 常取
K=3或
K=5, 计算复杂度由于递推关系和
L的稀疏性, 也降低为
O(K∣E∣),
E为图的边数.
Layer-wise Linear model
进一步的, 如果令上述
K=1,λmax=2, 可以使得图卷积运算变成一个与
L线性相关的函数:
gθ(L)=θ0+θ1(L−I)=θ0−θ1D−21AD−21
约束
θ=θ0=−θ1以进一步防止过拟合,得到:
gθ∗x=θ(I+D−21AD−21)x
为了防止梯度爆炸/弥散, 对A和D进行正则化:
-
A~=A+I
-
D~ii=∑jA~ij
-
gθ∗x=θ(D~−21A~D~−21)x
考虑channel数量, 图卷积层可表示为:
Z=D~−21A~D~−21XΘ,
Θ∈RD1×D2为可学习参数
Reference
Semi-Supervised Classification with Graph Convolutional Networks
Graph Convolution Network
Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering