• 改善图形神经网络,提升GNN性能的三个技巧


    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 的自我监督预训练
    • 分离前置和下游任务

    完整文章

    https://www.overfit.cn/post/bfaf84ba0c204ad08689016a79130dd5

  • 相关阅读:
    String.trim()这个细节不能忘记
    Integer.parseInt(f.trim())中String f要加trim()
    类属性不能写在try{}catch(){}里面
    011--TypeScript泛型
    010--TypeScript里面的this和重载
    009--函数(基本实例和函数类型)
    007--TypeScript之类的修饰符
    008--TypeScript存储器和静态属性
    006--TypeScript之类
    005--TypeScript接口
  • 原文地址:https://www.cnblogs.com/deephub/p/16155248.html
Copyright © 2020-2023  润新知