这里写目录标题
前言
文章:A Comprehensive Survey on Graph Neural Networks
发表会议:IEEE Transactions on Neural Networks and Learning Systems(CCF B)
时间:2019年
摘要
近年来,深度学习彻底改变了许多机器学习任务,从图像分类和视频处理到语音识别和自然语言理解。这些任务中的数据通常在欧几里得空间中表示。然而,越来越多的应用程序中,数据是从非欧几里德域生成的,并表示为对象之间具有复杂关系和相互依赖关系的图。图数据的复杂性对现有的机器学习算法提出了重大挑战。最近,出现了许多关于将深度学习方法扩展到图形数据的研究。在本调查中,我们提供了数据挖掘和机器学习领域中的图神经网络(GNN)的全面概述。我们提出了一种新的分类法,将最先进的图神经网络分为四类,即递归图神经网络、卷积图神经网络,图自动编码器和时空图神经网络。我们进一步讨论了图神经网络在各个领域的应用,并总结了图神经网的开源代码、基准数据集和模型评估。最后,我们提出了这一快速发展领域的潜在研究方向。
一、介绍
虽然深度学习可以有效地捕获欧几里德数据的隐藏模式,但越来越多的应用程序将数据表示为图形(graph)。例如,在电子商务中,基于图形的学习系统可以利用用户和产品之间的交互来做出高度准确的建议。在化学中,分子被建模为图形,它们的生物活性需要通过鉴定才能发现药物。在引文网络中,论文通过引文链接在一起,需要将它们分为不同的组。图数据的复杂性对现有的机器学习算法提出了重大挑战。由于图可能是不规则的,因此图中的无序节点可能大小可变,图中的节点可能有不同数量的邻居,导致一些重要操作(例如卷积)在图像域中易于计算,但难以应用于图域。此外,现有机器学习算法的核心假设是实例彼此独立。这种假设不再适用于图形数据,因为每个实例(节点)都通过各种类型的链接(例如引用、友谊和交互)与其他实例(节点)连接。
最近,人们对扩展图形数据的深度学习方法越来越感兴趣。在CNN、RNN和深度学习的自动编码器的激励下,在过去几年中,为了处理图形数据的复杂性,重要操作的新的泛化和定义得到了快速发展。例如,图卷积可以从2D卷积中推广。如图1所示,可以将图像视为图形的特殊情况,其中像素由相邻像素连接。与2D卷积类似,可以通过获取节点邻域信息的加权平均值来执行图形卷积。
关于图形神经网络(GNN)这一主题的现有综述数量有限。Bronstein等人[9]使用术语几何深度学习,概述了非欧几里德域中的深度学习方法,包括图和流形。虽然这是对GNN的第一次调研,但本调查主要审查卷积GNN。Hamilton等人[10]涵盖了有限数量的GNN,重点是解决网络嵌入问题。Battaglia等人[11]将图网络定位为构建块或从关系数据中学习,在统一框架下审查GNN的一部分。Lee等人[12]对应用不同注意机制的GNN进行了部分调查。
总之,现有的综述仅包括一些GNN,并检查了有限数量的工程,因此遗漏了GNN的最新发展。我们的调查为想要进入这一快速发展领域的感兴趣的研究人员和想要比较GNN模型的专家提供了GNN的全面概述。为了涵盖更广泛的方法,本综述将GNN视为图形数据的所有深度学习方法。
我们的贡献 我们的论文做出了显着的贡献,总结如下:
-
新分类:我们提出了一种新的图神经网络分类。图神经网络分为四组:循环图神经网络、卷积图神经网络、图自动编码器和时空图神经网络。
-
综合回顾:我们提供了最全面的图数据现代深度学习技术概览。对于每种类型的图神经网络,我们都提供了代表性模型的详细描述,进行了必要的比较,并总结了相应的算法。
-
丰富的资源:我们收集了丰富的图神经网络资源,包括最先进的模型、基准数据集、开源代码和实际应用。本调查可用作理解、使用和开发适用于各种现实生活应用的不同深度学习方法的实践指南。
-
未来方向:我们讨论了图神经网络的理论方面,分析了现有方法的局限性,并在模型深度、可扩展性权衡、异质性和动态性方面提出了四个可能的未来研究方向
我们的调查组织:本综述的其余部分组织如下。第2节概述了图神经网络的背景,列出了常用的符号,并定义了与图相关的概念。第3节阐明了图神经网络的分类。第 4-7节概述了图神经网络模型。第 8 节介绍了跨各个领域的应用程序集合。
第9节讨论了当前的挑战并提出了未来的方向。第 10 节总结了本文。
二、背景与定义
在本节中,我们概述了图神经网络的背景,列出了常用的符号,并定义了与图相关的概念。
A. 背景
图神经网络 (GNN) 的简史: Sperduti 等人 (1997) [13] 首先将神经网络应用于有向无环图,这激发了对 GNN 的早期研究。图神经网络的概念最初在 Gori 等人 (2005) [14] 中进行了概述,并在 Scarselli 等人中进一步阐述,例如(2009) [15] 和 Gallicchio 等人 (2010) [16]。这些早期研究属于循环图神经网络(RecGNNs)的范畴。他们通过以迭代方式传播邻居信息来学习目标节点的表示,直到达到一个稳定的固定点。这个过程在计算上是昂贵的,并且最近已经越来越多地努力克服这些挑战[17],[18]。
受 CNN 在计算机视觉领域的成功的鼓舞,大量重新定义图数据卷积概念的方法被并行开发。
这些方法属于卷积图神经网络 (ConvGNN) 的范畴。 ConvGNN 分为两个主流,基于光谱的方法和基于空间的方法。 Bruna 等人提出了关于基于光谱的 ConvGNN 的第一项杰出研究。(2013)[19],它开发了一种基于谱图理论的图卷积。从那时起,基于谱的 ConvGNN [20]、[21]、[22]、[23] 的改进、扩展和近似值不断增加。基于空间的 ConvGNN 的研究比基于光谱的 ConvGNN 早得多。 2009 年,Micheli 等人 [24] 首先通过架构复合非递归层解决了图相互依赖问题,同时继承了 RecGNN 的消息传递思想。然而,这项工作的重要性被忽视了。直到最近,出现了许多基于空间的 ConvGNN(例如,[25]、[26]、[27])。代表性 RecGNNs 和 ConvGNNs 的时间线如表 II 的第一列所示。除了 RecGNNs 和 ConvGNNs,在过去几年中还开发了许多替代 GNN,包括图自动编码器 (GAE) 和时空图神经网络 (STGNN)。这些学习框架可以建立在 RecGNN、ConvGNN 或其他用于图建模的神经架构上。第 III 节给出了这些方法分类的详细信息。
图神经网络与网络嵌入: GNN 的研究与图嵌入或网络嵌入密切相关,这是另一个越来越受到数据挖掘和机器学习社区关注的话题 [10]、[28]、[29]、[30 ],[31],[32]。==网络嵌入旨在将网络节点表示为低维向量表示,同时保留网络拓扑结构和节点内容信息,以便任何后续的图分析任务,如分类、聚类和推荐,都可以使用简单的现成的轻松执行机器学习算法(例如,用于分类的支持向量机)。==同时,GNN 是深度学习模型,旨在以端到端的方式解决与图相关的任务。许多 GNN 显式提取高级表示。GNN 和网络嵌入之间的主要区别在于,GNN 是一组为各种任务设计的神经网络模型,而网络嵌入涵盖了针对同一任务的各种方法。因此,GNN 可以通过图自动编码器框架解决网络嵌入问题。另一方面,网络嵌入包含其他非深度学习方法,例如矩阵分解[33]、[34]和随机游走[35]。
图神经网络与图核方法: 图核在历史上是解决图分类问题的主要技术 [36]、[37]、[38]。这些方法采用核函数来测量图对之间的相似性,以便基于核的算法(如支持向量机)可用于图的监督学习。
与 GNN 类似,图内核可以通过映射函数将图或节点嵌入到向量空间中。不同之处在于这个映射函数是确定性的而不是可学习的。由于成对相似度计算,图核方法严重受到计算瓶颈的影响。一方面,GNN 直接基于提取的图表示进行图分类,因此比图核方法更有效。对于图核方法的进一步回顾,我们推荐读者参考 [39]。
B. 定义
在本文中,我们使用粗体大写字符表示矩阵,粗体小写字符表示向量。除非特别说明,本文中使用的符号如表 I 所示。现在我们定义理解本文所需的最小定义集。
定义1: 图表示为 G = (V, E),其中 V 是顶点或节点的集合(我们将在整个论文中使用节点),E 是边的集合。令
v
i
∈
V
v_i ∈ V
vi∈V 表示一个节点,
e
i
j
=
(
v
i
,
v
j
)
∈
E
e_{ij} = (v_i, v_j) ∈ E
eij=(vi,vj)∈E 表示一条从
v
j
v_j
vj 指向
v
i
v_i
vi 的边。节点 v 的邻域定义为
N
(
v
)
=
u
∈
V
∣
(
v
,
u
)
∈
E
N(v) = {u ∈ V |(v, u) ∈ E}
N(v)=u∈V∣(v,u)∈E。邻接矩阵 A 是一个 n × n 矩阵,如果
e
i
j
∈
E
e_{ij} ∈ E
eij∈E,则
A
i
j
=
1
A_{ij} = 1
Aij=1,如果
e
i
j
∉
E
e_{ij}\notin E
eij∈/E,则
A
i
j
=
0
A_{ij} = 0
Aij=0。图可能具有节点属性 X ,其中
X
∈
R
n
×
d
X ∈ R^{n×d}
X∈Rn×d 是节点特征矩阵,
x
v
∈
R
d
x_v ∈ R_d
xv∈Rd表示节点v的特征向量。同时,图可能具有边属性
X
e
X^e
Xe,其中
X
e
∈
R
m
×
c
X^e∈R^{m×c}
Xe∈Rm×c是边特征矩阵,
x
v
,
u
e
∈
R
c
x^e_{v,u}∈R^c
xv,ue∈Rc表示边(v,u)的特征向量。
定义2: 有向图是所有边都从一个节点指向另一个节点的图。无向图被认为是有向图的一种特殊情况,如果两个节点相连,则有一对反向的边。一个图是无向的当且仅当邻接矩阵是对称的。
定义3: 时空图是一个属性图,其中节点属性随时间动态变化。时空图定义为
G
(
t
)
=
(
V
,
E
,
X
(
t
)
)
G^{(t)} = (V, E, X^{(t)})
G(t)=(V,E,X(t)),其中
X
(
t
)
∈
R
n
×
d
X^{(t)} ∈ R^{n×d}
X(t)∈Rn×d。
三、分类和框架
在本节中,我们介绍了图神经网络 (GNN) 的分类,如表 II 所示。我们将图神经网络 (GNN) 分为循环图神经网络 (RecGNN)、卷积图神经网络 (ConvGNN)、图自动编码器 (GAE) 和时空图神经网络 (STGNN)。图 2 给出了各种模型架构的示例。下面,我们对每个类别进行简要介绍。
A. 图神经网络 (GNN) 的分类
循环图神经网络(RecGNNs): 大多是图神经网络的先驱作品。 RecGNN 旨在通过循环神经架构学习节点表示。他们假设图中的节点不断与其邻居交换信息/消息,直到达到稳定的平衡。 RecGNN 在概念上很重要,并启发了后来对卷积图神经网络的研究。特别是,基于空间的卷积图神经网络继承了消息传递的思想。
卷积图神经网络 (ConvGNNs): 将卷积操作从网格数据推广到图数据。主要思想是通过聚合它自己的特征
x
v
x_v
xv 和邻居的特征
x
u
x_u
xu 来生成节点 v 的表示,其中
u
∈
N
(
v
)
u ∈ N_{(v)}
u∈N(v)。与 RecGNN 不同,ConvGNN 堆叠多个图卷积层以提取高级节点表示。 ConvGNN 在构建许多其他复杂的 GNN 模型中发挥着核心作用。图 2a 显示了用于节点分类的 ConvGNN。图 2b 展示了用于图分类的 ConvGNN。
图自动编码器 (GAE): 是无监督学习框架,它将节点/图编码到潜在向量空间并从编码信息中重建图数据。 GAE 用于学习网络嵌入和图形生成分布。对于网络嵌入,GAE 通过重构图结构信息(例如图邻接矩阵)来学习潜在节点表示。对于图的生成,一些方法逐步生成图的节点和边,而另一些方法一次全部输出图。图 2c 展示了一个用于网络嵌入的 GAE。
时空图神经网络 (STGNN): 旨在从时空图中学习隐藏模式,这在各种应用中变得越来越重要,例如交通速度预测 [72]、驾驶员机动预期 [73] 和人类动作识别 [ 75]。 STGNN 的关键思想是同时考虑空间依赖和时间依赖。许多当前的方法集成了图卷积来捕获空间依赖性,并使用 RNN 或 CNN 对时间依赖性进行建模。图 2d 说明了用于时空图预测的 STGNN。
通常的方法是利用负采样方法,将部分节点对采样为负对,而在图中具有链接的现有节点对是正对。然后应用逻辑回归层来区分正负对[42]。
在表 III 中,我们总结了代表性 RecGNN 和 ConvGNN 的主要特征。在各种模型之间比较输入源、池化层、读出层和时间复杂度。更详细地说,我们只比较每个模型中消息传递/图卷积操作的时间复杂度。由于[19]和[20]中的方法需要特征值分解,时间复杂度为O(n3)。由于节点成对最短路径计算,[46] 的时间复杂度也是 O(n3)。其他方法会产生等效的时间复杂度,如果图邻接矩阵是稀疏的,则为 O(m),否则为 O(n2)。这是因为在这些方法中,每个节点 vi 的表示的计算都涉及到它的 di 邻居,并且所有节点上的 di 之和正好等于边的数量。表 III 中缺少几种方法的时间复杂度。这些方法要么在他们的论文中缺乏时间复杂度分析,要么报告其整体模型或算法的时间复杂度。
B、 框架
使用图形结构和节点内容信息作为输入,GNN的输出可以通过以下机制之一专注于不同的图形分析任务:
- 节点级输出与节点回归和节点分类任务相关。RecGNN和ConvGNN可以通过信息传播/图卷积提取高级节点表示。使用多感知器或softmax层作为输出层,GNN能够以端到端的方式执行节点级任务。
- 边缘级输出与边缘分类和链接预测任务相关。利用GNN中两个节点的隐藏表示作为输入,可以使用相似函数或神经网络来预测边的标记/连接强度。
- 图形级输出与图形分类任务相关。为了在图形级别获得紧凑的表示,GNN通常与池和读出操作相结合。关于池和读数的详细信息将在第V-C节中进行审查。
训练框架。许多GNN(例如ConvGNN)可以在端到端的学习框架内以(半)监督或纯无监督的方式进行培训,具体取决于手头的学习任务和标签信息。
- 用于节点级分类的半监督学习。 给定一个部分节点被标记而其他节点未标记的网络,ConvGNN可以学习一个健壮的模型,该模型可以有效地识别未标记节点的类标签[22]。为此,可以通过堆叠几个图卷积层,然后再堆叠一个softmax层来构建端到端框架,以进行多类分类。
- 图形级分类的监督学习。 图级分类旨在预测整个图的类标签[52],[54],[78],[79]。该任务的端到端学习可以通过图形卷积层、图形池层和/或读出层的组合来实现。虽然图卷积层负责提取高级节点表示,但图池层起到了下采样的作用,每次都会将每个图粗化为一个子结构。读出层将每个图形的节点表示塌陷为图形表示。通过将多层感知器和softmax层应用于图形表示,我们可以构建用于图形分类的端到端框架。图2b给出了一个示例。
- 图嵌入的无监督学习。 当图中没有可用的类标签时,我们可以在端到端框架中以完全无监督的方式学习图嵌入。这些算法以两种方式利用边缘级信息。一种简单的方法是采用自动编码器框架,其中编码器使用图形卷积层将图形嵌入到潜在表示中,在此潜在表示上,解码器用于重建图形结构[61],[62]。另一种流行的方法是利用负采样方法,将一部分节点对作为负对采样,而图中链接的现有节点对是正对。然后应用逻辑回归层来区分正负对[42]。
在表三中,我们总结了具有代表性的RecGNN和ConvGNN的主要特征。在不同的模型中,对输入源、池层、读出层和时间复杂度进行了比较。更详细地说,我们只比较了每个模型中消息传递/图卷积操作的时间复杂度。由于[19]和[20]中的方法需要特征值分解,因此时间复杂度为O(n3)。由于节点成对最短路径计算,[46]的时间复杂度也是 O ( n 3 ) O(n^3) O(n3)。其他方法会产生等效的时间复杂度,如果图邻接矩阵是稀疏的,则为 O ( m ) O(m) O(m),否则为 O ( n 2 ) O(n^2) O(n2)。这是因为在这些方法中,每个节点vi表示的计算都涉及到它的di邻居,所有节点的di之和正好等于边的数量。表III中缺少几种方法的时间复杂度。这些方法要么在论文中缺乏时间复杂度分析,要么报告其整体模型或算法的时间复杂程度。
四、递归图神经网络
递归图神经网络(RecGNNs)大多是 GNNs 的先驱作品。他们在图中的节点上反复应用相同的参数集以提取高级节点表示。受计算能力的限制,早期的研究主要集中在有向无环图[13]、[80]。
Scarselli 等人提出的图神经网络 (GNN*) 扩展了先前的循环模型以处理一般类型的图,例如无环图、循环图、有向图和无向图 [15]。基于信息扩散机制,GNN* 通过反复交换邻域信息来更新节点的状态,直到达到稳定的平衡。节点的隐藏状态通过以下方式反复更新。
由于 GNN 在调查中用于表示宽图神经网络,我们将这种特殊方法命名为 GNN* 以避免歧义。
其中 f(·) 是参数函数,
h
v
(
0
)
h^{(0)}_v
hv(0) 是随机初始化的。求和运算使 GNN* 适用于所有节点,即使相邻节点的数量不同且不知道相邻节点的顺序。为了确保收敛,循环函数 f(·) 必须是收缩映射,它在将两点投影到潜在空间后收缩两点之间的距离。在 f(·) 是神经网络的情况下,必须对参数的雅可比矩阵施加惩罚项。当满足收敛标准时,最后一步节点隐藏状态被转发到读出层。 GNN* 交替进行节点状态传播阶段和参数梯度计算阶段以最小化训练目标。该策略使 GNN* 能够处理循环图。在后续工作中,Graph Echo State Network (GraphESN) [16] 扩展了回声状态网络以提高 GNN* 的训练效率。 GraphESN 由编码器和输出层组成。编码器是随机初始化的,不需要训练。它实现了一个收缩状态转换函数来循环更新节点状态,直到全局图状态达到收敛。之后,通过将固定节点状态作为输入来训练输出层。
门控图神经网络 (GGNN) [17] 采用门控循环单元 (GRU) [81] 作为循环函数,将循环减少到固定的步数。优点是不再需要约束参数来确保收敛。节点隐藏状态由其先前的隐藏状态及其相邻隐藏状态更新,定义为
其中
h
v
(
0
)
=
x
v
h^{(0)}_v=x_v
hv(0)=xv。与 GNN* 和 GraphESN 不同,GGNN 使用时间反向传播 (BPTT) 算法来学习模型参数。这对于大型图可能是有问题的,因为 GGNN 需要在所有节点上多次运行循环函数,需要将所有节点的中间状态存储在内存中。
随机稳态嵌入 (SSE) 提出了一种学习算法,该算法对大图更具可扩展性 [18]。 SSE 以随机和异步的方式反复更新节点隐藏状态。它交替地对一批节点进行状态更新和一批节点进行梯度计算。为了保持稳定性,将 SSE 的循环函数定义为历史状态和新状态的加权平均值,其形式为
其中 α 是一个超参数,
h
v
(
0
)
h^{(0)}_v
hv(0)是随机初始化的。虽然在概念上很重要,但 SSE 并没有从理论上证明节点状态会通过重复应用公式 3 逐渐收敛到固定点。
五、卷积图神经网络
卷积图神经网络 (ConvGNNs) 与循环图神经网络密切相关。 ConvGNN 不是使用收缩约束来迭代节点状态,而是在架构上使用固定数量的层在每层中具有不同权重来解决循环相互依赖关系。这一关键区别如图 3 所示。由于图卷积更有效且更方便地与其他神经网络组合,因此近年来 ConvGNN 的流行度迅速增长。 ConvGNN 分为两类,基于光谱的和基于空间的。基于谱的方法通过从图信号处理的角度引入滤波器来定义图卷积[82],其中图卷积操作被解释为从图信号中去除噪声。基于空间的方法继承了 RecGNN 的思想,通过信息传播来定义图卷积。由于 GCN [22] 弥合了基于光谱的方法和基于空间的方法之间的差距,因此基于空间的方法由于其具有吸引力的效率、灵活性和通用性而最近迅速发展。
A. 基于光谱的 ConvGNN
背景 基于谱的方法在图信号处理方面具有坚实的数学基础 [82]、[83]、[84]。他们假设图是无向的。归一化图拉普拉斯矩阵是无向图的数学表示,定义为
L
=
I
n
−
D
−
1
2
A
D
−
1
2
L = I_n - D^{-\frac{1}{2}} AD^{-\frac{1}{2}}
L=In−D−21AD−21 ,其中 D 是节点度数的对角矩阵,
D
i
i
=
∑
j
(
A
i
,
j
)
D_{ii} = \sum _j(A_{i,j})
Dii=∑j(Ai,j)。归一化图拉普拉斯矩阵具有实对称正半定性质。有了这个性质,归一化的拉普拉斯矩阵可以分解为
L
=
U
Λ
U
T
L = UΛU^T
L=UΛUT ,其中
U
=
[
u
0
,
u
1
,
⋅
⋅
⋅
⋅
,
u
n
−
1
]
∈
R
n
×
n
U = [u_0, u_1,····, u_{n−1}] ∈ R^{n×n}
U=[u0,u1,⋅⋅⋅⋅,un−1]∈Rn×n 是按特征值排序的特征向量矩阵,Λ 是特征值(谱)的对角矩阵,
Λ
i
i
=
λ
i
Λ_{ii} = λ_i
Λii=λi。归一化拉普拉斯矩阵的特征向量形成一个正交空间,用数学术语
U
T
U
=
I
U^TU = I
UTU=I。在图信号处理中,图信号
x
∈
R
n
x ∈ R^n
x∈Rn 是图的所有节点的特征向量,其中
x
i
x_i
xi 是第 i 个节点的值.图 F 傅里叶变换到信号 x 定义为
F
(
x
)
=
U
T
x
F (x) = U^Tx
F(x)=UTx,逆图傅里叶变换定义为
F
−
1
(
x
^
)
=
U
x
^
F^{-1}(\hat{x}) = U\hat{x}
F−1(x^)=Ux^,其中
x
^
\hat{x}
x^表示图傅里叶的结果信号转换。图傅里叶变换将输入图信号投影到正交空间,其中基由归一化图拉普拉斯算子的特征向量形成。变换后的信号
x
^
\hat{x}
x^的元素是图信号在新空间中的坐标,因此输入信号可以表示为
x
=
∑
i
x
^
i
u
i
x =\sum _i\hat{x}_iu_i
x=∑ix^iui,这正是图傅里叶逆变换。现在输入信号 x 与滤波器
g
∈
R
n
g ∈ R_n
g∈Rn的图卷积定义为
⊙
\odot
⊙表示逐元素乘积。如果我们将滤波器表示为
g
θ
=
d
i
a
g
(
U
T
g
)
gθ = diag(U^T g)
gθ=diag(UTg),则谱图卷积简化为
基于光谱的 ConvGNN 都遵循这个定义。关键区别在于滤波器
g
θ
g_θ
gθ 的选择。
C、 图形池模块
GNN生成节点特性后,我们可以将其用于最终任务。但是,直接使用所有这些特征可能具有计算上的挑战性,因此,需要一种下采样策略。根据目标及其在网络中所扮演的角色,该策略有不同的名称:(1)池操作旨在通过对节点进行下采样来生成更小的表示,从而减少参数的大小,从而避免过拟合、置换不变性和计算复杂性问题;(2) 读出操作主要用于基于节点表示生成图形级表示。它们的机制非常相似。在本章中,我们使用池来指代应用于GNN的各种下采样策略。
在一些早期的工作中,图粗化算法根据图的拓扑结构使用特征分解来粗化图。然而,这些方法存在时间复杂性问题。Graclus算法[100]是特征分解的一种替代方法,用于计算原始图形的聚类版本。最近的一些工作[23]将其作为一种池操作来粗化图形。
如今,平均值/最大值/和池是实现下采样的最原始和有效的方法,因为池窗口中的平均值/最小值/和值计算速度很快:
其中K是最后一个图卷积层的索引。