文章目录
谱域图卷积神经网络知识梳理2
在上一章节中,探究了图卷积(Graph Convolution)的实现方法。事实上,该过程巧妙地借鉴了傅立叶变换与卷积操作之间的数学联系:首先揭示了图傅立叶变换(Graph Fourier Transform)的原理,并通过间接手段达成了图卷积操作这一目的。本章节,将简要回顾上一节的操作流程,作为前置信息,为大家铺垫和介绍谱域(Spectral Domain)图卷积神经网络及其衍生模型的相关理论和应用。这将进一步丰富对图神经网络深层次理解的宽度与深度。
1. 传统谱域图卷积
卷积操作,基于其核心原理,可被理解为一种精妙的加权求和过程。通过设定不同的权重,有选择地突出某些特征,同时降低其他特征的重要性。权重越大,对应特征在新生成的数据表达中的影响就越显著,反之亦然。这一过程有效地转换了输入数据的表示方式,为后续的数据分析和信息提取奠定了基础。通过循环执行这一系列的卷积、激活与池化操作时,网络逐步抽象出对于实现分类任务或其他特定目的至关重要的信息,从而显著增强模型在特定指标上的性能表现。
卷积定理指出,函数卷积的傅立叶变换是函数傅立叶变换的乘积,因此公式两侧都进行傅立叶的逆变换得到了下面的公式:
卷积定理与傅立叶变换的关系:在图数据上直接实现卷积操作相对困难。然而,通过实现图数据的傅立叶变换,可以巧妙地绕过这一难题,从而实现图卷积操作。
f
∗
g
=
F
−
1
{
F
(
ω
)
⋅
G
(
ω
)
}
f * g = \mathcal{F}^{-1}\{F(\omega) \cdot G(\omega)\}
f∗g=F−1{F(ω)⋅G(ω)}
其中
F
(
ω
)
F(\omega)
F(ω)为傅立叶变换公式:
F ( ω ) = ∫ − ∞ ∞ f ( t ) ⋅ e − i ω t d t F(\omega) = \int_{-\infty}^{\infty} f(t) \cdot e^{-i\omega t} \, dt F(ω)=∫−∞∞f(t)⋅e−iωtdt
简单的回顾下傅立叶
这个公式中
F
(
ω
)
F(\omega)
F(ω)左侧是频域,右侧是时域
∫
−
∞
∞
f
(
t
)
⋅
e
−
i
ω
t
d
t
\int_{-\infty}^{\infty} f(t) \cdot e^{-i\omega t} \, dt
∫−∞∞f(t)⋅e−iωtdt
上图左侧频域中,当向量进行旋转时,其投影在时域中形成了一个正弦波。如上一章节所述,欧拉公式允许将函数看成向量形式,而欧拉公式则提供了频域到时域的转换关系。
在这个表达式中 f ( t ) ⋅ e − i ω t f(t) \cdot e^{-i\omega t} f(t)⋅e−iωt,函数 f ( t ) f(t) f(t)和基向量 e − i ω t e^{-i\omega t} e−iωt的内积给出了对应基向量的系数,这表示了在该基向量上的分量大小。
举个例子,考虑一个二维向量空间中的点积运算。我们有向量 ( 2 , 2 ) (2, 2) (2,2)和基向量 ( 0 , 1 ) (0, 1) (0,1),它们的点积计算过程如下:
( 2 , 2 ) ⋅ ( 0 , 1 ) = 2 × 0 + 2 × 1 = 0 + 2 = 2 \begin{align*} (2, 2) \cdot (0, 1) &= 2 \times 0 + 2 \times 1 \\ &= 0 + 2 \\ &= 2 \end{align*} (2,2)⋅(0,1)=2×0+2×1=0+2=2
这个结果表明,向量 ( 2 , 2 ) (2, 2) (2,2)在基向量 ( 0 , 1 ) (0, 1) (0,1)上的投影大小为 2 2 2。换句话说,基向量 ( 0 , 1 ) (0, 1) (0,1)被拉伸了 2 2 2倍。这部分用向量举例子而傅立叶是更特殊的形式,将函数作为向量看待。
在傅立叶分析中,我们考虑函数 f ( t ) f(t) f(t)与基向量 e − i ω t e^{-i\omega t} e−iωt内积,即积分运算。这给出了傅立叶变换系数,也就是在时域中周期为 ω \omega ω的正弦波的振幅拉伸情况,即 cos ( ω t ) \cos(\omega t) cos(ωt)中的振幅 a a a的取值。同样地,在频域中,频率为 ω \omega ω的旋转向量也会进行等比例的拉伸。
通过图像可以看出,在时域中调整正弦函数的振幅相当于在频域中调整旋转向量的长度,这两者之间存在直接的比例关系。因此,可以从这个角度理解傅立叶变换公式的含义。
F ( ω ) = ∫ − ∞ ∞ f ( t ) ⋅ e − i ω t d t F(\omega) = \int_{-\infty}^{\infty} f(t) \cdot e^{-i\omega t} \, dt F(ω)=∫−∞∞f(t)⋅e−iωtdt
上述公式描述了时域和频域之间的关系。
为了实现图上的傅立叶变换,需要找到基、频率和相位,这些信息都可以通过拉普拉斯矩阵获得。
下图中的傅立叶变换对比描述了图傅立叶变换和传统傅立叶变换所需的基和频率。在上面中描述时域中的基是周期为 ω \omega ω的正弦波被欧拉公式转换成了指数形式,频域中为角频率 ω \omega ω。在图傅立叶变换中就是特征向量和特征值进行对应。
找到了图上的傅立叶变换就可以根据卷积定理实现图卷积操作
图傅立叶中:特征向量和特征值对应傅立叶变换中的正弦波和角向量,因此对正弦波的拉伸情况(特征向量的操作)等价于形成当前正弦波的角向量的拉伸(特征值的操作)
x
x
x是输入特征,
g
g
g是卷积核。看下这个公式,对
x
x
x进行傅立叶变换得到了对于不同基的拉伸情况,即傅立叶系数,就相当于CNN中的特征表格。然后人为的设置了卷积核
g
g
g,对
g
g
g卷积核 也进行傅立叶变换,得到了频域中的系数,这个系数就是卷积核表格,这些系数可以视为卷积核在不同频率上取值,相当于CNN中卷积核在不同位置的数值。频率是和特征一一对应的,从而确定了在卷积核的数值和哪个特征相乘。两种数值进行哈达玛积(两个矩阵或向量的逐元素乘积操作)就是对之前得到的系数进行放缩,从而获得了新的频率系数,实现了卷积类似的操作,进行傅立叶逆变换,回到了原始的空间上。
因此卷积定理在图(Graph)领域:
2. 谱域图卷积的变种
和上一章的引入方式一样,要做到知其然而知其所以然。基础的谱域图卷积已经在非欧几里得数据上实现了图卷积,为什么还需要其他变种呢?它存在哪些缺点呢?
2.1 传统谱域图卷积的缺点
传统谱域图卷积(Spectral Graph Convolution)是一种在频域上定义的图卷积方法。虽然它有一些优点,比如提供了一种直观的图卷积理解、具有良好的局部性质等,但也存在一些缺点,包括但不限于:
- 计算复杂度高: 基础谱域图卷积的计算复杂度通常较高,尤其是在处理大型图时。这是因为需要进行傅立叶变换和逆变换等频域操作,这些操作的计算开销较大。还有就是需要进行矩阵分解。
- 参数难以调整: 谱域方法中的参数(如卷积核大小、采样方法等)对于性能有很大影响,但是调整这些参数通常需要一定的经验或者尝试,难以直观地理解。
- 卷积核存在N个参数: 当图结构数据量太大就很难进行操作。需要特征分解
主要就是这几个缺点,复杂度太高了,通过经验确定卷积核这个事本身也挺难的。所以衍生出来了其他的谱域图神经网络(SCNN、ChebNet、GCN)解决传统谱域图卷积网络的缺点。均利用谱图理论的思想实现。可以将这三个模型看作传统谱域图卷积的变体。
2.2 SCNN:Spectral Networks and Locally Connected Networks on Graphs
https://arxiv.org/pdf/1312.6203.pdf%20http://arxiv.org/abs/1312.6203.pdf SCNN文献链接
首先来说下SCNN ,这篇文献属于当前领域的重要著作,提出了两种操作方式,即图神经网络分为空域图卷积和谱域图卷积,在处理非欧式距离的数据时具有重要意义。
在当前部分只针对这篇文献的谱域操作进行讲解,后续会针对这篇文献进行一个详细的笔记。 便于对比看一下传统谱域图卷积操作的形式。
可以直观的看到
x
x
x作为输入特征通过拉普拉斯的特征向量作为傅立叶变换的基实现了图傅立叶变换,卷积核
g
g
g也同样进行了相同的操作,通过时域进入到了频域,所以是关于特征值的函数。实际上卷积核进行傅立叶变化得到的也是对频域中向量的拉伸幅度的数据。
而SCNN则跳出了这个圈子,直接将卷积核作为学习参数,而不再依赖于傅立叶变换。这样一来,模型不仅更加简洁,而且可以直接通过反向传播进行端到端的学习,不需要额外的复杂操作。同时,由于卷积核是可学习的,模型可以自动学习最适合任务的卷积核参数,而不需要依赖于人工设计。这样的方法使得模型更加灵活和通用,同时简化了整个流程,提高了效率。下图对两种卷积核进行了对比。
说的直白一点就是与其通过傅立叶变换在决定当前节点的取值大小,不如直接给一个数值,减少了傅立叶变换的操作
SCNN的主要思想就是直接为每个节点赋予一个学习参数(数值),而不是通过傅立叶变换来确定节点的取值大小。这样做的好处是减少了傅立叶变换的操作,简化了图卷积操作的计算过程。
主要是针对这部分进行了改进,具体的细节还是存在些不同的操作。具体请见后续的SCNN论文详解。
这部分是针对基础的谱域GCN不能学习的卷积核这一缺点进行的改进,但是这一方法还是存在诸多问题。
- 拉普拉斯矩阵的特征向量计算复杂:谱域方法需要对图的拉普拉斯矩阵进行特征值分解,这是一个计算复杂度较高的过程,尤其是对于大型图来说,这可能会导致计算时间很长,限制了谱域方法的应用范围。(社交网络中几百万的节点以及论文引用都是巨型的图结构)
- 模型参数的复杂度较大:模型的参数数量将随着节点数量的增加而呈线性增长,这会使得模型变得非常庞大,难以训练和优化。
- 无法保证局部连接性: 全局链接,在频域进行操作。并没有像CNN一样实现局部链接。
2.3 Chebyshev谱CNN(ChebNet)
https://arxiv.org/pdf/1911.05467.pdf
直截了当地说,ChebNet 是通过使用切比雪夫多项式来逼近卷积核。在深入探讨之前,我们先来看一下传统的图卷积公式。
下面是卷积核部分的矩阵形式:
g θ ( Λ ) = ( g θ ( λ 1 ) 0 ⋯ 0 0 g θ ( λ 2 ) ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ g θ ( λ n ) ) g_{\theta}(\Lambda) = \begin{pmatrix} g_{\theta}(\lambda_1) & 0 & \cdots & 0 \\ 0 & g_{\theta}(\lambda_2) & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & g_{\theta}(\lambda_{n}) \end{pmatrix} gθ(Λ)= gθ(λ1)0⋮00gθ(λ2)⋮0⋯⋯⋱⋯00⋮gθ(λn)
其中, λ 1 , λ 2 , … , λ n \lambda_1, \lambda_2, \ldots, \lambda_{n} λ1,λ2,…,λn 是矩阵 λ \lambda λ的特征值, g θ ( λ ) g_{\theta}(\lambda) gθ(λ)是关于特征值的某个函数。
2.3.1 多项式逼近卷积核
上文中解释了傅立叶变换后的卷积核被描述成了关于特征值的函数,在数学上,可以使用多项式来逼近许多不同类型的函数,这是多项式逼近定理的基础之一。这个定理表明,给定一个连续函数,可以找到一个多项式,使得该多项式在一个给定的区间内以任意小的误差逼近该函数。因此
g
θ
(
Λ
)
=
∑
k
=
0
K
−
1
θ
k
Λ
k
g_{\theta}(\Lambda) = \sum_{k=0}^{K-1} \theta_k \Lambda^k
gθ(Λ)=k=0∑K−1θkΛk
矩阵形式如下:
g
θ
(
Λ
)
=
(
∑
k
=
0
K
−
1
θ
k
λ
1
k
0
⋯
0
0
∑
k
=
0
K
−
1
θ
k
λ
2
k
⋯
0
⋮
⋮
⋱
⋮
0
0
⋯
∑
k
=
0
K
−
1
θ
k
λ
n
k
)
g_{\theta}(\Lambda) = \begin{pmatrix} \sum_{k=0}^{K-1} \theta_k \lambda_{1}^k & 0 & \cdots & 0 \\ 0 & \sum_{k=0}^{K-1} \theta_k \lambda_{2}^k & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \sum_{k=0}^{K-1} \theta_k \lambda_{n}^k \end{pmatrix}
gθ(Λ)=
∑k=0K−1θkλ1k0⋮00∑k=0K−1θkλ2k⋮0⋯⋯⋱⋯00⋮∑k=0K−1θkλnk
在这个表示中,每个矩阵元素是对应位置上
λ
i
k
\lambda_{i}^k
λik 和
θ
k
\theta_k
θk 的乘积之和。
将这个表达式放入图卷积公式中:即左右乘上特征向量矩阵
U
U
U
U
g
θ
(
Λ
)
U
T
=
U
(
∑
k
=
0
K
−
1
θ
k
Λ
k
)
U
T
=
∑
k
=
0
K
−
1
θ
k
U
Λ
k
U
T
=
∑
k
=
0
K
−
1
θ
k
(
L
)
k
Ug_{\theta}(\Lambda)U^T = U \left( \sum_{k=0}^{K-1} \theta_k \Lambda^k \right) U^T = \sum_{k=0}^{K-1} \theta_k U\Lambda^k U^T = \sum_{k=0}^{K-1} \theta_k (L)^k
Ugθ(Λ)UT=U(k=0∑K−1θkΛk)UT=k=0∑K−1θkUΛkUT=k=0∑K−1θk(L)k
对最终的图卷积公式可得
y
=
σ
(
∑
k
=
0
K
−
1
θ
k
(
L
)
k
x
)
y = \sigma \left( \sum_{k=0}^{K-1} \theta_k (L)^k x \right)
y=σ(k=0∑K−1θk(L)kx)
这个公式表示了在图结构数据上的图卷积操作,其中:
- y y y 是输出特征,
- x x x 是输入特征,
- σ \sigma σ是激活函数,
- θ k \theta_k θk 是待学习的参数,
- L k L^k Lk 是拉普拉斯矩阵的 k k k次幂。
这是这个论文的第一个贡献,使用多项式逼近卷积核函数,不需要进行特征分解了,大幅度的简化运算。
当前部分简化了传统的谱域图卷积神经网络中的卷积核,将其表示为关于特征值的函数,并对其进行多项式逼近。这种简化使得在公式中不再需要对拉普拉斯矩阵进行分解,大大降低了计算复杂度。
而ChebNet则进一步改进了这个多项式逼近的方式,使用切比雪夫多项式进行逼近,从而提供了更好的效果。
2.3.2 切比雪夫多项式
什么是切比雪夫多项式呢?
简单来说,切比雪夫多项式是一种多项式,用来逼近函数,其在一定情况下可以提供更好的性能。然而,使用切比雪夫多项式进行逼近要求输入数据必须在区间
[
−
1
,
1
]
[-1, 1]
[−1,1] 内。首先来看一下切比雪夫多项式的公式是如何得到的。
回顾下
n
n
n倍角公式:
cos
(
0
x
)
=
1
cos
(
1
x
)
=
cos
(
x
)
cos
(
2
x
)
=
2
cos
2
(
x
)
−
1
cos
(
3
x
)
=
4
cos
3
(
x
)
−
3
cos
(
x
)
cos
(
4
x
)
=
8
cos
4
(
x
)
−
8
cos
2
(
x
)
+
1
cos
(
5
x
)
=
16
cos
5
(
x
)
−
20
cos
3
(
x
)
+
5
cos
(
x
)
\begin{align*} \cos(0x) &= 1 \\ \cos(1x) &= \cos(x) \\ \cos(2x) &= 2 \cos^2(x) - 1 \\ \cos(3x) &= 4 \cos^3(x) - 3 \cos(x) \\ \cos(4x) &= 8 \cos^4(x) - 8 \cos^2(x) + 1 \\ \cos(5x) &= 16 \cos^5(x) - 20 \cos^3(x) + 5 \cos(x) \end{align*}
cos(0x)cos(1x)cos(2x)cos(3x)cos(4x)cos(5x)=1=cos(x)=2cos2(x)−1=4cos3(x)−3cos(x)=8cos4(x)−8cos2(x)+1=16cos5(x)−20cos3(x)+5cos(x)
通过利用反三角函数将余弦函数转换就得到了切比雪夫多项式具体来说,假设我们用 t = c o s ( x ) t = cos(x) t=cos(x)进行变换,那么可以得到 x = a r c c o s ( t ) x = arccos(t) x=arccos(t),然后得到切比雪夫多项式的定义:
T n ( t ) = c o s ( n a r c c o s ( t ) ) T_n(t) = cos(n arccos(t)) Tn(t)=cos(narccos(t))
这里的 T n ( t ) T_n(t) Tn(t)表示切比雪夫多项式的第 n n n阶多项式,可以通过递归的方式进行计算。通过将 n x nx nx替换为 n a r c c o s ( t ) narccos(t) narccos(t),可以将余弦函数转换为切比雪夫多项式,从而实现更加高效的计算和逼近。将上面的 n n n倍角公式变成切比雪夫多项式:
T 0 ( x ) = 1 T 1 ( x ) = x T 2 ( x ) = 2 x 2 − 1 T 3 ( x ) = 4 x 3 − 3 x T 4 ( x ) = 8 x 4 − 8 x 2 + 1 T 5 ( x ) = 16 x 5 − 20 x 3 + 5 x \begin{align*} T_0(x) &= 1 \\ T_1(x) &= x \\ T_2(x) &= 2x^2 - 1 \\ T_3(x) &= 4x^3 - 3x \\ T_4(x) &= 8x^4 - 8x^2 + 1 \\ T_5(x) &= 16x^5 - 20x^3 + 5x \\ \end{align*} T0(x)T1(x)T2(x)T3(x)T4(x)T5(x)=1=x=2x2−1=4x3−3x=8x4−8x2+1=16x5−20x3+5x
2.2.3 切比雪夫多项式逼近卷积核
首先看下传统的多项式逼近卷积核的形式:
g θ ( Λ ) = ∑ k = 0 K − 1 θ k Λ k g_{\theta}(\Lambda) = \sum_{k=0}^{K-1} \theta_k \Lambda^k gθ(Λ)=k=0∑K−1θkΛk
切比雪夫多项式逼近卷积核的形态是什么样子的呢?
首先为了满足切比雪夫多项式对输入数据的取值要求,在给定特征值
(
λ
0
,
λ
1
,
…
,
λ
n
−
1
)
(\lambda_0, \lambda_1, \ldots, \lambda_{n-1})
(λ0,λ1,…,λn−1) 的情况下,可以将拉普拉斯矩阵
(
Λ
)
(\Lambda)
(Λ) 归一化为区间
[
−
1
,
1
]
[-1, 1]
[−1,1] 上的矩阵
(
Λ
^
)
(\hat{\Lambda})
(Λ^)。具体而言,可以使用以下公式将拉普拉斯矩阵归一化到
[
0
,
2
]
[0,2]
[0,2]的区间然后进行平移得到了
[
−
1
,
1
]
[-1, 1]
[−1,1] :
Λ ^ = 2 λ max − λ min ( Λ − λ min ) − I n \hat{\Lambda} = \frac{2}{\lambda_{\text{max}} - \lambda_{\text{min}}} (\Lambda - \lambda_{\text{min}}) -I_n Λ^=λmax−λmin2(Λ−λmin)−In
其中, λ max \lambda_{\text{max}} λmax 和 λ min \lambda_{\text{min}} λmin 分别是特征值的最大值和最小值。
然后,利用切比雪夫多项式来逼近卷积核函数 ( g θ ( Λ ) ) (g_{\theta}(\Lambda)) (gθ(Λ)):
g θ ( Λ ) ≈ ∑ k = 0 K − 1 β k T k ( Λ ^ ) g_{\theta}(\Lambda) \approx \sum_{k=0}^{K-1} \beta_k T_k(\hat{\Lambda}) gθ(Λ)≈k=0∑K−1βkTk(Λ^)
其中,
β
k
\beta_k
βk 是切比雪夫多项式的系数,需要通过训练来学习。对图卷积公式推导整理得到
y
=
σ
(
U
∑
k
=
0
K
−
1
β
k
T
k
(
Λ
^
)
U
⊤
x
)
=
σ
(
∑
k
=
0
K
−
1
β
k
T
k
(
U
Λ
^
U
⊤
)
x
)
=
σ
(
∑
k
=
0
K
−
1
β
k
T
k
(
L
^
)
x
)
y = \sigma\left(U \sum_{k=0}^{K-1} \beta_k T_k(\hat{\Lambda}) U^\top x\right) = \sigma\left(\sum_{k=0}^{K-1} \beta_k T_k(U \hat{\Lambda} U^\top) x\right) = \sigma\left(\sum_{k=0}^{K-1} \beta_k T_k(\hat{L}) x\right)
y=σ(Uk=0∑K−1βkTk(Λ^)U⊤x)=σ(k=0∑K−1βkTk(UΛ^U⊤)x)=σ(k=0∑K−1βkTk(L^)x)
就简化成了每一项的递推的矩阵形式,并且输入是经过归一化的拉普拉斯矩阵:
T
0
(
L
^
)
=
I
,
T
1
(
L
^
)
=
L
^
T_0(\hat{L}) = I, \quad T_1(\hat{L}) = \hat{L}
T0(L^)=I,T1(L^)=L^
以及对于任意的 k ≥ 2 k \geq 2 k≥2,有切比雪夫多项式的递推关系:
T k ( L ^ ) = 2 L ^ T k − 1 ( L ^ ) − T k − 2 ( L ^ ) T_k(\hat{L}) = 2\hat{L}T_{k-1}(\hat{L}) - T_{k-2}(\hat{L}) Tk(L^)=2L^Tk−1(L^)−Tk−2(L^)
下面这部分是chebnet的第二个贡献利用利用切比雪夫多项式代替多项式逼近
2.2.4 多项式逼近卷积核的局部聚合的能力
为什么使用多项式逼近卷积核就具备了局部聚合的能力呢?
下面举例进行说明:
可以构建成简单的拉普拉斯矩阵
L
L
L
L
=
D
−
A
=
[
1
−
1
0
−
1
2
−
1
0
−
1
1
]
L = D - A = \begin{bmatrix} 1 & -1 & 0 \\ -1 & 2 & -1 \\ 0 & -1 & 1 \end{bmatrix}
L=D−A=
1−10−12−10−11
通过切比雪夫多项式得到卷积核矩阵:当
K
=
0
K = 0
K=0时,
卷积核为
g
θ
(
Λ
)
=
β
0
∗
T
0
(
L
^
)
=
β
0
∗
I
g_{\theta}(\Lambda) = \beta_0 \ast T_0(\hat{L}) = \beta_0 \ast I
gθ(Λ)=β0∗T0(L^)=β0∗I:
g
θ
(
Λ
)
=
[
β
0
0
0
0
β
0
0
0
0
β
0
]
g_{\theta}(\Lambda) = \begin{bmatrix} \beta_0 & 0 & 0 \\ 0 & \beta_0 & 0 \\ 0 & 0 & \beta_0 \end{bmatrix}
gθ(Λ)=
β0000β0000β0
当
K
=
1
K = 1
K=1 时,卷积核为
g
θ
(
Λ
)
=
β
0
∗
T
0
(
L
^
)
+
β
1
∗
T
1
(
L
^
)
g_{\theta}(\Lambda) = \beta_0 \ast T_0(\hat{L}) + \beta_1 \ast T_1(\hat{L})
gθ(Λ)=β0∗T0(L^)+β1∗T1(L^):
g θ ( Λ ) = [ β 0 + β 1 − β 1 0 − β 1 β 0 + 2 β 1 − β 1 0 − β 1 β 0 + β 1 ] g_{\theta}(\Lambda) = \begin{bmatrix} \beta_0 + \beta_1 & -\beta_1 & 0 \\ -\beta_1 & \beta_0 + 2\beta_1 & -\beta_1 \\ 0 & -\beta_1 & \beta_0 + \beta_1 \end{bmatrix} gθ(Λ)= β0+β1−β10−β1β0+2β1−β10−β1β0+β1
当 K = 2 K = 2 K=2时,卷积核为 g θ ( Λ ) = β 0 ∗ T 0 ( L ^ ) + β 1 ∗ T 1 ( L ^ ) + β 2 ∗ T 2 ( L ^ ) g_{\theta}(\Lambda) = \beta_0 \ast T_0(\hat{L}) + \beta_1 \ast T_1(\hat{L}) + \beta_2 \ast T_2(\hat{L}) gθ(Λ)=β0∗T0(L^)+β1∗T1(L^)+β2∗T2(L^)
T 2 ( L ^ ) = [ 3 − 6 2 − 6 11 − 6 2 − 6 3 ] T_2(\hat{L}) = \begin{bmatrix} 3 & -6 & 2 \\ -6 & 11 & -6 \\ 2 & -6 & 3 \end{bmatrix} T2(L^)= 3−62−611−62−63
g
θ
(
Λ
)
=
[
β
0
+
β
1
+
3
β
2
−
β
1
−
6
β
2
2
β
2
−
β
1
−
6
β
2
β
0
+
2
β
1
+
11
β
2
−
β
1
−
6
β
2
2
β
2
−
β
1
−
6
β
2
β
0
+
β
1
+
3
β
2
]
g_{\theta}(\Lambda) = \begin{bmatrix} \beta_0 + \beta_1 + 3\beta_2 & -\beta_1 - 6\beta_2 & 2\beta_2 \\ -\beta_1 - 6\beta_2 & \beta_0 + 2\beta_1 + 11\beta_2 & -\beta_1 - 6\beta_2 \\ 2\beta_2 & -\beta_1 - 6\beta_2 & \beta_0 + \beta_1 + 3\beta_2 \end{bmatrix}
gθ(Λ)=
β0+β1+3β2−β1−6β22β2−β1−6β2β0+2β1+11β2−β1−6β22β2−β1−6β2β0+β1+3β2
K
=
2
K=2
K=2时,卷积核能关注到每个节点本身与其一阶相邻和二阶相邻的节点。
简单的在说下,这个
β
\beta
β和前面普通多项式逼近中
θ
\theta
θ是一样的作用,它们都是用于控制单次卷积中不同阶邻居的聚合占比,就是卷积核的数值,而
K
K
K值决定了卷积核向量的长度,也就是聚合邻居的阶数
在切比雪夫网络(ChebNet)中,多项式的最高次数 K K K决定了卷积核的感受野,也就是每个卷积核能够聚合的最高邻居阶数。这与传统卷积神经网络(CNN)的设计哲学类似,在CNN中,每个卷积核通过权重共享聚合局部邻域的信息。在一阶邻居聚合过程中,所有节点使用相同的卷积核进行特征提取,这类似于CNN中卷积核的权重共享机制。在扩展到二阶邻居时,同样的权重也会被用于聚合二阶邻居的信息。
在CNN中,卷积核的尺寸直接影响感受野的大小,类似地,在ChebNet中,
K
K
K的值确定了卷积核可以聚合的邻居的最大阶数,从而固定了网络的感受野大小。这项设计不仅允许学习节点的局部特征,同时也提供了一种方法来按需调整模型为节点聚合更广阔邻域信息的能力。
因此模型具备了局部感受野,具备了局部聚合能力。
2.2.5 切比雪夫多项式的优点
为什么传统多项式也可以做到这个局部能力但是采用了切比雪夫多项式呢?
当直接使用多项式进行逼近的时候,需要计算
L
k
L^k
Lk,在大型图中,这种计算方式的复杂度会随着节点数量的增加而迅速增长,尤其是当图非常大时,这会导致计算量非常庞大。
y
=
σ
(
∑
k
=
0
K
−
1
θ
k
(
L
)
k
x
)
y = \sigma \left( \sum_{k=0}^{K-1} \theta_k (L)^k x \right)
y=σ(k=0∑K−1θk(L)kx)相比之下,切比雪夫多项式依赖于一种高效的递归计算方法,可以避免直接进行矩阵乘法的高成本计算。
T
k
(
L
^
)
=
2
L
^
T
k
−
1
(
L
^
)
−
T
k
−
2
(
L
^
)
T_k(\hat{L}) = 2\hat{L}T_{k-1}(\hat{L}) - T_{k-2}(\hat{L})
Tk(L^)=2L^Tk−1(L^)−Tk−2(L^)
切比雪夫多项式还允许以更精细的控制来聚合图中的邻域信息。通过适当选择多项式的阶数,可以在捕捉局部邻域特性和提取全局信息之间找到平衡。这种灵活性使得可以根据特定需求调节聚合的范围。此外,在某些条件下,切比雪夫多项式可提供最优的一致近似解。这意味着相对于其他多项式方法,切比雪夫多项式可以使用较低阶数来达到同样或甚至更好的逼近效果,从而在减少计算负担的同时,保持或提升了逼近的精准度。
综上所述,切比雪夫多项式不仅优化了计算效率,还提供了控制信息聚合粒度的灵活性,使得它成为图信号处理中卷积核近似的有力工具。
2.4 一阶ChebNet-GCN
前文提到,ChebNet 通过运用切比雪夫多项式来近似频域中的图卷积核,而GCN 是在其基础上进一步简化的版本。GCN 创新性地只考虑了切比雪夫多项式的一阶项,这种精简后的逼近方式为图神经网络的研究和应用打开了全新的视角。基于其创新的简化策略和卓越的性能,GCN 在图神经网络的发展历史上确立了其里程碑式的地位。
Semi-supervised Classification with Graph Convolutional Networks - arXiv PDF链接
2.4.1 GCN公式推导
首先先看下切比雪夫多项式的前两项:
T
0
(
L
^
)
=
I
,
T
1
(
L
^
)
=
L
^
T_0(\hat{L}) = I, \quad T_1(\hat{L}) = \hat{L}
T0(L^)=I,T1(L^)=L^
GCN就是Chebnet卷积核为
K
=
1
K=1
K=1的情况:
g
θ
(
Λ
)
=
∑
k
=
0
1
β
k
T
k
(
Λ
^
)
g_{\theta}(\Lambda)=\sum_{k=0}^{1} \beta_k T_k(\hat{\Lambda})
gθ(Λ)=k=0∑1βkTk(Λ^)
当 K = 1 K = 1 K=1 时,卷积核公式展开为: g θ ( Λ ) = β 0 ∗ T 0 ( L ^ ) + β 1 ∗ T 1 ( L ^ ) g_{\theta}(\Lambda) = \beta_0 \ast T_0(\hat{L}) + \beta_1 \ast T_1(\hat{L}) gθ(Λ)=β0∗T0(L^)+β1∗T1(L^)
其中 T 0 ( L ~ ) T_0(\tilde{L}) T0(L~)和 T 1 ( L ~ ) T_1(\tilde{L}) T1(L~)分别表示切比雪夫多项式的零阶和一阶递归项, L ~ \tilde{L} L~ 是规范化的拉普拉斯矩阵。
观察到在这个公式中只有两个参数 β 0 \beta_0 β0 和 β 1 \beta_1 β1 需要进行训练,它们决定了聚合自身和一阶邻居的占比。这意味着模型在训练过程中学习如何有效地利用当前节点的特征以及其一阶邻居的特征信息来更新节点的表示。
这个公式与常见的 GCN 公式略有不同,因为它是基于切比雪夫多项式的卷积操作, 而不是直接的邻居聚合。
接下来,将推导常见的 GCN 公式,以了解它是如何得到的,以及与这个公式的联系和差异。利用切比雪夫多项式的递推关系为 T 0 ( x ) = 1 T_0(x) = 1 T0(x)=1和 T 1 ( x ) = x T_1(x) = x T1(x)=x,进一步简化得到的表达式为:
g
θ
(
Λ
)
=
β
0
+
β
1
L
^
g_{\theta}(\Lambda) = \beta_0 + \beta_1 \hat{L}
gθ(Λ)=β0+β1L^
对这个公式进一步的限制,设定参数
β
0
=
−
β
1
=
β
\beta_0=-\beta_1=\beta
β0=−β1=β,对卷积核进一步的简化,得到:
g
θ
(
Λ
)
=
β
(
I
+
L
^
)
g_{\theta}(\Lambda) = \beta(I+\hat{L})
gθ(Λ)=β(I+L^)
之前为了符合切比雪夫多项式的取值对特征值矩阵进行归一化操作并进行了平移,通过如下公式实现。
Λ
^
=
2
λ
max
Λ
−
I
n
\hat{\Lambda} = \frac{2}{\lambda_{\text{max}}} \Lambda -I_n
Λ^=λmax2Λ−In
这部分和上面Chebnet 的归一化方式不同,但同时起到的作用都是一样的。因此
L
^
\hat{L}
L^ 的也是这么得到的
L
^
=
2
λ
max
L
−
I
n
\hat{L} = \frac{2}{\lambda_{\text{max}}}L \ -I_n
L^=λmax2L −In在这部分的基础上对
λ
m
a
x
\lambda_{max}
λmax进行限定,设定
λ
m
a
x
=
2
\lambda_{max}=2
λmax=2因此:
L
^
=
2
2
L
−
I
n
=
L
−
I
n
\hat{L} = \frac{2}{2}L \ -I_n=L -I_n
L^=22L −In=L−In
g
θ
(
Λ
)
=
β
(
I
n
−
L
+
I
n
)
g_{\theta}(\Lambda) = \beta(I_n-L +I_n)
gθ(Λ)=β(In−L+In)
拉普拉斯矩阵是进行归一化得到:
L
=
I
n
−
D
−
1
2
A
D
−
1
2
L = I_n - D^{-\frac{1}{2}} A D^{-\frac{1}{2}}
L=In−D−21AD−21
是对邻接矩阵进行了对称归一化,所以最终卷积核被写成了:
g
θ
(
Λ
)
=
β
(
2
I
n
−
L
)
g_{\theta}(\Lambda) = \beta( 2I_n -L)
gθ(Λ)=β(2In−L)
g
θ
(
Λ
)
=
β
(
2
I
n
−
I
n
+
D
−
1
2
A
D
−
1
2
)
g_{\theta}(\Lambda) = \beta( 2I_n -I_n + D^{-\frac{1}{2}} A D^{-\frac{1}{2}})
gθ(Λ)=β(2In−In+D−21AD−21)
g
θ
(
Λ
)
=
β
(
I
n
+
D
−
1
2
A
D
−
1
2
)
g_{\theta}(\Lambda) = \beta( I_n + D^{-\frac{1}{2}} A D^{-\frac{1}{2}})
gθ(Λ)=β(In+D−21AD−21)
邻接矩阵矩阵和单位阵相加的操作实际上在图结构上就是加了一个自环,在每次卷积的过程中能够聚合到自身的信息。因此最终的GCN卷积公式被定义为:
g θ ∗ X = β ( D ~ − 1 2 A ~ D ~ − 1 2 ) ∗ X g_{\theta} * X =\beta(\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}) * X gθ∗X=β(D~−21A~D~−21)∗X
其中, A ~ = A + I \tilde{A} = A + I A~=A+I 是添加了自连接的邻接矩阵, D ~ \tilde{D} D~ 是 A ~ \tilde{A} A~的度矩阵。当然这部分并不是GCN的全貌,再加上激活函数 σ \sigma σ,得到了如下形式的图卷积操作:
f ( H ( l ) , A ) = σ ( D ^ − 1 2 A ^ D ^ − 1 2 H ( l ) W ( l ) ) f(H^{(l)}, A) = \sigma(\hat D^{-\frac{1}{2}} \hat A \hat D^{-\frac{1}{2}} H^{(l)} W^{(l)}) f(H(l),A)=σ(D^−21A^D^−21H(l)W(l))
其中, H ( l ) H^{(l)} H(l)对应输入 X X X, W ( l ) W^{(l)} W(l) 对应参数 β \beta β, A ^ \hat A A^ 是归一化的邻接矩阵, D ^ \hat D D^是度矩阵的对角矩阵。这个公式描述了 GCN 中的一个卷积层操作,通过归一化的邻接矩阵和参数矩阵对输入特征进行线性变换,并通过激活函数 σ \sigma σ 进行非线性映射,得到输出特征。
在这个公式中, l l l 表示图卷积网络中的层数或者说是图卷积的阶数。在多层的图卷积网络中,通常会有多个图卷积层,每一层都会对输入特征进行一次图卷积操作。因此, l l l 表示了当前图卷积操作所处的层次。在这个公式中, H ( l ) H^{(l)} H(l) 用来区分不同层的特征表示,表示第 l l l 层的特征表示。
2.4.2 解读GCN公式
首先,换一个角度去理解GCN的公式,不把它想象成卷积核利用一阶的切比雪夫多项式逼近的形式。
X
′
=
β
(
D
~
−
1
2
A
~
D
~
−
1
2
)
∗
X
X' =\beta(\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}) * X
X′=β(D~−21A~D~−21)∗X
X
X
X作为节点的特征矩阵每一行代表着不同节点的特征信息。
A
A
A作为邻接矩阵被用来描述整个图结构,通过在对角线位置加上单位阵,实现了自连接。当将
A
+
I
A+I
A+I和
X
X
X乘积时就是将当前节点的特征和一阶邻居特征相加求和经历了两次归一化,从而得到了新的
X
′
X'
X′。(省略掉了特真选择矩阵w和激活函数的部分)
那么为什么要使用度矩阵进行归一化呢?
想象下,如果这是一个社交网络,每个人的特征信息是工资情况,那么要是想得到你的工资情况,只需要通过对你朋友工资求和然后计算均值大概率你的工资也在这个区间。这就是度矩阵的作用。
为什么要进行两次归一化呢?
就是假如你有一个朋友是明星那他就会拉高你的工资,所以对明星的特征除去他的朋友数量进行稀释他对你的影响。从而实现了CNN中更新当前节点依靠周围信息这样的模式。
GCN中的每次更新使用了一阶邻居信息就类似于一个 3 ∗ 3 3*3 3∗3的卷积核。
3. 知识梳理
谱域图卷积网络的讲解告一段落,从最初在非欧几里得的图结构上实施卷积操作的尝试开始,学者们结合傅立叶变换和拉普拉斯矩阵的特征分解,虽经曲折,却成功定义在非欧几里得数据的上图卷积操作。然而,因其步骤繁琐、效率低下,SCNN(Spectral CNN)随后应运而生,取消了复杂的傅立叶变换步骤,显著简化了图卷积的执行过程。不止于此,研究者们继续攀登科研的高峰,在进步的征途上不断迈进。
ChebNet代表了这一进步之旅的重要里程碑,它通过多项式近似的方式逼近卷积核,消除了对拉普拉斯矩阵特征分解的需求,依托切比雪夫多项式的递归特性减轻了计算负担,极大提升了运算速度。随后,GCN(Graph Convolutional Network)在ChebNet的基础上进一步简化,仅仅利用一阶邻居信息,孕育出了谱域图卷积的终极形态。这一变革不仅优化了算法性能和计算效率,而且在理念上更接近传统CNN的运算逻辑。因此,我们得以拥有现今广为人知的GCN公式。
这一系列的科研进展为图卷积网络的前沿发展添砖加瓦,为处理和分析复杂的图数据提供了强有力的分析工具,推动了图数据处理技术的飞速发展。