当前位置: 首页 > news >正文

图表示学习中的Transformer:Graphormer的突破

人工智能咨询培训老师叶梓 转载标明出处

在自然语言处理和计算机视觉等领域,Transformer架构已经成为主导选择。然而,在图级别的预测任务中,它的表现并不如主流的图神经网络(GNN)变体。这一现象引发了一个思考:Transformer是否适合图表示学习,以及如何使其在图表示学习中发挥作用。来自大连理工大学、普林斯顿大学、北京大学和微软亚洲研究院的研究人员共同提出了一种名为Graphormer的新型架构,该架构基于标准的Transformer架构,并在多个图表示学习任务上取得了优异的结果。

Graphormer的核心观点是,要有效地利用Transformer进行图表示学习,关键在于如何有效地将图的结构信息编码到模型中。为此提出了几种简单但有效的结构编码方法,帮助Graphormer更好地模拟图结构数据。

方法

图1为Graphormer模型中的三种关键结构编码方法:中心性编码、空间编码和边编码的视觉表示。这些编码方式共同作用,使得Graphormer能够有效地利用图数据的结构信息。

中心性编码

中心性编码是Graphormer的一个关键特性,它通过考虑节点的入度和出度来捕捉节点在图中的重要性。这种编码方式允许模型在计算注意力时同时考虑节点的语义相关性和节点的重要性。如图1所示,中心性编码可以被视为节点特征的直接扩展。

其中,是可学习的嵌入向量,分别由节点的入度和出度决定。这种编码方式使得模型能够更好地理解图中节点的重要性。

空间编码

空间编码利用了Transformer的全局接受域优势,通过定义一个函数φ来衡量节点对之间的空间关系。这个函数基于节点之间的最短路径距离,为自注意力模块提供了一个可学习的偏置项。

这种编码方式允许模型根据图的结构信息自适应地调整注意力分布,从而更好地捕捉图中的空间依赖性。

边编码

边编码是Graphormer的另一个创新点,它通过考虑连接节点对的边的特征来增强注意力机制。这种方法通过计算边特征和可学习嵌入的点积的平均值,将边特征作为注意力模块的偏置项纳入模型。

其中,c_ij​ 是通过边特征和可学习嵌入的点积的平均值计算得到的,这使得模型能够更全面地利用边信息。

Graphormer层是基于经典的Transformer编码器实现的,它在多头自注意力(MHA)和前馈块(FFN)之前应用层归一化(LN),而不是之后。这种修改已被证明可以更有效地优化模型。

Graphormer引入了一个特殊节点[VNode],它与图中的每个节点单独连接,使得模型能够更好地捕捉整个图的全局信息。

Graphormer不仅能够表示流行的GNN模型(如GIN、GCN、GraphSAGE)中的AGGREGATE和COMBINE步骤,而且通过使用空间编码,Graphormer能够超越经典的信息传递GNNs,其表达能力不亚于1-Weisfeiler-Lehman (WL)测试。

另外Graphormer还发现使用自注意力和虚拟节点启发式之间存在有趣的联系。自注意力能够自然地完成图级别的聚合和传播操作,而无需额外的编码,这使得Graphormer在不遇到过度平滑问题的情况下,实现了可扩展的改进。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

评论留言“参加”或扫描微信备注“参加”,即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory。关注享粉丝福利,限时免费录播讲解。

实验

首先在OGB-LSC(Open Graph Benchmark Large-Scale Challenge)上进行了实验,这是目前最大的图级别预测数据集,包含超过3.8M个图。还在OGB和benchmarking-GNN的其他三个流行任务上报告了结果。

实验设置:

模型大小:报告了两种模型大小的结果,Graphormer(L = 12, d = 768)和较小的GraphormerSMALL(L = 6, d = 512)。

优化器:使用AdamW,设置超参数ϵ为1e-8,(β1, β2)为(0.99, 0.999)。

学习率调度:峰值学习率设置为2e-4(GraphormerSMALL为3e-4),预热阶段为60,000步,之后采用线性衰减学习率调度器。

总训练步数:1M步。

批处理大小:1024。

训练硬件:所有模型在8个NVIDIA V100 GPU上训练了大约2天。

表1展示了在PCQM4M-LSC数据集上的性能比较。GIN-VN在验证MAE上达到了0.1395的最佳状态。报告了GT模型的结果,通过增大隐藏维度到768(称为GT-Wide),参数总数达到83.2M,但未超过GIN-VN和DeeperGCN-VN的性能。

Graphormer在与之前最佳GNN架构相比,显著超越GIN-VN,例如,在验证MAE上降低了11.5%。使用ExpC集成后,Graphormer在完整测试集上达到了0.1200的MAE,并在OGB大规模挑战中赢得了图级别赛道的第一名。

进一步研究了Graphormer在OGB(OGBG-MolPCBA, OGBG-MolHIV)和benchmarking-GNN(ZINC)上的图级别预测任务的性能。由于OGB鼓励预训练,主要探索了在PCQM4M-LSC上预训练的Graphormer模型的迁移能力。

表2、表3和表4总结了Graphormer与其他GNN在MolHIV、MolPCBA和ZINC数据集上的性能比较。Graphormer在所有三个数据集上一致且显著地超越了之前的最先进GNN,性能提升幅度很大。

最后在PCQM4M-LSC数据集上对Graphormer的关键设计元素进行了系列消融研究。表5展示了不同设计元素的消融研究结果。空间编码、中心性编码和边编码的引入都显著提高了模型的性能,证明了这些编码方式在Transformer架构中对建模图数据的有效性。

Graphormer的代码和模型在以下GitHub链接公开提供:GitHub - microsoft/Graphormer: Graphormer is a general-purpose deep learning backbone for molecular modeling.

论文链接:https://arxiv.org/pdf/2106.05234 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • idea怎么快速生成get set方法,快捷键是什么?
  • MySQL—视图详解
  • 【结构型】树形结构的应用王者,组合模式
  • ubuntu安装无线网卡驱动(非虚拟机版)
  • 安卓13修改设置设备型号和设备名称分析与更改-android13设置设备型号和设备名称更改
  • 【计算机网络篇】物理层
  • 【Android】使用Room数据库解决本地持久化
  • 配置win10开电脑时显示可登录账号策略
  • ER论文阅读-Incomplete Multimodality-Diffused Emotion Recognition
  • MySQL 8 查看 SQL 语句的执行进度
  • C++之初识STL(概念)
  • GitLab 迁移后 Token 失效解决方法
  • java项目之城镇保障性住房管理系统(源码+文档)
  • vue使用PDF.JS踩的坑--部署到服务器上显示pdf.mjs viewer.mjs找不到资源
  • OpenAI GPT o1技术报告阅读(2)- 关于模型安全性的测试案例
  • Android优雅地处理按钮重复点击
  • eclipse(luna)创建web工程
  • JavaScript 基本功--面试宝典
  • oschina
  • sessionStorage和localStorage
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 当SetTimeout遇到了字符串
  • 面试遇到的一些题
  • 事件委托的小应用
  • 树莓派 - 使用须知
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • Java数据解析之JSON
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • #《AI中文版》V3 第 1 章 概述
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (20)docke容器
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (回溯) LeetCode 77. 组合
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (离散数学)逻辑连接词
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (万字长文)Spring的核心知识尽揽其中
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)3D模板阴影原理
  • (转)C#调用WebService 基础
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • ****三次握手和四次挥手
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET连接MongoDB数据库实例教程
  • //解决validator验证插件多个name相同只验证第一的问题
  • ??myeclipse+tomcat
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • [C/C++入门][ifelse]20、闰年判断
  • [C++] new和delete