图卷积目标
实现一个函数, Z = f ( X , A ) Z=f(X,A) Z=f(X,A), 其中 X ∈ R N × D 1 X\in R^{N\times D_1} X∈RN×D1为输入特征, A ∈ R N × N A\in R^{N\times N} A∈RN×N为稀疏邻接矩阵, Z ∈ R N × D 2 Z\in R^{N\times D_2} Z∈RN×D2为输出特征, N N N是图 (graph) 中的节点数.
Naive GCN
信号在空域的卷积等于其在频域相乘, 即 f ∗ g = F − 1 ( F ( f ) F ( g ) ) f*g=F^{-1}(F(f)F(g)) f∗g=F−1(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=D−A
- 对其进行正则化则有 L = I − D − 1 2 A D − 1 2 L=I-D^{-\frac{1}{2}}AD^{-\frac{1}{2}} L=I−D−21AD−21, 其中 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), g∗x=U(UTg⊙UTx),其中 ⊙ \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.
g∗x=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)=2xTk−1(x)−Tk−2(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~=λmax2L−I
滤波操作可以进一步写成:
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=1∑Kθ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(K∣E∣), 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(L−I)=θ0−θ1D−21AD−21
约束
θ
=
θ
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+D−21AD−21)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