图神经网络在应用于现实世界时会面临许多挑战,例如内存约束、硬件约束和可靠性约束。在这篇文章中,剑桥大学博士生ChaitanyaK.Joshi从数据准备、高效架构和学习范式三个方向回顾了研究人员在克服这些问题方面取得的进展。用于高效和可扩展的图形表示学习的工具箱。本文旨在概述高效图神经网络和可扩展图表示学习的关键思想,并将介绍数据准备、GNN架构和学习范例方面的关键进展,这些进展使图神经网络能够扩展到现实世界并应用于实时场景。具体如下:图神经网络面临的现实挑战图神经网络作为一种新兴的深度学习架构,可以对图、集合、3D点云等不规则数据结构进行操作。近年来,GNN的发展跨越了社交网络、推荐系统、生物医学发现等不同领域。但在实际应用中,构建GNNs面临以下挑战:内存限制,现实世界的网络可能非常庞大和复杂,例如Facebook有近30亿活跃账户,这些账户以喜欢、评论、股票等。在以账户为节点组成的图中创建了无数条边。真实世界的图形网络,例如记录所有Facebook用户及其交互方式的表格,可能非常庞大且笨重,以至于可能无法将如此巨大的图形网络放入GPU内存中来训练神经网络.硬件约束图本质上是一个稀疏对象,GNN应该利用其稀疏性来进行高效和可扩展的计算。但这说起来容易做起来难,因为现代GPU旨在处理矩阵上的密集运算。尽管稀疏矩阵的定制硬件加速器可以显着提高GNN的时效性和可扩展性,但如何设计它们仍然是一个悬而未决的问题。现代GPU更适合密集矩阵运算,而图形本质上是稀疏结构。除非邻接矩阵非常稀疏,否则在实现GNN时通常将图简单地视为密集矩阵并使用掩码来识别断开连接的节点会更快。处理巨型图的一种直接方法是将它们分成更小的子图,并通过小批量梯度下降训练GNN(每个子图可以充当一个小批量数据)。然而,这种方法的最大问题是,与样本独立的机器学习标准数据集不同,网络数据的关系结构会在样本之间产生统计依赖性。因此,确保子图保留完整图的语义并为训练GNN提供可靠的梯度并非易事。如何设计一个同时保留全图语义和梯度信息的采样过程?处理巨型图子采样技术现有的论文试图将巨型图拟合到GNN中,重点关注图子采样,以将大图拆分为可管理的子图。ClusterGCN利用聚类算法将图拆分为聚类子图,并通过将每个聚类视为单个小批量数据来训练GNN。这在实践中效果很好,特别是对于同质图,其中簇通常形成具有相似标签的有意义的簇。资料来源:《GraphSAINT: Graph Sampling Based Inductive Learning Method》GraphSAINT提出了一种更通用的概率图采样器来构建小批量子图。可能的采样方案包括统一节点/边缘采样以及随机游走采样。然而,由于上一节中强调的可靠性问题(语义和梯度信息),与全图训练相比,二次采样方法可能会限制模型的性能。HistoryNodeEmbeddingGNNAutoScale(GAS)是一种很有前途的替代基本子采样技术的方法,可将GNN应用于大型图形。GAS建立在Chen等人之前关于historicalnodeembeddings的工作之上,即将之前训练得到的nodeembeddings重新用于当前训练。资料来源:《GNNAutoScale: Scalable and Expressive Graph Neural Networks via Historical Embeddings.》。GAS框架有两个主要组成部分:首先,第一部分构建一个mini-batch节点(执行快速随机子采样)并修剪GNN计算图以仅保留mini-batch内的节点及其1-hop邻居——这意味着GAS的规模与GNN深度无关。其次,每当GNN聚合需要一小批节点嵌入时,GAS就会从存储在CPU上的历史嵌入中检索它们。同时不断更新当前mini-batch节点的历史embeddings。第二部分是与子采样的关键区别——它使GNN能够最大程度地表达信息,并结合当前的mini-batch数据和历史嵌入得到完整的邻域信息并加以利用,同时保证大图的准确性。可扩展性。GAS的作者还将他们的想法融入了流行的PyTorch几何库中。大多数消息传递GNN可以在非常大的图上进行训练,同时减少GPU内存需求并保持接近全批次的性能(即在全图上训练时的性能)。工具包中用于扩展到大型图的其他一些想法包括:[CVPR2020]L2-GCN:图卷积网络的分层和学习高效训练。尤宁,陈天龙,王章扬,沉阳。[KDD2020]使用近似PageRank缩放图神经网络。AleksandarBojchevski、JohannesKlicpera、BryanPerozzi、AmolKapoor、MartinBlais、BenedekRózemberczki、MichalLukasik、StephanGünnemann。[ICLR2021]GraphScalableTraversalwithTensorAbilityMechanism:Learning。ElanMarkowitz、KeshavBalasubramanian、MehrnooshMirtaheri、SamiAbu-El-Haija、BryanPerozzi、GregVerSteeg、AramGalstyan。[NeurIPS2021]解耦图神经网络的深度和范围。曾汉卿、张木涵、夏应龙、AjiteshSrivastava、AndreyMalevich、RajgopalKannan、ViktorPrasanna、金龙、陈任。可扩展且资源高效的GNN架构。不管图的关系结构如何,简单的MLP都在节点上运行!Wu等人的简化图卷积网络(SGC)。是第一个提出这个想法的作品。SGC本质上是由Kipf和Welling通过将(昂贵但非学习的)稀疏邻域特征聚合步骤与(廉价且可学习的)线性投影解耦,然后是ReLU非线性步骤来“解构”的。当处理大型图时,可以在CPU上高效地预先计算特征聚合(CPU擅长处理稀疏操作),然后可以将“结构增强”节点特征进行批处理并传递给在GPU上训练的MLP。资料来源:《Simplifying Graph Convolutional Networks》SIGN:ScalableInceptionGraphNeuralNetworksbyRossi等人。从计算机视觉的Inception网络中寻求灵感,运行多个预计算步骤,为每个图节点获得更好的初始结构特征,从而将SGC的思想更进一步。这个体系结构家族的其他有趣发展包括Chen等人的工作。探索结构增强MLP的理论局限性,以及Huang等人的论文。(这表明类似的标签传播方法在同质图上优于更繁琐的GNN)。高效的图卷积层不幸的是,许多超越同质图节点分类的任务可能需要比SGC/SIGN类模型更具表现力的GNN架构。这通常发生在对图进行分类或推理任务时,其中性能最好的GNN通常利用节点和边特征。这些模型遵循GNN架构设计的消息传递风格(由PetarVeli?kovi?推广),并且可以被认为是“各向异性的”,因为它们以不同的方式对待每条边(而普通GCN是“各向同性的”,因为相同的可学习权重应用于每个边边缘)。但是,在每一层的节点和边缘上保持潜在空间嵌入会显着增加GNN的推理延迟和内存需求。来源:《Do We Need Anisotropic Graph Neural Networks?》Tailor等人的高效图卷积(EGC)试图解决这一难题。他们从基本的GCN设计开始(对于中等大小的图具有良好的可扩展性)并设计了卷积GNN的最大表达版本,同时保留了GCN的可扩展性。令人印象深刻的是,它们在OpenGraphBenchmark上的性能优于更复杂和繁琐的基线模型图分类任务。来源:《Do We Need Anisotropic Graph Neural Networks?》EGC层也已集成到PyTorchGeometric中,可用作i的即插即用替代品提高GNN的性能和可扩展性。Li等人的另一个有趣想法。是在计算机视觉中使用高效的ConvNets(可逆连接、组卷积、权重绑定和平衡模型)来提高GNN的记忆和参数效率。他们的框架能够训练具有(前所未有的)1000层以上的GNN,并且在OpenGraphBenchmark的大规模节点分类任务中表现良好。GNNCompressedLearningParadigm除了数据准备技术和有效的模型架构之外,学习模式,即模型的训练方式,也可以显着提高GNN的性能并减少延迟。KnowledgeDistillationBoostsPerformanceKnowledgedistillation(KD)是一种通用的神经网络学习范式,它将知识从高性能但资源密集型的教师模型转移到资源高效的学生。KD的概念最初是由Hinton等人提出的,KD训练学生匹配教师模型的输出logits以及标准的监督学习损失。Yang等人最近的工作以及Zhang等人随后发表的工作证明了这种简单的基于logit的KD思想在开发资源高效的GNN方面的力量:他们训练了一个富有表现力的GNN作为教师模型,并使用KD将知识传授给MLP学生,以便在节点特征和图形结构高度相关的地方更容易部署。这个想法可以扩展到上一节中的SGC或SIGN等图增强MLP,这可以显着提高类MLP模型的性能,同时易于在生产系统中部署。资料来源:《Graph-less Neural Networks: Teaching Old MLPs New Tricks via Distillation》在计算机视觉中,从业者试图超越基于logit的KD,通过对齐潜在嵌入空间的损失函数将表征知识从教师转移到学生。资料来源:《On Representation Knowledge Distillation for Graph Neural Networks》Yang等人的开创性工作。首先通过训练学生从教师的节点嵌入空间中保留局部拓扑来探索GNN的表示蒸馏。他们将这种方法称为局部结构保护(LSP),因为它鼓励学生模仿教师节点嵌入空间中存在的直接邻居的成对相似性。最近,乔希等人。通过保留直接邻居之外的潜在交互,扩展了LSP研究以考虑全局拓扑。他们为GNN提出了两个新的表示蒸馏目标:(1)一种显式方法——全局结构保留,它扩展LSP以考虑所有成对相似性;(2)一种隐式方法——GraphContrastiveRepresentationDistillation,它使用对比学习在共享表示空间中将学生节点嵌入与教师节点嵌入对齐。资料来源:《On Representation Knowledge Distillation for Graph Neural Networks》Joshi等人。在OpenGraphBenchmark数据集上的实验表明,使用表示蒸馏训练轻量级GNN可以显着提高其实验性能和对噪声或分布外数据的鲁棒性。GNN的其他一些KD方法包括无教师蒸馏(也称为自蒸馏)和无数据蒸馏。低精度GNN的量化感知训练(QAT)是另一种通用神经网络学习范例。传统的神经网络模型权重和激活存储为32位浮点数FP32,而QAT训练模型具有较低的精度、整数权重和激活,例如INT8或INT4。低精度模型在推理延迟方面享有显着优势,尽管以降低性能为代价。Tailor等人的DegreeQuant。提出了一种专门用于GNN的QAT技术。为计算机视觉CNN设计的通用QAT在应用于GNN时通常会导致非常差的后量化性能。DegreeQuant旨在通过巧妙地将底层数据的图结构纳入量化过程来缓解这个问题:它们表明具有许多邻居(较高度数)的节点在QAT期间会导致不稳定,并建议在执行QAT时随机阻塞具有较高度数的节点。与FP32模型相比,这为GNN提供了更稳定的QAT,并最大限度地减少了INT8的性能下降。量化GNN的其他想法包括利用Zhao等人的神经架构搜索和Bahri等人的二值化方法(这是量化的极端情况)。一般来说,QAT的一些性能下降可以通过知识蒸馏来恢复,如Bahri等人的GraphContrastiveRepresentationDistillation论文所示。和乔希等人。在上一节中。结论与展望本文关注高效的图神经网络和可扩展的图表示学习。我们首先确定了现实世界GNN的理论和工程挑战:巨型图-内存边界稀疏计算-硬件边界图子采样-可靠性边界然后我们介绍了三个可能成为开发高效和可扩展GNN工具基础的关键思想:1。数据准备——通过历史节点嵌入查找,实现从大规模图采样到CPU-GPU的混合训练。2.高效架构——用于扩展到巨型网络的图增强型MLP,以及用于对批量图数据进行实时推理的高效图卷积设计。3.LearningParadigm——将量化感知训练(低精度模型权重和激活)与知识蒸馏(改进GNN,使其更有效地表达教师模型)相结合,以最大限度地提高推理延迟和性能。用于高效和可扩展的图形表示学习的工具箱。在不久的将来,预计研究界将继续为GNN网络推进高效、可扩展的工具箱,可能会通过直接集成到PyTorchGeometric和DGL等GNN库中出现。我们也期待听到越来越多的GNN处理真实世界图形和实时应用程序的成功案例。从长远来看,我们期望图数据+GNN从一个深奥的新兴研究领域转变为用于机器学习研究和应用的标准数据+模型范式(很像2D图像+CNN,或文本+Transformers)。因此,我们可能期望看到GNN更深入地集成到PyTorch或TensorFlow等标准框架中,为GNN开发专用硬件加速器,以及更复杂的图数据软硬件协同设计。事实上,这些努力可能已经在从图数据和GNN中获得巨大商业价值的公司中进行了!要更深入地了解本文涵盖的主题,请参阅以下研究:Abadal等人的广泛调查涵盖了从GNN的基础知识到用于图形表示学习的硬件加速器设计的所有内容(本文未涵盖)纸)。资料来源:图神经网络加速调查:算法视角。文中提到的论文,请参考原文。
