图卷积神经网络(Graph Convolutional Network)的卷积

本文主要参考了:

其他见参考文献部分。

图卷积神经网络(Graph Convolutional Network)的卷积

1.拉普拉斯矩阵

1.1 简单图的拉普拉斯矩阵

给定一个具有nn个顶点的简单无向图G(V,E)G(V,E)

  • AA是图G=(V,E)G=(V,E)的邻接矩阵
  • DD是顶点的度矩阵(对角矩阵),Dii=jAijD_{ii} = \sum_{j}A_{ij}
  • 拉普拉斯矩阵Ln×nL_{n \times n}L=DAL = D - A

LL中的元素定义为
Li,j={deg(vi)if i=j1if ijand is vi adjacent to vj0otherwise L_{i,j} = \begin{cases} deg(v_i) & \text{if } i = j \\ -1 & \text{if } i \neq j \text{and is } v_i \text{ adjacent to } v_j\\ 0 & \text{otherwise} \end{cases}
其中deg(vi)deg(v_i)是顶点viv_i的度。

可以验证,对于任意的图G=(V,E)G=(V,E)的顶点VV上的函数fRnf \in \mathbb{R}^n都有:
(Lf)(vi)=vivjai,j(f(vi)f(vj)). \left( \mathcal{L} f \right)(v_i) = \sum_{v_i \sim v_j} a_{i,j} \left( f(v_i) - f(v_j) \right).
其中vivjv_i \sim v_j表示所有与顶点viv_i相连接的顶点集合,ai,ja_{i,j}是两顶点vi,vjv_i,v_j之间的连接权重。

1.2 对称归一化拉普拉斯算子

对称归一化拉普拉斯矩阵定义为:
Lsys=D12LD12=IND12AD12 L^{sys} = D^{-\frac{1}{2}} L D^{-\frac{1}{2}} = I_{N} - D^{-\frac{1}{2}} A D^{-\frac{1}{2}}
LsysL^{sys}中的元素定义为
Li,jsys={1if i=j and deg(vi)01deg(vi)deg(vj)if ij nd is vi adjacent to vj0otherwise L_{i,j}^{sys} = \begin{cases} 1 & \text{if } i = j \text{ and } deg(v_i) \neq 0\\ -\frac{1}{\sqrt{deg(v_i) deg(v_j)}}& \text{if } i \neq j \text{ nd is } v_i \text{ adjacent to } v_j\\ 0 & \text{otherwise} \end{cases}

1.3 随机游走归一化拉普拉斯算子

随机游走归一化拉普拉斯矩阵定义为:
Lrw=D1L=IND1A L^{rw} = D^{-1} L = I_{N} - D^{-1} A

LrwL^{rw}中的元素定义为
Li,jrw={1if i=j and deg(vi)01deg(vi)if ij nd is vi adjacent to vj0otherwise L_{i,j}^{rw} = \begin{cases} 1 & \text{if } i = j \text{ and } deg(v_i) \neq 0\\ -\frac{1}{deg(v_i)}& \text{if } i \neq j \text{ nd is } v_i \text{ adjacent to } v_j\\ 0 & \text{otherwise} \end{cases}

1.4 拉普拉斯矩阵的基本性质

对于(无向)图G(V,E)G(V,E)及其具有特征值的拉普拉斯矩阵LL,将其特征值排列为λ0,λ1,,λn1\lambda_0, \lambda_1, \cdots, \lambda_{n-1}:

  • LL是对称的。
  • LL是半正定的,即λi0\lambda_i \geq 0
  • LL的每一行和列总和为零。
  • LL是M矩阵。

L矩阵的定义:若AA一个n×nn\times n的方阵,若aii>0a_{ii}>0, 而aij0(ij)a_{ij} \leq 0 (i \neq j),则称AA为L矩阵。
M矩阵的定义:若AA为L矩阵,其为M矩阵的条件为下列之一:

  • AA的所有特征值的实部皆为正。
  • AA的所有主子式皆为正。
  • AA的所有顺序主子式皆为正。
  • AA的逆存在且为非负矩阵。
  • 有正向量x\vec{x},使AxA\vec{x}为正向量。
  • 有对角线主元素全为正的对角形矩阵(叫做正对角形矩阵)DD,使ADeAD\vec{e}为正向量,其中e=(1,,1)T\vec{e}=(1,\cdots,1)^T
  • 对实向量x\vec{x},若AxA\vec{x}非负,则x\vec{x}非负。
  • D=diag(A),C=DA,B=D1CD=diag(A), C=D-A,B=D^{-1}*C,则ρ(B)<1ρ(B)<1,其中ρ(B)ρ(B)BB的特征值的模的最大值。
  • B=λIAB=\lambda I-A为非负矩阵,其中II为单位矩阵,λ>ρ(B)\lambda>ρ(B)
  • BBLL矩阵,且bijaij,i,j=1,2,,nb_{ij} \geq a_{ij}, i,j=1,2,\cdots,n,则BB的逆存在。
  • 存在下三角矩阵TT和上三角矩阵UU,其中TTUU均为L矩阵,使A=TUA=TU.

1.5拉普拉斯矩阵特征值分解

LL特征值分解为
L=U(λ0λn1)U1=UΛU1. L = U \begin{pmatrix} \lambda_0 & & \\ & \ddots & \\ & & \lambda_{n-1} \\ \end{pmatrix} U^{-1} = U \Lambda U^{-1}.
其中U=(u0,u1,,un1)U = (\vec{u}_0,\vec{u}_1,\cdots, \vec{u}_{n-1})是由LL的特征向量(列向量)组成的矩阵,相应列的特征向量与特征值矩阵Λ\Lambda相应列的特征值相互对应。

由于UU是正交矩阵,即UUT=InU U^T = I_n,即上面的式子又可以写成:
L=UΛUT. L = U \Lambda U^T.

2.拉普拉斯算子

2.1拉普拉斯算子的定义

梯度 : 设f:R3Rf:\mathbb{R}^3 \rightarrow \mathbb{R}在空间区域GG上具有一阶连续偏导数,点P(x1,x2,x3)GP(x_1, x_2, x_3) \in G,称向量
(fx1,fx2,fx3)=fx1i1+fx2i2+fx3i3 \left( \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, \frac{\partial f}{\partial x_3} \right) = \frac{\partial f}{\partial x_1} \vec{i_1} + \frac{\partial f}{\partial x_2} \vec{i_2} + \frac{\partial f}{\partial x_3} \vec{i_3}
为函数ff在点PP处的梯度,记作f(x1,x2,x3)\nabla f (x_1, x_2, x_3)grad(f)grad(f)

其中
=x1i1+x2i2+x3i3 \nabla = \frac{\partial}{\partial x_1} \vec{i_1} + \frac{\partial}{\partial x_2} \vec{i_2} + \frac{\partial}{\partial x_3} \vec{i_3}
称作(三维)向量的微分算子。多维的则为=j=1nxjij\nabla = \sum_{j=1}^{n} \frac{\partial}{\partial x_j} \vec{i_j}

散度 散度 ".\nabla . " (divergence)可用于表针空间中各点矢量场发散的强弱程度,物理上,散度的意义是场的有源性。当 div(F)>0div(F) > 0,表示该点有散发通量的正源(发散源);当div(F)<0div(F) < 0 表示该点有吸收能量的负源(洞或汇);当div(F)=0div(F) = 0,表示该点无源。

拉普拉斯算子: 拉普拉斯算子(Laplace Operator)是nn维欧几里得空间中的一个二阶微分算子,定义为梯度( f\nabla f )的散度( .\nabla . )。Δf=2f=.f=div(grad(f))\Delta f = \nabla^2 f = \nabla . \nabla f = div(grad(f))

笛卡尔坐标系下的表示法:
Δf=2fx12+2fx22+2fx32 \Delta f = \frac{\partial^2 f}{\partial x_1^2} + \frac{\partial^2 f}{\partial x_2^2} + \frac{\partial^2 f}{\partial x_3^2}
nn维时为Δ=i2fxi2\Delta = \sum_{i} \frac{\partial^2 f}{\partial x_i^2}

2.2离散拉普拉斯算子

在离散的情况下,fx=f(x)=f(x+1)f(x)\frac{\partial f}{ \partial x} = f^{'}(x) = f(x+1) - f(x)

2fx2=f(x)f(x)f(x1)=f(x+1)+f(x1)2f(x). \begin{aligned} \frac{\partial^2 f}{\partial x^2} &= f^{''}(x) \approx f^{'}(x) - f^{'}(x-1) \\ &= f(x+1) + f(x-1) - 2f(x). \end{aligned}

以二维情况为例子,见下

图卷积神经网络(Graph Convolutional Network)的卷积

Δf=2fx2+2fy2=(f(x+1,y)+f(x1,y)2f(x,y))+(f(x,y+1)+f(x,y1)2f(x,y))=f(x+1,y)+f(x1,y)+f(x,y+1)+f(x,y1)4f(x,y) \begin{aligned} \Delta f &= \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} \\ &= \left( f(x+1, y) + f(x-1, y) - 2f(x, y) \right) + \left( f(x, y+1) + f(x, y-1) - 2f(x, y) \right) \\ &= f(x+1, y) + f(x-1, y) + f(x, y+1) + f(x, y-1) - 4f(x, y) \end{aligned}

现在用散度的概念解读一下:

  • 如果 Δf=0\Delta f = 0 ,可以近似认为中心点 f(x,y)f(x,y) 的势和其周围点的势是相等的, f(x,y)f(x,y)局部范围内不存在势差。所以该点无源
  • Δf>0\Delta f > 0 ,可以近似认为中心点f(x,y)f(x,y)的势低于周围点,可以想象成中心点如恒星一样发出能量,补给周围的点,所以该点是正源
  • Δf<0\Delta f < 0 ,可以近似认为中心点f(x,y)f(x,y)的势高于周围点,可以想象成中心点如吸引子一样在吸收能量,所以该点是负源

另一个角度,拉普拉斯算子计算了周围点与中心点的梯度差。当f(x,y)f(x,y)受到扰动之后,其可能变为相邻的f(x+1,y),f(x1,y),f(x,y+1),f(x,y1)f(x+1,y),f(x-1,y),f(x,y+1),f(x,y-1)之一,拉普拉斯算子得到的是对该点进行微小扰动后可能获得的总增益 (或者说是总变化)。

2.3图上的拉普拉斯算子

现在将这个结论推广到图: 假设具有NN个节点的图GG,此时以上定义的函数ff不再是二维,而是NN维向量:f=(f1,f2,,fN)f=(f_1,f_2,\cdots,f_N) ,其中fif_i为函数ff在图中节点viv_i处的函数值。类比于f(x,y)f(x,y)在节点(x,y)(x,y)处的值。对viv_i节点进行扰动,它可能变为任意一个与它相邻的节点vjNiv_j \in N_i, NiN_i表示节点viv_i的一阶邻域节点。

如下

图卷积神经网络(Graph Convolutional Network)的卷积

上面已经知道拉普拉斯算子可以计算一个点到它所有自由度上微小扰动的增益,则通过图来表示就是任意一个节点vjv_j变化到节点viv_i所带来的增益,考虑图中边的权值相等(简单说就是1)则有:
Δfi=vjNi(fifj). \Delta f_i = \sum_{v_j \in N_i} (f_i - f_j).
而如果ei,je_{i,j}具有权重aija_{ij}时,则为:
Δfi=vjNiaij(fifj). \Delta f_i = \sum_{v_j \in N_i} a_{ij}(f_i - f_j).

上式即为(Lf)(vi)=vivjai,j(f(vi)f(vj))\left( \mathcal{L} f \right)(v_i) = \sum_{v_i \sim v_j} a_{i,j} \left( f(v_i) - f(v_j) \right)

可以看到上面的式子仅限于vjNiv_j \in N_i(或vivjv_i \sim v_j),如果令aij=0a_{ij}=0表示节点vi,vjv_i,v_j不相连。则可以拓展:
Δfi=vjVaij(fifj)=vjVaijfivjVaijfj=(vjVaij)fiaif. \begin{aligned} \Delta f_i &= \sum_{v_j \in V} a_{ij}(f_i - f_j) \\ &= \sum_{v_j \in V} a_{ij} f_i - \sum_{v_j \in V} a_{ij} f_j \\ &= \left( \sum_{v_j \in V} a_{ij} \right) f_i - \vec{a_i} \vec{f}. \end{aligned}
di=vjVaijd_i = \sum_{v_j \in V} a_{ij}是顶点viv_i的度。

对所有的NN个节点有:
Δf=(Δf1ΔfN)=(d1f1a1fdNfNaNf)=(d100dN)f(a1aN)f=diag(di)fAf=(DA)f=Lf \begin{aligned} \Delta f &= \begin{pmatrix} \Delta f_1 \\ \vdots \\ \Delta f_N \end{pmatrix} =\begin{pmatrix} d_1 f_1 - \vec{a_1} \vec{f} \\ \vdots \\ d_N f_N - \vec{a_N} \vec{f} \end{pmatrix} \\ & = \begin{pmatrix} d_1 & \cdots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \cdots & d_N \end{pmatrix} f - \begin{pmatrix} \vec{a_1}\\ \vdots \\ \vec{a_N} \end{pmatrix} f \\ &= diag(d_i) f - Af \\ &= (D - A)f \\ &= Lf \end{aligned}

2.4拉普拉斯算子与拉普拉斯矩阵的关系

再次考虑二维情况,离散化的拉普拉斯算子得到的
Δf=f(x+1,y)+f(x1,y)+f(x,y+1)+f(x,y1)4f(x,y) \Delta f = f(x+1, y) + f(x-1, y) + f(x, y+1) + f(x, y-1) - 4f(x, y)
与图上拉普拉斯矩阵得到的
(Lf)(x,y)=4f(x,y)(f(x+1,y)+f(x1,y)+f(x,y+1)+f(x,y1)) \left( \mathcal{L} f \right)(x,y) = 4f(x, y) - \left( f(x+1, y) + f(x-1, y) + f(x, y+1) + f(x, y-1) \right)
两者只相差一个符号。

3.傅里叶变换

3.1傅里叶变换简要推导

ejπxLie^{\frac{j \pi x}{L}i}作基,cjc_j作因子,表示函数f(x)f(x)
f(x)=j=cjejπxLi. f(x) = \sum_{j=-\infty}^{\infty} c_j e^{\frac{j \pi x}{L}i}.
其中的因子cjc_j为:
cj=12LLLf(t)ejπtLidt,<j<. c_j = \frac{1}{2L} \int_{-L}^{L} f(t) e^{-\frac{j \pi t}{L}i} dt, \qquad -\infty < j <\infty.
将因子代入有:
f(x)=j=[12LLLf(t)ejπtLidt]ejπxLi. f(x) = \sum_{j=-\infty}^{\infty} \left[ \frac{1}{2L} \int_{-L}^{L} f(t) e^{-\frac{j \pi t}{L}i} dt \right] e^{\frac{j \pi x}{L}i}.
ξj=πjL,Δξ=πL\xi_j = \frac{\pi j}{L}, \Delta \xi = \frac{\pi}{L},上面二式改写成:
FL(ξ)=12πLLf(t)eiξtdtf(x)=j=FL(ξj)eiξtΔξ. \begin{aligned} F_{L}(\xi) &= \frac{1}{2\pi} \int_{-L}^{L} f(t) e^{-i \xi t} dt \\ f(x) &= \sum_{j=-\infty}^{\infty} F_{L}(\xi_j) e^{i \xi t} \Delta \xi. \end{aligned}
LL \rightarrow \infty,将黎曼和转为积分则:
f(x)=j=[12πf(t)eiξtdt]eiξtdξ.=12πj=[12πf(t)eiξtdt]eiξtdξ. \begin{aligned} f(x) &= \int_{j=-\infty}^{\infty} \left[ \frac{1}{2\pi} \int_{-\infty}^{\infty} f(t) e^{-i \xi t} dt \right] e^{i \xi t} d \xi. \\ &= \frac{1}{\sqrt{2 \pi}} \int_{j=-\infty}^{\infty} \left[ \frac{1}{\sqrt{2 \pi}} \int_{-\infty}^{\infty} f(t) e^{-i \xi t} dt \right] e^{i \xi t} d \xi. \end{aligned}

得到傅里叶变换及其逆变换:
f^(ξ)=12πf(t)eiξtdtf(x)=12πj=f^(ξ)eiξtdξ. \begin{aligned} \hat{f}(\xi) &= \frac{1}{\sqrt{2 \pi}} \int_{-\infty}^{\infty} f(t) e^{-i \xi t} dt\\ f(x) &= \frac{1}{\sqrt{2 \pi}} \int_{j=-\infty}^{\infty} \hat{f}(\xi) e^{i \xi t} d \xi. \end{aligned}

3.2离散傅里叶变换

在连续的情况中,因子cjc_j为:
cj=12π02πf(t)eijxdt,<j<. c_j = \frac{1}{2 \pi} \int_{0}^{2 \pi} f(t) e^{-ijx} dt, \qquad -\infty < j <\infty.
将其离散化:
cj1nk=0n1f(xk)eijxk. c_j \approx \frac{1}{n} \sum_{k=0}^{n-1} f(x_k) e^{ijx_k}.
类比,得到离散的傅里叶变换:
y^k=j=0n1wnkjyj,0kn1, \hat{y}_k = \sum_{j=0}^{n-1} w_{n}^{-kj} y_j,\qquad 0 \leq k \leq n-1,
其中wn=e2πinw_n = e^{\frac{2 \pi i}{n}}

将其写成矩阵形式:
(y^0y^1y^2y^n1)=(11111wn1wn2wn(n1)1wn2wn4wn2(n1)1wn(n1))wn(n1)wn(n1)2)(y0y1y2yn1). \begin{pmatrix} \hat{y}_0 \\ \hat{y}_1 \\ \hat{y}_2 \\ \vdots \\ \hat{y}_{n-1} \\ \end{pmatrix} =\begin{pmatrix} 1 & 1 & 1 & \cdots & 1 \\ 1 & w_{n}^{-1} & w_{n}^{-2} & \cdots & w_{n}^{-(n-1)} \\ 1 & w_{n}^{-2} & w_{n}^{-4} & \cdots & w_{n}^{-2(n-1)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & w_{n}^{-(n-1))} & w_{n}^{-(n-1)} & \cdots & w_{n}^{-(n-1)^2} \\ \end{pmatrix} \begin{pmatrix} y_0 \\ y_1 \\ y_2 \\ \vdots \\ y_{n-1} \\ \end{pmatrix}.

Fn=(11111wn1wn2wn(n1)1wn2wn4wn2(n1)1wn(n1))wn(n1)wn(n1)2). F_n = \begin{pmatrix} 1 & 1 & 1 & \cdots & 1 \\ 1 & w_{n}^{1} & w_{n}^{2} & \cdots & w_{n}^{(n-1)} \\ 1 & w_{n}^{2} & w_{n}^{4} & \cdots & w_{n}^{2(n-1)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & w_{n}^{(n-1))} & w_{n}^{(n-1)} & \cdots & w_{n}^{(n-1)^2} \\ \end{pmatrix}.
即离散傅里叶变换为:
y^=Fnˉy. \vec{\hat{y}} = \bar{F_n} \vec{y}.

根据
(Fnˉ)1=1nFn, (\bar{F_n})^{-1} = \frac{1}{n} F_n,
得到逆离散傅里叶变换为:
y=1nFny^. \vec{y} = \frac{1}{n} F_n \vec{\hat{y}}.

3.3图上傅里叶变换

在傅里叶变换中,使用的基函数eiwte^{-iwt}是因为它是拉普拉斯算子的特征函数(满足特征方程), ww就和特征值有关。

广义的特征方程定义为:
AV=λV AV = \lambda V
其中AA是一种变换,VV是特征向量或者特征函数(无穷维的向量),λ\lambda是特征值。

eiwte^{-iwt}满足:
Δeiwt=22teiwt=w2eiwt. \Delta e^{-iwt} = \frac{\partial^2}{\partial^2 t} e^{-iwt} = -w^2 e^{-iwt}.
当然eiwte^{-iwt}就是变换Δ\Delta的特征函数,ww和特征值密切相关。

LL是拉普拉斯矩阵,VV是其特征向量,自然满足下式:
LV=λV. LV = \lambda V.

由此得到图上的傅里叶变换:
F[f(λl)]=f^(λl)=<f,ul>=viVf(vi)ul(vi) \mathcal{F}[f(\lambda_l)] = \hat{f}(\lambda_l) = \left< f, \vec{u}_l \right>= \sum_{v_i \in V} f(v_i) u_l^{*}(v_i)
矩阵形式为:
图上傅里叶变换: f^=UTf图上逆傅里叶变换: f=Uf^ \begin{aligned} &\text{图上傅里叶变换: } &\hat{f} = U^T f \\ &\text{图上逆傅里叶变换: } &f = U \hat{f} \end{aligned}

3.4为什么拉普拉斯矩阵的特征向量可以作为傅里叶变换的基?特征值表示频率?

3.4.1为什么拉普拉斯矩阵的特征向量可以作为傅里叶变换的基?

傅里叶变换一个本质理解就是:把任意一个函数表示成了若干个正交函数(由sin,cos 构成)的线性组合。

图卷积神经网络(Graph Convolutional Network)的卷积

图上傅里叶变换也把图上定义的任意向量f\vec{f},表示成了拉普拉斯矩阵特征向量的线性组合,即:
f=i=0n1f^(λ0)u0. \vec{f} = \sum_{i=0}^{n-1}\hat{f}(\lambda_0) \vec{u}_0.

为什么graph上任意的向量f\vec{f}都可以表示成这样的线性组合?
原因是,u0,u1,,un1\vec{u}_0,\vec{u}_1,\cdots, \vec{u}_{n-1}是图上nn维空间中的nn个线性无关的正交向量。

3.4.2怎么理解拉普拉斯矩阵的特征值表示频率?

在图空间上无法可视化展示“频率”这个概念,那么从特征方程上来抽象理解。

因为L1n×1=0n×1L \mathbb{1}_{n \times 1} = \vec{0}_{n \times 1}可知LL的最小特征值λ0=0\lambda_0 = 0

从特征方程的数学理解来看:
Lu=λu. L \vec{u} = \lambda \vec{u}.
在由图确定的nn维空间中,越小的特征值λl\lambda_l表明:拉普拉斯矩阵LL其所对应的基ul\vec{u}_l上的分量、“信息”越少,那么当然就是可以忽略的低频部分了。

其实图像压缩就是这个原理,把像素矩阵特征分解后,把小的特征值(低频部分)全部变成0,PCA降维也是同样的,把协方差矩阵特征分解后,按从大到小取出前K个特征值对应的特征向量作为新的“坐标轴”。

4.GCN卷积

4.1图上卷积

卷积定理
F[f1(t)f2(t)]=F[f1(t)]F[f2(t)] \mathcal{F} \left[ f_1(t) \star f_2(t) \right] = \mathcal{F} \left[ f_1(t)\right] \odot \mathcal{F} \left[ f_2(t)\right]
其中\star为卷积运算符,\odot表示Hadamard product(哈达马积),对于两个维度相同的向量、矩阵、张量进行对应位置的逐元素乘积运算。

卷积定理将卷积与傅里叶变换联系起来。由此我们得到了图上的卷积:
(fh)G=U[(UTh)(UTf)]. \left( f \star h\right)_G = U \left[ \left(U^T h\right) \odot \left(U^T f\right) \right].

这里为了后续说明问题的方便,不再使用\odot。两向量UTh,UTfU^T h, U^T f做逐点乘积,等价于把其中一个向量对角化做矩阵乘积:
(UTh)(UTf)=(h^(λ0)h^(λ1)h^(λn1))(f^(λ0)f^(λ1)f^(λn1))=(h^(λ0)h^(λ1)h^(λn1))(f^(λ0)f^(λ1)f^(λn1))=diag(h^(λl))UTf. \begin{aligned} \left(U^T h\right) \odot \left(U^T f\right) &= \begin{pmatrix} \hat{h}(\lambda_0) \\ \hat{h}(\lambda_1) \\ \vdots \\ \hat{h}(\lambda_{n-1}) \end{pmatrix} \odot \begin{pmatrix} \hat{f}(\lambda_0) \\ \hat{f}(\lambda_1) \\ \vdots \\ \hat{f}(\lambda_{n-1}) \end{pmatrix} \\ &= \begin{pmatrix} \hat{h}(\lambda_0) \\ & \hat{h}(\lambda_1) & & \\ & & \ddots & \\ & & & \hat{h}(\lambda_{n-1}) \end{pmatrix} \begin{pmatrix} \hat{f}(\lambda_0) \\ \hat{f}(\lambda_1) \\ \vdots \\ \hat{f}(\lambda_{n-1}) \end{pmatrix}\\ &= diag(\hat{h}(\lambda_l) ) U^T f. \end{aligned}

因此用矩阵形式:
(fh)G=U(h^(λ0)h^(λ1)h^(λn1))UTf=Udiag(h^(λl))UTf. \left( f \star h\right)_G = U \begin{pmatrix} \hat{h}(\lambda_0) \\ & \hat{h}(\lambda_1) & & \\ & & \ddots & \\ & & & \hat{h}(\lambda_{n-1}) \\ \end{pmatrix} U^T f = U diag(\hat{h}(\lambda_l)) U^T f.

4.2第一代GCN

Spectral Networks and Locally Connected Networks on Graphs中简单粗暴地把diag(h^(λl))diag(\hat{h}(\lambda_l))变成卷积核diag(θl)diag(\theta_l),即:
yout=σ(Ugθ(Λ)UTxin). y_{out} = \sigma \left( U g_{\theta}(\Lambda) U^T x_{in}\right).

其中σ(.)\sigma(.)是**函数,卷积核gθ(Λ)g_{\theta}(\Lambda)
gθ(Λ)=(θ0θn1). g_{\theta}(\Lambda) = \begin{pmatrix} \theta_0 \\ & \ddots \\ & & \theta_{n-1} \end{pmatrix}.

第一代的参数方法存在着一些弊端:主要在于:

  • 每次前向传播需要计算U,diag(θl),UTU,diag(\theta_l), U^T三者的矩阵乘积,计算复杂度为O(n2)\mathcal{O}(n^2)
  • 卷积核不具有spatial localization。
  • 卷积核需要nn个参数。

4.3第二代GCN

Convolutional Neural Networks on Graphs with Fast Localized Spectral Filteringh^(λl)\hat{h}(\lambda_l)巧妙地设计成了j=0Kαjλlj\sum_{j=0}^{K} \alpha_j \lambda_{l}^{j},即:
gθ(Λ)=(j=0Kαjλ0jj=0Kαjλnlj)=j=0K[αj(λ0jλnlj)]=j=0KαjΛj. \begin{aligned} g_{\theta}(\Lambda) &= \begin{pmatrix} \sum_{j=0}^{K} \alpha_j \lambda_{0}^{j} \\ & \ddots \\ & & \sum_{j=0}^{K} \alpha_j \lambda_{n-l}^{j} \end{pmatrix} \\ &= \sum_{j=0}^{K} \left[ \alpha_j \begin{pmatrix} \lambda_{0}^{j} \\ & \ddots \\ & & \lambda_{n-l}^{j} \end{pmatrix} \right] \\ &= \sum_{j=0}^{K} \alpha_j \Lambda^{j}. \end{aligned}
利用拉普拉斯矩阵特征值分解的性质L2=UΛUTUΛUT=UΛ2UTL^2 = U \Lambda U^T U \Lambda U^T = U \Lambda^2 U^T,进而有:
Ugθ(Λ)UT=U(j=0KαjΛj)UT=j=0K(αjUΛjUT)=j=0KαjLj. \begin{aligned} U g_{\theta}(\Lambda) U^T &= U \left( \sum_{j=0}^{K} \alpha_j \Lambda^{j} \right) U^T \\ & = \sum_{j=0}^{K} \left( \alpha_j U \Lambda^{j} U^T \right)\\ & = \sum_{j=0}^{K} \alpha_j L^{j}. \end{aligned}

卷积层为:
yout=σ(Ugθ(Λ)UTxin)=σ(j=0KαjLjxin). y_{out} = \sigma \left( U g_{\theta}(\Lambda) U^T x_{in}\right) = \sigma \left( \sum_{j=0}^{K} \alpha_j L^{j} x_{in}\right).

第二代卷积核其优点在于在于:

  • 卷积核只需要KK个参数(α0,α1,,αn1)(\alpha_0, \alpha_1, \cdots, \alpha_{n-1}),一般KK远小于nn
  • 不需要再做特征值分解了。计算机复杂仍然是O(n2)\mathcal{O}(n^2)
  • 卷积核具有很好的spatial localization。特别地,KK就是卷积核的receptive field,也就是说每次卷积会将中心顶点K-hop neighbor上的feature进行加权求和,权系数就是αk\alpha_k

4.4利用Chebyshev多项式作为卷积核

4.4.1Chebyshev多项式性质

  • 递归定义Tk(y)=2yTk1(y)Tk2(y)T_k(y) = 2yT_{k-1}(y) - T_{k-2}(y)
  • T0=1,t1=yT_0=1,t_1=y
  • y[1,1]y\in[-1,1]
  • Tk(y)=cos(karccos(y))T_k(y) = \cos \left( k \arccos (y) \right)
    11Tl(y)Tm(y)1y2dy={π2δl.mif m,l>0πif m=l=0. \int_{-1}^{1} \frac{T_l(y) T_m(y)}{\sqrt{1-y^2}} dy = \begin{cases} \frac{\pi}{2} \delta_{l.m} \qquad &\text{if } m,l >0 \\ \pi \qquad &\text{if } m=l=0. \end{cases}

Every hL2([1,1],dy1y2)h \in L^2([-1,1],\frac{dy}{\sqrt{1-y^2}}) has a convergent (in L2L^2 norm) Chebyshev series
h(y)=12c0+k=1ckTk(y) h(y) = \frac{1}{2} c_0 + \sum_{k=1}^{\infty} c_k T_k (y)
with Chebyshev coefficients
ck=2π11Tl(y)Tm(y)1y2dy=2π0πcos(kθ)h(cos(θ))dθ. c_k = \frac{2}{\pi} \int_{-1}^{1} \frac{T_l(y) T_m(y)}{\sqrt{1-y^2}} dy = \frac{2}{\pi} \int_{0}^{\pi} \cos(k\theta)h(\cos(\theta)) d \theta.

4.4.2 Chebyshev多项式卷积核

gθ(Λ)g_{\theta}(\Lambda)用Chebyshev多项式Tk(x)T_{k}(x)逼近:
gθ(Λ)k=0KθkTk(Λ~),Λ~=2λmax(Λ)ΛIn g_{\theta^{'}}(\Lambda) \approx \sum_{k=0}^{K} \theta_{k}^{'} T_{k}( \tilde{\Lambda} ), \qquad \tilde{\Lambda} = \frac{2}{\lambda_{max}(\Lambda)} \Lambda - I_n

Tk(y)=cos(karccos(y))T_k(y) = \cos \left( k \arccos (y) \right)可以知道Chebyshev多项式的输入必须是在[1,1][-1,1]之间,所以需要将Λ\Lambda做变换为Λ~\tilde{\Lambda}

因此得到Chebyshev多项式逼近图上谱卷积为:
gθxU(k=0KθkTk(Λ~))UTx=k=0K(UθkTk(Λ~)UT)x=k=0KθkTk(UΛ~UT))x=k=0KθkTk(L~)x \begin{aligned} g_{\theta^{'}} \star x & \approx U \left( \sum_{k=0}^{K} \theta_{k}^{'} T_{k}( \tilde{\Lambda} ) \right) U^T x \\ & = \sum_{k=0}^{K} \left( U \theta_{k}^{'} T_{k}( \tilde{\Lambda} ) U^T \right) x \\ & = \sum_{k=0}^{K} \theta_{k}^{'} T_{k}\left( U \tilde{\Lambda} U^T \right) ) x \\ & = \sum_{k=0}^{K} \theta_{k}^{'} T_{k}(\tilde{L}) x \end{aligned}
其中L~=2λmax(L)LIN\tilde{L} = \frac{2}{\lambda_{max}(L)} L - I_N

4.5Chebyshev多项式逼近法简化

如果取λmax2\lambda_{max} \approx 2则有L~=LIN\tilde{L} = L - I_N。Chebyshev多项式只取前两项,即K=1K = 1
gθx(θ0+θ1(LIN))x=(θ0θ1D12AD12)x. \begin{aligned} g_{\theta^{'}} \star x & \approx \left( \theta_{0}^{'} + \theta_{1}^{'} (L - I_N) \right) x \\ & = \left( \theta_{0}^{'} - \theta_{1}^{'} D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \right) x \end{aligned}.

4.6单参数法

令参数θ0=θ1=θ\theta_{0}^{'} = - \theta_{1}^{'} = \theta,图上谱卷积又可以简化为
gθxθ(IN+D12AD12)x g_{\theta^{'}} \star x \approx \theta \left( I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \right) x

注意IN+D12AD12I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}}拥有范围为[0,2][0,2]的特征值,这将会导致数值不稳定性和梯度爆炸/消失。因此我们介绍下面的归一化技巧(renormalization trick):
IN+D12AD12D~12A~D~12. I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \rightarrow \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}}.
其中A~=A+IN,D~i,i=jA~i,j=j(Ai,j+(IN)i,j)=Di,i+1\tilde{A}=A+I_N,\tilde{D}_{i,i} = \sum_{j}\tilde{A}_{i,j} = \sum_{j} \left( A_{i,j} + (I_N)_{i,j}\right) = D_{i,i} + 1。上式展开为
IN+D12AD12D~12A~D~12=(D+IN)12(A+IN)(D+IN)12=(D+IN)12A(D+IN)12+(D+IN)1. \begin{aligned} I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}} & \rightarrow \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} \\ & = (D + I_N)^{-\frac{1}{2}} (A+I_N) (D + I_N)^{-\frac{1}{2}} \\ & = (D + I_N)^{-\frac{1}{2}} A (D + I_N)^{-\frac{1}{2}} + (D + I_N)^{-1} \end{aligned}.

输入XRN×CX \in \mathbb{R}^{N \times C}CC为输入的通道数,经过滤波ΘRC×F\Theta \in \mathbb{R}^{C \times F}得到含有FF个通道的卷积后结果ZRN×FZ \in \mathbb{R}^{N \times F}
Z=D~12A~D~12XΘ Z = \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} X \Theta

参考文献

相关文章: