https://arxiv.org/abs/1901.00596
arXiv:1901.00596v3 [cs.LG] 8 Aug 2019
Zonghan Wu, Shirui Pan, Fengwen Chen, Guodong Long, Chengqi Zhang, Philip S. Yu
摘要 深度学习革命了机器学习。现有模型只能处理欧氏空间数据。需要处理非欧氏空间生成的数据,表示为图。提出很多处理方式,包括GNN。分类:recurrent GNN、convolutional GNN、graph autoencoder、spatial-temporal GNN。
卷积操作利用了平移不变性(shift-invariance)、局部连接性(local connectivity)和图像的合成性(compositionality of image)。但图可以是irregular的,某些欧氏空间的性质不再成立,如平移不变性等,因此卷积等重要操作无法直接应用到图数据上。此外,ML中的核心假设——样本之间相互独立——在图数据中不成立,因为图节点之间相互关联。
GNN vs. network embedding 区别是GNN是一组神经网络模型,可以解决多种任务。NE包含多个方法解决同一任务,将网络节点表示为低维向量,GNN中GAE模型是解决方法之一。
GNN vs. graph kernel methods Graph kernels用于解决图分类问题,利用kernel function度量两个图的近似度,kernel-based算法如SVM可以利用核函数进行图上的有监督学习。与GNN类似,graph kernel利用映射函数将图或节点嵌入到向量空间中。不同之处在于,映射函数是固定的,不是可学习的。成对计算近似度,计算量大。GNN直接基于提取的图表示进行图分类,更高效。
A graph may have node attributes X \mathbf X X, where X ∈ R n × d \mathbf X \in \mathbf R^{n\times d} X∈Rn×d is a node feature matrix with x v ∈ R d \mathbf x_v \in \mathbf R^d xv∈Rd representing the feature vector of a node v v v. Meanwhile, a graph may have edge attributes X e \mathbf X^e Xe, where X e ∈ R n × c \mathbf X^e \in \mathbf R^{n\times c} Xe∈Rn×c is an edge feature matrix with x ( v , u ) e ∈ R c \mathbf x^e_{(v, u)}\in \mathbf R^c x(v,u)e∈Rc representing the feature vector of an edge ( v , u ) (v, u) (v,u).
Definition 3 (Spatial-Temporal Graph): A spatial-temporal graph is an attributed graph where the node inputs change dynamically over time. The spatial-temporal graph is defined as G ( t ) = ( V , E , X ( t ) ) G^{(t)} = (\mathbf V, \mathbf E, \mathbf X^{(t)}) G(t)=(V,E,X(t)) with X ( t ) ∈ R n × d \mathbf X^{(t)}\in \mathbf R^{n\times d} X(t)∈Rn×d.
Recurrent Graph Neural Networks (RecGNNs) aim to learn node representations with recurrent neural architectures. They assume a node in a graph constantly exchanges information/message with its neighbors until a stable equilibrium(平衡)is reached.
Convolutional Graph Neural Networks (ConvGNNs) generate a node v’s representation by aggregating its own features xv and neighbors’ features xu, where u 2 N(v). Different from RecGNNs,ConvGNNs stack multiple graph convolutional layers to extract high-level node representations. By stacking multiple layers, the final hidden representation of each node receives messages from a further
neighborhood.
Graph Autoencoders (GAEs) are unsupervised learning frameworks which encode nodes/graphs into a latent vector space and reconstruct graph data from the encoded information. GAEs are used to learn network embeddings and graph generative distributions.
Spatial-temporal Graph Neural Networks (STGNNs) aim to learn hidden patterns from spatial-temporal graphs. The key idea of STGNNs is to consider spatial dependency and temporal dependency at the same time. Many current approaches integrate graph convolutions to capture spatial dependency with RNNs or CNNs to model the temporal dependency.
使用图结构和节点内容信息作为输入,GNN的输出可以通过以下机制之一专注于不同的图分析任务:
训练框架。可以在端到端学习框架(即输入——模型——输出)内以(半)监督或纯无监督的方式训练许多GNN(例如ConvGNN),具体取决于学习任务和手头可用的标签信息。
在表III中,我们总结了代表性的RecGNN和ConvGNN的主要特征。在各种模型之间比较了输入源、池化层、读出层和时间复杂度。
循环图神经网络(RecGNN)是GNN的先驱工作。他们在图中节点上反复应用相同的参数集,以提取高级节点表示。受计算能力的限制,早期的研究主要集中在有向无环图上[13],[80]。
Scarselli等人提出的图神经网络(GNN*)扩展了先前的循环模型以处理一般类型的图,例如非循环图、循环图、有向图和无向图[15]。GNN*基于信息传播机制,通过循环交换邻居信息来更新节点的状态,直到达到稳定的平衡为止。通过下式,循环更新节点的隐藏状态
h v ( t ) = ∑ u ∈ N ( v ) f ( x v , x ( v , u ) e , x u , h u ( t − 1 ) ) (1) \mathbf{h}_{v}^{(t)}=\sum_{u \in N(v)} f\left(\mathbf{x}_{v}, \mathbf{x}_{(v, u)}^{\mathbf{e}}, \mathbf{x}_{u}, \mathbf{h}_{u}^{(t-1)}\right)\tag{1} hv(t)=u∈N(v)∑f(xv,x(v,u)e,xu,hu(t−1))(1)
其中 f ( ⋅ ) f(\cdot) f(⋅)是参数函数,并且 h v ( 0 ) \mathbf h_v^{(0)} hv(0)随机初始化。求和运算使GNN *可以适用于所有节点,即使邻居的数量不同并且不知道邻居顺序也是如此。为了确保收敛,循环函数 f ( ⋅ ) f(\cdot) f(⋅)必须是收缩映射,在映射后缩小两点之间的距离( h v ( t ) \mathbf h_v^{(t)} hv(t)和 h u ( t − 1 ) \mathbf h_u^{(t-1)} hu(t−1)的距离小于 h v ( t − 1 ) \mathbf h_v^{(t-1)} hv(t−1)和 h u ( t − 1 ) \mathbf h_u^{(t-1)} hu(t−1)的距离)。如果 f ( ⋅ ) f(\cdot) f(⋅)是神经网络,则必须对参数的雅可比矩阵施加惩罚项(参数的协方差矩阵不能太大,即各参数的变化趋势基本相同,保证其收敛)。当满足收敛标准时,将最后一步节点的隐藏状态送入读出层。 GNN*交替进行节点状态传播阶段和参数梯度计算阶段,以最小化训练目标。这种策略使GNN*可以处理循环图。在后续工作中,图回波状态网络(Graph Echo State Network, GraphESN)[16]扩展了回波状态网络以提高效率。GraphESN由编码器和输出层组成。编码器是随机初始化的,不需要训练。它实现了收缩状态转换函数,以循环更新节点状态,直到全局图状态达到收敛为止。然后,将固定节点状态作为输入来训练输出层。
门控图神经网络(GGNN)[17]采用门控循环单元(GRU)[81]作为循环函数,将循环减少到固定步数。优点是它不再需要约束参数以确保收敛。节点隐藏状态由其先前的隐藏状态及其相邻的隐藏状态更新,定义为
h v ( t ) = G R U ( h v ( t − 1 ) , ∑ u ∈ N ( v ) W h u ( t ) ) (2) \mathbf{h}_{v}^{(t)}=G R U\left(\mathbf{h}_{v}^{(t-1)}, \sum_{u \in N(v)} \mathbf{W h}_{u}^{(t)}\right)\tag{2} hv(t)=GRU⎝⎛hv(t−1),u∈N(v)∑Whu(t)⎠⎞(2)
其中 h v ( 0 ) = x v \mathbf h_v^{(0)}= x_v hv(0)=xv。与GNN *和GraphESN不同,GGNN使用随时间反向传播(back-propagation through time, BPTT)算法来学习模型参数。这对于大型图可能会出现问题,因为GGNN需要在所有节点上多次运行循环函数,因此需要将所有节点的中间状态存储在内存中。
随机稳态嵌入(Stochastic Steady-State Embedding, SSE)提出了一种学习算法,该算法对大型图更具可扩展性[18]。 SSE以随机和异步的方式循环更新节点隐藏状态。它交替采样一批节点用于状态更新,一批节点用于梯度计算。为了保持稳定性,SSE的循环函数定义为历史状态和新状态的加权平均值,其形式为
h v ( t ) = ( 1 − α ) h v ( t − 1 ) + α W 1 σ ( W 2 [ x v , ∑ u ∈ N ( v ) [ h u ( t − 1 ) , x u ] ] ) (3) \mathbf{h}_{v}^{(t)}=(1-\alpha) \mathbf{h}_{v}^{(t-1)}+\alpha \mathbf{W}_{\mathbf{1}} \sigma\left(\mathbf{W}_{\mathbf{2}}\left[\mathbf{x}_{v}, \sum_{u \in N(v)}\left[\mathbf{h}_{u}^{(t-1)}, \mathbf{x}_{u}\right]\right]\right)\tag{3} hv(t)=(1−α)hv(t−1)+αW1σ⎝⎛W2⎣⎡xv,u∈N(v)∑[hu(t−1),xu]⎦⎤⎠⎞(3)
其中 α \alpha α是超参数,并且 h v ( 0 ) \mathbf h_v^{(0)} hv(0)随机初始化。尽管在概念上很重要,但SSE的稳定节点状态的收敛准则未在[18]中说明。
卷积图神经网络(ConvGNN)与循环图神经网络密切相关。ConvGNN不是使用收缩约束来迭代节点状态,而是使用固定数量的层,每层有不同权重,在体系结构上解决环的相互依赖性。图3中说明了这一关键区别。由于图卷积更有效,更方便与其他神经网络进行合成,因此近年来,ConvGNN愈发普及。ConvGNN分为两类,基于谱的(spectral-based)和基于空间(spatial-based)的。基于谱的方法通过从图信号处理的角度[82]引入过滤器来定义图卷积,其中图卷积运算被解释为从图信号中去除噪声。基于空间的方法从RecGNN继承思想,通过信息聚合定义图卷积。自从GCN [22]弥合了基于谱的方法与基于空间的方法之间的差距以来,基于空间的方法由于其引人注目的效率、灵活性和通用性而迅速发展。
背景 基于谱的方法在图信号处理中具有扎实的数学基础[82],[83],[84]。他们假定图是无向的。无向图的健壮数学表示形式是归一化图拉普拉斯矩阵(normalized graph Laplacian matrix),定义为 L = I n − D − 1 2 A D − 1 2 \mathbf L = \mathbf {I_n}-\mathbf D^{-\frac{1}{2}} \mathbf A\mathbf D^{-\frac{1}{2}} L=In−D−21AD−21,其中 D \mathbf D D是节点度的对角矩阵, D i i = ∑ j ( A i , j ) \mathbf D_{ii} = \sum_j(\mathbf A_{i, j}) Dii=∑j(Ai,j)。归一化图拉普拉斯矩阵具有实对称半正定性质。利用该性质,可以将归一化的拉普拉斯矩阵分解为 L = U Λ U T \mathbf L =\mathbf {U \Lambda U}^T L=UΛUT,其中 U = [ u 0 , u 1 , ⋯ , u n − 1 ] ∈ R n × n \mathbf U = [\mathbf {u_0, u_1, \cdots ,u_{n-1}}] \in \mathbf R^{n\times n} U=[u0,u1,⋯,un−1]∈Rn×n是按特征值(eigenvalue)排序的特征向量(eigenvector)矩阵, Λ \mathbf \Lambda Λ 是特征值的对角阵(谱), Λ i i = λ i \mathbf \Lambda _{ii}=\lambda_i Λii=λi。归一化的拉普拉斯矩阵的特征向量形成一个正交空间,用数学语言表示, U T U = I \mathbf U^T \mathbf U =\mathbf I UTU=I。在图信号处理中,一个图信号 x ∈ R n \mathbf x \in \mathbf R^n x∈Rn是图的所有节点的特征向量(feature vector),其中 x i x_i xi是第 i i i个节点的。信号 x \mathbf x x的图傅里叶变换定义为 F ( x ) = U T x \mathscr F(\mathbf x)= \mathbf U^T \mathbf x F(x)=UTx,图傅里叶逆变换定义为 F − 1 ( x ^ ) = U x ^ = U U T x = x \mathscr F^{-1}(\hat {\mathbf x})= \mathbf U \hat{\mathbf x}= \mathbf U \mathbf U^T\mathbf x=\mathbf x F−1(x^)=Ux^=UUTx=x,其中 x ^ \hat{\mathbf x} x^表示从图傅里叶变换得到的信号。图傅立叶变换将输入图信号投影到正交空间,该空间的基(basis)是由归一化图拉普拉斯算子的特征向量(eigenvector)构成的。变换后的信号 x ^ \hat{\mathbf x} x^的元素是图信号在新空间中的坐标,因此输入信号可以表示为 x = ∑ i x ^ i u i \mathbf x = \sum_i \hat x_i\mathbf u_i x=∑ix^iui,这正是图傅立叶逆变换。现在用过滤器 g ∈ R N \mathbf g\in \mathbf R^N g∈RN对 x \mathbf x x进行图卷积定义为
x ∗ G g = F − 1 ( F ( x ) ⊙ F ( g ) ) = U ( U T x ⊙ U T g ) (4) \begin{aligned} \mathbf{x} *_{G} \mathbf{g} &=\mathscr{F}^{-1}(\mathscr{F}(\mathbf{x}) \odot \mathscr{F}(\mathbf{g})) \\ &=\mathbf{U}\left(\mathbf{U}^{T} \mathbf{x} \odot \mathbf{U}^{T} \mathbf{g}\right) \end{aligned}\tag{4} x∗Gg=F−1(F(x)⊙F(g))=U(UTx⊙UTg)(4)
其中 ⊙ \odot ⊙表示Hadamard乘积。如果将过滤器表示为 g θ = d i a g ( U T g ) \mathbf{g}_{\theta}=diag(\mathbf{U}^{T} \mathbf{g}) gθ=diag(UTg),则谱图卷积可简化为
x ∗ G g θ = U g θ U T x (5) \mathbf{x} *_{G} \mathbf{g}_{\theta}=\mathbf{U} \mathbf{g}_{\theta} \mathbf{U}^{T} \mathbf{x}\tag{5} x∗Ggθ=UgθUTx(5)
基于谱的ConvGNN均遵循此定义。关键区别在于过滤器 g θ \mathbf g_\theta gθ 的选择。
谱CNN(Spectral Convolutional Neural Network, spectral CNN)[19]假设过滤器 g θ = Θ i , j ( k ) \mathbf g_\theta =\Theta _{i,j}^{(k)} gθ=Θi,j(k)是一组可学习的参数,并考虑多通道(multiple channels)图信号。谱CNN的图卷积层定义为
H : , j ( k ) = σ ( ∑ i = 1 f k − 1 U Θ i , j ( k − 1 ) U T H : , i ( k − 1 ) ) ( j = 1 , 2 , ⋯ , f k ) (6) \mathbf{H}_{:, j}^{(k)}=\sigma\left(\sum_{i=1}^{f_{k-1}} \mathbf{U} \Theta_{i, j}^{(k-1)} \mathbf{U}^{T} \mathbf{H}_{:, i}^{(k-1)}\right) \quad\left(j=1,2, \cdots, f_{k}\right)\tag{6} H:,j(k)=σ(i=1∑fk−1UΘi,j(k−1)UTH:,i(k−1))(j=1,2,⋯,fk)(6)
其中 k k k是层索引, H ( k − 1 ) ∈ R n × f k − 1 \mathbf{H}^{(k-1)} \in \mathbf{R}^{n \times f_{k-1}} H(k−1)∈Rn×fk−1是输入(多通道)图信号, H ( 0 ) = X \mathbf{H}^{(0)}=\mathbf{X} H(0)=X, f k − 1 f_{k-1} fk−1是输入通道数, f k f_k fk是输出通道, Θ i , j ( k − 1 ) \Theta _{i,j}^{(k-1)} Θi,j(k−1)是可学习参数构成的对角矩阵。由于拉普拉斯矩阵的特征分解,谱CNN面临三个限制。首先,对图的任何扰动都会导致特征基的变化。其次,学习到的过滤器是域相关的,这意味着它们不能应用于结构不同的图。第三,特征分解需要 O ( n 3 ) O(n^3) O(n3)计算复杂度。在后续工作中,ChebNet [21]和GCN [22]通过一些近似和简化将计算复杂度降低到 O ( m ) O(m) O(m)。
Chebyshev谱CNN(Chebyshev Spectral CNN, ChebNet)[21]通过特征值对角矩阵的Chebyshev多项式近似过滤器 g θ \mathbf g_\theta gθ ,即 g θ = ∑ i = 0 K − 1 θ i T k ( Λ ~ ) \mathbf{g}_{\theta}=\sum_{i=0}^{K-1} \theta_{i} T_{k}(\tilde{\mathbf{\Lambda}}) gθ=∑i=0K−1θiTk(Λ~),其中 Λ ~ = 2 Λ / λ m a x − I n ∈ [ − 1 , 1 ] \tilde{\boldsymbol{\Lambda}}=2 \mathbf \Lambda / \lambda_{m a x}-\mathbf{I}_{\mathrm{n}} \in[-1,1] Λ~=2Λ/λmax−In∈[−1,1]。Chebyshev多项式递归定义为 T k ( x ) = 2 x T k − 1 ( x ) − T k − 2 ( x ) T_{k}(\mathbf{x})=2 \mathbf{x} T_{k-1}(\mathbf{x})-T_{k-2}(\mathbf{x}) Tk(x)=2xTk−1(x)−Tk−2(x),其中初始值 T 0 ( x ) = 1 T_0(\mathbf x )= 1 T0(x)=1, T 1 ( x ) = x T_1(\mathbf x )=\mathbf x T1(x)=x。因此,用定义的过滤器 g θ \mathbf g_\theta gθ对图信号 x \mathbf x x进行卷积
x ∗ G g θ = U ( ∑ i = 0 K − 1 θ i T k ( Λ ~ ) ) U T x = ∑ i = 0 K − 1 θ i T i ( L ~ ) x (7) \begin{aligned} \mathbf{x} *_{G} \mathbf{g}_{\theta} &=\mathbf{U}\left(\sum_{i=0}^{K-1} \theta_{i} T_{k}(\tilde{\boldsymbol{\Lambda}})\right) \mathbf{U}^{T} \mathbf{x} \\ &=\sum_{i=0}^{K-1} \theta_{i} T_{i}(\tilde{\mathbf{L}}) \mathbf{x} \end{aligned}\tag{7} x∗Ggθ=U(i=0∑K−1θiTk(Λ~))UTx=i=0∑K−1θiTi(L~)x(7)
其中 L ~ = 2 L / λ m a x − I n \tilde{\mathbf{L}}=2 \mathbf{L} / \lambda_{m a x}-\mathbf{I}_{\mathbf{n}} L~=2L/λmax−In。作为对谱CNN的改进,ChebNet定义的过滤器在空间中局部化。可以在图的不同位置共享学习到的权重。 ChebNet的谱线性映射到[-1, 1]。 CayleyNet [23]进一步应用了Cayley多项式(它们是带参数有理复函数)来捕获窄频带。 CayleyNet的谱图卷积定义为
x ∗ G g θ = c 0 x + 2 R e { ∑ j = 1 r c j ( h L − i I ) j ( h L + i I ) − j x } (8) \mathbf{x} *_{G} \mathbf{g}_{\theta}=c_{0} \mathbf{x}+2 Re\left\{\sum_{j=1}^{r} c_{j}(h \mathbf{L}-i \mathbf{I})^{j}(h \mathbf{L}+i \mathbf{I})^{-j} \mathbf{x}\right\}\tag{8} x∗Ggθ=c0x+2Re{j=1∑rcj(hL−iI)j(hL+iI)−jx}(8)
其中, R e ( ⋅ ) Re(\cdot) Re(⋅)返回复数的实部, c 0 c_0 c0是实系数, c j c_j cj是复数系数, i i i是虚数, h h h是控制Cayley过滤器谱的参数。在保留空间局部性的同时,CayleyNet证明,ChebNet可被视为CayleyNet的特例。
图卷积网络(Graph Convolutional Network, GCN)[22]引入了ChebNet的一阶近似。假设 K = 1 K = 1 K=1且 λ m a x = 2 \lambda_{max}= 2 λmax=2,等式(7)可以简化为
x ∗ G g θ = θ 0 x − θ 1 D − 1 2 A D − 1 2 x (9) \mathbf{x} *_{G} \mathbf{g}_{\theta}=\theta_{0} \mathbf{x}-\theta_{1} \mathbf{D}^{-\frac{1}{2}} \mathbf{A} \mathbf{D}^{-\frac{1}{2}} \mathbf{x}\tag{9} x∗Ggθ=θ0x−θ1D−21AD−21x(9)
为限制参数数量并避免过拟合,GCN进一步假设 θ = θ 0 = − θ 1 \theta =\theta_0 =-\theta_1 θ=θ0=−θ1,得到图卷积的以下定义:
x ∗ G g θ = θ ( I n + D − 1 2 A D − 1 2 ) x (10) \mathbf{x} *_{G} \mathbf{g}_{\theta}=\theta\left(\mathbf{I}_{\mathbf{n}}+\mathbf{D}^{-\frac{1}{2}} \mathbf{A} \mathbf{D}^{-\frac{1}{2}}\right) \mathbf{x}\tag{10} x∗Ggθ=θ(In+D−21AD−21)x(10)
为了允许输入和输出的多通道,GCN将等式(10)修改为合成层,定义为
H = X ∗ G g Θ = f ( A ˉ X Θ ) (11) \mathbf{H}=\mathbf{X} *_{G} \mathbf{g}_{\Theta}=f(\bar{\mathbf{A}} \mathbf{X} \Theta)\tag{11} H=X∗GgΘ=f(AˉXΘ)(11)
其中 A ˉ = I n + D − 1 2 A D − 1 2 \bar{\mathbf{A}}=\mathbf{I}_{\mathbf{n}}+\mathbf{D}^{-\frac{1}{2}} \mathbf{A} \mathbf{D}^{-\frac{1}{2}} Aˉ=In+D−21AD−21, f ( ⋅ ) f(\cdot) f(⋅)是激活函数。通过实验看出,使用 I n + D − 1 2 A D − 1 2 \mathbf{I}_{\mathbf{n}}+\mathbf{D}^{-\frac{1}{2}} \mathbf{A} \mathbf{D}^{-\frac{1}{2}} In+D−21AD−21会导致GCN数值不稳定。为了解决这个问题,GCN应用了归一化技巧,将 A ˉ = I n + D − 1 2 A D − 1 2 \bar{\mathbf{A}}=\mathbf{I}_{\mathbf{n}}+\mathbf{D}^{-\frac{1}{2}} \mathbf{A} \mathbf{D}^{-\frac{1}{2}} Aˉ=In+D−21AD−21替换为 A ˉ = D ~ − 1 2 A ~ D ~ − 1 2 \bar{\mathbf{A}}=\tilde{\mathbf{D}}^{-\frac{1}{2}} \tilde{\mathbf{A}} \tilde{\mathbf{D}}^{-\frac{1}{2}} Aˉ=D~−21A~D~−21,其中 A ~ = A + I n \tilde{\mathbf{A}}=\mathbf{A}+\mathbf{I_n} A~=A+In(增加了节点到其自身的边), D ~ i i = ∑ j A ~ i j \tilde{\mathbf{D}}_{i i}=\sum_{j} \tilde{\mathbf{A}}_{i j} D~ii=∑jA~ij。作为基于谱的方法,GCN也可以解释为基于空间的方法。从基于空间的角度看,GCN可以看作是聚合节点邻居的特征信息。公式(11)可以表示为
h v = f ( ( ∑ u ∈ { N ( v ) ∪ v } A ˉ v , u x u ) Θ ∀ v ∈ V (12) \mathbf{h}_{v}=f\left(\left(\sum_{u \in\{N(v) \cup v\}} \bar{\mathbf A}_{v, u} \mathbf{x}_{u}\right) \Theta \quad \forall v \in V\right.\tag{12} hv=f⎝⎛⎝⎛u∈{N(v)∪v}∑Aˉv,uxu⎠⎞Θ∀v∈V(12)
最近的一些工作通过探索其他对称矩阵,对GCN [22]进行了增量改进。Adaptive图卷积网络(Adaptive GCN,AGCN)[40]学习图邻接矩阵未指定的隐藏结构关系。它通过以两个节点的特征为输入的可学习距离函数构造所谓的残差图邻接矩阵。Dual GCN[41]介绍了一个具有两个并行图卷积层的双图卷积体系。尽管这两层共享参数,它们使用归一化的邻接矩阵 A ˉ \bar {\mathbf A} Aˉ和归一化的正逐点互信息(positive pointwise mutual information, PPMI)矩阵,后者由随机游走中节点共现导出。通过对双图卷积层的输出进行集成(ensemble),DGCN可以捕获局部和全局结构信息,而无需堆叠多个图卷积层。
基于常规CNN在图像上的卷积运算,基于空间的方法基于节点的空间关系定义图卷积。图像可以被视为图的一种特殊形式,每个像素代表一个节点。每个像素直接与其附近的像素相连,如图1a所示。从一个3×3窗口可以看出,每个节点的邻居是其周围的八个像素。然后,通过获取每个通道上中心节点及其邻居的像素值的加权平均值,将过滤器应用于此3×3色块。类似地,基于空间的图卷积将中心节点的表示与其邻居的表示进行卷积,以得出中心节点的更新表示,如图1b所示。从另一个角度来看,基于空间的ConvGNN与RecGNN共享相同的信息传播/消息传递思想。空间图卷积运算实质上是沿着边传播节点信息。
图神经网络(Neural Network for Graphs, NN4G)[24]是基于空间的ConvGNN的第一项工作。NN4G通过直接对节点的邻居信息求和来执行图卷积。它还会应用残差连接和跳接以记住每层上的信息。因此,NN4G通过下式导出其下层节点状态
h v ( k ) = f ( x v W ( k − 1 ) + ∑ i = 1 k − 1 ∑ u ∈ N ( v ) h u ( i ) Θ ( i ) ) (13) \mathbf{h}_{v}^{(k)}=f\left(\mathbf{x}_{v} \mathbf{W}^{(k-1)}+\sum_{i=1}^{k-1} \sum_{u \in N(v)} \mathbf{h}_{u}^{(i)} \Theta^{(i)}\right)\tag{13} hv(k)=f⎝⎛xvW(k−1)+i=1∑k−1u∈N(v)∑hu(i)Θ(i)⎠⎞(13)
其中, f ( ⋅ ) f(\cdot) f(⋅)是激活函数, h v ( 0 ) = 0 \mathbf h_v^{(0)}=\mathbf 0 hv(0)=0。等式(13)也可以用矩阵形式表示:
H ( k ) = f ( X W ( k − 1 ) + ∑ i = 1 k − 1 A H ( i ) Θ ( i ) ) \mathbf{H}^{(k)}=f\left(\mathbf{X} \mathbf{W}^{(k-1)}+\sum_{i=1}^{k-1} \mathbf{A} \mathbf{H}^{(i)} \Theta^{(i)}\right) H(k)=f(XW(k−1)+i=1∑k−1AH(i)Θ(i))
类似于GCN的形式[22]。主要区别在于NN4G使用未标准化的邻接矩阵,这可能会导致数值不稳定问题。上下文图马尔可夫模型(Contextual Graph Markov Model, CGMM)[47]提出了一种基于NN4G的概率模型。在保持空间局部性的同时,CGMM具有概率可解释性的优势。
扩散卷积神经网络(Diffusion Convolutional Neural Network, DCNN)[25]将图卷积视为扩散过程。它假定信息以一定的转移概率从一个节点传输到其相邻节点之一,使得信息分布可以在几轮然后达到平衡。 DCNN将扩散图卷积定义为
H ( k ) = f ( w ( k ) ⊙ P k X ) (14) \mathbf{H}^{(k)}=f\left(\mathbf{w}^{(k)} \odot \mathbf{P}^{k} \mathbf{X}\right)\tag{14} H(k)=f(w(k)⊙PkX)(14)
其中, f ( ⋅ ) f(\cdot) f(⋅)是激活函数,概率转移矩阵 P ∈ R n × n \mathbf{P} \in \mathbf{R}^{n \times n} P∈Rn×n由 P = D − 1 A \mathbf{P}=\mathbf{D}^{-1} \mathbf{A} P=D−1A计算得来。请注意,在DCNN中,隐藏表示矩阵 H ( k ) \mathbf{H}^{(k)} H(k)的维数与输入特征矩阵 X \mathbf X X相同,而且不是前一个隐藏表示矩阵 H ( k − 1 ) \mathbf{H}^{(k-1)} H(k−1)的函数。DCNN将 H ( 1 ) , H ( 2 ) , ⋯ , H ( K ) \mathbf{H}^{(1)}, \mathbf{H}^{(2)}, \cdots, \mathbf{H}^{(K)} H(1),H(2),⋯,H(K)连接起来作为模型的最终输出。由于扩散过程的平稳分布 (stationary distribution) 是概率转移矩阵的幂级数的总和,扩散图卷积(Diffusion Graph Convolution, DGC)[72]对每个扩散步骤的输出求和,而不是连接。通过下式定义扩散图卷积
H = ∑ k = 0 K f ( P k X W ( k ) ) (15) \mathbf{H}=\sum_{k=0}^{K} f\left(\mathbf{P}^{k} \mathbf{X} \mathbf{W}^{(k)}\right)\tag{15} H=k=0∑Kf(PkXW(k))(15)
其中 W ( k ) ∈ R D × F \mathbf{W}^{(k)} \in \mathbf{R}^{D \times F} W(k)∈RD×F, f ( ⋅ ) f(\cdot) f(⋅)是激活函数。使用转移概率矩阵的幂意味着远邻对中心节点的贡献很小。 PGC-DGCNN [46]基于最短路径增加了远邻的贡献。它定义了最短路径邻接矩阵 S ( j ) \mathbf{S}^{(j)} S(j)。如果从节点 v v v到节点 u u u的最短路径的长度为 j j j,则 S v , u ( j ) = 1 \mathbf{S}_{v, u}^{(j)}=1 Sv,u(j)=1否则为0。通过超参数 r r r控制感受野( 感受野是卷积神经网络每一层输出的特征图上的像素点在原始图像上映射的区域大小)大小,PGCDGCNN引入的图卷积运算如下所示:
H ( k ) = ∥ j = 0 r f ( ( D ~ ( j ) ) − 1 S ( j ) H ( k − 1 ) W ( j , k − 1 ) ) (16) \mathbf{H}^{(k)}=\|_{j=0}^{r} f\left(\left(\tilde{\mathbf{D}}^{(j)}\right)^{-1} \mathbf{S}^{(j)} \mathbf{H}^{(k-1)} \mathbf{W}^{(j, k-1)}\right)\tag{16} H(k)=∥j=0rf((D~(j))−1S(j)H(k−1)W(j,k−1))(16)
其中 D ~ i i ( j ) = ∑ l S i , l ( j ) \tilde{D}_{i i}^{(j)}=\sum_{l} S_{i, l}^{(j)} D~ii(j)=∑lSi,l(j),$ \mathbf{H}{(0)}=\mathbf{X}$,而$||$表示向量的连接。最短路径邻接矩阵的计算最大可能耗费$O(n3) 。 分 区 图 卷 积 ( P a r t i t i o n G r a p h C o n v o l u t i o n , P G C ) [ 75 ] 根 据 不 限 于 最 短 路 径 的 某 些 标 准 将 节 点 的 邻 居 分 为 。分区图卷积(Partition Graph Convolution, PGC)[75]根据不限于最短路径的某些标准将节点的邻居分为 。分区图卷积(PartitionGraphConvolution,PGC)[75]根据不限于最短路径的某些标准将节点的邻居分为Q 组 。 P G C 根 据 每 个 组 定 义 的 邻 居 关 系 构 造 组。 PGC根据每个组定义的邻居关系构造 组。PGC根据每个组定义的邻居关系构造Q$邻接矩阵。然后,PGC将具有不同参数矩阵的GCN [22]应用于每个邻居组,并对结果求和:
H ( k ) = ∑ j = 1 Q A ˉ ( j ) H ( k − 1 ) W ( j , k − 1 ) (17) \mathbf{H}^{(k)}=\sum_{j=1}^{Q} \bar{\mathbf{A}}^{(j)} \mathbf{H}^{(k-1)} \mathbf{W}^{(j, k-1)}\tag{17} H(k)=j=1∑QAˉ(j)H(k−1)W(j,k−1)(17)
其中 H ( 0 ) = X \mathbf{H}^{(0)}=\mathbf{X} H(0)=X, A ˉ ( j ) = ( D ( j ) ) − 1 2 A ~ ( j ) ( D ( j ) ) − 1 2 \bar{\mathbf{A}}^{(j)}=\left(\mathbf{D}^{(j)}\right)^{-\frac{1}{2}} \tilde{\mathbf{A}}^{(j)}\left(\mathbf{D}^{(j)}\right)^{-\frac{1}{2}} Aˉ(j)=(D(j))−21A~(j)(D(j))−21, A ~ ( j ) = A ( j ) + I \tilde{\mathbf{A}}^{(j)}=\mathbf{A}^{(j)}+\mathbf{I} A~(j)=A(j)+I。
消息传递神经网络(Message Passing Neural Network, MPNN)[27]概述了基于空间的ConvGNN的通用框架。它将图卷积视为一种消息传递过程,其中信息可以直接从一个节点沿边传递到另一个节点。 MPNN运行K步消息传递迭代,以使信息进一步传播。消息传递函数(即空间图卷积)定义为
h v ( k ) = U k ( h v ( k − 1 ) , ∑ u ∈ N ( v ) M k ( h v ( k − 1 ) , h u ( k − 1 ) , x v u e ) ) (18) \mathbf{h}_{v}^{(k)}=U_{k}\left(\mathbf{h}_{v}^{(k-1)}, \sum_{u \in N(v)} M_{k}\left(\mathbf{h}_{v}^{(k-1)}, \mathbf{h}_{u}^{(k-1)}, \mathbf{x}_{v u}^{e}\right)\right)\tag{18} hv(k)=Uk⎝⎛hv(k−1),u∈N(v)∑Mk(hv(k−1),hu(k−1),xvue)⎠⎞(18)
其中 h v ( 0 ) = x v \mathbf{h}_{v}^{(0)}=\mathbf{x}_{v} hv(0)=xv, U k ( ⋅ ) U_k(\cdot) Uk(⋅)和 M k ( ⋅ ) M_k(\cdot) Mk(⋅)是具有可学习参数的函数。在得出每个节点的隐藏表示后,将 h v ( K ) \mathbf{h}_{v}^{(K)} hv(K)传递到输出层以执行节点级预测任务,或者传递给读出函数以执行图级预测任务。读出函数基于节点隐藏表示生成整个图的表示。通常定义为
h G = R ( h v ( K ) ∣ v ∈ G ) (19) \mathbf{h}_{G}=R\left(\mathbf{h}_{v}^{(K)} | v \in G\right)\tag{19} hG=R(hv(K)∣v∈G)(19)
其中, R ( ⋅ ) R(\cdot) R(⋅)表示具有可学习参数的读出函数。 MPNN可以通过采用不同形式的 U k ( ⋅ ) U_k(\cdot) Uk(⋅), M k ( ⋅ ) M_k(\cdot) Mk(⋅)和 R ( ⋅ ) R(\cdot) R(⋅)来覆盖许多现有的GNN,例如[22],[85],[86],[87]。然而,图同构网络(Graph Isomorphism Network, GIN)[57]发现,在MPNN框架下的方法无法基于它们生成的图嵌入来区分不同的图结构。为了弥补这一缺点,GIN通过可学习的参数 ϵ ( k ) \epsilon ^{(k)} ϵ(k)来调整中心节点的权重。它通过下式执行图卷积
h v ( k ) = σ ( ( ( 1 + ϵ ( k ) ) h v ( k − 1 ) + ∑ u ∈ N ( v ) h u ( k − 1 ) W ( k − 1 ) ) (20) \mathbf{h}_{v}^{(k)}=\sigma\left(\left(\left(1+\epsilon^{(k)}\right) \mathbf{h}_{v}^{(k-1)}+\sum_{u \in N(v)} \mathbf{h}_{u}^{(k-1)} \mathbf{W}^{(k-1)}\right)\right.\tag{20} hv(k)=σ⎝⎛⎝⎛(1+ϵ(k))hv(k−1)+u∈N(v)∑hu(k−1)W(k−1)⎠⎞(20)
由于一个节点的邻居数量可能从一到一千甚至更多不等,因此获取一个节点的全部邻居效率很低,GraphSage [42]采用采样的方式为每个节点获取固定数量的邻居。它通过下式执行图卷积
h v ( k ) = σ ( W ( k ) ⋅ f k ( h v ( k − 1 ) , { h u ( k − 1 ) , ∀ u ∈ S N ( v ) } ) ) (21) \mathbf{h}_{v}^{(k)}=\sigma\left(\mathbf{W}^{(k)} \cdot f_{k}\left(\mathbf{h}_{v}^{(k-1)},\left\{\mathbf{h}_{u}^{(k-1)}, \forall u \in S_{\mathcal{N}(v)}\right\}\right)\right)\tag{21} hv(k)=σ(W(k)⋅fk(hv(k−1),{hu(k−1),∀u∈SN(v)}))(21)
其中 h v ( 0 ) = x v \mathbf{h}_{v}^{(0)}=\mathbf{x}_{v} hv(0)=xv, f k ( ⋅ ) f_k(\cdot) fk(⋅)是一个聚合函数, S N ( v ) S_{\mathcal{N}(v)} SN(v)是节点 v v v的邻居的随机样本,该聚合函数应不变于节点顺序的排列,例如均值、求和或最大值函数。
图注意力网络(Graph Attention Network, GAT)[43]假设相邻节点对中心节点的贡献既不像GraphSage [42]一样,也不像GCN [22]那样预先确定(这一差异如图4所示)。GAT采用注意力机制学习两个相连节点之间的相对权重。根据GAT进行的图卷积操作定义为:
h v ( k ) = σ ( ∑ u ∈ N ( v ) ∪ v α v u W ( k − 1 ) h u ( k − 1 ) ) (22) \mathbf{h}_{v}^{(k)}=\sigma\left(\sum_{u \in \mathcal{N}(v) \cup v} \alpha_{v u} \mathbf{W}^{(k-1)} \mathbf{h}_{u}^{(k-1)}\right)\tag{22} hv(k)=σ⎝⎛u∈N(v)∪v∑αvuW(k−1)hu(k−1)⎠⎞(22)
其中 h v ( 0 ) = x v \mathbf h_v^{(0)}= x_v hv(0)=xv,注意力权重 α v u \alpha_{vu} αvu衡量从节点 v v v到其邻居 u u u的连接强度,并由下式计算:
α v u = s o f t m a x ( g ( a T [ W ( k − 1 ) h v ∥ W ( k − 1 ) h u ] ) ) (23) \alpha_{v u}=softmax\left(g\left(\mathbf{a}^{T}\left[\mathbf{W}^{(k-1)} \mathbf{h}_{v} \| \mathbf{W}^{(k-1)} \mathbf{h}_{u}\right]\right)\right)\tag{23} αvu=softmax(g(aT[W(k−1)hv∥W(k−1)hu]))(23)
其中, g ( ⋅ ) g(\cdot) g(⋅)是LeakReLU激活函数, a \mathbf a a是可学习参数的向量。 softmax函数可确保注意力权重在节点 v v v的所有邻居上总计为1。 GAT进一步执行多头注意力以提高模型的表达能力。这显示了在节点分类任务方面,相对于GraphSage的显著改进。GAT假定多头的贡献是同样的,门控注意力网络(Gated Attention Network, GAAN)[48]引入了自注意力机制,为每个注意力头计算一个额外的注意力得分。除了在空间上施加图注意力之外,GeniePath [55]进一步提出了一种类似于LSTM的门控机制,以控制不同图卷积层间的信息流。还有其他有趣的图注意力模型[88],[89]。但是,它们不属于ConvGNN框架。
混合模型网络(Mixture Model Network, MoNet)[44]采用不同的方法为节点的邻居分配不同的权重。它引入节点伪坐标以确定节点与其邻居之间的相对位置。一旦知道两个节点之间的相对位置,权重函数会将相对位置映射到这两个节点之间的相对权重。以这种方式,可以在不同位置之间共享图过滤器的参数。在MoNet框架下,用于流形的几种现有方法,例如测地线CNN(Geodesic CNN, GCNN)[90],各向异性CNN(Anisotropic CNN, ACNN)[91],样条CNN(Spline CNN) [92],以及用于图的方法,例如GCN [22],DCNN [25]可以泛化为MoNet的无参权重函数特例。MoNet还提出了一个具有可学习参数的高斯核,以自适应地学习权重函数。
另一类独特的方法是,根据某些标准对节点的邻居进行排序,并将每个排序与可学习的权重相关联,从而实现不同位置的权重分配。 PATCHY-SAN [26]根据每个节点的图标签对它们的邻居进行排序,并选择前 q q q个邻居。图标签本质上是节点分数,可以通过节点度,中心度,Weisfeiler-Lehman颜色[93],[94]等得出。由于每个节点现在都有固定数量的有序邻居,因此可以将图结构化数据转换为网格结构的数据。 PATCHY-SAN应用标准的1D卷积过滤器以聚合邻居特征信息,其中过滤器权重的顺序与节点邻居的顺序相对应。PATCHY-SAN的排序标准仅考虑图结构,数据处理需要大量运算。大型图卷积网络(Large-scale Graph Convolutional Network, LGCN)[45]根据节点特征信息对节点的邻居进行排序。对于每个节点,LGCN都会组装一个由其邻居组成的特征矩阵,并沿每一列对该特征矩阵进行排序。排序后的特征矩阵的前 q q q行被用作中心节点的输入数据。
训练效率的提高 训练ConvGNN(例如GCN [22])通常需要将整个图数据和所有节点中间状态保存到内存中。ConvGNN的全批次训练算法遭受内存溢出问题的困扰,尤其是当一个图包含数百万个节点时。为了节省内存,GraphSage [42]提出了一种针对ConvGNN的批量训练算法。它对以每个节点为根的树进行采样,总共K步,固定的样本大小,递归地扩展根节点的邻居。对于每棵采样树,GraphSage通过从下到上层次聚合隐藏节点表示来计算根节点的隐藏表示。
图卷积网络快速学习(Fast Learning with Graph Convolutional Network, Fast-GCN)[49]为每个图卷积层采样固定数量的节点,而不是像GraphSage [42]那样为每个节点采样固定数量的邻居。它把图卷积解释为概率测度下节点嵌入函数的积分变换。采用蒙特卡洛近似和方差减少技术来简化训练过程。由于FastGCN针对每个层独立采样节点,因此层间连接可能稀疏。Huang et al. [51]提出了一种自适应的逐层采样方法,其中较低层的节点采样以顶层为条件。与FastGCN相比,此方法以采用更为复杂的采样方案为代价实现了更高的精度。
在另一项工作中,图卷积网络的随机训练(Stochastic Training of Graph Convolutional Networks, StoGCN)[50]使用历史节点表示作为控制变量,将图卷积的感受野大小减小到任意小比例。即使每个节点有两个邻居,StoGCN仍可实现可比的性能。但是,StoGCN仍必须保存所有节点的中间状态,这对于大型图来说很耗内存。
Cluster-GCN [58]使用图聚类算法对子图进行采样,并对所采样的子图中的节点执行图卷积。由于邻居搜索也被限制在采样的子图中,因此Cluster-GCN能够处理更大的图并同时使用更少的时间更少的内存更深的体系结构。Cluster-GCN尤其可以为现有ConvGNN训练算法提供时间复杂度和内存复杂度的直接比较。我们根据表IV分析其结果。
在表IV中,GCN [22]是进行批量训练的基线方法。GraphSage以牺牲时间效率为代价来节省内存。同时,随着 K K K和 r r r的增加,GraphSage的时间和内存复杂度呈指数增长。Sto-GCN的时间复杂度最高,并且内存瓶颈仍未解决。但是,Sto-GCN可以以很小的 r r r获得令人满意的性能。Cluster-GCN的时间复杂度与基线方法相同,因为它没有引入冗余计算。在所有方法中,ClusterGCN实现了最低的内存复杂性。
谱模型与空间模型之间的比较 谱模型在图信号处理中具有理论基础。通过设计新的图信号滤波器/过滤器(例如Cayleynets [23]),理论上可以构建新的ConvGNN。但是,由于效率、通用性和灵活性问题,与谱模型相比,空间模型更为可取。首先,谱模型的效率不如空间模型。谱模型要么需要执行特征向量计算,要么需要同时处理整个图。空间模型对大型图更具可伸缩性,因为它们通过信息聚合在图域直接执行卷积。可以在一批节点而不是整个图中执行计算。其次,依赖于图傅立叶基础的谱模型不能很好地泛化到新图。他们假设一个固定的图。对图的任何扰动都会导致特征基的变化。另一方面,基于空间的模型会在每个节点上执行局部图卷积,权重可以在不同的位置和结构之间轻松共享。第三,基于谱的模型仅限于在无向图上运行。基于空间的模型更灵活地处理多源图输入,例如边输入[15],[27],[86],[95],[96],有向图[25],[72],有符号图[97] ]和异构图[98],[99],因为这些图输入可以轻松地纳入聚合函数中。
GNN生成节点特征后,我们可以将其用于最终任务。但是直接使用所有这些函数可能在计算上具有挑战性,因此,需要一种下采样策略。根据目标及其在网络中扮演的角色,为该策略指定了不同的名称:(1)池化操作旨在通过对节点进行下采样以生成较小的表示来减小参数的大小,从而避免过拟合,排列不变性和计算复杂性问题; (2)读出操作主要用于基于节点表示生成图级表示。它们的机制非常相似。在本章中,我们使用池化来指代应用于GNN的各种下采样策略。
当前,mean/max/sum池化是实现下采样的最原始和最有效的方式,因为在池化窗口中计算mean/max/sum值很快:
h G = m e a n / m a x / s u m ( ( h 1 ( K ) , h 2 ( K ) , … , h n ( K ) ) (24) \mathbf h_G = mean/max/sum((\mathbf h_1^{(K)}, \mathbf h_2^{(K)},\ldots,\mathbf h_n^{(K)})\tag{24} hG=mean/max/sum((h1(K),h2(K),…,hn(K))(24)
其中 K K K 是最后一个图卷积层的索引。
Henaff et al. [20]证明,在网络开始时执行简单的最大/均值池化对于降低图域的维数和减轻代价高昂的图傅立叶变换操作尤为重要。此外,一些工作[17],[27],[46]也使用注意力机制来增强均值/求和池化。
如今,均值/最大值/求和池化是实现下采样的最原始,最有效的方法,因为在池化窗口中计算平均值/最大值/总和的值很快:
h G = mean / max / sum ( h 1 ( K ) , h 2 ( K ) , … , h n ( K ) ) (24) \mathbf{h}_{G}=\operatorname{mean} / \max / \operatorname{sum}\left(\mathbf{h}_{1}^{(K)}, \mathbf{h}_{2}^{(K)}, \ldots, \mathbf{h}_{n}^{(K)}\right)\tag{24} hG=mean/max/sum(h1(K),h2(K),…,hn(K))(24)
其中, K K K是最后一个图卷积层的索引。Henaff et al. [20]表明,在网络开始时执行简单的最大/均值池对于降低图域的维数和减轻代价高昂的图傅立叶变换操作尤为重要。此外,一些工作[17],[27],[46]也使用注意力机制来增强均值/求和池化。
即使有了注意力机制,约简操作仍然效率低下,并且忽略了节点排序的影响。Vinyals et al. [101]提出了Set2Set方法来减少顺序的影响。它首先将输入数据嵌入到内存向量中,然后将该向量输入LSTM中进行更新。经过几次迭代后,将生成对输入排列不变的最终嵌入。
Defferrard et al. [21]通过优化最大/最小池化并在他们的方法ChebNet中设计有效的池化策略,以另一种方式解决了这个问题。输入图首先由Graclus算法处理。粗化后,输入图的节点及其粗化版本将在平衡的二叉树中进行重组。在平衡的二叉树中任意对节点进行最粗略的排序并将其传播到较低的级别,最终会在最细级别上产生规则的排序。池化这样重新排列的信号比池化原始信号要有效得多。
Zhang et al. [52]提出了一种DGCNN,它具有类似的名为SortPooling的池化策略,该策略通过将节点重新排列为有意义的顺序来执行池化。与ChebNet [21]不同,DGCNN根据节点在图中的结构角色对节点进行排序。来自空间图卷积的图的无序节点特征被视为连续的WL颜色[93],然后将它们用于对节点进行排序。除了对节点特征进行排序外,它还通过截断/扩展节点特征矩阵将图大小统一为 q q q。如果 n > q n> q n>q,则删除最后的 n − q n-q n−q行,否则添加 q − n q-n q−n个零行。该方法对于节点置换是不变的,因此提高了ConvGNN的性能。
上述池化方法主要考虑图的特征,而忽略图的结构信息。最近,提出了一种可微池化(differentiable pooling, DiffPool)[54],它可以生成图的分层表示。与所有以前的粗化方法相比,DiffPool不只是将图上的节点聚类,而是学习了一个聚类分配矩阵 S \mathbf S S,第 k k k层为 S ( k ) ∈ R n k × n k + 1 \mathbf{S}^{(k)} \in \mathbf{R}^{n_{k} \times n_{k+1}} S(k)∈Rnk×nk+1,其中 n k n_k nk是第 k k k层的节点数。使用下式,基于节点特征和拓扑结构生成矩阵 S ( k ) \mathbf{S}^{(k)} S(k)中的概率值
S ( k ) = s o f t m a x ( C o n v G N N k ( A ( k ) , H ( k ) ) ) (25) \mathbf{S}^{(k)}=softmax\left(ConvGNN_{k}\left(\mathbf{A}^{(k)}, \mathbf{H}^{(k)}\right)\right)\tag{25} S(k)=softmax(ConvGNNk(A(k),H(k)))(25)
核心思想是为了学习考虑图的拓扑和特征信息的综合节点分配,因此可以使用任何标准ConvGNN来实现公式(25)。但是,DiffPool的缺点是在池化后会生成稠密图,此后计算复杂度变为 O ( n 2 ) O(n^2) O(n2)。
最近,提出了SAGPool [102]方法,该方法同时考虑了节点特征和图拓扑,并以一种自注意力的方式学习池化。
总的来说,池化是减小图大小的基本操作。如何改进池的有效性和计算复杂性仍然是一个尚待研究的问题。
我们从不同角度讨论图神经网络的理论基础。
感受野的形状 节点的感受野是有助于确定其最终节点表示形式的一组节点。当合成多个空间图卷积层时,节点的感受野每次向其远邻向前增长一步。Micheli et al. [24]证明存在有限数量的空间图卷积层,使得对于每个节点 v ∈ V v\in V v∈V,节点 v v v的感受野覆盖图中的所有节点。因此,ConvGNN可以通过堆叠局部图卷积层来提取全局信息。
VC维度 VC维度是模型复杂度的一种度量,定义为模型可以粉碎的最大点数(参考 https://www.zhihu.com/question/38607822/answer/149407083)。分析GNN的VC维度的工作很少。给定模型参数 p p p的数量和节点 n n n的数量,Scarselli et al. [103]推导出,如果GNN*[15]的VC维使用sigmoid或双曲正切激活函数,则为 O ( p 4 n 2 ) O(p^4n^2) O(p4n2),如果它使用分段多项式激活函数,则为 O ( p 2 n ) O(p^2n) O(p2n)。该结果表明,如果使用sigmoid或双曲正切激活函数,则GNN* [15]的模型复杂度会随着 p p p和 n n n迅速增加。
图同构 如果两个图在拓扑上相同,则它们是同构的。给定两个非同构图 G 1 G_1 G1和 G 2 G_2 G2,Xu et al. [57]证明,如果GNN将 G 1 G_1 G1和 G 2 G_2 G2映射到不同的嵌入,则可以通过Weisfeiler-Lehman(WL)同构测试[93]将这两个图识别为非同构。他们证明,常见的GNN(例如GCN [22]和GraphSage [42])无法区分不同的图结构。Xu et al. [57]进一步证明,如果GNN的聚合函数和读出函数是内射的,则GNN在区分不同图方面最多与WL测试一样强大。
等变性和不变性 当执行节点级任务时,GNN必须是等变函数,而在执行图级任务时,GNN必须是不变函数。对于节点级任务,令 f ( A , X ) ∈ R n × d f(\mathbf{A}, \mathbf{X})\in R^{n\times d} f(A,X)∈Rn×d为GNN, Q \mathbf Q Q为任何更改节点顺序的置换矩阵(目的是更换节点顺序。置换矩阵是一个方形二进制矩阵,它在每行和每列中只有一个1,而在其他地方则为0。)。如果满足 f ( Q A Q T , Q X ) = Q f ( A , X ) f\left(\mathbf{Q} \mathbf{A} \mathbf{Q}^{T}, \mathbf{Q} \mathbf{X}\right)=\mathbf{Q} f(\mathbf{A}, \mathbf{X}) f(QAQT,QX)=Qf(A,X)),则GNN是等变的。对于图级任务,令 f ( A , X ) ∈ R d f(\mathbf{A}, \mathbf{X})\in R^{d} f(A,X)∈Rd。如果满足 f ( Q A Q T , Q X ) = f ( A , X ) f\left(\mathbf{Q} \mathbf{A} \mathbf{Q}^{T}, \mathbf{Q} \mathbf{X}\right)=f(\mathbf{A}, \mathbf{X}) f(QAQT,QX)=f(A,X),则GNN是不变的。为了实现等变性或不变性,GNN的组件必须对节点的序不变。Maron et al. [104]从理论上研究了图数据的置换不变和等变线性层的特征。
通用近似 众所周知,具有一个隐藏层的多层感知器前馈神经网络可以近似任何Borel可测函数[105]。很少研究GNN的通用近似能力。Hammer et al. [106]证明了级联相关可以近似带有结构化输出的函数。Scarselli et al. [107]证明RecGNN[15]可以近似任何函数,该函数可以将展开等价性保持到任何精度。如果两个节点的展开树相同,则两个节点是展开等价的,其中节点的展开树是通过以一定深度迭代扩展节点的邻居来构造的。Xu et al. [57]证明,在消息传递框架下的ConvGNN [27]不是在多重集(multiset)上定义的连续函数的通用近似器。Maron et al. [104]证明了不变图网络可以近似图上定义的任意不变函数。
图自编码器(GAE)是一种深层神经体系结构,可将节点映射到隐特征空间,再从隐表示中解码出图信息。GAE可用于学习网络嵌入或生成新图。表V总结了所选GAE的主要特征。在下文中,我们从网络嵌入和图生成两个角度简要概述GAE。
网络嵌入是节点的低维向量表示,保留节点的拓扑信息。GAE使用编码器提取网络嵌入并使用解码器通过重建正逐点互信息矩阵(positive pointwise mutual information matrix, PPMI)[59],邻接矩阵[61]等来实施网络嵌入,以保留节点的拓扑信息,从而学习网络嵌入。
较早的方法主要使用多层感知器来构建用于网络嵌入学习的GAE。用于图表示的深度神经网络( Deep Neural Network for Graph Representations, DNGR)[59]使用堆叠的去噪自编码器[108]来编码,用多层感知器对PPMI进行解码。所学习的隐表示能够高度保留数据背后的非线性规则性,并且具有鲁棒性,特别在缺少值的时候。PPMI矩阵通过随机游走从图中采样,内在地捕获节点的共现信息。形式上,PPMI矩阵定义为
P P M I v 1 , v 2 = max ( log ( count ( v 1 , v 2 ) ⋅ ∣ D ∣ count ( v 1 ) count ( v 2 ) ) , 0 ) (26) \mathbf{P} \mathbf{P} \mathbf{M} \mathbf{I}_{v_{1}, v_{2}}=\max \left(\log \left(\frac{\operatorname{count}\left(v_{1}, v_{2}\right) \cdot|D|}{\operatorname{count}\left(v_{1}\right) \operatorname{count}\left(v_{2}\right)}\right), 0\right)\tag{26} PPMIv1,v2=max(log(count(v1)count(v2)count(v1,v2)⋅∣D∣),0)(26)
其中 v 1 , v 2 ∈ V v_1, v_2 \in V v1,v2∈V, ∣ D ∣ = ∑ v 1 , v 2 c o u n t ( v 1 , v 2 ) |D| = \sum_{v_1, v_2} count(v_1, v_2) ∣D∣=∑v1,v2count(v1,v2), c o u n t ( ⋅ ) count(\cdot) count(⋅)函数返回在采样的随机游走中节点 v v v和/或节点 u u u共存/出现的频率。
同时,结构深度网络嵌入(Structural Deep Network Embedding, SDNE)[60]使用堆叠式自编码器共同保存节点的一阶接近度(proximity)和二阶接近度。 SDNE在编码器的输出和解码器的输出上分别提出两个损失函数。第一个损失函数使学习到的网络嵌入能够保持节点一阶邻近度,通过最小化节点的网络嵌入与其邻居的网络嵌入之间的距离。第一个损失函数 L 1 s t L_{1st} L1st定义为
L 1 s t = ∑ ( v , u ) ∈ E A v , u ∥ enc ( x v ) − enc ( x u ) ∥ 2 (27) L_{1 s t}=\sum_{(v, u) \in E} A_{v, u}\left\|\operatorname{enc}\left(\mathbf{x}_{v}\right)-\operatorname{enc}\left(\mathbf{x}_{u}\right)\right\|^{2}\tag{27} L1st=(v,u)∈E∑Av,u∥enc(xv)−enc(xu)∥2(27)
其中 x v = A v , : \mathbf x_v = \mathbf A_{v, :} xv=Av,:,而 e n c ( ⋅ ) enc(\cdot) enc(⋅)是由多层感知器组成的编码器。第二个损失函数使学习到的网络嵌入能够通过最小化节点输入与其重构输入之间的距离来保持节点二阶邻近度。具体地,第二个损失函数 L 2 n d L_{2nd} L2nd被定义为:
L 2 n d = ∑ v ∈ V ∥ ( dec ( e n c ( x v ) ) − x v ) ⊙ b v ∥ 2 L_{2 n d}=\sum_{v \in V}\left\|\left(\operatorname{dec}\left(e n c\left(\mathbf{x}_{v}\right)\right)-\mathbf{x}_{v}\right) \odot \mathbf{b}_{v}\right\|^{2} L2nd=v∈V∑∥(dec(enc(xv))−xv)⊙bv∥2
其中,如果 A v , u = 0 A_{v, u}=0 Av,u=0,则 b v , u = 1 b_{v, u}=1 bv,u=1,如果 A v , u = 1 A_{v, u}=1 Av,u=1,则 b v , u = β > 1 b_{v, u}=\beta>1 bv,u=β>1,并且 d e c ( ⋅ ) dec(\cdot) dec(⋅)是由多层感知器组成的解码器。
DNGR [59]和SDNE [60]仅考虑节点结构信息。他们忽略节点可能包含特征信息。图自编码器(GAE*)[61]利用GCN [22]同时编码节点结构信息和节点特征信息。GAE*的编码器由两个图卷积层组成,形式为
z = enc ( X , A ) = Gconv ( f ( G conv ( A , X ; Θ 1 ) ) ; Θ 2 ) (29) \mathbf{z}=\operatorname{enc}(\mathbf{X}, \mathbf{A})=\operatorname{Gconv}\left(f\left(G \operatorname{conv}\left(\mathbf{A}, \mathbf{X} ; \mathbf{\Theta}_{1}\right)\right) ; \mathbf{\Theta}_{2}\right)\tag{29} z=enc(X,A)=Gconv(f(Gconv(A,X;Θ1));Θ2)(29)
其中 Z \mathbf Z Z表示图的网络嵌入矩阵, f ( ⋅ ) f(\cdot) f(⋅)是ReLU激活函数, G c o n v ( ⋅ ) Gconv(\cdot) Gconv(⋅)函数是由公式(11)定义的图卷积层。GAE*的解码器旨在通过重建图邻接矩阵从节点嵌入中解码节点关系信息,定义为
A ^ v , u = d e c ( z v , z u ) = σ ( z v T z u ) (30) \hat{\mathbf{A}}_{v, u}=dec\left(\mathbf{z}_{v}, \mathbf{z}_{u}\right)=\sigma\left(\mathbf{z}_{v}^{T} \mathbf{z}_{u}\right)\tag{30} A^v,u=dec(zv,zu)=σ(zvTzu)(30)
其中 z v \mathbf z_v zv是节点 v v v的嵌入。给定实际邻接矩阵 A \mathbf A A和重构的邻接矩阵 A ^ \hat{\mathbf A} A^,通过最小化负交叉熵来训练GAE*。
由于自编码器的容量,简单地重建图邻接矩阵可能会导致过拟合。变分图自编码器(Variational Graph Autoencoder, VGAE)[61]是GAE*的变分版本,用于学习数据的分布。 VGAE优化了变分下界
L = E q ( Z ∣ X , A ) [ log p ( A ∣ Z ) ] − K L [ q ( Z ∣ X , A ) ∥ p ( Z ) ] (31) L=E_{q(\mathbf{Z} | \mathbf{X}, \mathbf{A})}[\log p(\mathbf{A} | \mathbf{Z})]-K L[q(\mathbf{Z} | \mathbf{X}, \mathbf{A}) \| p(\mathbf{Z})]\tag{31} L=Eq(Z∣X,A)[logp(A∣Z)]−KL[q(Z∣X,A)∥p(Z)](31)
其中 K L ( ⋅ ) KL(\cdot) KL(⋅)是衡量两个分布之间距离的Kullback-Leibler发散函数, p ( Z ) p(\mathbf Z) p(Z)是高斯先验 p ( Z ) = ∏ i = 1 N p ( z i ) = ∏ i = 1 N N ( z i ∣ 0 , I ) p(\mathbf{Z})=\prod_{i=1}^{N} p\left(\mathbf{z}_{i}\right)=\prod_{i=1}^{N} N\left(\mathbf{z}_{i} | 0, \mathbf{I}\right) p(Z)=∏i=1Np(zi)=∏i=1NN(zi∣0,I), p ( A i j = 1 ∣ z i , z j ) = dec ( z i , z j ) = σ ( z i T z j ) p\left(A_{i j}=1 | \mathbf{z}_{i}, \mathbf{z}_{j}\right)=\operatorname{dec}\left(\mathbf{z}_{i}, \mathbf{z}_{j}\right)=\sigma\left(\mathbf{z}_{i}^{T} \mathbf{z}_{j}\right) p(Aij=1∣zi,zj)=dec(zi,zj)=σ(ziTzj), q ( Z ∣ X , A ) = ∏ i = 1 N q ( z i ∣ X , A ) q(\mathbf{Z} | \mathbf{X}, \mathbf{A})=\prod_{i=1}^{N} q\left(\mathbf{z}_{i} | \mathbf{X}, \mathbf{A}\right) q(Z∣X,A)=∏i=1Nq(zi∣X,A),其中 q ( z i ∣ X , A ) = N ( z i ∣ μ i , diag ( σ i 2 ) ) q\left(\mathbf{z}_{i} | \mathbf{X}, \mathbf{A}\right)=N\left(\mathbf{z}_{i} | \mu_{i}, \operatorname{diag}\left(\sigma_{i}^{2}\right)\right) q(zi∣X,A)=N(zi∣μi,diag(σi2))。平均向量 μ i \mu_i μi是由公式(29)定义的编码器输出的第 i i i行, log σ i \log \sigma_i logσi由另一个编码器以类似 μ i \mu_i μi的方式导出。根据等式(31),VGAE假定经验分布 q ( Z ∣ X , A ) q(\mathbf Z|\mathbf X, \mathbf A) q(Z∣X,A)应该与先验分布 p ( Z ) p(\mathbf Z) p(Z)接近。为了进一步强制经验分布 q ( Z ∣ X , A ) q(\mathbf Z|\mathbf X, \mathbf A) q(Z∣X,A)近似于先验分布 p ( Z ) p(\mathbf Z) p(Z),对抗正则化变分图自编码器(Adversarially Regularized Variational Graph Autoencoder, ARVGA)[62],[109]采用了生成对抗网络(generative adversarial network, GAN)的训练方案[110]。GAN在训练生成模型时在生成器和判别器之间进行比赛。生成器尝试生成尽可能真实的“伪样本”,而判别器试图将“伪样本”与真实样本区分开。受GAN的启发,ARVGA努力学习一种编码器,该编码器产生的经验分布 q ( Z ∣ X , A ) q(\mathbf Z|\mathbf X, \mathbf A) q(Z∣X,A)与先验分布 p ( Z ) p(\mathbf Z) p(Z)无法区分。
除了优化重构误差外,GraphSage [42]还证明,可以通过在损失函数中加入负采样来保留两个节点之间的关系信息:
L ( z v ) = − log ( dec ( z v , z u ) ) − Q E v n ∼ P n ( v ) log ( dec ( z v , z v n ) ) (32) L\left(\mathbf{z}_{v}\right)=-\log \left(\operatorname{dec}\left(\mathbf{z}_{v}, \mathbf{z}_{u}\right)\right)-Q E_{v_{n} \sim P_{n}(v)} \log \left(\operatorname{dec}\left(\mathbf{z}_{v}, \mathbf{z}_{v_{n}}\right)\right)\tag{32} L(zv)=−log(dec(zv,zu))−QEvn∼Pn(v)log(dec(zv,zvn))(32)
其中节点 u u u是节点 v v v的邻居,节点 v n v_n vn是节点 v v v的远端节点,是从负采样分布 P n ( v ) P_n(v) Pn(v)中采样的,而 Q Q Q是负采样的数量。该损失函数实质上是使邻近节点具有相似的表示,而远处节点具有不同的表示。DGI [56]还通过最大化局部互信息来驱动局部网络嵌入捕获全局结构信息。实验证明,它比GraphSage [42]有明显的改进。
对于上述方法,无论是隐式还是显式,损失函数都与图邻接矩阵有关。但是,图的稀疏性导致邻接矩阵的正项数量远远少于零项。为了缓解数据稀疏性问题,另一条研究路线是通过随机排列或随机游走将图转换为序列。通过这种方式,那些适用于序列的深度学习方法可以直接用于处理图。深度递归网络嵌入(Deep Recursive Network Embedding, DRNE)[63]假定节点的网络嵌入应近似于其邻居网络嵌入的聚合。它采用了长期短期记忆(LSTM)网络[7]来聚合节点的邻居。 DRNE的重建误差定义为
L = ∑ v ∈ V ∥ z v − L S T M ( { z u u ∈ N ( v ) } ) ∥ 2 (33) L=\sum_{v \in V}\left\|\mathbf{z}_{v}-L S T M\left(\left\{\mathbf{z}_{u} u \in N(v)\right\}\right)\right\|^{2}\tag{33} L=v∈V∑∥zv−LSTM({zuu∈N(v)})∥2(33)
其中 z v \mathbf z_v zv是通过字典查找获得的节点 v v v的网络嵌入,而LSTM网络采用节点 v v v的邻居的随机序列作为输入,这些邻居按其节点度排序。如公式(33)所示,DRNE通过LSTM网络来隐式学习网络嵌入,而不是使用LSTM网络生成网络嵌入。它避免了LSTM网络对于节点序列的排列并非不变的问题。利用对抗正则化自编码器的网络表示(Network Representations with Adversarially Regularized Autoencoders , NetRA)[64]提出了一种使用通用损失函数的图编码器-解码器框架,损失函数定义为
L = − E z ∼ P d a t a ( z ) ( dist ( z , dec ( e n c ( z ) ) ) ) (34) L=-E_{\mathbf{z} \sim P_{d a t a}(\mathbf{z})}(\operatorname{dist}(\mathbf{z}, \operatorname{dec}(e n c(\mathbf{z}))))\tag{34} L=−Ez∼Pdata(z)(dist(z,dec(enc(z))))(34)
其中 d i s t ( ⋅ ) dist(\cdot) dist(⋅)是嵌入 z \mathbf z z的节点与重建的 z \mathbf z z之间的距离度量。NetRA的编码器和解码器是LSTM网络,以每个节点 v ∈ V v\in V v∈V为根的随机游走作为输入。类似于ARVGA [62],NetRA通过对抗训练将学习到的网络嵌入在先验分布中进行正规化。尽管NetRA忽略了LSTM网络的节点置换可变问题,但实验结果验证了NetRA的有效性。
利用多个图,GAE可以通过将图编码为隐藏表示并将给定隐藏表示解码为图结构来学习图的生成分布。大多数用于图生成的GAE都是为解决分子图生成问题而设计的,该问题在药物发现中具有很高的实用价值。这些方法要么以顺序方式要么以全局方式提出新图。
顺序方法通过逐步给出节点和边来生成图。Gomez et al. [111], Kusner et al. [112], Dai et al. [113]用深度CNN和RNN分别作为编码器和解码器,对名为SMILES的分子图的字符串表示的生成过程进行建模。这些方法是特定于领域的,其他解决方案则可通过将节点和边迭代地添加到逐渐增长的图上,直到满足特定条件为止,从而适用于一般图。图的深度生成模型(Deep Generative Model of Graphs, DeepGMG)[65]假设图的概率是所有可能节点排列的总和:
p ( G ) = ∑ π p ( G , π ) (35) p(G)= \sum_\pi p(G,\pi)\tag{35} p(G)=π∑p(G,π)(35)
其中, π \pi π表示节点顺序。它捕获图中所有节点和边的复杂联合概率。DeepGMG通过做出一系列决策来生成图,即是否添加节点,要添加哪个节点,是否添加边以及连接哪个节点到新节点。生成节点和边的决策过程根据RecGNN更新的逐渐增长的图的节点状态和图状态。在另一项工作中,GraphRNN [66]提出了图级RNN和边级RNN来建模节点和边的生成过程。每次,图级RNN都会向节点序列中添加一个新节点,而边级RNN会生成一个二进制序列,指示新节点与该序列中先前生成的节点之间的连接。
全局方法可一次输出全部图。图变分自编码器(Graph Variational Autoencoder, GraphVAE)[67]将节点和边的存在建模为独立随机变量。通过假设由编码器定义的后验分布 q ϕ ( z ∣ G ) q_\phi(\mathbf z|G) qϕ(z∣G)和由解码器定义的生成分布 p θ ( G ∣ z ) p_\theta(G|\mathbf z) pθ(G∣z),GraphVAE优化了变分下界:
L ( ϕ , θ ; G ) = E q ϕ ( z ∣ G ) [ − log p θ ( G ∣ z ) ] + K L [ q ϕ ( z ∣ G ) ∥ p ( z ) ] (36) L(\phi, \theta ; G)=E_{q_{\phi}}(z | G)\left[-\log p_{\theta}(G | \mathbf{z})\right]+K L\left[q_{\phi}(\mathbf{z} | G) \| p(\mathbf{z})\right]\tag{36} L(ϕ,θ;G)=Eqϕ(z∣G)[−logpθ(G∣z)]+KL[qϕ(z∣G)∥p(z)](36)
其中 p ( z ) p(\mathbf z) p(z)遵循高斯先验, ϕ \phi ϕ和 θ \theta θ是可学习的参数。通过使用ConvGNN作为编码器,并使用简单的多层感知层作为解码器,GraphVAE输出生成的图及其邻接矩阵、节点属性和边属性。控制生成图的全局属性(例如图连接性、有效性和节点兼容性)具有挑战性。正则化图变分自编码器(Regularized Graph Variational Autoencoder, RGVAE)[68]进一步在图变分自编码器上施加了有效性约束,以正则化解码器的输出分布。分子生成对抗网络(Molecular Generative Adversarial
Network, MolGAN)[69]整合了convGNNs [114]、GANs [115]和强化学习目标,以生成具有所需特性的图。MolGAN由生成器和判别器组成,它们相互竞争以提高生成器的真实性。在MolGAN中,生成器尝试提出一个伪图及其特征矩阵,而判别器的目的是将伪样本与经验数据区分开。另外,引入判别器的同时引入奖励网络,以根据外部评估者鼓励生成的图具有某些属性。 NetGAN [70]将LSTM [7]与Wasserstein GAN [116]结合起来,利用基于随机游走的方法生成图。 NetGAN训练生成器通过LSTM网络生成合理的随机游走,并使得判别器可以区分真假随机游走。训练后,通过标准化生成器产生的基于随机游走计算出的节点的共现矩阵,可以得出新的图。
尽管顺序方法和全局方法从两个不同的角度解决了图生成问题,但它们都遭受了大规模问题的困扰。一方面,顺序方法将图线性化为序列。如果图很大,则生成的序列将相应地过长。使用RNN对长序列进行建模效率不高。另一方面,全局方法一次全部生成图,GAE的输出空间高达 O ( n 2 ) O(n^2) O(n2)。
在许多实际应用中,图在图结构和图输入方面都是动态的。时空图神经网络(Spatial-temporal
graph neural networks, STGNN)在捕获图的动态性中占据重要位置。此类别下的方法旨在建模动态节点输入,同时假设相连节点之间的相互依赖性。例如,交通网络由放置在道路上的速度传感器组成,边权重由传感器对之间的距离确定。由于一条道路的交通状况可能取决于其邻近道路的状况,因此在进行交通速度预测时,必须考虑空间依赖性。作为解决方案,STGNN可同时捕获图的空间和时间依赖性。STGNN的任务可以是预测未来节点的值或标签,或预测时空图标签。STGNN遵循两个方向,即基于RNN的方法和基于CNN的方法。
大多数基于RNN的方法通过用图卷积[48],[71],[72]过滤传递给循环单元的输入和隐藏状态来捕获时空依赖性。为了说明这一点,假设一个简单的RNN的形式为
H ( t ) = σ ( W X ( t ) + U H ( t − 1 ) + b ) (37) \mathbf{H}^{(t)}=\sigma\left(\mathbf{W} \mathbf{X}^{(t)}+\mathbf{U} \mathbf{H}^{(t-1)}+\mathbf{b}\right)\tag{37} H(t)=σ(WX(t)+UH(t−1)+b)(37)
其中 X ( t ) ∈ R n × d \mathbf{X}^{(t)} \in \mathbf{R}^{n \times d} X(t)∈Rn×d是时间步 t t t处的节点特征矩阵。插入图卷积后,公式(37)变为
H ( t ) = σ ( G c o n v ( X ( t ) , A ; W ) + G c o n v ( H ( t − 1 ) , A ; U ) + b ) (38) \mathbf{H}^{(t)}=\sigma\left(Gconv\left(\mathbf{X}^{(t)}, \mathbf{A} ; \mathbf{W}\right)+Gconv\left(\mathbf{H}^{(t-1)}, \mathbf{A} ; \mathbf{U}\right)+\mathbf{b}\right)\tag{38} H(t)=σ(Gconv(X(t),A;W)+Gconv(H(t−1),A;U)+b)(38)
其中Gconv(\cdot)是图卷积层。图卷积递归网络(Graph Convolutional Recurrent Network, GCRN)[71]结合了LSTM网络和ChebNet [21]。扩散卷积递归神经网络(Diffusion Convolutional Recurrent Neural Network, DCRNN)[72]将提出的扩散图卷积层(公式(15))合并到GRU网络中。此外,DCRNN采用编解码器框架来预测节点值的未来 K K K步。
另一项并行工作使用节点级RNN和边级RNN来处理时间信息的不同方面。Structural-RNN [73]提出了一个循环框架来预测每个时间步的节点标签。它包括两种RNN,即节点-RNN和边-RNN。每个节点和每个边的时间信息分别通过节点-RNN和边-RNN。为了合并空间信息,节点-RNN将边-RNN的输出作为输入。由于为不同的节点和边采用不同的RNN会大大增加模型的复杂性,因此它将节点和边分成语义组。同一语义组中的节点或边共享相同的RNN模型,从而节省了计算成本。
基于RNN的方法存在耗时的迭代传播和梯度爆炸/消失的问题,尤其是在加入ConvGNN时。作为替代解决方案,基于CNN的方法以非递归方式处理时空图,具有可以并行计算、稳定的梯度和低内存需求的优点。如图2d所示,基于CNN的方法将1DCNN层与图卷积层交织在一起分别学习时间和空间依赖性。假定图时空网络的输入为张量 X ∈ R T × n × d \mathcal{X}\in R^{T\times n \times d} X∈RT×n×d,则1D-CNN层沿时间轴在 X [ : , i , : ] \mathcal{X}_{[:, i, :]} X[:,i,:]上滑动以聚合每个节点的时间信息,而图卷积层在 X [ i , : , : ] \mathcal{X}_{[i,:,:]} X[i,:,:]上操作,以在每个时间步长聚合空间信息。CGCN [74]将一维卷积层与ChebNet [21]或GCN [22]层集成在一起。它通过按顺序堆叠门控的1D卷积层、图卷积层和另一个门控的1D卷积层来构造时空块。ST-GCN [75]使用1D卷积层和PGC层组成时空块(公式(17))。
先前的方法都使用预定义的图结构。他们假设预定义的图结构反映了节点之间真正的依赖关系。但是,利用时空场景中的许多图数据快照,可以从数据中自动学习潜在的静态图结构。为了实现这一点,Graph WaveNet [76]提出了一种自适应邻接矩阵来执行图卷积。自适应邻接矩阵定义为:
A a d p = S o f t M a x ( ReLU ( E 1 E 2 T ) ) (39) \mathbf{A}_{a d p}=SoftMax\left(\operatorname{ReLU}\left(\mathbf{E}_{1} \mathbf{E}_{2}^{T}\right)\right)\tag{39} Aadp=SoftMax(ReLU(E1E2T))(39)
其中, E1 \textbf{E1} E1表示源节点嵌入, E2 \textbf{E2} E2表示带有可学习参数的目标节点嵌入。通过将 E1 \textbf{E1} E1乘以 E2 \textbf{E2} E2,可以得到从源节点到目标节点的依赖权重。借助复杂的基于CNN的时空神经网络,Graph WaveNet无需提供邻接矩阵即可表现良好。
学习潜在的静态空间依存关系可以帮助研究人员发现网络中不同实体之间可解释且稳定的相关性。在某些情况下,学习潜在的动态空间相关性还可以进一步提高模型的精度。例如,在交通网络中,两条道路之间的行驶时间可能取决于它们当前的交通状况。GaAN [48]利用注意力机制通过基于RNN的方法学习动态空间依赖性。注意力函数用于根据给定的两个连接节点的当前节点输入来更新它们之间的边权重。ASTGCN [77]进一步包括空间注意力函数和时间注意力函数,以通过基于CNN的方法学习潜在的动态空间相关性和时间相关性。学习潜在空间相关性的共同缺点是,需要计算每对节点之间的空间相关性权重,复杂度为 O ( n 2 ) O(n^2) O(n2)。
由于图化数据无处不在,GNN具有广泛的应用。在本节中,我们总结了文献中经常使用的基准图数据集。然后,我们分别报告了节点分类和图分类任务的基准性能。我们提供了GNN的可用开源实现。我们详细介绍了GNN在各个领域的实际应用。
数据集对于评估跨不同任务(例如节点分类和图分类)的GNN的性能是必不可少的。我们主要将数据集分为四类,即引文网络、生化图、社交网络及其他。在表VI中,我们总结了文献中常用的数据集。附录A中提供了更详细信息。
节点分类和图分类是测试RecGNN和ConvGNN性能的常见任务。在表VII中,我们报告了五个数据集(即Cora,Citeseer,Pubmed,PPI和Reddit)上节点分类的基准性能。在表VIII中,我们报告了基于五个数据集(即NCI-1,MUTAG,D&D,PROTEIN和PTC)的图分类的基准性能。
开源实现促进了深度学习研究中基线实验的工作。由于存在大量的超参数,因此不使用已发布的代码就很难获得与文献中报道相同的结果。在附录B中,我们提供了本文回顾的GNN模型的开源实现的超链接。值得注意的是,Fey et al. [92]在PyTorch中发布了一个名为PyTorch Geometric的几何学习库,该库实现了许多GNN。最近,发布了Deep Graph Library(DGL),它在流行的深度学习平台(例如PyTorch和MXNet)之上提供了许多GNN的快速实现。
GNN在不同任务和领域中都有许多应用。尽管通用任务可以由GNN的每个类别直接处理,包括节点分类、图分类、网络嵌入、图生成和时空图预测,但其他与图相关的通用任务,例如节点聚类[129]、链接预测[130] 、图分区[131]也可以由GNN解决。我们基于以下研究领域详细介绍了一些应用。
计算机视觉 GNN在计算机视觉中的应用包括场景图生成、点云分类和分割、动作识别等。
识别对象之间的语义关系有助于理解视觉场景的含义。场景图生成模型旨在将图像解析为由对象及其语义关系组成的语义图[132],[133],[134]。另一个应用是其逆过程,给定场景图生成逼真的图像[135]。由于自然语言可以解析为语义图,其中每个单词代表一个对象,因此GNN对于给定文字描述的图像合成方法是一种很有前途的解决方案。
通过对点云进行分类和分段,LiDAR设备可以“看到”周围的环境。点云是通过LiDAR扫描记录的一组3D点。 [136],[137],[138]将点云转换为k近邻图或超点图,并使用ConvGNN探究拓扑结构。
识别视频中包含的人类行为有助于从机器方面更好地理解视频内容。一些解决方案可以检测视频剪辑中人体关节的位置。由骨骼连接的人体关节自然会形成图。给定人类关节位置的时间序列,[73],[75]将STGNN用于学习人类行为模式。
此外,计算机视觉中GNN的适用方向数量仍在增长。它包括人与对象的互动[139],小样本(few-shot)照片分类[140],[141],[142],语义分割[143],[144],视觉推理[145],问答[146]等。
自然语言处理 GNN在自然语言处理中的常见应用是文本分类。GNN利用文档或单词间的相互关系来推断文档标签[22],[42],[43]。
尽管自然语言数据表现出序列顺序,但它们也可能包含内部图结构,例如句法依存树。句法依存树定义了句子中单词之间的句法关系。 Marcheggiani et al. [147]提出了运行在CNN / RNN句子编码器之上的语法GCN。句法GCN根据句子的句法依存关系树聚合隐藏的单词表示形式。 Bastings et al. [148]将句法GCN应用于神经机器翻译的任务。 Marcheggiani et al. [149]进一步采用与Bastings等人相同的模型[148]处理句子的语义依存图。
图到序列学习(Graph-to-sequence learning)学习在给定抽象单词语义图(称为Abstract Meaning Representation, 抽象含义表示)的情况下生成具有相同含义的句子。Song et al. [150]提出了一种图LSTM来编码图级语义信息。Beck et al. [151]将GGNN [17]应用于图到序列学习和神经机器翻译。逆任务是序列到图学习。在给定句子的情况下生成语义或知识图谱在知识发现中非常有用[152],[153]。
交通 在智能交通系统中,准确预测交通网络中的交通速度、交通量或道路密度至关重要。 [48],[72],[74]使用STGNN解决了交通预测问题。他们将交通网络视为一个时空图,其中节点是安装在道路上的传感器,边是通过成对的节点之间的距离测量的,每个节点在窗口内的平均交通速度作为动态输入特征。另一个工业级应用是出租车需求预测。给定历史出租车需求,位置信息,天气数据和事件特征,Yao et al. [154]结合了LSTM、CNN和LINE [155]训练的网络嵌入,形成每个位置的联合表示,以预测某个时间间隔内某个位置所需的出租车的数量。
推荐系统 基于图的推荐系统将商品和用户作为节点。通过利用商品与商品之间,用户与用户之间,用户与商品之间以及内容信息之间的关系,基于图的推荐系统可以生成高质量的推荐。推荐系统的关键是为商品对用户的重要性打分。因此,可以将其转换为链接预测问题。为了预测用户和商品之间缺少的链接,Van et al. [156]和Ying et al. [157]提出了一种使用ConvGNN作为编码器的GAE。Monti et al. [158]结合ConvGNN和RNN来学习产生已知评级的底层过程。
化学 在化学领域,研究人员应用GNN来研究分子/化合物的图结构。在分子/化合物图中,原子被视为节点,化学键被视为边。节点分类,图分类和图生成是针对分子/化合物图的三个主要任务,目的是学习分子指纹[85],[86],预测分子特性[27],推断蛋白质界面[159]和合成化合物[65],[69],[160]。
其他 GNN的应用不限于上述领域和任务。已经开始将GNN应用到各种各样的问题上,例如程序验证[17],程序推理[161],社会影响预测[162],对抗攻击的预防[163],电子健康记录建模[164], [165],大脑网络[166],事件检测[167],组合优化[168] 等。
尽管GNN已经证明了其在学习图数据方面的强大能力,但由于图的复杂性,仍然存在挑战。在本节中,我们提出了GNN的四个未来发展方向。
模型深度 深度学习的成功在于深度神经体系结构[169]。然而,Li et al.证明卷积神经网络的性能随着图卷积层数的增加而急剧下降[53]。图卷积将相邻节点的表示推向彼此更近的位置,理论上,当图卷积层数趋于无限,所有节点的表示将收敛到一个点 [53]。这就提出了一个问题,即层数加深是否仍然是学习图数据的好策略。
可伸缩性的权衡 以破坏图完整性的代价获得了GNN的可伸缩性。无论使用抽样还是聚类,模型都会丢失部分图信息。采样可能会使节点错过有影响力的邻居。聚类可能会使图失去独特的结构模式。如何权衡算法的可扩展性和图完整性可能是未来的研究方向。
异质性 当前的大多数GNN都采用同质图。很难将当前的GNN直接应用于异质图,异质图可以包含不同类型的节点和边,或不同形式的节点和边输入,例如图像和文本。因此,应该开发新的方法来处理异质图。
动态性 图本质上是动态的,其方式是节点或边可能出现或消失,并且节点/边输入可能会随时间变化。需要新的图卷积以适应图的动态性。尽管STGNN可以部分解决图的动态问题,但很少有人考虑在动态空间关系的情况下如何执行图卷积。
在本综述中,我们对图神经网络进行了全面的概述。我们提供了一个分类法,将图神经网络分为四类:循环图神经网络、卷积图神经网络、图自编码器和时空图神经网络。我们对类别内或类别间的方法进行了全面的回顾、比较和总结。然后,我们介绍图神经网络的广泛应用。总结了图神经网络的数据集、开源代码和基准。最后,我们提出了图神经网络的四个未来方向。