- 文献综述(或调研报告):
图(graph)是一种数据结构,图神经网络(Graph Neural Network,GNN)是深度学习在图结构数据上的一些模型、方法和应用。常见的图结构由节点(node)和边(edge)构成,节点包含了实体(entity)信息,边包含实体间的关系(relation)信息。现在许多学习任务都需要处理图结构的数据,比如物理系统建模(physics system)、学习分子指纹(molecular fingerprints)、蛋白质接口预测(protein interface)以及疾病分类(classify diseases),这些都需要模型能够从图结构的输入中学习相关的知识。
GNN的模型主要可以分为以下几类[18]:
- 图卷积网络(Graph convolutional networks)和图注意力网络(graph attention networks),因为涉及到传播步骤(propagation step)。
- 图的空域网络(spatial-temporal networks),因为该模型通常用在动态图(dynamic graph)上。
- 图的自编码(auto-encoder),因为该模型通常使用无监督学习(unsupervised)的方式。
- 图生成网络(generative networks),因为是生成式网络。
图神经网络的原始模型[1]于2009年被提出,该论文将现存的神经网络模型扩展到处理图领域的数据,其采用在每一层多次迭代直到收敛至不动点的方法进行训练,该模型有许多局限性,比如迭代至不动点的计算低效且容易导致节点状态过于平滑,边的特征没有利用到等等。而后受到现今卷积神经网络的启发,研究者们尝试将卷积运用到图数据上,主要有两种不同的卷积方式,频域卷积和空域卷积。最初的频域卷积利用图的拉普拉斯矩阵定义了图频域卷积网络(GCN)[2],由于拉普拉斯矩阵分解的计算量巨大,经过几次优化后,研究者提出了更为经典且实用的GCN模型[3]。空域卷积与深度学习中的卷积方式类似,核心在于聚合邻居节点的信息,使用空域卷积定义的模型中比较经典的有DCNN[4],GraphSage[5],MoNet[6]等。研究者们还将序列模型中使用的一些亮点迁移到图神经网络模型的设计中,比如引入了attention机制形成的GAT[7],这个模型通过对它的邻居节点增加注意力来计算节点的隐藏状态;引入了门控机制形成的GGNN[8],在信息传播步骤中使用GRU,将递归循环展开固定数量的步数,并使用按照时间序的反向传播来计算梯度;两个LSTM的扩展结构,Child-Sum Tree-LSTM和N-ary Tree-LSTM[9]等。
由于图神经网络有众多的模型及其变体,于是人们提出一些通用的框架来将它们整合到一起。如图1所示,[10]提出了信息传递网络(MPNN),[11]提出了非局部性网络(NLNN),[12]提出了图形网络(GN)把前两者进行了统一,具有很强的推广到其他模型的能力。
现存的深度学习框架(例如TenseoFlow,Pytorch,MXNet等)不能有效地支持图神经网络算法,于是一些专门的库被设计出来,比如PyG[13],DGL[14]等,这些基于图的深度学习库基本上都采用了类似信息传递的模型作为其通用框架。这些库虽然解决了深度图神经网络的基本实现问题,但是没有根据图的特性来让模型执行高效化,同时在处理巨大规模的图数据方面也存在局限性[17]。于是研究者们进行了性能分析与优化,希望能够进一步提高图神经网络的执行效率。
虽然深度神经网络和传统图处理已经有比较完善的优化方案,但图神经网络同时结合了前两者的特点,使得研究者们需要另辟蹊径,重新设计适用于其的优化方案。由于该研究点兴起不久,相关工作进行得仍比较少。现有的工作主要分为从硬件和非硬件两方面设计优化方案。
硬件方面主要是设计服务于图神经网络模型的硬件结构。[15]设计了EnGN,一种专门进行大型图神经网络计算的加速器,实现了高吞吐且低功耗。
非硬件方面主要从图神经网络的模型入手,针对GPU架构特点做执行模型的优化,使其执行更为高效。[16]提出了层次化聚合计算图(HAG)模型,通过层次化管理计算的中间结果,以减少重复冗余的运算操作。[17]提出了NeuGraph,一种对于大规模图数据深度神经网络的并行计算框架,通过设计适用于GPU的图模型和数据流,以支持高效且可拓展性强的并行图网络计算。
参考文献:
- Scarselli F, Gori M, Tsoi A C, et al. The graph neural network model[J]. IEEE Transactions on Neural Networks, 2008, 20(1): 61-80.
- Bruna J, Zaremba W, Szlam A, et al. Spectral networks and locally connected networks on graphs[J]. arXiv preprint arXiv:1312.6203, 2013.
- Kipf T N, Welling M. Semi-supervised classification with graph convolutional networks[J]. arXiv preprint arXiv:1609.02907, 2016.
- Atwood J, Towsley D. Diffusion-convolutional neural networks[C]//Advances in neural information processing systems. 2016: 1993-2001.
- Hamilton W, Ying Z, Leskovec J. Inductive representation learning on large graphs[C]//Advances in neural information processing systems. 2017: 1024-1034.
- Monti F, Boscaini D, Masci J, et al. Geometric deep learning on graphs and manifolds using mixture model cnns[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 5115-5124.
- Veličković P, Cucurull G, Casanova A, et al. Graph attention networks[J]. arXiv preprint arXiv:1710.10903, 2017.
- Li Y, Tarlow D, Brockschmidt M, et al. Gated graph sequence neural networks[J]. arXiv preprint arXiv:1511.05493, 2015.
- Peng N, Poon H, Quirk C, et al. Cross-sentence n-ary relation extraction with graph lstms[J]. Transactions of the Association for Computational Linguistics, 2017, 5: 101-115.
- Gilmer J, Schoenholz S S, Riley P F, et al. Neural message passing for quantum chemistry[C]//Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017: 1263-1272.
- Wang X, Girshick R, Gupta A, et al. Non-local neural networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7794-7803.
- Battaglia P W, Hamrick J B, Bapst V, et al. Relational inductive biases, deep learning, and graph networks[J]. arXiv preprint arXiv:1806.01261, 2018.
- Fey M, Lenssen J E. Fast graph representation learning with PyTorch Geometric[J]. arXiv preprint arXiv:1903.02428, 2019.
- Wang M, Yu L, Zheng D, et al. Deep graph library: Towards efficient and scalable deep learning on graphs[J]. arXiv preprint arXiv:1909.01315, 2019.
- He L. EnGN: A High-Throughput and Energy-Efficient Accelerator for Large Graph Neural Networks[J]. arXiv preprint arXiv:1909.00155, 2019.
- Jia Z, Lin S, Ying R, et al. Redundancy-Free Computation Graphs for Graph Neural Networks[J]. arXiv preprint arXiv:1906.03707, 2019.
- Ma L, Yang Z, Miao Y, et al. Neugraph: parallel deep neural network computation on large graphs[C]//2019 {USENIX} Annual Technical Conference ({USENIX}{ATC} 19). 2019: 443-458.
- Zhou J, Cui G, Zhang Z, et al. Graph neural networks: A review of methods and applications[J]. arXiv preprint arXiv:1812.08434, 2018.
