OGB是目前公认最权威的图学习通用性能评价基准数据集,由斯坦福大学Jure Leskovec教授团队建立并开源,并吸引了斯坦福大学、康奈尔大学、Facebook、NVIDIA、百度、阿里巴巴和字节跳动等国际顶尖高校与科技巨头参与。该数据集来源广泛——涵盖了生物网络、分子图、学术网络和知识图谱等领域,且囊括了基本的节点预测、边预测、图预测等图学习任务,数据真实、极具挑战性,素有图神经网络领域“ImageNet”之称,已成为全球图神经网络研究者检验自身功力的“试剑石”。 PART ONE
问题背景
图结构数据广泛存在于现实生活中。如图1所示,在推荐系统中可以用图来表示用户与商品之间的交互、在社交网络和知识图谱中图可以来表示各个用户或者实体之间的关系,图还可以用来建模各种药物和新材料。随着深度学习的兴起,研究者开始将深度学习应用到图数据,推动了图领域的相关研究蓬勃发展。作为图领域的重要的技术手段,图神经网络(GNN)已经成为解决图问题的重要算法,并受到了学术界和工业界的广泛关注。图1 常见的图数据类型 PART TWO
2.1 约束非线性变换深度恒等于特征传播深度如图3所示,对于常见的耦合的图神经网络,它在每一层中都强制要求非线性变换紧接着特征传播,去掉特征传播后GCN就退化为MLP。我们之前对深层GNN的评测工作[3]表明,图神经网络存在着两种深度:特征传播的深度和非线性变换的深度,他们分别导致了GNN里的过平滑以及模型退化问题。另外,这个工作还指出我们在图稀疏(标签、特征或者边稀疏)的时候需要增大,在图规模较大的时候需要增大。假设图稀疏且规模较小,这个时候我们需要大的和小的,强行约束会造成次优效果。 图3 GCN和MLP的关系示意2.2 没有考虑节点特异性图4 感受野扩展速度的示例图5 不同节点的预测准确性和特征传播步数的关系Angel Graph图计算团队通过一个简单的示例来说明这个问题。图4中有1个被标蓝的节点并位于图中相对稠密的区域,而绿色节点位于图中相对稀疏的区域。同样进行2次特征传播操作,可以看到位于稠密区域的蓝色节点的感受野已经相对较大了,而位于稀疏区域的绿色节点的感受野却只包含了3个节点。这个实例形象地说明了不同节点的感受野的扩张速度存在较大的差异。在GNN中,一个节点感受野的大小表示它能捕获邻域信息的多少,感受野太大,则该节点可能会捕获许多不相关节点的信息,感受野太小,则该节点无法捕获足够的邻域信息得到高质量的节点表示。因此,对于不同特征传播步数的节点特征,GNN模型需要对不同的节点自适应地分配权重。否则,便会出现无法兼顾位于稠密区域和稀疏区域节点的情况,导致最后无法得到高质量的节点表示。为了验证猜想,Angel Graph图计算团队在常用的Citeseer数据集的验证集和测试集上随机挑选了20个点,在不同的特征传播步数下,使用SGC[4]模型进行节点分类测试,记录连续运行的100次中预测正确的次数占总的次数的比例,实验结果展现在图5中。从实验结果中,我们可以看到不同节点的预测准确率随特征传播步数的增加而变化的趋势并不相同。部分节点,如节点10,在传播步数为1时达到了预测准确率的最大值,随后预测准确率不断降低;而另有部分节点,如节点4,的预测准确率则随特征传播步数的增加而不断增加。这种强烈的差异性验证了我们的猜想,即在对不同传播步数的节点特征做加权求和时,应该给予不同的权重。 PART THREE
概念介绍
Sampling:采样是最常见的扩展图神经网络的方法,它也被广泛应用于多个分布式图神经网络系统里,比如PyG[5],DGL[6] 以及AliGraph[7]。从采样算法的种类来看,它又可以分为三种:基于图的采样(如GraphSAGE[2]和VR-GCN[8]),基于层的采样(如FastGCN[9]和AS-GCN[10]),以及基于节点的采样(如Cluster-GCN[11]和GraphSAINT[12])。由于采样和本工作的优化方向是两个不同的方向,因此在这里不再赘述。Model Decoupling:近期,有研究指出[4],GNN的性能主要归功于各个层中的特征传播操作,而不是非线性变换操作。由此催生出了一系列解耦的GNN,他们在设计GNN模型时解耦了特征传播操作和非线性变换操作,在预处理时就预先做完所有的特征传播操作,在模型训练时就不必再费时费力地去传播特征。因此,在可扩展性方面,只要能够在预处理时完成特征传播操作中的稀疏矩阵稠密矩阵乘法,后续的模型训练可以很轻松地在单机单卡上进行。由于特征传播操作是在预处理过程中完成,因此不需要利用GPU进行加速,完全可以仅使用CPU进行矩阵乘法操作。在我们的实验中,在ogbn-papers100M这个亿级规模的数据集上做特征传播,需要大概250GB的内存,这一需求相比于50GB的显存来说容易满足得多。将传统GNN模型中的特征传播和非线性变换操作解耦的设计既大大提升了模型的可扩展性,也大大提升了模型的效率。 但大多数解耦的GNN在训练时没有区分不同节点的特异性。比如在k层的SGC[4]中,所有的节点都只考虑第k个步数的特征。S2GC[13]和SIGN[14]虽然考虑到了不同特征传播步数的节点特征表示, 但他们只是对这些特征做平均或者拼接,这样当步数过大的时候依然会出现过平滑的问题。另外,在目前的SOTA解耦GNN模型GBP[15]中,作者首先利用特征传播操作得到不同传播步数的特征矩阵,然后使用一个人为设计的权重,对这些特征矩阵做加权求和。虽然GBP能够较好地利用不同特征传播步数的节点特征表示,但它没有考虑到不同节点之间存在的特异性,只是简单地给予所有的节点相同的权重进行求和。和我们的想法类似,SAGN[16]也提出用注意力机制给不同节点的不同权重来融合各个步数的传播特征,但我们还额外考虑到了模型退化以及不同注意力机制的影响。此外,还有一类解耦的模型是先做非线性变换后做特征传播,比如APPNP[17],AP-GCN[18]和DAGNN[19]。 相较于APPNP,AP-GCN和DAGNN都考虑到了不同节点的特异性,但它们在每个epoch都需要拉取邻居节点做完非线性变换后的表征,不能像前一类解耦方法一样预处理好所有的特征传播操作,因此他们还是面临着可扩展性低的问题。 PART FOUR
7.2 北京大学-腾讯协同创新实验室北京大学-腾讯协同创新实验室成立于2017年,主要在人工智能、大数据等领域展开前沿探索和人才培养,打造国际领先的校企合作科研平台和产学研用基地。 协同创新实验室通过合作研究,在理论和技术创新、系统研发和产业应用方面取得重要成果和进展,已在国际顶级学术会议和期刊发表学术论文20余篇,除合作研发Angel外,实验室还自主开发了多个开源系统,例如: 黑盒优化系统OpenBoxhttps://github.com/PKU-DAIR/open-boxAutoML系统Mindwarehttps://github.com/PKU-DAIR/mindware分布式深度学习系统Hetuhttps://github.com/PKU-DAIR/Hetu 详细了解GAMLP,请访问下方链接地址↓ GAMLP论文:https://arxiv.org/abs/2108.10097GAMLP代码:https://github.com/PKU-DAIR/GAMLPAngel项目代码:https://github.com/Angel-ML/angel 参考资料:[1] Thomas N. Kipf, and Max Welling. Semi-Supervised Classification with Graph Convolutional Networks. ICLR 2017.[2] Will Hamilton, Zhitao Ying, and Jure Leskovec. 2017. Inductive representationlearning on large graphs. In NIPS. 1024–1034.[3] Zhang W, Sheng Z, Jiang Y, et al. Evaluating Deep Graph Neural Networks[J]. arXiv preprint arXiv:2108.00955, 2021.[4] Felix Wu, Tianyi Zhang, Amauri Holanda de Souza Jr., Christopher Fifty, Tao Yu, and Kilian Q. Weinberger. Simplifying graph convolutional networks. ICML 2019.[5] Fey, Matthias and Lenssen, Jan E. Fast Graph Representation Learning with {PyTorch Geometric. ICLR workshop 2019.[6] Wang M, Yu L, Zheng D, et al. Deep Graph Library: Towards Efficient and Scalable Deep Learning on Graphs[J]. 2019.[7] R. Zhu, K. Zhao, H. Yang, W. Lin, C. Zhou, B. Ai, Y. Li, and J.Zhou,“Aligraph: A comprehensive graph neural network platform,”Proc. VLDB Endow., vol. 12, no. 12, p. 2094–2105, Aug. 2019.[8] J. Chen, J. Zhu, and L. Song. Stochastic training of graph convolutional networks with variance reduction. In Proceedings of the 35th International Conference on Machine Learning, ICML 2018.[9] J. Chen, T. Ma, and C. Xiao. Fastgcn: Fast learning with graph convolutional networks via importance sampling. In 6th International Conference on Learning Representations, ICLR 2018.[10] W. Huang, T. Zhang, Y. Rong, and J. Huang. Adaptive sampling towards fast graph representation learning. In NIPS 2018.[11] W.-L. Chiang, X. Liu, S. Si, Y. Li, S. Bengio, and C.-J. Hsieh. Cluster-gcn: An efficient algorithm for training deep and large graph convolutional networks. In SIGKDD 2019.[12] H. Zeng, H. Zhou, A. Srivastava, R. Kannan, and V. K. Prasanna. Graphsaint: Graph sampling based inductive learning method. In ICLR 2020.[13] H. Zhu and P. Koniusz. Simple spectral graph convolution. In ICLR, 2021.[14] E. Rossi, F. Frasca, B. Chamberlain, D. Eynard, M. Bronstein, and F. Monti. Sign: Scalable inception graph neural networks. arXiv preprint arXiv:2004.11198, 2020.[15] Ming Chen, Zhewei Wei, Bolin Ding, Yaliang Li, Ye Yuan, Xiaoyong Du, Ji-Rong Wen. Scalable Graph Neural Networks via Bidirectional Propagation. NeurIPS 2020.[16] Sun C, Wu G. Scalable and Adaptive Graph Neural Networks with Self-Label-Enhanced training[J]. arXiv preprint arXiv:2104.09376, 2021.[17] J. Klicpera, A. Bojchevski, and S. Günnemann. Predict then propagate: Graph neural networks meet personalized pagerank. In ICLR 2019.[18] I. Spinelli, S. Scardapane, and A. Uncini. Adaptive propagation graph convolutional network. 355 IEEE Transactions on Neural Networks and Learning Systems, 2020.[19] M. Liu, H. Gao, and S. Ji. Towards deeper graph neural networks. In SIGKDD 2020.