A Comprehensive Survey on Graph Neural Networks
Networks)
论文链接:https://arxiv.org/pdf/1901.00596v1.pdf
图神经网络 vs. 网络嵌入。
转自:https://www.jiqizhixin.com/articles/2019-01-07-8
对图神经网络的研究与图嵌入或网络嵌入紧密相关,这也是数据挖掘和机器学习社区日益关注的一个话题 [32] [33] [34] [35], [36], [37]。网络嵌入旨在通过保留网络拓扑架构和节点内容信息,将网络顶点表示到低维向量空间中,以使任何后续的图分析任务(如分类、聚类和推荐)都可以通过使用简单的现成学习机算法(如用于分类的支持向量机)轻松执行。许多网络嵌入算法都是无监督算法,它们大致可分为三组 [32],即矩阵分解 [38], [39]、随机游走 [40] 和深度学习方法。用于网络嵌入的深度学习方法同时还属于图神经网络,包括基于图自编码器的算法(如 DNGR [41] 和 SDNE [42])和具有无监督训练的图卷积神经网络(如 GraphSage [24])。图 2 描述了本文中网络嵌入和图神经网络的区别!
时空图(Spatial-Temporal Graph)
Definition 3 (Spatial-Temporal Graph). A spatial-temporal
graph is an attributed graph where the feature matrix X
evolves over time. It is defined as G = (V; E; A; X) with
X
∈
R
T
×
N
×
D
X \in R^{T ×N×D}
X∈RT×N×D
where T is the length of time steps
时空图应用比如人体姿态检测,不同时刻有不同时刻的图。
图神经网络(GNN)的新分类体系
GNN 被分成了 5 个类别:图卷积网络、图注意力网络、图自编码器、图生成网络和图时空网络。
1. 普通图卷积
2. 图自编码
3. 图时空网络
4.图卷积网络和图注意力网络在聚合邻近节点信息方面的区别。
端到端训练框架。图卷积网络可以以(半)监督或纯无监督的方式在端到端学习框架中训练,依赖于学习任务和可用的标签信息。
-
节点级分类的半监督学习。给定部分节点被标记的单个网络,图卷积网络可以学习到一个鲁棒的模型,高效识别未标记节点的类别标签 [14]。为此,可以通过堆叠一系列的图卷积层和 softmax 层来建立端到端框架进行多类别分类。
-
图级分类的监督学习。给定一个图数据集,图级分类旨在预测整个图的类别标签 [55], [56], [74], [75]。这一任务的端到端学习可以利用一个结合了图卷积层和池化步骤的框架实现 [55], [56]。
-
图嵌入的无监督学习。如果图中无可用类别标签,我们可以在一个端到端框架中以完全无监督的方式学习图嵌入。这些算法通过两种方式利用边级(edge-level)信息。一种简单的方法是采用自编码器框架,其中编码器使用图卷积层将图嵌进潜在表征中,然后使用解码器重构图结构 [59], [61]。另一种方法是利用负采样方法,采样一部分节点对作为负对(negative pair),而图中已有的节点作为正对(positive pair)。然后在卷积层之后应用 logistic 回归层,以用于端到端学习 [24]。
GCN方法
GCN 方法分为两类,分别基于谱和空间。基于谱的方法通过从图信号处理的角度引入滤波器来定义图卷积,其中图卷积运算被解释为从图信号中去除噪声 [76]。基于空间的方法将图卷积表征为聚合来自近邻的特征信息。
表3:node-level输出与节点回归和分类任务相关,Edge-level输出与边分类和链接预测任务有关,graph-level输出与图分类任务有关。
- 基于谱的 GCN 部分介绍了其背景、方法等,这些方法包括 Spectral CNN、Chebyshev Spectral CNN (ChebNet)、First order of ChebNet (1stChebNet) 和 Adaptive Graph Convolution Network (AGCN)。
- 基于空间的 GCN 分为两类:Recurrent-based Spatial GCN 和 Composition Based Spatial GCN。前者包括图神经网络(Graph Neural Networks,GNN)、门控图神经网络(Gated Graph Neural Networks,GGNN)和 Stochastic Steady-state Embedding (SSE)。后者涉及了:Message Passing Neural Networks (MPNN)、GraphSage。此外,这部分还介绍了这两大类之外的空间 GCN 变体,包括 Diffusion Convolution Neural Networks (DCNN)、PATCHY-SAN、Large-scale Graph Convolution Networks (LGCN)、Mixture Model Network (MoNet)。
所有我们之前学的MPNN是属于空间方法的GCN.
图卷积外的其他图神经网络模型
下面是除图卷积之外的其他图神经网络模型,包括图注意力,图自编码,图生成还有图时空。(可以将这些模型找出来研究一下)
图注意力网络
神经网络在聚合信息、集成多个模型的输出、生成重要性导向的随机游走时,可以从注意力机制中获益良多,这部分介绍了图注意力网络的多种方法,包括图注意力网络(Graph Attention Network,GAT)、门控注意力网络(Gated Attention Network,GAAN)、图注意力模型(Graph Attention Model,GAM)、注意力游走(Attention Walks)。
图自编码器是一类网络嵌入方法,旨在通过神经网络架构将网络顶点表征到低维向量空间。典型的解决方案是使用多层感知机作为编码器来获取节点嵌入,解码器重建节点的近邻统计,如正逐点互信息(positive pointwise mutual information,PPMI)或一阶、二阶接近度(proximities)[42]。最近,研究人员尝试在设计图自编码器时用 GCN 作为编码器、结合 GCN 和 GAN,或者结合 LSTM 和 GAN。
这部分介绍了基于 GCN 的自编码器和其他变体。基于 GCN 的自编码器部分介绍了:图自编码器(Graph Auto-encoder,GAE)、对抗正则化图自编码器(Adversarially Regularized Graph Autoencoder,ARGA)。其他变体包括:具备对抗正则化自编码器的网络表征(Network Representations with Adversarially Regularized Autoencoders,NetRA)、用于图表征的深度神经网络(Deep Neural Networks for Graph Representations,DNGR)、结构化深度网络嵌入(Structural Deep Network Embedding,SDNE)、深度递归网络嵌入(Deep Recursive Network Embedding,DRNE)。
图自编码器
图自编码器是一类网络嵌入方法,旨在通过神经网络架构将网络顶点表征到低维向量空间。典型的解决方案是使用多层感知机作为编码器来获取节点嵌入,解码器重建节点的近邻统计,如正逐点互信息(positive pointwise mutual information,PPMI)或一阶、二阶接近度(proximities)[42]。最近,研究人员尝试在设计图自编码器时用 GCN 作为编码器、结合 GCN 和 GAN,或者结合 LSTM 和 GAN。
这部分介绍了基于 GCN 的自编码器和其他变体。基于 GCN 的自编码器部分介绍了:图自编码器(Graph Auto-encoder,GAE)、对抗正则化图自编码器(Adversarially Regularized Graph Autoencoder,ARGA)。其他变体包括:具备对抗正则化自编码器的网络表征(Network Representations with Adversarially Regularized Autoencoders,NetRA)、用于图表征的深度神经网络(Deep Neural Networks for Graph Representations,DNGR)、结构化深度网络嵌入(Structural Deep Network Embedding,SDNE)、深度递归网络嵌入(Deep Recursive Network Embedding,DRNE)。
图自编码器的一个挑战是邻接矩阵的稀疏性,会导致解码器正条目(positive entry)的数量远远少于负条目。为了解决这个问题,DNGR 重建了一个较稠密的矩阵——PPMI 矩阵,SDNE 对邻接矩阵的零条目进行惩罚,GAE 重新调整邻接矩阵中项的权重,NetRA 将图线性化为序列。
图生成网络
图生成网络的目标是基于一组可观察图来生成图。这部分介绍了基于 GCN 的图生成网络和其他图生成网络。前者包括:分子生成对抗网络(Molecular Generative Adversarial Networks,MolGAN)和深度图生成模型(Deep Generative Models of Graphs,DGMG);后者涉及 GraphRNN(通过两级循环神经网络使用深度图生成模型)和 NetGAN(结合 LSTM 和 Wasserstein GAN 从基于随机游走的方法中生成图)。
生成器从标准正态分布中取样,然后通过神经网络生成一个邻接阵A与一个对应的特征阵X,再根据类别分布从A中取样,X中取样,再通过GCN推出采样图的的向量表示,再从将真个图表示喂到两种完全不同的神经网络,一个判别器还有一个奖励网络,最后各自输出0到1之间的分数,最后作为更新网络权重的的反馈。
图时空网络
图时空网络的目标是预测未来节点值或标签,或预测时空图标签。近期研究探索了仅使用 GCN、结合 GCN 和 RNN 或 CNN,以及专用于图结构的循环架构。
这部分介绍了基于 GCN 的图时空网络和其他图时空网络。前者包括:Diffusion Convolutional Recurrent Neural Network (DCRNN)、CNN-GCN、时空 GCN(Spatial Temporal GCN,ST-GCN)。其他方法有 Structural-RNN,一种循环结构化框架。
DCRNN 的优势是能够处理长期依赖,因为它具备循环网络架构。尽管 CNN-GCN 比 DCRNN 简单一些,但 CNN-GCN 能够更高效地处理时空图,这要归功于 1D CNN 的快速实现。时空 GCN 将时间流作为图的边,这导致邻接矩阵的大小呈平方增长。一方面,它增加了图卷积层的计算成本。另一方面,要捕捉长期依赖,图卷积层必须多次堆叠。StructuralRNN 在同一个语义组内共享相同的 RNN,从而改善了模型效率,但是 StructuralRNN 需要人类先验知识来分割语义组。
应用
常用数据集
开源实现
Model | Framework | Github Link |
---|---|---|
ChebNet (2016) [12] | tensorflow | https://github.com/mdeff/cnn graph |
1stChebNet (2017) | tensorflow | https://github.com/tkipf/gcn |
GGNNs (2015) [18] | lua | https://github.com/yujiali/ggnn |
SSE (2018) [19] | c | https://github.com/Hanjun-Dai/steady state embedding |
GraphSage (2017) [24] | tensorflow | https://github.com/williamleif/GraphSAGE |
LGCN (2018) [27] | tensorflow | https://github.com/divelab/lgcn/ |
SplineCNN (2018) [86] | pytorch | https://github.com/rusty1s/pytorch geometric |
GAT (2017) [15] | tensorflow | https://github.com/PetarV-/GAT |
GAE (2016) [59] | tensorflow | https://github.com/limaosen0/Variational-Graph-Auto-Encoders |
ARGA (2018) [61] | tensorflow | https://github.com/Ruiqi-Hu/ARGA |
DNGR (2016) [41] | matlab | https://github.com/ShelsonCao/DNGR |
SDNE (2016) [42] | python | https://github.com/suanrong/SDNE |
DRNE (2016) [63] | tensorflow | https://github.com/tadpole/DRNE |
GraphRNN (2018) [64] | tensorflow | https://github.com/snap-stanford/GraphRNN |
DCRNN (2018) [70] | tensorflow | https://github.com/liyaguang/DCRNN |
CNN-GCN (2017) [71] | tensorflow | https://github.com/VeritasYin/STGCN IJCAI-18 |
ST-GCN (2018) [72] | pytorch | https://github.com/yysijie/st-gcn |
Structural RNN (2016) [73] | theano | https://github.com/asheshjain399/RNNexp |
GNN应用包括视觉,推荐系统,交通,化学等。
未来方向
- 加深网络
深度学习的成功在于深度神经架构。例如在图像分类中,模型 ResNet 具有 152 层。但在图网络中,实证研究表明,随着网络层数增加,模型性能急剧下降 [147]。根据论文 [147],这是由于图卷积的影响,因为它本质上推动相邻节点的表示更加接近彼此,所以理论上,通过无限次卷积,所有节点的表示将收敛到一个点。这导致了一个问题:加深网络是否仍然是学习图结构数据的好策略? - 感受野
节点的感受野是指一组节点,包括中心节点和其近邻节点。节点的近邻(节点)数量遵循幂律分布。有些节点可能只有一个近邻,而有些节点却有数千个近邻。尽管采用了采样策略 [24], [26], [27],但如何选择节点的代表性感受野仍然有待探索。 - 可扩展性
大部分图神经网络并不能很好地扩展到大型图上。主要原因是当堆叠一个图卷积的多层时,节点的最终状态涉及其大量近邻节点的隐藏状态,导致反向传播变得非常复杂。虽然有些方法试图通过快速采样和子图训练来提升模型效率 [24], [27],但它们仍无法扩展到大型图的深度架构上。 - 动态性与异质性
大多数当前的图神经网络都处理静态同质图。一方面,假设图架构是固定的。另一方面,假设图的节点和边来自同一个来源。然而,这两个假设在很多情况下是不现实的。在社交网络中,一个新人可能会随时加入,而之前就存在的人也可能退出该社交网络。在推荐系统中,产品可能具有不同的类型,而其输出形式也可能不同,也许是文本,也许是图像。因此,应当开发新方法来处理动态和异质图结构。