如何提升你的 GNN
改善图神经网络的提示和技巧
图神经网络 (GNN) 是新的酷小子。它的名字听起来很花哨,数学很先进,并且 GNN 在各种任务中显示出最先进的性能¹ ²。
GNN 提供了一种在图结构化数据上使用深度学习技术的方法。图结构数据无处不在:从化学(例如分子图)到社交媒体(例如社交网络)以及金融投资(例如 VC 投资网络)。
在我的硕士论文中,我预测了在由投资者、初创公司和个人组成的投资网络上使用 GNN 的初创公司未来的融资轮次。当我实施 GNN 模型(R-GCN¹ 和 HGT²)时,基线随机森林模型已经相当强大(AUC = 0.69)。
我很高兴看到先进的 GNN 将如何改善我的结果。令我惊讶的是,GNN 模型一直落后于基线模型的性能。增加层数和隐藏维度并没有帮助。所以我开始研究,发现 GNN 关系问题并不孤单。
如果这听起来对您来说很熟悉(可能确实如此,否则您为什么还要阅读这篇枯燥的博客文章),我可能会提供一些技巧来提高您的 GNN 模型的性能。
什么是 GNN?
在讨论如何改进 GNN 之前,让我们快速回顾一下它们的工作原理。如需深入了解图神经网络,请查看 DeepFindr³ 的 Youtube 频道(或一些文献⁴)[0]
假设我们有一个简单的图表,如下所示:
The Graph
图包含节点(i、j 和 k)和连接这些节点的边(e)。此外,该图还包括每个节点(X1,…)和可能的每条边(黑色)的节点特征。目标节点以黄色着色,其 1 跳邻居为蓝色,2 跳邻居以绿色表示。包括不同类型节点的图称为“异构”图,就像我们的例子一样。
Message Passing
步骤 0 中节点的嵌入只是其特征向量(由特征 X1、X2……组成)。为了获得新的 (l + 1) 节点嵌入 h,对于我们的目标节点 i,(黄色),我们从其相邻节点 j,(蓝色)中提取所有嵌入,它自己的表示,以及潜在的边缘特征 e(黑色)并聚合此信息。这显示在下面的公式中。但是,请记住,目前大多数著名的 GNN 架构都没有使用边缘特征⁵。之后,我们可以将这些新的节点嵌入用于各种任务,例如节点分类、链接预测或图分类。
Problems with GNNs
In Practice
许多最近跨领域的研究发现 GNN 模型没有提供预期的性能⁵ ⁶ ⁷。当研究人员将它们与更简单的基于树的基线模型进行比较时,GNN 无法超越甚至匹配基线。
In Theory
其他研究人员对 GNN 有时表现不佳提供了理论解释⁸。根据他们的实验,GNN 只进行特征去噪,无法学习非线性流形。因此,他们主张将 GNN 视为图学习模型的一种机制(例如,用于特征去噪),而不是他们自己的完整的端到端模型。
Fixes
为了解决这些缺点并提升你的 GNN,我发现了 3 个主要技巧/想法:
- 在 GNN 中利用边缘特征
- GNN 的自我监督预训练
- 分离借口和下游任务
让我们详细看看它们。
Utilize Edge Features
利用边缘特征的想法在很大程度上取决于您正在使用的数据类型。如果您的数据包含(多维)边缘特征,则利用边缘特征可以对模型的性能产生影响。
然而,很少有已建立的 GNN 模型架构支持多维边缘特征⁵。我使用过并且效果很好的一个简单的解决方法是创建人工节点:
Artificial Nodes
通过使用人工节点,您可以继续使用以前使用的相同模型。我们唯一要改变的是图表本身,它会变得更复杂一些。每条边都将成为连接到原始深蓝色节点的自身节点(浅蓝色),而不是保存边特征的边。
这样,您可以通过将边缘特征作为人工节点的节点特征传递给模型来间接利用边缘特征。如果边缘特征与任务相关,这可以提高模型的性能,但也会产生更多的复杂性。您可能需要考虑向模型中添加更多 GNN 层(以允许更多邻居跳)。人工节点导致 AUC 增加约 2%。
您自己的边缘功能架构
您还可以创建自己的 GNN 层实现。这听起来很难;但是,如果使用 DGL 之类的图学习库,那绝对是可行的。我建议您使用现有的 GNN 实现(参见此处)并根据您的需要进行调整。[0][1]
例如,我根据 GAT¹⁰ 和 R-GCN¹ 的现有想法制定了自己的实现,我称之为 Edge-GCN¹¹:
Edge-GCN 使用注意力机制来学习边缘与节点特征对所有不同关系类型的重要性¹¹。如果您对 DGL 实施感兴趣,请与我联系。 E-GCN 架构在 AUC 中将 GNN 模型的结果提高了约 2%(人工节点也是如此)。
自监督预训练
这可能是提高 GNN 性能的最重要技巧。尽管预训练 GNN 已经在理论上进行了探索¹²,但在实践中的应用仍然很少⁶ ⁷ ⁸。
The Idea
总体思路与计算机视觉和自然语言处理领域的概念非常相似。以语言模型 BERT¹³ 为例,该模型经过训练可预测句子中的掩蔽词(这是自我监督的,因为它不依赖于标记数据)。我们通常不太关心预测蒙面词的具体任务。然而,生成的词嵌入对于许多不同的任务非常有用,因为模型可以了解特定词之间的关系。
Self-Supervision
我们想使用自监督任务预训练 GNN 模型节点嵌入。这在有噪声标签的情况下尤其有益,因为自我监督过程提供了更多“标记”示例(因为我们不需要为预训练提供标签)并且可能也不太容易受到噪声¹¹ ¹²。
如果我们的最终目标是对节点进行分类,我们可以在整个图上使用链接预测作为自我监督的预训练任务。在链接预测中,我们尝试预测两个节点之间是否存在边(=链接)。因此,我们训练一个 GNN 来区分图中的真实边和人为引入的假边(“链接预测的负采样”)。由于我们只是在图中现有节点之间添加假边并删除真实边,因此我们不依赖任何标记数据。接下来,我们可以使用来自链接预测 GNN 模型的结果节点嵌入作为另一个节点分类模型的输入。
向模型添加一个自我监督的预训练管道将其 AUC 分数增加了惊人的 14%,使其成为最具影响力的技巧。
分离借口和下游任务
到目前为止,我们只讨论了在自监督任务(“pretext”)上预训练 GNN 并为最终(“下游”)任务使用相同的 GNN 架构。但是,我们不必为这两个任务使用相同的模型架构。您还可以组合不同的 GNN 架构。或者更有希望:
两全其美
如前所述,GNN 层可能无法在各种情况下有效地学习。因此,我们可以使用 GNN 模型通过自监督预训练创建节点嵌入,并将这些嵌入传递给经典机器学习算法或完全连接的神经网络层,以完成最终的下游任务。这种架构可用于许多不同的下游任务,从图分类到节点分类和回归。
该模型将受益于将访问图中包含的所有信息的能力与非线性流形学习属性相结合。此外,该模型从更简单的机器学习算法中继承了一些好处,例如减少了训练时间和更好的可解释性。在我们的实验中,基于树的模型(例如随机森林)在节点分类的下游任务¹¹中表现出特别强的性能,因此可以从那里开始。
在下面,您可以找到包含所有三个提出的想法的最终管道的图形概述:
该架构代表了我们的最终模型,AUC 得分为 78.1(另一个 + 1.5%),或者通过 AUC 衡量的性能总提升 17%(基本 R-GCN 模型:AUC = 66.6)¹¹。
Conclusion
在这篇博文中,我们讨论了图神经网络模型的缺点以及提高模型性能的三个主要技巧。结合这些技巧,我能够将我的最终 GNN 模型的 AUC¹¹ 提高 17%(对于其他指标甚至更多)。
首先,如果您的数据包含边缘特征,并且您认为它们对最终预测任务很有洞察力,您可以尝试利用边缘特征。其次,使用自监督目标对 GNN 模型进行预训练通常有利于最终模型的性能。它可以增加训练示例的数量,有时还可以减少固有噪声。第三,为前置文本和最终预测任务测试不同的架构可以提高模型的预测能力。
这些技巧对你有用吗?如果您有补充或反馈,请在评论部分告诉我!快乐的 GNN 调优!
References
[1] Michael Schlichtkrull、Thomas N. Kipf、Peter Bloem、Rianne van den Berg、Ivan Titov 和 Max Welling。使用图卷积网络对关系数据进行建模,2017。
[2] Ziniu Hu, Yuxiao Dong, Kuansan Wang, and Yizhou Sun. Heterogeneous graph transformer, 2020.
[3] https://deepfindr.com, 2020.[0]
[4] Davide Bacciu、Federico Errica、Alessio Michelia、Marco Podda。 2020 年图深度学习简介
[5] 李玉蕾杨东生. NENN:在图神经网络中结合节点和边缘特征,2020
[6] Federico Errica、Marco Podda、Davide Bacciu 和 Alessio Micheli。用于图分类的图神经网络的公平比较,2020 年。
[7] Clement Gastaud、Theophile Carniel 和 Jean-Michel Dalle。外在因素对初创公司筹款成功的不同重要性:早期的竞争和成长阶段的网络,2019。
[8] Dejun Jiang, Zhenxing Wu, Chang-Yu Hsieh, Guangyong Chen, Ben Liao, Zhe Wang, Chao Shen, Dongsheng Cao, Jian Wu, and Tingjun Hou. Could graph neural networks learn better molecular representation for drug discovery? 2021.
[9] 黄 NT 和前原刚典。重温图神经网络:我们只有低通滤波器,2019。
[10] Petar Veličković、Guillem Cucurull、Arantxa Casanova、Adriana Romero、Pietro Liò 和 Yoshua Bengio。图注意网络,2018。
[11] 卡罗哈普雷希特。使用图神经网络预测未来的融资轮次,2021 年
[12] Weihua Hu、Bowen Liu、Joseph Gomes、Marinka Zitnik、Percy Liang、Vijay Pande 和 Jure Leskovec。预训练图神经网络的策略,2019。
[13] Jacob Devlin、Ming-Wei Chang、Kenton Lee 和 Kristina Toutanova。 BERT:用于语言理解的深度双向变压器的预训练,2018 年。
文章出处登录后可见!