GNN 提供了一种在图结构化数据上应用深度学习技术的办法。图构造数据无处不在:从化学(例如分子图)到社交媒体(例如社交网络)以及金融投资(例如 VC 投资网络),GNN 在各种工作中显示出最先进的性能¹ ²。
在我的以前的一个实际:在投资者、初创公司和集体组成的投资网络上预测初创公司将来的融资轮次,其基线随机森林模型曾经相当弱小(AUC = 0.69)。然而 GNN 模型(AUC = 0.66)始终落后于基线模型的性能,并且减少层数和暗藏维度并没有帮忙。所以我开始钻研,发现 GNN 并不简略。
为了解决这个问题,本文总结了一些技巧来进步 GNN 模型的性能。
什么是 GNN?
在探讨如何改良 GNN 之前,让咱们疾速回顾一下它们的工作原理。假如咱们有一个简略的图表,如下所示:
图
图蕴含节点(i、j 和 k)和连贯这些节点的边(e)。此外,图还包含每个节点(X1,…)和可能的每条边(彩色)的节点特色。指标节点以黄色着色,其 1 跳街坊为蓝色,2 跳街坊以绿色示意。包含不同类型节点的图称为“异构”图,就像下面的例子一样。
消息传递
步骤 0 中节点的嵌入只是由其本身的特征向量(由特色 X1、X2……组成)。为了取得新的 (l + 1) 节点嵌入 h,对于指标节点 i(黄色),须要从其相邻节点 j(蓝色)中提取所有嵌入,提取其本身的示意以及潜在的边缘特色 e(彩色) 并聚合该信息。这具体步骤参考上面的公式。然而,目前大多数驰名的 GNN 架构都没有应用边缘特色⁵。在提取特色之后就能够将这些新的节点嵌入用于各种工作,例如节点分类、链接预测或图分类。
GNN 的问题
许多最近跨畛域的钻研发现 GNN 模型没有提供预期的性能⁵ ⁶ ⁷。当钻研人员将它们与更简略的基于树的基线模型进行比拟时,GNN 甚至无奈超过基线的模型,例如咱们下面提到的随机森林。
一些钻研人员对 GNN 有时体现不佳提供了实践解释⁸。依据他们的试验,GNN 只进行特色去噪,无奈学习非线性流形。因而他们主张将 GNN 视为图学习模型的一种机制(例如,用于特色去噪),而不是他们本人的残缺的端到端模型。
为了解决这些问题并晋升 GNN,本文总结了 3 个次要技巧 / 想法:
- 在 GNN 中利用边缘特色
- GNN 的自我监督预训练
- 拆散前置和上游工作
利用边缘特色
利用边缘特色的想法在很大水平上取决于正在应用的数据类型。如果数据蕴含(多维)边缘特色,则利用边缘特色能够对模型的性能产生影响。
然而很少有已建设的 GNN 模型架构反对多维边缘特色⁵。以到我的教训,应用过并且成果很好的一个简略的解决办法是创立人造节点:
通过应用人造节点,能够持续应用以前应用的雷同模型。而惟一要扭转的是图自身,新增节点会使图变得更简单。每条边都将成为连贯到原始深蓝色节点的本身节点(浅蓝色),而不是保留边特色的边。
通过将边缘特色作为人造节点的节点特色传递给模型来间接利用边缘特色。如果边缘特色与工作相干,这能够进步模型的性能,但也会减少复杂性。并且须要思考向模型中增加更多 GNN 层(以容许更多街坊跳)。人造节点能够使 AUC 减少约 2%(我的教训)。
除此以外还能够创立本人的 GNN 层实现。这听起来很难;然而如果应用 DGL 之类的图学习库,那相对是可行的。
例如,上面依据 GAT¹⁰ 和 R-GCN¹ 的现有想法制订了本人的实现,称之为 Edge-GCN¹¹:
我本人的 Edge-GCN 公式(v 代表节点,e 代表边,sigma 是非线性激活函数 [在这种状况下为 RELU],alpha 是每个关系类型的学习注意力分数,c 是归一化常数)
Edge-GCN 应用注意力机制来学习边缘与节点特色对所有不同关系类型的重要性¹¹。E-GCN 架构在 AUC 中将 GNN 模型的后果进步了约 2%(人造节点也是如此)。
自监督预训练
这可能是进步 GNN 性能的最重要技巧。只管预训练 GNN 曾经在实践上进行了摸索¹²,但在实践中的利用依然很少⁶ ⁷ ⁸。
总体思路与计算机视觉和自然语言解决畛域的概念十分类似。以语言模型 BERT¹³ 为例,该模型经过训练可预测句子中的掩蔽词(这是自监督的,因为它不依赖于标记数据)。咱们通常不太关怀预测掩蔽词的具体任务。然而生成的词嵌入对于许多不同的工作十分有用,因为模型真的理解特定词之间的关系。
应用自监督工作预训练 GNN 模型节点嵌入,这在有噪声标签的状况下尤其无益,因为自我监督过程提供了更多“标记”示例(因为咱们不须要为预训练提供标签)并且可能也不太容易受到噪声烦扰¹¹ ¹²。
如果咱们的最终目标是对节点进行分类,能够在整个图上应用链接预测作为自我监督的预训练任务。在链接预测中,咱们尝试预测两个节点之间是否存在边(= 链接)。因而训练一个 GNN 来辨别图中的实在边和人为引入的假边(“链接预测的负采样”)。因为咱们只是在图中现有节点之间增加假边并删除实在边,因而能够不依赖任何标记数据。接下来的步骤就是应用来自链接预测 GNN 模型的后果节点嵌入作为另一个节点分类模型的输出。
向模型增加一个自我监督的预训练管道将其 AUC 分数减少了 14%,这能够说是目前最无效的技巧。
拆散前置和上游工作
到目前为止,只探讨了在自监督工作(“前置”)上预训练 GNN 并为最终(“上游”)工作应用雷同的 GNN 架构。然而其实能够为这两个工作应用不同的模型架构。甚至还能够组合出不同的 GNN 架构。
GNN 层可能无奈在各种状况下无效地学习。因而能够应用 GNN 模型通过自监督预训练创立节点嵌入,并将这些嵌入传递给经典机器学习算法或全连贯的神经网络层,以实现最终的上游工作。这种架构可用于许多不同的上游工作,例如图分类到节点分类还有回归。
该模型将受害于将拜访图中蕴含的所有信息的能力与非线性流形学习属性相结合。该模型从更简略的机器学习算法中继承了一些益处,例如缩小了训练工夫和更好的可解释性。文章最后提到的基于树的模型(例如随机森林)在节点分类的上游工作¹¹中体现出特地强的性能,所以咱们就从这里开始。
在上面,能够找到蕴含下面提出的三个想法的最终管道的概述:
该架构代表了咱们的最终模型,AUC 得分为 78.1(另一个 + 1.5%),通过 AUC 掂量的性能总晋升 17%(根本 R-GCN 模型:AUC = 66.6)¹¹。
总结
在这篇文章中,咱们探讨了图神经网络模型的毛病以及进步模型性能的三个次要技巧。联合这些技巧,可能将最终 GNN 模型的 AUC¹¹ 进步 17%(对于其余指标甚至更多)。上面咱们在总结一下咱们的步骤:
如果数据蕴含边缘特色,并且你认为它们对最终预测工作很有洞察力,能够尝试利用边缘特色。
其次,应用自监督指标对 GNN 模型进行预训练通常有利于最终模型的性能。它能够减少训练示例的数量,有时还能够缩小固有噪声。
最初,为前置和最终预测工作测试不同的架构能够进步模型的预测能力。
援用
[1] Michael Schlichtkrull, Thomas N. Kipf, Peter Bloem, Rianne van den Berg, Ivan Titov, and Max Welling. Modeling relational data with graph convolutional networks, 2017.
[2] Ziniu Hu, Yuxiao Dong, Kuansan Wang, and Yizhou Sun. Heterogeneous graph transformer, 2020.
[3] https://deepfindr.com, 2020.
[4] Davide Bacciu, Federico Errica, Alessio Michelia, Marco Podda. A Gentle Introduction to Deep Learning for Graphs, 2020
[5] Yulei Yang Dongsheng Li. NENN: Incorporate Node and Edge Features in Graph Neural Networks, 2020
[6] Federico Errica, Marco Podda, Davide Bacciu, and Alessio Micheli. A fair comparison of graph neural networks for graph classification, 2020.
[7] Clement Gastaud, Theophile Carniel, and Jean-Michel Dalle. The varying importance of extrinsic factors in the success of startup fundraising: competition at early-stage and networks at growth-stage, 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] Hoang NT and Takanori Maehara. Revisiting graph neural networks: All we have is low-pass filters, 2019.
[10] Petar Veličković, Guillem Cucurull, Arantxa Casanova, Adriana Romero, Pietro Liò, and Yoshua Bengio. Graph attention networks, 2018.
[11] Carlo Harprecht. Predicting Future Funding Rounds using Graph Neural Networks, 2021
[12] Weihua Hu, Bowen Liu, Joseph Gomes, Marinka Zitnik, Percy Liang, Vijay Pande, and Jure Leskovec. Strategies for Pre-training Graph Neural Networks, 2019.
[13] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, 2018.
[https://www.overfit.cn/post/b…
](https://www.overfit.cn/post/b…)
作者:Carlo H