图神经网络可以粗略地分为基于谱的图神经网络和基于空间的图神经网络。其中前者从图的傅立叶变换而来,具有坚实的理论基础,在通过多番简化之后,其计算开销、局部性等已经能够满足大部分情形下的要求,但是它只能用来处理边上权重维数为 1 1 1的无向图。而后者虽然缺乏理论基础,但是可以用来处理更加广泛的图结构数据,如有向图、多权图等。
历史:
首先,连续函数的傅立叶变换可以表示为:
f ^ ( ω ) = F [ f ( t ) ] = ∫ − ∞ ∞ f ( t ) e − i ω t d t . (1.1) \hat{f}(\omega) = \mathcal{F}[f(t)]=\int_{-\infty}^{\infty}f(t)e^{-i \omega t}dt. \tag{1.1} f^(ω)=F[f(t)]=∫−∞∞f(t)e−iωtdt.(1.1)
其中 e − i ω t e^{-i \omega t} e−iωt是拉普拉斯算子 ∇ 2 \nabla^2 ∇2的特征方程,即 ∇ 2 e − i ω t = λ e − i ω t \nabla^2 e^{-i \omega t} = \lambda e^{-i \omega t} ∇2e−iωt=λe−iωt,通过它,函数 f ( t ) f(t) f(t)就被映射到了以 { e − i ω t } \{e^{-i \omega t}\} {e−iωt}为基向量的空间中。与此类似,图的傅立叶变换定义为将其映射到以图的拉普拉斯矩阵的特征矩阵为基向量的空间中。
而图的拉普拉斯矩阵是什么呢?连续函数的拉普拉斯算子 ∇ 2 = ∇ ⋅ ∇ \nabla^2 = \nabla \cdot \nabla ∇2=∇⋅∇的第二个 ∇ \nabla ∇代表梯度,第一个 ∇ \nabla ∇代表散度,即连续的拉普拉斯算子指的是其梯度的散度。与此类似,图的拉普拉斯矩阵是图上的信号的梯度的散度。那么问题就变成了如何定义图上的梯度和散度。
我们知道,梯度是一个向量,其中的每一个分量都代表函数值在定义域的一个正交方向上下降的速度。在图中,每一个结点 i i i都可以通过一个函数 f ( ⋅ ) f(\cdot) f(⋅)映射到实域中的一个实数值 f ( i ) ∈ R f(i) \in \mathbb{R} f(i)∈R,这样每一个结点都关联着一个实数值,这样假设图中有 N N N个结点, f ( ⋅ ) f(\cdot ) f(⋅)可以简写为一个向量 f ∈ R N f \in \mathbb{R}^N f∈RN,这样的向量就称为图上的信号。
我们知道,函数的定义域可以分为若干个正交的方向,一个函数的定义域能够正交地分为几个方向是固定的,每个方向上都有一个梯度的分量,而梯度在这个方向上的分量 ∇ f i = ∂ f ∂ x i = f ( x + △ x ) − f ( x ) △ x i \nabla f_i = \frac{\partial f}{\partial x_i} = \frac{f(x + \triangle x) - f(x)}{\triangle x_i} ∇fi=∂xi∂f=△xif(x+△x)−f(x),即在这个方向上函数值的差值与距离的比值。而图上的每一个结点都连接有数目不等的边,这些边都可以看作是互相正交的方向,这样,与此类似,图上的信号在某一个方向(某一条边)上的梯度分量就是在这条边上图信号的差值与距离的比值。
那么问题就变成了如何定义图上两个结点在某一条边上的距离。我们知道,图上边上的权重代表这两个结点的接近程度(越近越大),而距离的定义与此相反,其表示两个结点离得有多远(越远越大),这样,距离可以定义为边上权重的倒数,这样,图上的两个结点 i i i和 j j j在边 e i j e_{ij} eij上的梯度就可以定义为 ∇ f i j = ( f i − f j ) A i j \nabla f_{ij}=(f_i - f_j) A_{ij} ∇fij=(fi−fj)Aij,其中 A i j A_{ij} Aij是边 e i j e_{ij} eij上的权重。
如百度百科所说,”散度是描述空气从周围汇合到某一处或从某一处流散开来程度的量“。函数的散度即其梯度在各个方向上的分量的和, ∇ 2 f = ∑ i ∇ i f \nabla^2f=\sum_i{\nabla_i{f}} ∇2f=∑i∇if。与此类似,图在结点 i i i上的散度定义为该图信号在与该结点相连的每一条边上的梯度之和,即
∇ 2 f i = ∑ j ( f i − f j ) A i j = [ f i − f 1 f i − f 2 … f i − f N ] [ A i , 1 A i , 2 ⋮ A i , N ] = ( f i T − f T ) ⋅ A i = f i A i − A i T ⋅ f , (1.2) \nabla^2 f_i = \sum_j{(f_i - f_j)A_{ij}} = \left[ \begin{matrix} f_i - f_1 & f_i - f_2 & \ldots & f_i - f_N \end{matrix} \right] \left[ \begin{matrix} A_{i,1} \\ A_{i,2} \\ \vdots \\ A_{i,N} \end{matrix} \right] = (f_i^T - f^T) \cdot A_i = f_i A_i - A_i^T \cdot f, \tag{1.2} ∇2fi=j∑(fi−fj)Aij=[fi−f1fi−f2…fi−fN]⎣⎢⎢⎢⎡Ai,1Ai,2⋮Ai,N⎦⎥⎥⎥⎤=(fiT−fT)⋅Ai=fiAi−AiT⋅f,(1.2)
其中 ⋅ \cdot ⋅是向量的点积。将 f i A i f_i A_i fiAi简记为 f i d i f_i d_i fidi,其中 d i = ∑ j = 1 N A i j d_i=\sum_{j=1}^N{A_{ij}} di=∑j=1NAij为结点 i i i的度,即与其相连的所有边上的权重之和,上式可以简写为 ∇ 2 f i = f i d i − A i T ⋅ f \nabla^2 f_i = f_i d_i - A_i^T \cdot f ∇2fi=fidi−AiT⋅f,因此,图在每个结点上的散度即
∇ 2 f = [ f 1 d 1 − f T ⋅ A 1 f 2 d 2 − f T ⋅ A 2 ⋮ f N d N − f T ⋅ A N ] = [ d 1 0 … 0 0 d 2 … 0 ⋮ ⋮ ⋱ ⋮ 0 0 … d N ] [ f 1 f 2 ⋮ f N ] − [ A 1 T A 2 T ⋮ A N T ] [ f 1 f 2 ⋮ f N ] = ( D − A ) f , (1.3) \nabla^2 f = \left[ \begin{matrix} f_1 d_1 - f^T \cdot A_1 \\ f_2 d_2 - f^T \cdot A_2 \\ \vdots \\ f_N d_N - f^T \cdot A_N \end{matrix} \right] = \left[ \begin{matrix} d_1 & 0 & \ldots & 0 \\ 0 & d_2 & \ldots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \ldots & d_N \end{matrix} \right] \left[ \begin{matrix} f_1 \\ f_2 \\ \vdots \\ f_N \end{matrix} \right] - \left[ \begin{matrix} A_1^T \\ A_2^T \\ \vdots \\ A_N^T \end{matrix} \right] \left[ \begin{matrix} f_1 \\ f_2 \\ \vdots \\ f_N \end{matrix} \right] = (D - A)f,\tag{1.3} ∇2f=⎣⎢⎢⎢⎡f1d1−fT⋅A1f2d2−fT⋅A2⋮fNdN−fT⋅AN⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡d10⋮00d2⋮0……⋱…00⋮dN⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡f1f2⋮fN⎦⎥⎥⎥⎤−⎣⎢⎢⎢⎡A1TA2T⋮ANT⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡f1f2⋮fN⎦⎥⎥⎥⎤=(D−A)f,(1.3)
其中, D D D是对角线元素为图中每个结点的度的对角矩阵, A A A是该图的邻接矩阵, A i j A_{ij} Aij是结点 i i i到结点 j j j的权重。这样,图的散度 ∇ 2 f = ( D − A ) f \nabla^2 f=(D-A)f ∇2f=(D−A)f,即图的拉普拉斯矩阵 L L L就是 ∇ 2 = D − A \nabla^2=D-A ∇2=D−A 。
如前文所述,图的傅立叶变换定义为其与图的拉普拉斯矩阵的特征矩阵的卷积。那么,图的拉普拉斯矩阵经过特征分解 L = D − A = U Λ U T L=D-A=U \Lambda U^T L=D−A=UΛUT之后,在结点 i i i上的图的傅立叶变换就是 f ^ i = ∑ j = 1 N f j U j T \hat{f}_i=\sum_{j=1}^N{f_j U_j^T} f^i=∑j=1NfjUjT,那么在所有结点上同时做傅立叶变换,即
f ^ = F [ f ] = U T f . (1.4) \hat{f} = \mathcal{F}[f] = U^T f.\tag{1.4} f^=F[f]=UTf.(1.4)
傅立叶逆变换就是 f = U f ^ f=U\hat{f} f=Uf^。
最后,众所周知的是,在频域上的卷积可以转换为在谱域中的点积,然后转换回频域来进行运算。那么,图的卷积可以表示为
f ⋆ G g = F − 1 [ F [ f ] ⋅ F [ g ] ] = U ( ( U T f ) ⋅ ( U T g ) ) = U ( ( U T g ) ⋅ ( U T f ) ) , (1.5) f \star_{\mathcal{G}} g = \mathcal{F}^{-1}[\mathcal{F}[f] \cdot \mathcal{F}[g]] = U((U^T f) \cdot (U^T g)) = U ((U^T g) \cdot (U^T f) ),\tag{1.5} f⋆Gg=F−1[F[f]⋅F[g]]=U((UTf)⋅(UTg))=U((UTg)⋅(UTf)),(1.5)
其中, ⋆ G \star_{\mathcal{G}} ⋆G表示图卷积; ⋅ \cdot ⋅表示向量点积,满足交换率; g g g是卷积核,可以通过学习得到。将 U T g U^T g UTg看作可以学习的卷积核 g θ g_{\theta} gθ,图卷积就是
f ⋆ G g θ = U ( g θ ⋅ ( U T f ) ) = U g θ U T f . (1.6) f \star_{\mathcal{G}} g_{\theta} = U(g_{\theta} \cdot (U^T f))=Ug_\theta U^T f. \tag{1.6} f⋆Ggθ=U(gθ⋅(UTf))=UgθUTf.(1.6)
其中
g θ = [ θ 1 … 0 ⋮ ⋱ ⋮ 0 … θ N ] . (1.7) g_{\theta}= \left[ \begin{matrix} \theta_1 & \ldots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \ldots & \theta_N \\ \end{matrix} \right].\tag{1.7} gθ=⎣⎢⎡θ1⋮0…⋱…0⋮θN⎦⎥⎤.(1.7)
接下来要介绍的图上频域卷积的工作,都是在此基础上做文章。
Deep Convolutional Networks on Graph-Structured Data
The emerging field of signal processing on graphs: Extending high-dimensional data analysis to networks and other irregular domains
如上所述,图卷积可以写成 f ⋆ G g θ = U g θ U T f f \star_{\mathcal{G}} g_{\theta} = Ug_\theta U^T f f⋆Ggθ=UgθUTf,其中 g θ g_\theta gθ是一个可训练的对角矩阵,直接计算该式需要涉及到对图的拉普拉斯矩阵的特征分解和两组矩阵乘法,时间复杂度过大。而 g θ g_\theta gθ可以看成是一个参数化的变换 g θ ( Λ ) g_\theta(\Lambda) gθ(Λ),其通过参数化的线性变换将 Λ \Lambda Λ变换为 g θ g_\theta gθ。此时,图卷积可以写作:
f ⋆ G g θ = U g θ ( Λ ) U T f = g θ ( U Λ U T ) f = g θ ( L ) f . (1.8) f \star_{\mathcal{G}} g_{\theta} = Ug_\theta (\Lambda) U^T f = g_\theta (U \Lambda U^T) f = g_\theta (L) f.\tag{1.8} f⋆Ggθ=Ugθ(Λ)UTf=gθ(UΛUT)f=gθ(L)f.(1.8)
使用切比雪夫多项式对 g θ ( L ) g_\theta (L) gθ(L)进行展开,截取前 K K K项,上式可以写作:
f ⋆ G g θ = g θ ( L ) f = ∑ k = 0 K − 1 θ k T k ( L ) f , (1.9) f \star_{\mathcal{G}} g_{\theta}= g_\theta (L) f = \sum_{k=0}^{K-1}{\theta_k T_k (L)} f,\tag{1.9} f⋆Ggθ=gθ(L)f=k=0∑K−1θkTk(L)f,(1.9)
其中 T k ( ⋅ ) T_k(\cdot) Tk(⋅)是切比雪夫多项式的第 k k k项, T 0 ( A ) = I T_0(A)=I T0(A)=I, T 1 ( A ) = A T_1(A)=A T1(A)=A和 T k ( A ) = 2 A T k − 1 ( A ) − T k − 2 ( A ) T_k(A)=2AT_{k-1}(A)-T_{k-2}(A) Tk(A)=2ATk−1(A)−Tk−2(A),而 θ ∈ R K \theta \in \mathbb{R}^K θ∈RK是可训练参数。图卷积的 K K K阶的切比雪夫多项式展开形式可以看作是考虑每一个结点的 K K K跳邻居,即图卷积每一层的感受野大小是 K K K。
Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering
因为原始的拉普拉斯矩阵会扩大输入信号的范围,使输入信号的分布偏移,因此对拉普拉斯矩阵进行归一化和放缩。拉普拉斯矩阵的归一化方法有几种,最常见的方法就是:
L = D − 1 / 2 ( L − A ) D − 1 / 2 = I − D − 1 / 2 A D − 1 / 2 . (1.10) L = D^{-1/2} (L-A) D^{-1/2} = I-D^{-1/2}AD^{-1/2}.\tag{1.10} L=D−1/2(L−A)D−1/2=I−D−1/2AD−1/2.(1.10)
若无说明,下文所提及的拉普拉斯矩阵 L L L均为归一化后的拉普拉斯矩阵。而放缩的拉普拉斯矩阵:
L ~ = 2 λ m a x L − I , (1.11) \tilde{L} = \frac{2}{\lambda_{max}}L - I,\tag{1.11} L~=λmax2L−I,(1.11)
其中, λ m a x \lambda_{max} λmax是拉普拉斯矩阵 L L L的最大的特征值,有时候会使用 2 2 2来对其近似。
然而由于切比雪夫的 K K K阶展开仍旧需要较大的计算量,所以进一步对其进行简化,只取其 1 1 1阶展开,图卷积的公式可以进一步简化为:
f ⋆ G g θ = ( θ 0 + θ 1 L ) f . (1.12) f \star_{\mathcal{G}} g_{\theta}= (\theta_0 + \theta_1 L) f.\tag{1.12} f⋆Ggθ=(θ0+θ1L)f.(1.12)
对其进一步简化,即取 θ 0 = − θ 1 = θ \theta_0=-\theta_1=\theta θ0=−θ1=θ,可训练参数的数目最终降低为 1 1 1,这样就得到GCN(Graph Convolutional Network):
f ⋆ G g θ = ( θ − θ L ) f = θ ( I − D − 1 / 2 ( D − A ) D − 1 / 2 ) f = θ D − 1 / 2 A D − 1 / 2 f , (1.13) f \star_{\mathcal{G}} g_{\theta}= (\theta - \theta L) f = \theta (I - D^{-1/2}(D-A)D^{-1/2}) f = \theta D^{-1/2}AD^{-1/2}f,\tag{1.13} f⋆Ggθ=(θ−θL)f=θ(I−D−1/2(D−A)D−1/2)f=θD−1/2AD−1/2f,(1.13)
其中 θ ∈ R \theta\in \mathbb{R} θ∈R是可训练参数。这是在图上的信号是 1 1 1维的情况,而在图卷积操作的输入和输出特征都是多维的情形下,假设输入信号 f ∈ R N × d f\in\mathbb{R}^{N \times d} f∈RN×d,输出信号 f ′ ∈ R N × d ′ f'\in\mathbb{R}^{N \times d'} f′∈RN×d′,图卷积可以写作:
f ′ = f ⋆ G g θ = D − 1 / 2 A D − 1 / 2 f Θ , (1.14) f'=f \star_{\mathcal{G}} g_{\theta} = D^{-1/2}AD^{-1/2}f\Theta,\tag{1.14} f′=f⋆Ggθ=D−1/2AD−1/2fΘ,(1.14)
其中, Θ ∈ R d × d ′ \Theta\in\mathbb{R}^{d \times d'} Θ∈Rd×d′是可训练参数。
Semi-Supervised Classification with Graph Convolutional Networks
基于谱的图神经网络尽管具有坚实的理论基础,然而其理论基础也限制了其在形形色色,变化万千的图结构数据上的应用。而基于空间的图神经网络是不基于谱的*图神经网络的总称,它们产生的动机各不一样,但是都是为了寻找一种能够良好地局部、并行、泛化、快速对图的拓扑信息和图信号进行提取的方法。
将卷积神经网络(CNN)扩展到任意的图结构面临两个挑战:
首先,以二维图像为例,CNN
将固定大小的卷积核应用到每一个固定大小的局部(3x3
或5x5
等)上,这是因为图像是很规整的网格型结构,在图像中,每一个像素周围都具有固定数目(8
个)的相邻像素。而在任意的图结构上,每个结点及其连接关系都是任意的,因此与一个结点相邻的结点数目不固定,这就导致产生了第一个问题,即固定大小的卷积核难以在不同的结点上共享。这就要求局部的图卷积运算必须对运算数据的数目不敏感。
其次,就标准的图像卷积操作而言,不仅每个像素周围的相邻像素数目固定,其相邻像素的相对顺序也是固定的。即从一个相邻像素开始,可以逐次由内而外,按照顺时针方向,可以遍历一边所有的相邻像素,而每次遍历,每个相邻像素的访问顺序也是固定的。这样,可以按照标准的离散卷积操作,为每一个相邻像素和卷积核中的每一个元素编号,然后与对应编号相乘,加权求和。然而在任意的图结构中,与一个结点相邻的结点并没有一个确定的序列关系,即调换任意两个结点的编号并不改变图的结构。这就导致局部的图卷积运算必须对运算数据的顺序不敏感。
综上所述,在图卷积的过程中面临的两个主要问题是“数据规模无关(size-invariant)”和“排列无关(permutation-invariant)”。为了解决这两个问题,基于一个图的集合,PATCHY-SAN采用如下解决方法:
Learning Convolutional Neural Networks for Graphs
上文所述的几种图神经网络操作要么需要矩阵的特征分解、求逆等运算量比较大的操作,要么需要在进行图卷积时知道图的结构,这样就不适于处理大规模的图结构数据。为了解决这样的问题,GAT(Graph Attention Network)通过Self-Attention机制来进行局部的图运算。
将该层图卷积结点 i i i的输入特征记为 h i ∈ R d h_i\in \mathbb{R}^{d} hi∈Rd,该层图卷积结点 i i i的输出特征记为 h i ′ ∈ R d ′ h'_i \in \mathbb{R}^{d'} hi′∈Rd′,首先通过一个共享的线性变换 W ∈ R d ′ × d W\in\mathbb{R}^{d'\times d} W∈Rd′×d将所有结点的特征进行变换,然后通过一个共享的注意力机制 a : R d ′ × R d ′ ↦ R a:\mathbb{R}^{d'}\times\mathbb{R}^{d'}\mapsto\mathbb{R} a:Rd′×Rd′↦R计算注意力系数,这样的注意力机制可以是普通的注意力,也可以是多头的注意力机制(multi-head attention),在GAT的初始实现中, a ( W h i , W h j ) = LeakyReLU ( w T [ W h i ∥ W h j ] ) a(Wh_i, Wh_j)=\text{LeakyReLU}(w^T[Wh_i\|Wh_j]) a(Whi,Whj)=LeakyReLU(wT[Whi∥Whj]), w ∈ R 2 d ′ w \in \mathbb{R}^{2d'} w∈R2d′:
e i j = a ( W h i , W h j ) , (1.15) e_{ij}=a(Wh_i, Wh_j),\tag{1.15} eij=a(Whi,Whj),(1.15)
然后在结点 i i i的所有邻居结点 j ∈ N i j\in\mathcal{N}_i j∈Ni的注意力系数上应用 softmax \text{softmax} softmax来进行归一化,通过这样的方式,注意力机制能够隐式地捕获图的结构信息和特征信息:===
α i j = softmax j ( e i j ) = exp ( e i j ) ∑ k ∈ N i exp ( e i k ) , (1.16) \alpha_{ij}=\text{softmax}_j(e_{ij})=\frac{\text{exp}(e_{ij})}{\sum_{k\in\mathcal{N}_i}\text{exp}(e_{ik})},\tag{1.16} αij=softmaxj(eij)=∑k∈Niexp(eik)exp(eij),(1.16)
最后,应用归一化的注意力权重对每个邻居结点的特征进行加权求和,就得到了每个结点的新的隐特征:
h i ′ = σ ( ∑ j ∈ N i α i j W h j ) . (1.17) h'_i=\sigma(\sum_{j\in\mathcal{N}_i}\alpha_{ij}Wh_j).\tag{1.17} hi′=σ(j∈Ni∑αijWhj).(1.17)
GRAPH ATTENTION NETWORKS
作为另一种可以广泛应用于各类图相关任务的图卷积神经网络,扩散卷积的运算与基于谱的图卷积网络类似,可以应用于各类有权的或无权的、有向的或无向的图结构数据上。首先对图的邻接矩阵 A ∈ R N × N A\in\mathbb{R}^{N \times N} A∈RN×N进行度归一化,得到转移矩阵 P P P。常用的归一化方法是 P = D − 1 A P=D^{-1}A P=D−1A,其中 D D D是对角线元素为图的入度的对角矩阵,实际上相当于对 A A A中的每一行进行 L 1 L_1 L1归一化。
DCNN(Diffusion-Convolutional Neural Networks)模型中的扩散卷积核可以认为是考虑到每两个结点之间连接的所有路径,其中较短的路径比更长的路径更重要。在得到的转移矩阵 P P P的基础上,计算其幂序列 P ∗ ∈ R N × H × N P^*\in\mathbb{R}^{N \times H \times N} P∗∈RN×H×N,其中, P : , i , : P_{:,i,:} P:,i,:表示的是 P P P的 i i i次幂。然后,对于结点分类任务而言,有输入特征 X ∈ R N × F X\in\mathbb{R}^{N\times F} X∈RN×F, 新的结点 Z ∈ R N × H × F Z\in\mathbb{R}^{N\times H\times F} Z∈RN×H×F表示可以通过下式获得:
Z = f ( W ⊙ ( P ∗ X ) ) . (1.18) Z = f(W\odot (P^*X)).\tag{1.18} Z=f(W⊙(P∗X)).(1.18)
其中, W ∈ R H × F W\in\mathbb{R}^{H\times F} W∈RH×F是共享在所有结点上的可训练参数。就图分类任务而言,可以通过在所有结点上应用平均池化来得到图的表示 Z ∈ R H × F Z\in\mathbb{R}^{H\times F} Z∈RH×F。最后,分类结果通过在 Z Z Z上应用一个全连接网络和 s o f t m a x softmax softmax激活函数得到。
Diffusion-Convolutional Neural Networks
上述的所有图神经网络都隐含一个条件,即在它们的运算过程中,每个结点都关联一个特征向量(或称图信号),而每条边都是有向或无向的、有权或无权的,但每条边上关联的权重是一个标量。为了解决边上存在多维权重的情形,ECC(Edge-Conditioned Convolution)被提出了。
假设在第 l l l层图卷积的输入图中有 n n n个结点, m m m条边,每个结点关联一个 d l d_l dl维向量,每条边关联一个 s s s维向量,这样就有图信号 X l ∈ R n × d l X^l\in\mathbb{R}^{n\times d_l} Xl∈Rn×dl和边权重 L ∈ R m × s L\in\mathbb{R}^{m\times s} L∈Rm×s,结点 i i i的邻域 N i \mathcal{N}_i Ni包含 i i i本身(图中包含自环)。在ECC中,第 l l l层的图信号 X l X^l Xl是由第 l − 1 l-1 l−1层的图信号 X l − 1 X^{l-1} Xl−1加权求和得到的。
具体地,定义一个权重生成神经网络 F l : R s ↦ R d l × d l − 1 F^l:\mathbb{R}^s\mapsto\mathbb{R}^{d_l\times d_{l-1}} Fl:Rs↦Rdl×dl−1,它从边的权重向量生成一个面向特定边的卷积核 Θ ∈ R d l × d l − 1 \Theta\in\mathbb{R}^{d_l\times d_{l-1}} Θ∈Rdl×dl−1。这样,第 l l l层的ECC卷积操作可以写成:
X i l = 1 ∣ N i ∣ ∑ j ∈ N i F l ( L ( j , i ) ; w l ) X j l − 1 + b l = 1 ∣ N i ∣ ∑ j ∈ N i Θ j , i l X j l − 1 + b l . (1.19) X^l_i=\frac{1}{|\mathcal{N}_i|}\sum_{j\in\mathcal{N}_i}{F^l(L(j,i);w^l)X^{l-1}_j} + b^l=\frac{1}{|\mathcal{N}_i|}\sum_{j\in\mathcal{N}_i}{\Theta_{j,i}^lX^{l-1}_j} + b^l.\tag{1.19} Xil=∣Ni∣1j∈Ni∑Fl(L(j,i);wl)Xjl−1+bl=∣Ni∣1j∈Ni∑Θj,ilXjl−1+bl.(1.19)
Dynamic Edge-Conditioned Filters in Convolutional Neural Networks on Graphs
图神经网络形形色色,变化万千,但大部分图神经网络都可以按照消息传递的框架来进行归纳与整理,这样对图神经网络的理解和实现,以及针对特定问题,设计新的图神经网络算法都有好处。
基于消息传递的框架,图神经网络的运算过程可以分为传递(pass)和读出(readout)。前者是指每个结点将自己的信息通过边传递给自己的邻居结点,而后者是指通过每个结点自身的信息和收到的邻居结点的信息对自身的状态进行更新。上面介绍的GCN、GAT和ECC等都可以用消息传递的框架表示。
Graph Neural Networks: A Review of Methods and Applications
A Comprehensive Survey on Graph Neural Networks
Hypergraph Neural Networks
Dynamic Hypergraph Neural Networks
Hierarchical Graph Representation Learning with Differentiable Pooling
An end-to-end deep learning architecture for graph classification
Hierarchical Graph Convolutional Networks for Semi-supervised Node Classification
Graph U-Nets
Weighted Graph Cuts Without Eigenvectors: A Multilevel Approach. (Graclus算法)
DeepWalk
LINE
Node2Vector
SDNE
DNGR
Inductive Representation Learning on Large Graphs (GraphSAGE)
HARP: Hierarchical Representation Learning for Networks
这一两年来,基于图神经网络来进行交通预测层出不穷,已经成为主流方法。这些方法都使用图神经网络来对交通数据中的空间依赖进行建模,而根据其对时间依赖进行建模的方法不同,这些方法可以分为基于循环神经网络(主要是门限循环单元GRU)的方法与不基于循环神经网络(主要是一维卷积或因果卷积)的方法。根据这些方法解决的具体问题不同,它们又可以分为交通需求预测、OD矩阵预测和其它交通预测(交通流量、速度等)三类。
DIFFUSION CONVOLUTIONAL RECURRENT NEURAL NETWORK: DATA-DRIVEN TRAFFIC FORECASTING
METR-LA
和PEMS-BAY
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7X5xiHWw-1617889758487)(dcrnn.png)]
Gated Residual Recurrent Graph Neural Networks for Traffic Prediction
METR-LA
和PEMS-BAY
,但不使用标准的划分方式,而是同时利用长期的历史数据和外部特征。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CiQ9PVKo-1617889758490)(mres-rgnn.png)]
Spatiotemporal Multi-Graph Convolution Network for Ride-hailing Demand Forecasting
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ip7CC0H7-1617889758491)(st-mgcn.png)]
Origin-Destination Matrix Prediction via Graph Convolution: a New Perspective of Passenger Demand Modeling
Urban Traffic Prediction from Spatio-Temporal Data Using Deep Meta Learning
METR-LA
数据集,使用DCRNN
的标准划分方法。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vxnShBGX-1617889758494)(st-metanet.png)]
Multi-range attentive bicomponent graph convolutional network for traffic forecasting
METR-LA
和PEMS-BAY
,使用DCRNN
中提供的标准划分方式。ST-UNet: A Spatio-Temporal U-Network for Graph-structured Time Series Modeling
METR-LA
,使用DCRNN
中提供的标准划分方式,PeMS-M/L
,使用它自己的划分方式。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bCsTBtQw-1617889758495)(st-unet.png)]
Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting
BJER4
和PeMSD7
两个传感器监测数据,时间窗口大小为 5 5 5分钟,使用历史 12 12 12个时间窗数据分别预测未来 3 3 3、 6 6 6、 9 9 9个时间窗数据。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q1qadcc5-1617889758497)(stgcn.png)]
Dynamic Spatial-Temporal Graph Convolutional Neural Networks for Traffic Forecasting
PeMS
传感器数据。时间窗口大小为 5 5 5分钟,使用历史 12 12 12个时间窗数据分别预测未来 3 3 3、 6 6 6、 9 9 9个时间窗数据。STGCN
是一样的。在此基础上,使用一个神经网络对图拉普拉斯网络进行估计。首先通过两个矩阵 U 1 ∈ R N × r 1 U_1 \in \mathbb{R}^{N \times r_1} U1∈RN×r1和$ U_2 \in \mathbb{R}^{T \times r_2} ( ( (r_1 < N , , ,r_2 < T ) 将 其 转 为 )将其转为 )将其转为\hat{X} \in \mathbb{R}^{r_1 \times r_2 \times F} , 再 用 ,再用 ,再用U_1T$和$U_2T 将 其 转 为 原 来 的 形 状 , 此 时 信 息 会 有 一 些 损 失 , 将 重 构 记 为 将其转为原来的形状,此时信息会有一些损失,将重构记为 将其转为原来的形状,此时信息会有一些损失,将重构记为X_s , 再 计 算 ,再计算 ,再计算X_e = X-Xs$。
将 X s X_s Xs和 X e X_e Xe用zero-mean归一化,再计算 X s X e T X_s X_e^T XsXeT、 X e X s T X_e X_s^T XeXsT和 X e X e T X_e X_e^T XeXeT,将这三个 N × N N \times N N×N的矩阵摞起来,再用两个2-D
的卷积层将特征通道降到1
,得到 B = X s X e T + X e X s T + X e X e T + Z e B=X_s X_e^T + X_e X_s^T + X_e X_e^T + Z_e B=XsXeT+XeXsT+XeXeT+Ze,再通过公式
L e = ∑ i = 1 I ( − 1 ) i L s ( B L s ) i + o ( B L s ) . (2.1) L_e = \sum_{i=1}^I(-1)^i L_s (BL_s)^i + o(BL_s).\tag{2.1} Le=i=1∑I(−1)iLs(BLs)i+o(BLs).(2.1)
在实验中, I I I设置为6
,此时增加 I I I也不会明显增加模型精度。
最后得到了 L = L s + L e L = L_s + L_e L=Ls+Le,然后对其进行归一化。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SEXIrQAH-1617889758498)(dgcnn.png)]
Attention Based Spatial-Temporal Graph Convolutional Networks for Traffic Flow Forecasting
PeMSD4
和PeMSD8
两个传感器监测数据,时间窗口大小为 5 5 5分钟,使用历史 24 24 24个每周相同时间、 12 12 12个每天相同时间、 24 24 24个邻近的历史时间窗,来预测未来 12 12 12个时间窗。ST Block
处理,然后跟一个全连接层,最后对三个结果加权求和。每个ST Block
分为空间和时间的注意力机制SAtt+TAtt
和空间上的图卷积和时间上的标准卷积GCN+Conv
。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jJ9QlLSt-1617889758499)(astgcn.png)]
STG2Seq: Spatial-temporal Graph to Sequence Model for Multi-step Passenger Demand Forecasting
长期时间依赖编码器
、短期时间依赖编码器
和基于注意力机制的输出模块
:
长期时间依赖编码器接收
最近的 h h h个时间窗口的历史数据,短期时间依赖编码器
接收已经预测出结果的 q q q个时间窗口的数据,即在预测第 T ∈ [ t + 1 , t + τ ] T \in [t+1, t+\tau] T∈[t+1,t+τ]个时间窗口的需求量时,输入数据为 T − q T-q T−q到 T − 1 T-1 T−1的历史数据或预测结果;GGCM
是长期时间依赖编码器
和短期时间依赖编码器
的基础组建,这俩部分除了输入特征的时间窗口不同之外,都是由堆叠的GGCM
组成的。而一个GGCM
由两个GCN
组成,每个GCN
同时应用在时间和空间维度上(记时间维度的卷积核大小为 k k k,在时间维度上做单侧长度为 k − 1 k-1 k−1的padding以模拟因果卷积,然后将 k k k个时间窗的特征维度合并在一起再输入GCN),这样避免了显式的进行时间维度的卷积。一个GCN
用来计算值,另一个GCN
用来计算门限,在每两个GGCM
之间使用残差和门限机制输出模块
分别在时间维度和特征维度应用Attention,得到最终的单步预测结果。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-85kBCl7k-1617889758499)(stg2seq.png)]
Graph WaveNet for Deep Spatial-Temporal Graph Modeling
METR-LA
和PEMS-BAY
,使用DCRNN
中提供的标准划分方式。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E5PT90cC-1617889758500)(graph-wavenet.png)]
GSTNet: Global Spatial-Temporal Network for Traffic Flow Prediction
北京地铁数据
(时间窗 10 10 10分钟)、北京公交数据
(时间窗 1 1 1小时)和北京出租车GPS数据
(时间窗 20 20 20分钟)多分辨率的时间模块
和一个全局相关的空间模块
:
多分辨率的时间模块
:使用多层的因果卷积(步长和卷积核的大小相等,利用 0 0 0填充让时间长度不变),然后将每层的特征图堆叠在一起产生多分辨率的输出,再用一个卷积核大小为 1 1 1维的卷积将通道数降低全局相关的空间模块
:一个局部化的图卷积模块和一个非局部的相关机制(相当于一个全连接的图卷积,其邻接矩阵根据特征相关性计算得到)。加入残差连接。输出层
:时间维度的注意力机制,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M0uDjvDI-1617889758500)(gstnet.png)]
原文地址