现实世界中很多很多任务可以描述为图(Graph)问题,比如社交网络,蛋白质结构,交通路网数据,图是一个很值得研究的领域。近年来,随着深度学习的发展,研究人员借鉴了CNN等神经网络的思想,定义和设计了用于处理图数据的神经网络结构——图神经网络(Graph Neural Networks,GNN)。深层的图神经网络必要吗(Is deep GNN necessary )?但不同于CNN可以通过堆叠非常多层数的神经网络来取得更好的模型表现,图神经网络从提出后,大部分图神经网络仅仅堆叠两层就能够在下游任务上取得较好的效果。当网络层数加深时,按照常见的解释,会发生过平滑(over-smoothing)或者过压缩(over-squashing)现象,导致不同节点之间的区分度和节点自身的特征表达下降,从而使得深层的图神经网络效果反而不如浅层网络。但鉴于CV/NLP中的相关经验,浅层网络对数据的拟合能力会弱一些,因此对如何构建深层图神经网络的探索从未停止,例如深层图神经网络GCNII在Cora/PPI等数据集,RevGEN在ogbn-proteins数据集上都取得了state-of-art的结果,我们仍然希望看到深层图神经网络未来的潜力。在本文中,我们介绍目前能够有效构建深层图神经网络的方法,同时在CogDL中给出了相关的模型复现的代码。如何设计一个深层的GNN呢?(Tricks to achieve ''Deep GNN'')如何让图神经网络变得深呢?深层的图神经网络一方面增加了每个节点的感受野,使得节点可以感知到更大邻域的拓扑和节点特征信息;另一方面,深层网络增大了模型的复杂度和模型容量,使得网络的拟合能力更强。但如何克服over-smoothing和over-squashing问题,以及如何训练好一个深层的图神经网络模型,是非常有挑战的。结合所有层的输出:Combine Outputs of All Layers图神经网络层数过深、传播次数过多会带来大部分节点的过平滑,而我们又希望通过捕获高阶邻居的信息来帮助获得更好的节点表示,JKNet(Jumping Knowledge Networks)[2]给出的解决方法是:考虑每一层网络的输出结果 ,将每一层的节点输出进行融合,使得网络能够自适应地学习整合不同层的信息,得到最终的节点表示:
[1] Cen, Yukuo, et al. "CogDL: An extensive toolkit for deep learning on graphs." arXiv preprint arXiv:2103.00959 (2021).[2] Xu, Keyulu, et al. "Representation learning on graphs with jumping knowledge networks." ICML'18.[3] Klicpera, Johannes, Aleksandar Bojchevski, and Stephan Günnemann. "Predict then propagate: Graph neural networks meet personalized pagerank."ICLR'19.[4] Chen, Ming, et al. "Simple and deep graph convolutional networks." ICML'20.[5] Li, Guohao, et al. "Deepergcn: All you need to train deeper gcns." arXiv preprint arXiv:2006.07739 (2020).[6] Li, Guohao, et al. "Deepgcns: Can gcns go as deep as cnns?." ICCV'19.[7] Li, Guohao, et al. "Training Graph Neural Networks with 1000 Layers." ICML'21.[8] Gomez, Aidan N., et al. "The reversible residual network: Backpropagation without storing activations." NeuIPS'17.[9] Lv, Qingsong, et al. "Are we really making much progress? Revisiting, benchmarking, and refining heterogeneous graph neural networks." KDD'21.[10] Feng, Wenzheng, et al. "Graph Random Neural Network for Semi-Supervised Learning on Graphs." NeuIPS'20.[11] Qiu, Jiezhong, et al. "LightNE: A Lightweight Graph Processing System for Network Embedding." SIGMOD'21.[12] Zou, Xu, et al. "TDGIA: Effective Injection Attacks on Graph Neural Networks." KDD'21.[13] Huang, Tinglin, et al. "MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems." KDD'21.