图卷积(4)——谱域图卷积(3)
介绍三种谱域图卷积网络——SCNN、ChebNet和GCN。三者均是以下式子的特例:
x
⋆
G
g
θ
=
U
g
θ
U
T
x
=
U
(
g
^
(
λ
1
)
⋱
g
^
(
λ
n
)
)
(
x
^
(
λ
1
)
x
^
(
λ
2
)
⋮
x
^
(
λ
n
)
)
x \star_{G} g_{\theta}=U g_{\theta} U^{T} x=U\left(\begin{array}{ccc} \hat{g}\left(\lambda_{1}\right) & & \\ & \ddots & \\ & & \hat{g}\left(\lambda_{n}\right) \end{array}\right)\left(\begin{array}{c} \hat{x}\left(\lambda_{1}\right) \\ \hat{x}\left(\lambda_{2}\right) \\ \vdots \\ \hat{x}\left(\lambda_{n}\right) \end{array}\right)
x⋆Ggθ=UgθUTx=U⎝⎛g^(λ1)⋱g^(λn)⎠⎞⎝⎜⎜⎜⎛x^(λ1)x^(λ2)⋮x^(λn)⎠⎟⎟⎟⎞
假设一层图卷积的输入为
X
∈
R
n
×
C
X \in \mathbb{R}^{n \times C}
X∈Rn×C,输出便为
Y
∈
R
n
×
F
Y \in \mathbb{R}^{n \times F}
Y∈Rn×F,
n
n
n代表图中的
n
n
n个节点,
C
C
C代表每个节点有
C
C
C个通道。每一次图卷积,变化的是每个节点信号的通道数(比如这里写的
C
C
C到
F
F
F),不变的是
n
n
n个节点的连接方式。
SCNN
出自论文Spectral networks and locally connected networks on graphs,中心思想是用可以学习的对角矩阵代替谱域的卷积核。具体公式定义如下:
x
k
+
1
,
j
=
h
(
U
∑
i
=
1
C
k
−
1
F
k
,
i
,
j
U
T
x
k
,
i
)
(
j
=
1
⋯
C
k
)
F
k
,
i
,
j
=
(
θ
1
⋱
θ
n
)
x_{k+1, j}=h\left(U \sum_{i=1}^{C_{k-1}} F_{k, i, j} U^{T} x_{k, i}\right)\left(j=1 \cdots C_{k}\right) \quad F_{k, i, j}=\left(\begin{array}{lll} \theta_{1} & \\ & \ddots \\ & & \theta_{n} \end{array}\right)
xk+1,j=h(Ui=1∑Ck−1Fk,i,jUTxk,i)(j=1⋯Ck)Fk,i,j=⎝⎛θ1⋱θn⎠⎞
其中(老样子,式子介绍了),
C
k
C_k
Ck是第
k
k
k层的通道个数,
x
k
,
i
∈
R
n
x_{k,i} \in \mathbb{R}^{n}
xk,i∈Rn代表第
k
k
k层的第
i
i
i个通道的特征图,
F
k
,
i
,
j
∈
R
n
×
n
F_{k,i,j}\in \mathbb{R}^{n \times n}
Fk,i,j∈Rn×n代表参数化的谱域图卷积的卷积核矩阵,是一个对角矩阵,包含了
n
n
n个可学习的参数,
h
(
⋅
)
h(\cdot)
h(⋅)为激活函数。
当输入和输出通道数都为1时,上述公式便简化为以下式子,便于理解
x
k
+
1
=
h
(
U
F
k
U
T
x
k
)
x_{k+1} = h(UF_kU^Tx_k)
xk+1=h(UFkUTxk)
U
T
x
k
U^Tx_k
UTxk表是从空域到谱域,
F
k
U
T
x
k
F_kU^Tx_k
FkUTxk表示对每一个“频率分量”放大或者缩小,最后
U
F
k
U
T
x
k
UF_kU^Tx_k
UFkUTxk表示从谱域到空域。
SCNN的缺点
- 从上述公式可以看出, F F F的参数量为 k × i × j × n k \times i \times j \times n k×i×j×n,参数复杂度过大,计算复杂度为 O ( n ) O(n) O(n),当节点数 n n n过多时容易过拟合;
- 计算拉普拉斯矩阵的特征值分解十分耗时,计算复杂度为 O ( n 3 ) O(n^{3}) O(n3),当面临社交网络这种节点数达到上百万的情况时,计算消耗过于庞大;
- 无法保证局部连接;
ChebNet
为了解决SCNN计算复杂度过高的问题,ChebNet采用了Chebyshev(切比雪夫)多项式来代替谱域的卷积核。论文地址:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering
Chebyshev多项式
切比雪夫多项式在逼近理论中有重要的应用,可用于多项式插值。具体形式如下:
T
0
(
x
)
=
1
T
1
(
x
)
=
x
T
n
+
1
(
x
)
=
2
x
T
n
(
x
)
−
T
n
−
1
(
x
)
\begin{aligned} T_0(x) &= 1 \\ T_1(x) &= x \\ T_{n+1}(x) &= 2xT_n(x) - T_{n-1}(x) \end{aligned}
T0(x)T1(x)Tn+1(x)=1=x=2xTn(x)−Tn−1(x)
那对于矩阵来说,只需切比雪夫多项式中第一项的1改为
I
I
I,
x
x
x改为矩阵
L
L
L即可。
理解ChebNet
将谱域图卷积核换成切比雪夫多项式,原用的对角矩阵定义为
g
θ
=
diag
(
U
T
g
)
g_{\theta}=\operatorname{diag}\left(U^{T} g\right)
gθ=diag(UTg),那么我们定义
Λ
^
=
2
λ
max
−
I
n
\hat{\Lambda}=\frac{2}{\lambda_{\max }}-I_{n}
Λ^=λmax2−In,则
g
θ
(
Λ
)
=
∑
k
=
0
K
β
k
T
k
(
Λ
^
)
g_{\theta}(\Lambda)=\sum_{k=0}^{K} \beta_{k} T_{k}(\hat{\Lambda})
gθ(Λ)=∑k=0KβkTk(Λ^),那么图卷积操作便可以化简为:
x
⋆
G
g
θ
=
U
g
θ
U
T
x
=
U
∑
k
=
0
K
β
k
T
k
(
Λ
^
)
U
T
x
=
∑
k
=
0
K
β
k
T
k
(
U
Λ
^
U
T
)
x
=
∑
k
=
0
K
β
k
T
k
(
L
^
)
x
\begin{aligned} x \star_{G}g_{\theta} &= Ug_{\theta}U^Tx \\ &=U \sum_{k=0}^{K} \beta_{k} T_{k}(\hat{\Lambda}) U^{T}x \\ &= \sum_{k=0}^{K} \beta_{k} T_{k}\left(U \hat{\Lambda} U^{T}\right) x \\ &= \sum_{k=0}^{K} \beta_{k} T_{k}\left( \hat{L} \right) x \end{aligned}
x⋆Ggθ=UgθUTx=Uk=0∑KβkTk(Λ^)UTx=k=0∑KβkTk(UΛ^UT)x=k=0∑KβkTk(L^)x
第二行到第三行推导过程略,如果是大佬可以自行推导。.这样一来,我们便不再需要对拉普拉斯矩阵进行特征分解获得其特征向量了,可以直接使用拉普拉斯矩阵。
ChebNet特点
- 卷积核中只有参数 β k \beta_k βk需要学习,一共 k + 1 k+1 k+1个参数,大大减少了参数量;
- 采用切比雪夫多项式代替谱域图卷积的卷积核后,不需要再对拉普拉斯矩阵进行特征分解,省略了最耗时的步骤;
- 卷积核有了严格的空间局限性, k k k就是卷积核的“感受野半径”,即将距离中心节点 k k k个节点作为邻域节点( k = 1 k=1 k=1时便相当于普通的 3 × 3 3\times3 3×3卷积,邻域为1);
GCN
GCN,出自论文Semi-Supervised Classification With Graoh Convolutional Networks,可以视为对ChebNet的进一步简化,GCN仅仅考虑1阶切比雪夫多项式的情况:
T
0
(
L
^
)
=
I
,
T
1
(
L
^
)
=
L
^
L
^
=
2
λ
max
L
−
I
n
λ
max
=
2
L
=
I
n
−
D
−
1
/
2
W
D
−
1
/
2
\begin{aligned} T_0(\hat{L}&)=I, T_1(\hat{L})=\hat{L} \\ \hat{L}&=\frac{2}{\lambda_{\max }} L-I_{n} \\ \lambda&_{\max} = 2 \\ L=I_n-&D^{-1/2}WD^{-1/2} \end{aligned}
T0(L^L^λL=In−)=I,T1(L^)=L^=λmax2L−Inmax=2D−1/2WD−1/2
那么图卷积操作便可以写为:
x
⋆
G
g
θ
=
∑
k
=
0
K
β
k
T
k
(
L
^
)
x
=
∑
k
=
0
1
β
k
T
k
(
L
^
)
x
=
β
0
T
0
(
L
^
)
x
+
β
1
T
1
(
L
^
)
x
=
(
β
0
+
β
1
L
^
)
x
=
(
β
0
+
β
1
(
L
−
I
n
)
)
x
=
(
β
0
−
β
1
(
D
−
1
/
2
W
D
−
1
/
2
)
)
x
\begin{aligned} x \star_{G}g_{\theta} &= \sum_{k=0}^{K} \beta_{k} T_{k}\left( \hat{L} \right) x = \sum_{k=0}^{1} \beta_{k} T_{k}\left( \hat{L} \right) x \\ &= \beta_0T_0(\hat{L})x + \beta_1T_1(\hat{L})x \\ &= (\beta_0+\beta_1\hat{L})x \\ &= (\beta_0+\beta_1(L-I_n))x \\ &= (\beta_0-\beta_1(D^{-1/2}WD^{-1/2}))x \end{aligned}
x⋆Ggθ=k=0∑KβkTk(L^)x=k=0∑1βkTk(L^)x=β0T0(L^)x+β1T1(L^)x=(β0+β1L^)x=(β0+β1(L−In))x=(β0−β1(D−1/2WD−1/2))x
进一步简化,令
β
0
=
−
β
1
=
θ
\beta_0=-\beta_1=\theta
β0=−β1=θ,这样使得每个卷积核需要学习的参数只有一个,那么此时图卷积操作的公式为:
x
⋆
G
g
θ
=
(
θ
(
D
−
1
/
2
W
D
−
1
/
2
+
I
n
)
)
x
x \star_{G} g_{\theta}=\left(\theta\left(D^{-1 / 2} W D^{-1 / 2}+I_{n}\right)\right) x
x⋆Ggθ=(θ(D−1/2WD−1/2+In))x
由于
D
−
1
/
2
W
D
−
1
/
2
+
I
n
D^{-1 / 2} W D^{-1 / 2}+I_{n}
D−1/2WD−1/2+In的特征值范围在
[
0
,
2
]
[0,2]
[0,2],如果在深度神经网络中使用该算子,那么在经过很多层的梯度反传之后,会导致数值发散和梯度弥散/爆炸。原文中,为了解决该问题,作者提出了一个renormalization trick。作者定义了一个新的邻接矩阵
W
~
=
W
+
I
n
\tilde{W}=W+I_n
W~=W+In,新的度矩阵便为
D
^
=
∑
i
W
~
i
j
\hat{D}=\sum_{i} \tilde{W}_{i j}
D^=∑iW~ij。那么最终的图卷积操作的公式为:
x
⋆
G
g
θ
=
θ
(
D
~
−
1
/
2
W
~
D
~
−
1
/
2
)
x
x \star_{G} g_{\theta}=\theta\left(\tilde{D}^{-1 / 2} \tilde{W} \tilde{D}^{-1 / 2}\right) x
x⋆Ggθ=θ(D~−1/2W~D~−1/2)x
关于GCN的思考:
- 在忽略输入和输出通道的情况下,一个卷积核需要学习的参数只有一个 θ \theta θ,极大程度上减少了参数量;
- 虽然卷积核减小了(GCN采用 k = 1 k=1 k=1时的切比雪夫多项式,邻域大小为1,相对于 3 × 3 3\times3 3×3的普通卷积),但论文作者认为可以通过堆叠多层GCN来扩大感受野;
- 将一层GCN类比到图像当中,相对于一个 3 × 3 3\times3 3×3的卷积核只有一个参数,虽然模型参数量极大程度减小了,但模型的能力也被削弱,可能难以学习一些复杂的任务;