将传统深度学习框架应用于图数据存在一些挑战:
geometric deep learning problem
。heterogeneity
和多样性diversity
:图本身可能很复杂,包含各种类型和属性。如,图可以是异质的或同质的、加权的或者不加权的、有向的或无向的。此外,图任务也有很大不同,包括 node-level
任务(如节点分类)、graph-level
任务(如图分类)。这些不同的类型、属性、任务需要不同的模型架构来解决特定的问题。scalable
的模型非常关键。为了应对这些挑战,人们在这一领域做出了巨大努力,诞生了很多有关论文和方法。论文 《Deep Learning on Graphs: A Survey》
试图通过全面回顾图的深度学习方法来系统性总结不同方法之间的差异和联系。
如下图所述,论文根据现有的模型架构和训练策略将这些方法分为五类:
graph recurrent neural networks: Graph RNN
。graph convolutional networks: GCN
。graph autoencoders: GAE
。graph reinforcement learning: Graph RL
。graph adversarial methods
。论文在下表中总结了这些方法之间的一些主要特点:
Graph RNN
通过在 node-level
或者 graph-level
对状态建模从而捕获图的递归模式 recursive pattern
或者序列模式 sequential pattern
。GCN
在不规则图结构上定义卷积和 readout
操作,从而捕获常见的局部结构模式和全局结构模式。GAE
假设 low-rank
图结构,并采用无监督方法进行节点 representation learning
。Graph RL
定义了 graph-based
动作和奖励,从而在遵循约束的同时获得图任务的反馈。graph-based
模型的泛化能力,并通过对抗攻击测试其鲁棒性。相关工作:
之前的一些调综述与我们的论文有关:
《Geometric deep learning: going beyond euclidean data》
总结了一些早期的 GCN
方法以及流形上的CNN
,并通过几何深度学习geometric deep learning
对其进行了全面的研究。《Relational inductive biases, deep learning, and graph networks》
总结了如何使用 GNN
和 GCN
进行关系推理,使用了一个统一的框架,即 graph network
。《Attention models in graphs: A survey 》
回顾了图的注意力模型。《Graph convolutional networks: Algorithms, applications and open challenges》
总结了一些 GCN
模型。《Adversarial attack and defense on graph data: A survey》
简要综述了图的对抗性攻击。我们的工作与之前的这些工作不同,我们系统地、全面地回顾了图上不同的深度学习架构,而不是专注于一个特定的分支。
与我们的工作同时,《Graphneural networks: A review of methods and applications》
和 《A comprehensive survey on graph neural networks》
从不同的角度和分类对这个领域进行了综述。具体来说,他们的工作都没有考虑图强化学习或图对抗方法,而这些都是本文所涉及的。
另一个密切相关的主题 graph embedding
,目的是将节点嵌入到低维向量空间中。 graph embedding
和本文之间的主要区别是:我们专注于不同的深度学习模型如何应用于图,而 graph embedding
可以被认作是使用其中一些模型的具体应用实例。另外,graph embedding
也可能使用非深度学习方法。
论文最后附录还给出了所有这些方法的源码地址、在公开数据集上的效果、时间复杂度。
给定图
每个节点
每条边
定义
图可以为有向的或者无向的,可以为带权图或者无权图。
无向图的拉普拉斯矩阵定义为 degree
矩阵。
定义拉普拉斯矩阵的特征分解 eigen decomposition
为:
其中:
eigenvalue
组成的对角矩阵。eigenvector
组成的矩阵 。定义转移概率矩阵为
定义 k-step
邻域为:
其中 dist(i,j)
表示节点
对于深度学习方法,我们使用上标来区分不同的层 layer
,如 representation
维度。
通用的非线性激活函数记作 sigmoid
激活函数记作 relu
激活函数记作
除非另有说明,否则我们假设所有函数都是可微的,从而允许使用反向传播算法并使用常用的优化器和训练技术来学习模型参数。
如果使用采样技术,则采样大小记作
图上的深度学习任务大致可以分为两类:
node-level
任务:这些任务和图中的各个节点有关,如节点分类、链接预测、节点推荐。graph-level
任务:这些任务和整个图有关,如图分类、图属性预估、图生成。诸如 gated recurrent units: GRU
或者 long short-term memory: LSTM
之类的循环神经网络是建模序列数据的事实标准。这里我们总结了可捕获图的递归和序列模式的 Graph RNN
。
Graph RNN
大致可以分为两类:node-level RNN
和 graph-level RNN
。主要区别是通过节点状态对 node-level
模式建模,还是通过公共的图状态对 graph-level
模型建模。下表给出了这些方法的主要特点。
图的 node-level RNN
,也称作图神经网络 graph neural networks: GNNs
,其背后思想很简单:每个节点
受递归神经网络启发,GNN
采用了状态的递归定义:
其中
一旦得到
对于graph-level
任务,作者建议添加一个具有唯一属性的特殊节点来代表整个图。
为学习模型参数,作者使用以下半监督方法:
Jacobi
方法将状态方程(即定义 stable point
。Almeida-Pineda
算法执行一个梯度下降 step
。task-specific
目标函数,如针对回归任务的平方损失。GNN
通过上述两个简单方程,发挥了两个重要作用:
GNN
统一了一些处理图数据的早期方法,如 RNN
和马尔科夫链。GNN
的基本概念具有深远启发,许多最新的 GCN
实际上都有类似于状态方程的公式。尽管 GNN
在概念上很重要,但是它仍然存在一些缺陷:
为确保状态方程具有唯一解, contraction map
。即,
直观地看,收缩映射要求任意两个点之间的距离在经过
在梯度下降的 step
之间,需要多轮迭代才能够收敛到不动点,因此 GNN
的计算量很大。
由于存在这些缺陷,并且当时算力不高(GPU
在当时并未被广泛应用于深度学习),以及缺乏研究兴趣,当时 GNN
并未成为研究重点。
对 GNN
的显著改进是 gated graph sequence neural networks:GGS-NNs
。在 GGS-NNs
中,作者使用 GRU
替代了状态方程中的递归定义,因此移除了收缩映射的约束,并支持了现代优化技术。
具体而言,状态方程修改为:
其中
然后作者提出依次使用若干个这种网络,从而产生序列输出,表明这种方法可以应用于序列任务。
SSE
采用了类似于 GGS-NNs
的方法,但是并未使用 GRU
,而是采用随机固定点梯度下降 stochastic fixed-point gradient descent
,从而加快训练过程。
这种方案基本上是在使用局部邻域计算不动点状态、优化模型参数之间交替进行。这两种计算都是在 mini-batch
中进行的。
在 Graph-level RNN
中,不是将单个 RNN
应用于每个节点以学习节点状态,而是将单个 RNN
应用于整个图从而对图状态进行编码。
《GraphRnn:Generating realistic graphs with deep auto-regressive models》
将 Graph RNN
用于图生成问题。具体而言,他们采用两种 RNN
:一种用于生成新节点,另一种用于以自回归的方式为新添加的节点生成边。
他们表明:这种层次 hierarchical
的 RNN
体系结构比传统的、基于规则的图生成模型更有效地从输入图中学习,同时具有合理的时间复杂度。
为捕获动态图的时间信息,DGNN
使用时间感知 time-aware
的 LSTM
来学习node representation
。
当建立新的边时,DGNN
使用 LSTM
更新这条边的两个交互节点以及它们直接邻居的 representation
,即考虑一阶传播效果。作者表明:time-aware LSTM
可以很好地建模边生成的顺序 establishing order
和时间间隔time interval
,从而有助于一系列图的应用。
Graph RNN
也可以和其它架构(如 GCN/GAE
)组合。
RMGCNN
将 LSTM
应用于 GCN
的结果,从而逐渐重建 reconstruct
图。通过使用 LSTM
,来自图不同部分的信息不需要很多 GCN
层就可以传递到很远的距离。Dynamic GCN
使用 LSTM
来聚合动态网络中不同时间片的 GCN
结果,从而捕获时空图 spatial and temporal graph
的信息。类似 CNN
, 现代 GCN
通过精心设计的卷积函数和 readout
函数来学习图的常见局部结构模式和全局结构模式。
由于大多数 GCN
可以使用 task-specific
损失函数(只有少数例外,如无监督学习方法),并通过反向传播进行训练。因此这里我们仅讨论体系结构。
下表给出了我们总结的 GCN
的主要特征。
卷积操作可以分为两类:
spectral convolution
:卷积操作通过使用图傅里叶变换将node representation
转换到谱域 spectral domain
中进行卷积。spatial convolution
:卷积操作使用邻域节点进行卷积。注意,这两种卷积可以重叠 overlap
,如使用多项式谱域卷积核 polynomial spectral kernel
时。
卷积是 CNN
中最基本的操作,但是用于图像或文本的标准卷积算子无法直接应用于图,因为图没有网格结构。
《Spectral networks and locally connected networks on graph》
首先使用图拉普拉斯矩阵 basis
相似的作用。
定义图卷积算子
其中 eigenvector
组成的矩阵 ,
简而言之:
spectral domain
,即图傅里叶变换 Graph Fourier Transform
。spatial domain
,即傅里叶逆变换。该定义的有效性基于卷积定理,即卷积运算的傅里叶变换是其傅里叶变换的逐元素乘积。
定义谱域卷积核为 eigenvalue
因此作用在输入信号
其中
通过将不同的卷积核应用于不同的 input-output
信号来定义卷积层,即:
其中:
hidden representation
的维度。hidden representation
向量在第 上式背后的思想和传统的卷积类似:它使输入信号通过一组可学习的滤波器,从而聚合信息,然后进行一些非线性变换。通过使用节点特征矩阵 CNN
。理论分析表明:图卷积运算的这种定义可以模拟 CNN
的某些几何特性。
但是,直接使用上式需要学习 localized in the spatial domain
,即在谱域卷积中,每个节点都会受到全局所有节点的影响(而不是仅受到局部邻域节点的影响)。为缓解这些问题 《Spectral networks and locally connected networks on graphs》
建议使用以下平滑滤波器 smoothing filters
:
其中 fixed interpolation kernel
,
但是还有两个基本问题尚未解决:
eigenvectors
,因此每次前向传播、反向传播的时间复杂度至少为 basis
有一些GCN
模型用于解决上述的第一个问题,即计算效率方向。
为解决计算效率问题,ChebNet
提出使用多项式滤波器,即:
其中:
然后作者使用切比雪夫多项式展开来代替矩阵的特征分解:
其中:
由于切比雪夫多项式的正交基的要求,这里重新缩放是有必要的。
根据
其中
根据切比雪夫多项式的递归定义,有:
因此有:
现在仅需要计算稀疏矩阵
另外,也很容易看到这种多项式滤波器是严格地 representation
仅受到它
《Semi-supervised classification with graph convolutional networks》
进一步仅使用一阶邻域来简化滤波器:
其中:
degree
。representation
, representation
向量的维度。将其写作矩阵形式为:
其中 degree
矩阵。
作者表明:通过设置 ChebNet
滤波器等价于上式。作者认为,如下图所述堆叠足够多的卷积层具有类似于 ChebNet
的建模能力,并且会带来更好的效果。下图中,每个节点仅被它们的直接邻居所影响。
ChebNet
及其扩展方法的重要洞察 insight
是:它们将谱域图卷积和空间结构联系在一起。具体而言,它们表明:当谱域卷积为多项式时(一阶多项式也是一种多项式),谱域卷积等价于空间卷积。
另外,卷积公式 GNN
中的状态定义 GNN
可以被视为具有大量 identical layer
(即层与层之间都相同的)以达到稳定状态的 GCN
。例如, GNN
使用固定参数的固定函数来迭代更新节点的 hidden state
,直到达到状态平衡为止。而 GCN
具有预设的层数,并且每层使用不同的参数。
还有一些谱域方法解决效率问题。如 CayleyNet
并未使用切比雪夫多项式展开,而是采用 Cayley
多项式来定义图卷积:
其中
除了证明 CayLeyNet
的效率和 ChebNet
一样,作者还证明了 Caylay
多项式可以检测 narrow frequency bands of importance
从而获得更好的效果。
Graph wavelet neural network:GWNN
通过重写公式
其中 graph wavelet
的基 bases
。
通过使用快速近似算法来计算 GWNN
的计算复杂度也是
有一些GCN
模型用于解决上述的第二个问题,即跨图的泛化。
Neural FPs
也提出一种使用一阶邻域的空间卷积方法:
由于参数 Neural FP
可以处理任意大小的多个图。注意这里 degree
不同而不同。
上式和 《Semi-supervised classification with graph convolutional networks》
提出的滤波器非常相似,区别在于:Neural FP
不是通过添加归一化项来考虑节点 degree
的影响,而是为不同 degree
的节点学习不同的参数。该策略对于较小的图(如分子图)效果很好,但是无法扩展到更大的图。
PATCHY-SAN
使用诸如 Weisfeiler-Lehman kernel
之类的图 labeling
过程为节点分配了唯一的节点顺序,然后使用这个预分配的顺序将节点邻居排列。
然后 PATCHY-SAN
通过从节点的 receptive field
。
最后,PATCHY-SAN
采用一个标准的、带适当 normalization
的一维 CNN
到这个感受野上。
通过这种方式,不同的图中的节点都具有固定大小和顺序的感受野,因此 PATCHY-SAN
可以从多个图中学习,就像正常的 CNN
从多个图像中学习一样。
这种方式的缺点是卷积在很大程度上依赖于图 labeling
过程,而图 labeling
过程是一个预处理步骤,它并不是学习的一部分(即没有可学习的参数)。
LGCN
进一步提出通过按字典顺序简化排序过程。即根据邻居在最后一层 hidden representation
SortPooling
采用了类似的方法,但是它并不是对每个节点的邻居进行排序,而是对所有节点进行排序。即所有节点的所有邻域的排序都相同。尽管这些方法之间存在差异,但是对于图来说,强制采用一维节点顺序可能不是很自然的选择。
GCNN
采用 diffusion-basis
来代替图卷积中的 eigen-basis
,即节点的邻域由节点之间的扩散转移概率 diffusion transition probability
来决定。
具体而言,卷积定义为:
其中
但是,计算
DGCN
通过一个对偶图卷积 dual graph convolutional
框架来同时使用 diffusion base
和 adjacent base
。具体而言,DGCN
使用两个卷积:
一个是邻接矩阵的形式:
另一个是将转移概率中的邻接矩阵转换为 pointwise mutual information:PPMI
:
其中 PPMI
矩阵:
degree
矩阵。
然后 DGCN
通过最小化 ensemble
这两个卷积。
DGCN
通过随机游走采样技术来加速转移概率的计算。实验表明:这种对偶卷积甚至对于单图问题single-graph problem
也是有效的。
基于谱域卷积的工作,《Neural message passing for quantum chemistry 》
提出了MPNNs
为图的空域卷积提出了一个统一的框架,它使用消息传递函数 message-passing function
:
其中:
从概念上讲MPNN
是一个框架,在该框架中,每个节点都根据其状态发送消息,并根据从直接邻居中收到的消息来更新节点状态。作者表明:上述框架已经包含了很多现代方法,如 GGSNNs
、Neural FPs
等都是特例。
另外,作者建议添加一个 master
节点,该节点连接图中所有其它节点从而加速长程消息传递。并且作者拆分 hidden representation
到不同的 tower
来提高泛化能力。作者表明:MPNNs
的特定变体可以在预测分子特性方面达到 state-of-the-art
性能。
GraphSAGE
采用类似 message-passing function
的思想,它使用聚合函数:
其中 AGG(.)
表示聚合函数。
作者提出三个聚合函数:均值池化、LSTM
、最大池化。例如对于最大池化有:
其中
对于 LSTM
聚合函数,由于需要确定邻域顺序,因此作者采用了最简单的随机顺序。
Mixture model network:MoNet
也尝试使用 “模板匹配“template matching
” 将现有的 GCN
模型以及用于流形 manifold
的 CNN
模型统一到一个通用框架中:
其中:
pair
对 pseudo-coordinates
,定义为:
其中 degree
。
换句话讲,