要将图像上的卷积拓展到图上,需要定义一种新的图卷积方法。然后就演变出了两种方法
Spectral method:用 spectral domain 来定义卷积。
- 通过图上的傅里叶变换来定义卷积
- 主要的挑战是卷积滤波器不是局部化的,这个是个致命的缺点
Spatial method:用 vertex domain 来定义卷积。类比于图像上的二维卷积,照葫芦画瓢
给定一个图 G = ( V , E , W ) G=(V,E,W) G=(V,E,W) , V V V 是节点集合,假设有 n n n 个节点, W ∈ R n × n W\in R^{n\times n} W∈Rn×n 是邻接矩阵,每个节点还有 d d d 维特征, x ∈ R n × d x\in R^{n \times d} x∈Rn×d 是节点们的特征向量矩阵。
Laplacian 矩阵
L = D − W L=D-W L=D−W , D D D 是一个对角矩阵并且 D i i = ∑ j W i , j D_{ii}=\sum_jW_{i, j} Dii=∑jWi,j
normalized Laplacian 矩阵
L = I − D − 1 2 W D − 1 2 L=I-D^{-\frac{1}{2}}WD^{-\frac{1}{2}} L=I−D−21WD−21
傅里叶变换的一系列的正交基 { u l } l = 1 n \{u_l\}_{l=1}^n {ul}l=1n 通过其特征值 { λ l } l = 1 n \{\lambda_l\}_{l=1}^n {λl}l=1n ,然后图 Laplacian 矩阵就可以被对角化 L = U Λ U T L=U\Lambda U^T L=UΛUT,其中 U = [ u 1 , ⋯ , u n ] U=[u_1, \cdots, u_n] U=[u1,⋯,un], Λ = d i a g ( [ λ 1 , ⋯ , λ n ] ) \Lambda=diag([\lambda_1, \cdots, \lambda_n]) Λ=diag([λ1,⋯,λn])
图傅里叶变换
单个向量 x ∈ R n x\in R^n x∈Rn 的图傅里叶变换为 x ^ = U T x \hat{x}=U^Tx x^=UTx ,逆变换为 x = U x ^ x=U\hat{x} x=Ux^
卷积定理:两个信号的卷积可以看作他们的傅里叶变换的卷积,如下面公式所示,其中 ∗ G *_G ∗G 代表卷积算子。
x ∗ G y = U ( ( U T x ) ⊙ ( U T y ) ) x *_G y = U((U^Tx)\odot (U^Ty)) x∗Gy=U((UTx)⊙(UTy))
其中 ⊙ \odot ⊙ 代表 point-wise 乘积,spectraldomain 里的卷积核就是 U T y U^T y UTy 。
令 U T y = [ θ 0 , ⋯ , θ n − 1 ] U^Ty=[\theta_0,\cdots,\theta_{n-1}] UTy=[θ0,⋯,θn−1] 并且 g θ = d i a g ( [ θ 0 , ⋯ , θ n − 1 ] ) g_\theta = diag([\theta_0, \cdots, \theta_{n-1}]) gθ=diag([θ0,⋯,θn−1]) ,我们有
x ∗ G y = U g θ U T x x *_G y = Ug_{\theta}U^Tx x∗Gy=UgθUTx
到此可以写出 Spectral Graph CNN,
x k + 1 , j = h ( ∑ i = 1 f k U F k , i , j U T x k , i ) , j = 1 , ⋯ , f k + 1 x_{k+1, j}=h(\sum_{i=1}^{f_k}UF_{k, i, j}U^Tx_{k, i}), j=1,\cdots, f_{k+1} xk+1,j=h(i=1∑fkUFk,i,jUTxk,i),j=1,⋯,fk+1
其中 x k , i x_{k, i} xk,i 式第 k k k 层的信号向量, F k , i , j F_{k, i, j} Fk,i,j 是第 k k k 层的 filter。
为了解决 spectral graph cnn 的三个缺点,考虑用多项式近似参数化卷积核,
g θ = d i a g ( [ θ 0 , ⋯ , θ n − 1 ] ) → g β ( Λ ) = ∑ k = 0 K − 1 β k Λ k , Λ = d i a g ( λ 1 , λ 2 , ⋯ , λ n ) g_{\theta}=diag([\theta_0, \cdots, \theta_{n-1}])\rightarrow g_{\beta}(\Lambda)=\sum_{k=0}^{K-1}\beta_k\Lambda^k, \Lambda=diag(\lambda_1, \lambda_2, \cdots, \lambda_n) gθ=diag([θ0,⋯,θn−1])→gβ(Λ)=k=0∑K−1βkΛk,Λ=diag(λ1,λ2,⋯,λn)
x ∗ G y = U g β ( Λ ) U T x = ∑ k = 0 K − 1 β k L k x x *_G y = Ug_{\beta}(\Lambda)U^Tx=\sum_{k=0}^{K-1}\beta_kL^kx x∗Gy=Ugβ(Λ)UTx=k=0∑K−1βkLkx
这样形式有几个好处
通过与图像上的卷积神经网络类比。图像上的卷积步骤:
通过类比,确定了图卷积神经网络(spatial method)的步骤:
a v ( k ) = A G G R E G A T E ( k ) ( { h u ( k − 1 ) : u ∈ N ( v ) } ) a_v^{(k)}=AGGREGATE^{(k)}(\{h_u^{(k-1)}:u\in \mathcal{N}(v)\}) av(k)=AGGREGATE(k)({hu(k−1):u∈N(v)})
h v ( k ) = C O M B I N E ( k ) ( h v ( k − 1 ) , a v ( k ) ) h_v^{(k)}=COMBINE^{(k)}(h_v^{(k-1)},a_v^{(k)}) hv(k)=COMBINE(k)(hv(k−1),av(k))
因为有了聚合函数,就不再需要给邻居定序了。(是 GCN 到 GNN 的过渡)
Z = f ( X , A ) = s o f t m a x ( A ^ R e l u ( A ^ X W ( 0 ) ) W ( 1 ) ) Z=f(X, A)=softmax(\hat{A}Relu(\hat{A}XW^{(0)})W^{(1)}) Z=f(X,A)=softmax(A^Relu(A^XW(0))W(1))
GCN 里面其实没有参数化的卷积,其中 W ( 0 ) W^{(0)} W(0) 和 W ( 1 ) W^{(1)} W(1) 是用来做特征变换的,类似全连接神经网络。唯一一个起到卷积作用的是 A ^ \hat{A} A^,是图的规范化的 Laplacian 矩阵,是一个给定的矩阵,相当于卷积的硬编码。
https://doi.org/10.48550/arXiv.1710.10903
为了解决 GCN 中没有可学习的卷积参数的问题。
通过注意力机制学习一个聚合矩阵,在上面的 GCN 里聚合矩阵就是 Laplacian 矩阵。
通过两个部分共享参数。
- 特征变换部分的参数 W W W
- 注意力机制的参数 a ⃗ \vec{a} a
α i , j = e x p ( L e a k y R e l u ( a ⃗ T [ W h i ⃗ ∣ ∣ W h j ⃗ ] ) ) / ∑ k ∈ N i e x p ( L e a k y R e l u ( a ⃗ T [ W h i ⃗ ∣ ∣ W h k ⃗ ] ) ) \alpha_{i, j}=exp(LeakyRelu(\vec{a}^T[W\vec{h_i}||W\vec{h_j}]))/\sum_{k\in \mathcal{N}_i}exp(LeakyRelu(\vec{a}^T[W\vec{h_i}||W\vec{h_k}])) αi,j=exp(LeakyRelu(aT[Whi∣∣Whj]))/k∈Ni∑exp(LeakyRelu(aT[Whi∣∣Whk]))
|| 代表拼接操作。
空间方法的一般框架
( f ∗ g ) ( x ) = ∑ j = 1 J g j D j ( x ) f (f*g)(x)=\sum_{j=1}^{J}g_jD_j(x)f (f∗g)(x)=j=1∑JgjDj(x)f
g j g_j gj 是卷积核。
Spectral CNN
y = U g θ U T x = ( θ 1 u 1 u 1 T + θ 2 u 2 u 2 T + ⋯ + θ n u n u n T ) x y=Ug_{\theta}U^Tx=(\theta_1u_1u_1^T+\theta_2u_2u_2^T+\cdots+\theta_nu_nu_n^T)x y=UgθUTx=(θ1u1u1T+θ2u2u2T+⋯+θnununT)x
ChebyNet
y = ( θ 0 I + θ 1 L + θ 2 L 2 + ⋯ + θ K − 1 L K − 1 ) x y=(\theta_0I+\theta_1L+\theta_2L^2+\cdots+\theta_{K-1}L^{K-1})x y=(θ0I+θ1L+θ2L2+⋯+θK−1LK−1)x
GCN
y = θ ( 1 − L ) x y=\theta(1-L)x y=θ(1−L)x
spatial method 和 spectral method 的联系:
都可以由上面的公式概括, D j ( x ) D_j(x) Dj(x) 就是核函数,定义了节点之间的相似度和距离。
spatial method 和 spectral method 的不同: