社交网络和交通网络等图数据在现实世界中非常普遍。近年来,图神经网络(Graph Neural Network,GNN)因其强大的表达能力和在各种图分析应用中的卓越性能而受到广泛关注。然而,图神经网络的效果在很大程度上依赖于充足的数据标签和复杂的网络模型,前者难以获得,后者则需要昂贵的计算资源。为了解决标注数据稀缺和GNN复杂性高的问题,人们引入了知识蒸馏(Knowledge Distillation,KD)来增强现有的GNN,以建立更小但有效的模型,并尝试利用数据中的更多知识,从而压缩模型并提高性能。
我们拟通过阅读arxiv两篇最新的相关综述,来帮助读者快速了解图神经网络上的知识蒸馏常见做法。本篇推文结构将按照前置知识以及依次介绍两篇论文的核心内容的顺序来展开。
一、前置知识
知识蒸馏的开山之作是Distilling the knowledge in a neural network[Hinton et al., 2015],其主要目的是通过从较大的教师模型中转移知识来训练较小的学生模型。见示意图:(原论文是CNN领域,这里将图示换成了GNN)
具体而言,学生与教师之间的知识提炼损失可定义如下:
其中,DIV 表示发散损失(如KL散度), 和 分别为从教师模型和学生模型中获得的知识。在这篇开山论文中,将教师模型输出的logits视为知识,并使用带温度的Softmax函数来得出软标签,该标签显示了输入属于不同类别的概率。详情可以参照上述原论文进一步了解。
二、Knowledge Distillation on Graphs
论文链接:https://arxiv.org/abs/2302.00219
本篇综述首先介绍了图上的知识蒸馏(Knowledge Distillation on Graphs, KDG)的一些挑战,然后通过回答以下三个问题对现有的 KDG 工作进行了分类和总结:1)对什么进行蒸馏(What to Distill);2)谁对谁进行知识的迁移(Who to Whom);3)如何蒸馏(How to Distill)。
KDG作为一个新兴而有前景的研究领域,面临着以下关键挑战:
KDG问题的独特性:与通常的图学习,即针对图数据拟合单一可训练模型不同,KDG旨在训练一个可扩展的学生模型来模仿教师模型。此外,KDG与图像或文本上的知识蒸馏(KD)不同,因为图数据存在于非欧几里得空间中,带有复杂的拓扑信息。因此,需要设计新方法来解决这一问题,同时考虑模型的可扩展性和图数据的复杂性。
方法论的复杂性:KDG方法的成功在很大程度上取决于蒸馏知识的质量、模型结构的选择、蒸馏方案的类型以及蒸馏算法的适当设计。因此,开发同时考虑所有这些组成部分的KDG方法,并以此实现最佳性能,是非常重要但困难的。
下游应用的多样性:KDG方法可以应用于多种图学习任务(如节点分类和图分类等)。不同的应用可能需要不同的设置、目标、约束和领域知识,因此开发针对特定应用的定制化KDG方法并不简单。
2.1 对什么进行蒸馏(What to Distill)
KDG主要考虑三种可作为知识蒸馏对象的信息:输出的logits、图结构和嵌入。
Logits:Logits是指送入最终Softmax层的输入,代表软标签预测。在KDG方法中,通过最小化教师模型和学生模型之间的概率分布或得分的差异来蒸馏知识。例如,一些研究采用KL散度或软交叉熵损失作为度量差异的方法。通过logits进行知识蒸馏使学生模型能够从输出空间中学习教师模型的知识,同时也为半监督学习场景中的训练目标提供额外的软标签。
图结构:图结构描述了图中元素之间的连接关系,对图数据建模至关重要。因此,如何从教师模型到学生模型保留和蒸馏图结构信息成为近期研究的重点。例如,LSP【Yang et al. 2020】首先通过向量计算节点与其一跳邻居之间的相似性来建模局部结构,后续的FreeKD【Feng et al. 2022】和Alignahead【Guo et al. 2022a】遵循这种设计将结构信息蒸馏到学生模型中。此外,还有研究致力于捕获全局结构以补充局部结构,例如CKD【Wang et al. 2022】在异构图上通过元路径建模全局结构信息。
嵌入:除了logits和图结构,一些研究选择利用教师模型的中间层中学习的节点嵌入来指导学生模型的学习。例如,T2-GNN和SAIL【Huo et al. 2023; Yu et al. 2022】致力于最大化教师模型和学生模型中同一节点的嵌入的一致性。GraphAKD【He et al. 2022a】利用对抗学习从局部和全局视角将节点表示从教师模型蒸馏到学生模型中。
2.2 谁对谁进行知识的蒸馏(Who to Whom)
在确定蒸馏的知识类型后,需要定义教师和学生模型以及选择蒸馏方案。KDG中主要讨论两种情形:无教师(teacher-free)和教师对学生(teacher-to-student)。
无教师:在这种情况下,学生模型可以在没有外部教师模型的情况下从自身学习知识。通常,教师自由的知识蒸馏指的是基于单个模型提取的知识进行自蒸馏,例如在不同层之间或不同图结构之间进行知识转移。例如,GNN-SD【Chen et al. 2021b】通过在单个网络的不同层之间提取和传递邻域差异知识,以区分深层节点嵌入与其邻居嵌入。
教师对学生:这种框架旨在将一个或多个教师模型的知识蒸馏到学生模型中。大多数KDG方法依赖标准的单教师框架进行知识蒸馏,例如NOSMOG【Tian et al. 2023b】旨在将一个预训练的GNN教师模型蒸馏到一个MLP学生模型。此外,一些研究探索了使用多个教师模型为学生模型提供全面的知识,例如ROD【Zhang et al. 2021】和MSKD【Zhang et al. 2022a】利用多个教师来编码不同层次的局部性或不同尺度的拓扑语义。
2.3 如何蒸馏(How to Distill)
确定了知识类型和蒸馏策略后,接下来的关键问题是如何开发有效的蒸馏算法。现有的蒸馏算法通常可以分为三类:直接(direct)、自适应(adaptive)和定制化(customized)蒸馏。
直接蒸馏:这类算法直接最小化教师和学生模型间知识的差异,以迫使学生完全模仿教师模型。例如,许多研究直接从教师模型到学生模型蒸馏节点logits或节点嵌入。直接蒸馏易于实现,有助于直接的知识转移,并规范学生模型的训练。
自适应蒸馏:与直接蒸馏不同,自适应蒸馏为进行蒸馏提供了更灵活的范式,通过自适应考虑知识的重要性。例如,RDD【Zhang et al. 2020】提出蒸馏教师模型可靠学习而学生模型学习错误的知识。FreeKD【Feng et al. 2022】引入了一个自适应策略来确定蒸馏方向以及两个较浅GNN之间传播的局部结构。自适应蒸馏通过选择和聚合有信息量的知识来训练更有效的学生模型。
定制化蒸馏:除了直接和自适应蒸馏外,还有一些方法采用多种机器学习技术来蒸馏知识。例如,GraphAKD【He et al. 2022a】和DFAD-GNN【Zhuang et al. 2022】遵循对抗学习的原则,使用可训练的判别器来区分学生和教师模型,而不是强迫学生模型精确模仿教师模型。定制化蒸馏使得KDG方法能够根据不同场景中任务的特定目标进行多样化设计,激发了进一步探索更多蒸馏策略的研究。
附蒸馏方法总览:
三、Graph-based Knowledge Distillation
论文链接:https://arxiv.org/abs/2302.14643
本综述全面概述了基于图的知识蒸馏方法,并进行了系统的分类和总结,即深度神经网络的图知识蒸馏(Graph-based Knowledge Distillation for deep neural networks, DKD)、GNN的图知识蒸馏(Graph-based Knowledge Distillation for GNNs, GKD)和基于自知识蒸馏的图知识蒸馏(Self-Knowledge Distillation based Graph-based Knowledge Distillation, SKD)。
3.1 深度神经网络的图知识蒸馏 DKD
深度神经网络的基于图的知识蒸馏(DKD)主要关注于将知识从具有良好性能的教师模型转移到学生模型中。这种蒸馏方法涉及复杂的神经网络,其中包括卷积神经网络(CNN)和其他类型的深度学习架构。DKD的关键在于理解和模拟教师模型中的数据结构和模型动态,以便有效地传递知识。
DKD的实现通常涉及对教师模型的输出进行分析和理解,然后设计适当的蒸馏策略和技术来转移这些知识。这可能包括利用特定的损失函数、注意力机制或其他高级特征,以确保学生模型能够捕获并利用教师模型中的关键信息。DKD方法的有效性在很大程度上取决于对教师模型的深入理解以及蒸馏策略的创新和适用性。总之,这些方法主要集中在CNN/DNN上,并不能直接应用于包含图数据的情况。
3.2 GNN的图知识蒸馏 GKD
图神经网络的基于图的知识蒸馏(GKD)专注于在GNNs中应用知识蒸馏技术。这种方法的核心是利用GNN来处理各种图数据。在GKD中,知识蒸馏不仅涉及传统的输出层知识转移,还包括了更深层次的图拓扑结构和节点关系信息的学习和蒸馏。
GKD方法根据蒸馏知识的位置分类为基于输出层知识、中间层知识和构建图知识的蒸馏方法。这些方法根据不同的知识提取位置,采用了各种蒸馏策略,包括KL散度、MSE和其他距离度量。GKD方法在改善GNN的性能上取得了显著的进展,并被应用于多种图数据挖掘应用场景,包括推荐学习、异常检测和细胞识别等。
3.3 基于自知识蒸馏的图知识蒸馏 SKD
自知识蒸馏基于图的知识蒸馏(SKD)是一种特殊的图知识蒸馏方法,其中单个网络模型同时扮演教师和学生的角色。这种方法的核心在于,模型在没有外部教师模型的帮助下,通过其自身的深层和浅层之间的信息传递来指导自己的学习。
SKD方法的优点在于其简单高效,能够在不依赖外部知识的情况下实现知识的自我传递和学习。这种方法特别适合于那些资源有限或者需要快速部署的场景。通过内部层间的知识迁移,SKD能够有效地提升模型的学习效率和性能,尤其是在处理图数据时。然而,SKD也面临着一些挑战,比如缺乏丰富的外部知识来源,可能会限制模型性能的进一步提升。
附蒸馏方法总览:
四、总结
在基于图神经网络(GNN)的知识蒸馏领域,我们主要考虑两个目的:模型压缩和性能提升。这两个目标都依赖于知识从教师模型(MT)传递到学生模型(MS)的过程。
模型压缩:在模型压缩的背景下,学生模型(MS)被设计得比教师模型(MT)更小,以期望在保持相似性能的同时降低资源需求和提高应用效率。为了实现这一点,可以通过减少中间层、降低每层的神经元数量或隐藏层维数或者采用更具可扩展性的不同模型结构来设计学生模型。例如,使用多层感知器(MLP)作为学生模型是一种常见的选择。这种方法的核心是在压缩模型的同时,尽可能地保留原始教师模型的性能和知识。
性能提升:在性能提升的背景下,学生模型(MS)与教师模型(MT)的结构可能相同或完全不同。这里的主要目标是传递教师模型预先获得的知识给学生模型,而不是专注于最小化学生模型的规模。通过这种方式,学生模型能够从教师那里获得的知识中受益,捕捉到数据的复杂性并提高其性能。与未经知识蒸馏的基础模型相比,这种方法有助于学生模型实现更高的准确性和效能。
长按下图并点击“识别图中二维码”
即可关注北邮 GAMMA Lab 公众号
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...