【GCN】以距离分区的角度考虑空域和频域的图卷积操作

🚀本文简要梳理一下图卷积网络(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^=D1/2AD1/2= 06 16 16 16 1006 16 1006 16 16 16 10
或者,考虑到自联通:
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= 4143 143 14143 131033 143 103133 14133 133 141
另外,在深度学习中,还可以为邻接矩阵赋予一个可学习的权重矩阵 M M M,将之与邻接矩阵逐元素相乘作为新的邻接矩阵(度矩阵也相应变化):
A = A ⊙ M A=A\odot M A=AM
如无特殊说明,在接下来的案例中 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^= 4143 143 14143 131033 143 103133 14133 133 141

使用下式对特征进行传播更新(不考虑非线性激活函数):
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= 4143 143 14143 131033 143 103133 14133 133 141 10100110 [1111]= 41(1)+43 1(0)+43 1(1)+41(0)43 1(1)+31(0)+0(1)+33 1(0)43 1(1)+0(0)+31(1)+33 1(0)41(1)+33 1(0)+33 1(1)+41(0) = 41+43 143 143 1+3141+33 143 2313133 2

🔥说明:这里采用的是 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=DA= 3111120110211113
考虑到数值稳定性,有时需要对图拉普拉斯矩阵进行归一化处理,这里采用对称归一化:
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^=IA^= 4343 143 14143 132033 143 103233 14133 133 143
可以发现,图拉普拉斯矩阵中元素正负交加,说明其具有一种“微分”的性质,可以用作图谱的频域描述,具体来说,对图拉普拉斯矩阵进行特征分解,即(无论是否归一化,同理):
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)=2xTk1(x)Tk2(x),k2
其用于定义正交性的权重函数为:
w ( x ) = 1 1 − x 2 ,    x ∈ [ − 1 , 1 ] w(x)=\frac{1}{\sqrt{1-x^2}},\;x\in[-1,1] w(x)=1x2 1,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 11h(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=0K1θ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/λmax1
接着,使用下式进行多项式逼近(由于计算比较麻烦,这里就不展开了,但每个符号对应的数值都是可以通过前文得到的):
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)xk=0K1θkTk(L)x
因此,对 g θ ( ⋅ ) g_\theta(\cdot) gθ()的学习就转换成了对一系列 θ k \theta_k θk的学习。

🔥说明:这里 K K K定义为截断的阶数,同时参考距离分区,这个阶数其实就划定的频域图卷积的感受野,而相对应的可学习的系数 θ k \theta_k θk就划定了各距离的节点在整个感受野中的比重。这也可以解释为什么图拉普拉斯算子只考虑距离为1的邻接矩阵,因为需要把它当作一个“基”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值