🚀本文简要梳理一下图卷积网络(Graph Convolutional Network)的计算问题。共分为以下4个部分,前两部分讲空域,后两部分讲频域:
- 🌔01 度矩阵 & 邻接矩阵
- 🌔02 基于空域的图卷积
- 🌔03 图拉普拉斯矩阵 & Chebyshev多项式
- 🌔04 基于频域的图卷积
无论是空域还是频域,图卷积一般都针对边权值为1的无向图。
⭐️假设现有以下的例子:
图例中共4个节点,假设每个节点的特征向量为2维,则为了计算方便,随便假设图的初始特征为:
x
=
[
1
0
0
1
1
1
0
0
]
4
×
2
\mathbf{x}=\begin{bmatrix} 1&0\\ 0&1\\ 1&1\\ 0&0 \end{bmatrix}_{4\times2}
x=
10100110
4×2
接下来会结合此图的拓扑关系和初始特征进行讲解,请务必结合此例进行理解。
🌔01
度矩阵 & 邻接矩阵
本部分为空域图卷积奠定基础。
2.1 度矩阵
⭐️度矩阵是一个对角阵,对角线元素表示节点的度,即每一个节点与多少个其他节点直接相连,因而可以将例图的度矩阵书写如下:
D
=
[
3
0
0
0
0
2
0
0
0
0
2
0
0
0
0
3
]
D=\begin{bmatrix}3&0&0&0\\ 0&2&0&0\\ 0&0&2&0\\ 0&0&0&3\end{bmatrix}
D=
3000020000200003
若考虑自联通,则有:
D
˜
=
D
+
I
=
[
4
0
0
0
0
3
0
0
0
0
3
0
0
0
0
4
]
\~{D}=D+I=\begin{bmatrix}4&0&0&0\\ 0&3&0&0\\ 0&0&3&0\\ 0&0&0&4\end{bmatrix}
D˜=D+I=
4000030000300004
2.2 邻接矩阵
⭐️对于例图,如果节点间是直接联通的那么就给邻接矩阵对应元素的值赋1,否则为0,自身不与自身联通,因而可以将邻接矩阵书写如下:
A
=
[
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
]
A=\begin{bmatrix}0&1&1&1\\ 1&0&0&1\\ 1&0&0&1\\ 1&1&1&0\end{bmatrix}
A=
0111100110011110
若考虑自联通,则有:
A
˜
=
A
+
I
=
[
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
]
\~{A}=A+I=\begin{bmatrix}1&1&1&1\\ 1&1&0&1\\ 1&0&1&1\\ 1&1&1&1\end{bmatrix}
A˜=A+I=
1111110110111111
考虑到数值稳定性,有时需要对邻接矩阵进行归一化处理,这里采用对称归一化:
A
^
=
D
−
1
/
2
A
D
−
1
/
2
=
[
0
1
6
1
6
1
6
1
6
0
0
1
6
1
6
0
0
1
6
1
6
1
6
1
6
0
]
\hat{A}=D^{-1/2}AD^{-1/2}= \begin{bmatrix} 0 & \frac{1}{\sqrt{6}} & \frac{1}{\sqrt{6}} & \frac{1}{\sqrt{6}} \\ \frac{1}{\sqrt{6}} & 0 & 0 & \frac{1}{\sqrt{6}} \\ \frac{1}{\sqrt{6}} & 0 & 0 & \frac{1}{\sqrt{6}} \\ \frac{1}{\sqrt{6}} & \frac{1}{\sqrt{6}} & \frac{1}{\sqrt{6}} & 0 \end{bmatrix}
A^=D−1/2AD−1/2=
06161616100616100616161610
或者,考虑到自联通:
A
^
′
=
D
˜
−
1
/
2
A
˜
D
˜
−
1
/
2
=
[
1
4
1
4
3
1
4
3
1
4
1
4
3
1
3
0
1
3
3
1
4
3
0
1
3
1
3
3
1
4
1
3
3
1
3
3
1
4
]
\hat{A}'=\~D^{-1/2}\~A\~D^{-1/2}= \begin{bmatrix} \frac{1}{4} & \frac{1}{4\sqrt{3}} & \frac{1}{4\sqrt{3}} & \frac{1}{4} \\ \frac{1}{4\sqrt{3}} & \frac{1}{3} & 0 & \frac{1}{3\sqrt{3}} \\ \frac{1}{4\sqrt{3}} & 0 & \frac{1}{3} & \frac{1}{3\sqrt{3}} \\ \frac{1}{4} & \frac{1}{3\sqrt{3}} & \frac{1}{3\sqrt{3}} & \frac{1}{4} \end{bmatrix}
A^′=D˜−1/2A˜D˜−1/2=
41431431414313103314310313314133133141
另外,在深度学习中,还可以为邻接矩阵赋予一个可学习的权重矩阵
M
M
M,将之与邻接矩阵逐元素相乘作为新的邻接矩阵(度矩阵也相应变化):
A
=
A
⊙
M
A=A\odot M
A=A⊙M
如无特殊说明,在接下来的案例中
M
=
I
M=I
M=I。
🌔02
基于空域的图卷积
⭐️由于图卷积中特征的传播常常要把自身节点的特征考虑在内,因而使用的是带自联通
的版本。
参考第一部分,可以计算得到自联通的归一化邻接矩阵:
A
^
′
=
[
1
4
1
4
3
1
4
3
1
4
1
4
3
1
3
0
1
3
3
1
4
3
0
1
3
1
3
3
1
4
1
3
3
1
3
3
1
4
]
\hat{A}'= \begin{bmatrix} \frac{1}{4} & \frac{1}{4\sqrt{3}} & \frac{1}{4\sqrt{3}} & \frac{1}{4} \\ \frac{1}{4\sqrt{3}} & \frac{1}{3} & 0 & \frac{1}{3\sqrt{3}} \\ \frac{1}{4\sqrt{3}} & 0 & \frac{1}{3} & \frac{1}{3\sqrt{3}} \\ \frac{1}{4} & \frac{1}{3\sqrt{3}} & \frac{1}{3\sqrt{3}} & \frac{1}{4} \end{bmatrix}
A^′=
41431431414313103314310313314133133141
使用下式对特征进行传播更新(不考虑非线性激活函数):
y
=
A
^
′
x
W
\mathbf{y}=\hat{A}'\mathbf{x}W
y=A^′xW
其中
y
,
x
\mathbf{y},\mathbf{x}
y,x分别为输出和输入的图特征,
A
^
′
\hat{A}'
A^′为归一化邻接矩阵,用于根据图的拓扑关系来传播特征,
W
W
W为该层卷积中可学习的权重参数,用于调整特征的值,这里假设参数为:
W
=
[
1
1
1
1
]
2
×
2
W=\begin{bmatrix}1&1\\1&1\end{bmatrix}_{2\times2}
W=[1111]2×2
则特征传播过程具体可写为(仔细观察矩阵相乘的过程,就可以理解特征传播过程了):
y
=
A
^
′
x
W
=
[
1
4
1
4
3
1
4
3
1
4
1
4
3
1
3
0
1
3
3
1
4
3
0
1
3
1
3
3
1
4
1
3
3
1
3
3
1
4
]
[
1
0
0
1
1
1
0
0
]
[
1
1
1
1
]
=
[
1
4
(
1
)
+
1
4
3
(
0
)
+
1
4
3
(
1
)
+
1
4
(
0
)
⋯
1
4
3
(
1
)
+
1
3
(
0
)
+
0
(
1
)
+
1
3
3
(
0
)
⋯
1
4
3
(
1
)
+
0
(
0
)
+
1
3
(
1
)
+
1
3
3
(
0
)
⋯
1
4
(
1
)
+
1
3
3
(
0
)
+
1
3
3
(
1
)
+
1
4
(
0
)
⋯
]
=
[
1
4
+
1
4
3
2
4
3
1
4
3
1
3
1
4
3
+
1
3
1
3
1
4
+
1
3
3
2
3
3
]
\mathbf{y}=\hat{A}'\mathbf{x}W\\ =\begin{bmatrix} \frac{1}{4} & \frac{1}{4\sqrt{3}} & \frac{1}{4\sqrt{3}} & \frac{1}{4} \\ \frac{1}{4\sqrt{3}} & \frac{1}{3} & 0 & \frac{1}{3\sqrt{3}} \\ \frac{1}{4\sqrt{3}} & 0 & \frac{1}{3} & \frac{1}{3\sqrt{3}} \\ \frac{1}{4} & \frac{1}{3\sqrt{3}} & \frac{1}{3\sqrt{3}} & \frac{1}{4} \end{bmatrix} \begin{bmatrix} 1&0\\ 0&1\\ 1&1\\ 0&0 \end{bmatrix} \begin{bmatrix}1&1\\1&1\end{bmatrix}= \begin{bmatrix} \frac{1}{4}(1) + \frac{1}{4\sqrt{3}}(0) + \frac{1}{4\sqrt{3}}(1) + \frac{1}{4}(0) & \cdots \\ \frac{1}{4\sqrt{3}}(1) + \frac{1}{3}(0) + 0(1) + \frac{1}{3\sqrt{3}}(0) & \cdots \\ \frac{1}{4\sqrt{3}}(1) + 0(0) + \frac{1}{3}(1) + \frac{1}{3\sqrt{3}}(0) & \cdots \\ \frac{1}{4}(1) + \frac{1}{3\sqrt{3}}(0) + \frac{1}{3\sqrt{3}}(1) + \frac{1}{4}(0) & \cdots \end{bmatrix}\\ =\begin{bmatrix} \frac{1}{4}+\frac{1}{4\sqrt{3}}&\frac{2}{4\sqrt{3}}\\ \frac{1}{4\sqrt{3}}& \frac{1}{3}\\ \frac{1}{4\sqrt{3}}+ \frac{1}{3}& \frac{1}{3}\\ \frac{1}{4}+ \frac{1}{3\sqrt{3}}&\frac{2}{3\sqrt{3}} \end{bmatrix}
y=A^′xW=
41431431414313103314310313314133133141
10100110
[1111]=
41(1)+431(0)+431(1)+41(0)431(1)+31(0)+0(1)+331(0)431(1)+0(0)+31(1)+331(0)41(1)+331(0)+331(1)+41(0)⋯⋯⋯⋯
=
41+431431431+3141+3314323131332
🔥说明:这里采用的是 A ^ ′ \hat{A}' A^′来传播特征,即对于每个节点,考虑其自身特征和相邻节点的特征进行传播。
如果按照距离分区
考虑的话(这里距离指的是连接两节点的最小边数),就是仅考虑了距离为0的节点和距离为1的节点,而其他更高距离的节点并没有纳入考虑, A ^ ′ \hat{A}' A^′仅仅是距离为0的邻接矩阵和距离为1的邻接矩阵之和。
如果要扩大图卷积的感受野,改变 A ^ ′ \hat{A}' A^′的构成即可,即将更多距离的邻接矩阵加入进来。
🌔03
图拉普拉斯矩阵 & Chebyshev多项式
本部分为频域图卷积奠定基础。
3.1 图拉普拉斯矩阵
⭐️注意,图拉普拉斯矩阵仅考虑最为狭义的邻接矩阵,即距离为1的邻接矩阵。(下一部分会解释为什么)
图拉普拉斯矩阵定义如下:
L
=
D
−
A
=
[
3
−
1
−
1
−
1
−
1
2
0
−
1
−
1
0
2
−
1
−
1
−
1
−
1
3
]
L=D-A=\begin{bmatrix}3&-1&-1&-1\\ -1&2&0&-1\\ -1&0&2&-1\\ -1&-1&-1&3\end{bmatrix}
L=D−A=
3−1−1−1−120−1−102−1−1−1−13
考虑到数值稳定性,有时需要对图拉普拉斯矩阵进行归一化处理,这里采用对称归一化:
L
^
=
I
−
A
^
=
[
3
4
−
1
4
3
−
1
4
3
−
1
4
−
1
4
3
2
3
0
−
1
3
3
−
1
4
3
0
2
3
−
1
3
3
−
1
4
−
1
3
3
−
1
3
3
3
4
]
\hat{L}=I-\hat{A}=\begin{bmatrix} \frac{3}{4} & -\frac{1}{4\sqrt{3}} & -\frac{1}{4\sqrt{3}} & -\frac{1}{4} \\ -\frac{1}{4\sqrt{3}} & \frac{2}{3} & 0 & -\frac{1}{3\sqrt{3}} \\ -\frac{1}{4\sqrt{3}} & 0 & \frac{2}{3} & -\frac{1}{3\sqrt{3}} \\ -\frac{1}{4} & -\frac{1}{3\sqrt{3}} & -\frac{1}{3\sqrt{3}} & \frac{3}{4} \end{bmatrix}
L^=I−A^=
43−431−431−41−431320−331−431032−331−41−331−33143
可以发现,图拉普拉斯矩阵中元素正负交加,说明其具有一种“微分”的性质,可以用作图谱的频域描述,具体来说,对图拉普拉斯矩阵进行特征分解,即(无论是否归一化,同理):
L
=
U
Λ
U
T
L=U\Lambda U^T
L=UΛUT
其中,
①
{\color{#E16B8C}{①}}
①
Λ
\Lambda
Λ为特征值对角矩阵,由特征值
λ
i
\lambda_i
λi组成,
λ
i
\lambda_i
λi称为图的频率,对图频谱采用某种滤波手段,可用
g
θ
(
Λ
)
g_\theta(\Lambda)
gθ(Λ)表示,且有:
g
θ
(
L
)
=
U
g
θ
(
Λ
)
U
T
g_\theta(L)=Ug_\theta(\Lambda)U^T
gθ(L)=Ugθ(Λ)UT
且由于无向图的性质,
Λ
\Lambda
Λ为半正定矩阵,其特征值均非负,即满足:
λ
∈
[
0
,
λ
m
a
x
]
\lambda\in[0, \lambda_{max}]
λ∈[0,λmax]
②
{\color{#E16B8C}{②}}
②
U
U
U为特征向量矩阵,由特征向量
u
i
u_i
ui组成,
u
i
u_i
ui表示对应频率下的基函数。且可用
U
T
U^T
UT把空域特征投影到频域,也可用
U
U
U把频域特征投影到空域(由于
L
L
L为对称矩阵,
U
U
U与
U
T
U^T
UT为正交阵):
X
=
U
T
x
x
=
U
X
\mathbf{X}=U^T\mathbf{x}\\ \mathbf{x}=U\mathbf{X}
X=UTxx=UX
3.2 Chebyshev多项式
⭐️这里先简要介绍Chebyshev多项式逼近函数的原理和过程,具体如何应用应用在下一部分讲解。
由于第一类Chebyshev多项式在傅里叶分析和多项式逼近中被广泛应用,这里的Chebyshev多项式特指第一类。
Chebyshev多项式通过递归定义:
T
0
(
x
)
=
1
,
T
1
(
x
)
=
x
T
k
(
x
)
=
2
x
T
k
−
1
(
x
)
−
T
k
−
2
(
x
)
,
k
≥
2
T_0(x)=1,\;T_1(x)=x\\ T_k(x)=2xT_{k-1}(x)-T_{k-2}(x),\;k\geq2
T0(x)=1,T1(x)=xTk(x)=2xTk−1(x)−Tk−2(x),k≥2
其用于定义正交性的权重函数为:
w
(
x
)
=
1
1
−
x
2
,
x
∈
[
−
1
,
1
]
w(x)=\frac{1}{\sqrt{1-x^2}},\;x\in[-1,1]
w(x)=1−x21,x∈[−1,1]
则Chebyshev多项式对于
w
(
x
)
w(x)
w(x)在
[
−
1
,
1
]
[-1,1]
[−1,1]保持正交,即:
∫
−
1
1
T
k
(
x
)
T
m
(
x
)
w
(
x
)
d
x
=
0
,
k
≠
m
\int_{-1}^1T_k(x)T_m(x)w(x)dx=0,\;k\neq m
∫−11Tk(x)Tm(x)w(x)dx=0,k=m
此时,对于满足以下条件的函数
h
(
x
)
h(x)
h(x),其可用Chebyshev多项式逼近:
∫
−
1
1
∣
h
(
x
)
∣
2
w
(
x
)
d
x
<
∞
\int_{-1}^{1}|h(x)|^2w(x)dx<\infty
∫−11∣h(x)∣2w(x)dx<∞
而在不严格的情况下,只要满足
x
∈
[
−
1
,
1
]
x\in[-1,1]
x∈[−1,1],而不需要满足上面的条件,就可以进行函数逼近,此时函数可以表示为:
h
(
x
)
≈
∑
k
=
0
K
−
1
θ
k
T
k
(
x
)
h(x)\approx\sum_{k=0}^{K-1}\theta_kT_k(x)
h(x)≈k=0∑K−1θkTk(x)
其中,
K
K
K是用以截断的阶数,可以控制逼近程度,用以平衡计算开销和逼近效果。
θ
k
\theta_k
θk为可学习的系数。
🌔04
基于频域的图卷积
⭐️基于频域的图卷积公式如下,这里
L
L
L为经过对称归一化的图拉普拉斯矩阵(不写为
L
^
\hat{L}
L^是为了表述方便):
y
=
U
g
θ
(
Λ
)
U
T
x
=
g
θ
(
L
)
x
\mathbf{y}=Ug_\theta(\Lambda)U^T\mathbf{x}=g_\theta(L)\mathbf{x}
y=Ugθ(Λ)UTx=gθ(L)x
可以分以下三步骤进行理解:
- 首先,把特征从空域转换到频域: U T x U^T\mathbf{x} UTx
- 然后,利用滤波器对频域特征进行滤波: g θ ( Λ ) U T x g_\theta(\Lambda)U^T\mathbf{x} gθ(Λ)UTx
- 最后,再把特征转回空域: U g θ ( Λ ) U T x Ug_\theta(\Lambda)U^T\mathbf{x} Ugθ(Λ)UTx
由于在实际操作中直接求解滤波器 g θ ( ⋅ ) g_\theta(\cdot) gθ(⋅)比较困难,于是使用Chebyshev多项式逼近的方式。
首先,通过尺度变换将特征值尺度从
[
0
,
λ
m
a
x
]
[0,\lambda_{max}]
[0,λmax]转化为
[
−
1
,
1
]
[-1,1]
[−1,1]以满足Chebyshev多项式逼近的范围要求:
L
‾
=
2
L
/
λ
m
a
x
−
1
\overline{L}=2L/\lambda_{max}-1
L=2L/λmax−1
接着,使用下式进行多项式逼近(由于计算比较麻烦,这里就不展开了,但每个符号对应的数值都是可以通过前文得到的):
y
=
g
θ
(
L
)
x
≈
∑
k
=
0
K
−
1
θ
k
T
k
(
L
‾
)
x
\mathbf{y}=g_\theta(L)\mathbf{x}\approx\sum_{k=0}^{K-1}\theta_kT_k(\overline{L})\mathbf{x}
y=gθ(L)x≈k=0∑K−1θkTk(L)x
因此,对
g
θ
(
⋅
)
g_\theta(\cdot)
gθ(⋅)的学习就转换成了对一系列
θ
k
\theta_k
θk的学习。
🔥说明:这里 K K K定义为截断的阶数,同时参考
距离分区
,这个阶数其实就划定的频域图卷积的感受野,而相对应的可学习的系数 θ k \theta_k θk就划定了各距离的节点在整个感受野中的比重。这也可以解释为什么图拉普拉斯算子只考虑距离为1的邻接矩阵,因为需要把它当作一个“基”。