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

news2024/9/25 3:09:27

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

在自然语言处理和计算机视觉等领域,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 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2162236.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

指针变量的自增、自减运算

指针变量的自增、自减运算相比较于普通变量的自增、自减运算又什么区别呢? 让我们先来复习一下普通变量的自增、自减运算 int main() {int i; //定义一个整型变量printf("请输入一个数字:\n");scanf("%d&qu…

JetBrains系列产品无限重置免费试用方法

JetBrains系列产品无限重置免费试用方法 写在前面安装插件市场安装插件 写在前面 支持的产品: IntelliJ IDEA AppCode CLion DataGrip GoLand PhpStorm PyCharm Rider RubyMine WebStorm为了保证无限重置免费试用方法的稳定性,推荐下载安装2021.2.2及其…

QT Creator cmake 自定义项目结构, 编译输出目录指定

1. 目的 将不同的源文件放到不同的目录下进行管理, 如下: build: 编译输出目录 include: 头文件目录 rsources: 资源文件目录 src: cpp文件目录 2. 创建完cmake工程后修改CMakeLists.txt 配置 注 : 这里头文件目录是include, 所以在includ…

CSS05-复合选择器

一、什么是复合选择器 1-1、后代选择器(重要) 示例1: 示例2: 示例3: 1-2、子选择器 示例: 1-3、并集选择器(重要) 示例: 1-4、伪类选择器 1、链接伪类选择器 注意事项&am…

CVPR最牛图像评价算法!

本文所涉及所有资源均在 传知代码平台可获取。 目录 概述 一、论文思路 1.多任务学习框架: 2.视觉-语言对应关系: 3.动态损失权重: 4.模型优化和评估: 二、模型介绍 三、详细实现方法 1.图像编码器和语言编码器(Image…

德蒂企鹅PAEDIPROTECT:德国医研力作,专为敏感肌婴幼儿量身打造

新生儿的诞生总是伴随着喜悦,也充满着手忙脚乱,尤其是敏感肌宝宝的皮肤护理。宝宝的皮肤如同初绽的花瓣,皮肤角质层薄而脆弱,容易受到外界刺激物的影响,水分流失快,经常会出现干燥、瘙痒、红斑甚至湿疹等症…

【ARM】AMBA和总线

AMBA AMBA(Advanced Microcontroller Bus Architecture) 总线是由ARM公司提出的一种开放性的片上总线标准,它独立于处理器和工艺技术,具有高速度低功耗等特点。 总线:系统芯片中各个模块之间需要有接口来连接。总线作…

爬虫类Chrome去除前端无限debugger反调试(轻松分析算法)

文章目录 引言方法1(简易抓包或者分析js适用)方法2(解决实际问题-最简单的方法)方法3(解决实际问题-麻烦点也是学会fiddler的一个功能)第一步:熟悉界面的大致功能意思第二步:保存出需要替换的代码,记住保存位置,待会儿要用第三步&…

【Python篇】详细学习 pandas 和 xlrd:从零开始

文章目录 详细学习 pandas 和 xlrd:从零开始前言一、环境准备和安装1.1 安装 pandas 和 xlrd1.2 验证安装 二、pandas 和 xlrd 的基础概念2.1 什么是 pandas?2.2 什么是 xlrd? 三、使用 pandas 读取 Excel 文件3.1 读取 Excel 文件的基础方法…

如何在精益六西格玛项目实践中激励小组成员保持积极性?

在精益六西格玛项目实践中,激励小组成员保持积极性是推动项目成功与持续改进的关键因素。精益六西格玛作为一种集精益生产与六西格玛管理精髓于一体的管理模式,旨在通过流程优化、质量提升及成本降低,实现企业的卓越绩效。然而,这…

《DevOps实践指南》笔记-Part 3

一篇文章显得略长,本文对应第5-6章、附录、认证考试、参考资源等。 前言、第1-2章请参考Part 1,第3-4章内容,请参考Part 2。 持续学习与实验的技术实践 通过以下方式制定有关提高安全性、持续改进和边做边学的制度: 建立公正的…

找不到MFC140.dll无法继续执行代码怎么办,共有6种解决方法

在计算机使用过程中,我们可能会遇到各种问题,其中一种常见的问题是DLL文件丢失。DLL文件是动态链接库文件,它包含了可以被多个程序共享的代码和数据。MFC140.dll就是其中之一。本文将深入分析MFC140.dll丢失的原因,并提供6种有效的…

双亲委派机制SPI

SPI如何破坏双亲委派机制?可根据以下概念一步步深入 什么是双亲委派机制? 双亲委派机制是Java类加载器体系中采用的一种类加载策略,旨在保证类加载的安全性和稳定性。 这一机制规定了类加载的顺序和规则,即当一个类加载器收到类…

解决启动docker desktop报The network name cannot be found的问题

现象 deploying WSL2 distributions ensuring main distro is deployed: checking if main distro is up to date: checking main distro bootstrap version: getting main distro bootstrap version: open \wsl$\docker-desktop\etc\wsl_bootstrap_version: The network name…

基于Springboot+vue实现的Cosplay论坛系统

基于springbootvue实现的Cosplay论坛系统 (源码L文ppt)4-066 2.3 系统功能分析 Cosplay论坛系统中采用了Java的springboot框架进行开发,在数据库上选择MYSQL,在功能上Cosplay论坛系统我划分为了普通用户管理模…

Proteus如何添加数码管

1、打开安装好的Proteus,点击上方菜单栏中的“库”,再选择“从库选取零件”,或者在左侧元件列表中单击鼠标右键,再点击右键菜单中的“从库中挑选”选项。 2、之后在元器件库中,点击类别中的“Optoelectronics”&#…

破解 oklink 网站加密数据(升级版)

大家好!我是炒青椒不放辣,关注我,收看每期的编程干货。 逆向是爬虫工程师进阶必备技能,当我们遇到一个问题时可能会有多种解决途径,而如何做出最高效的抉择又需要经验的积累。本期文章将以实战的方式,带你详细地分析并破解 oklink 网站加密数据 特别声明:本篇文章仅供学…

python脚本程序怎么写更优雅?argparse模块巧妙应用

前言 命令行程序,也称CLI程序,另一个直观的名字是脚本程序,简称脚本,由于没有图形用户界面(GUI),所以脚本程序常见的交互方式有3种: 1、脚本程序中读取环境变量,比如env…

解决小爱音箱连接Windows10蓝牙时,语音控制会中断音乐播放的问题

解决天猫精灵连接Windows10蓝牙时,语音控制会中断音乐播放的问题 解决小爱音箱连接Windows10蓝牙时,浏览器控制音量会中断音乐播放的问题 用小爱音箱当蓝牙音响的时候,遇到个很困扰的问题,每次小爱音箱语音控制的过程中,都会启动…

3.js - 运动曲线

这个球,绕着这个红色的线圈转 代码 import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControlslet scene,camera,renderer,controls nulllet moon,earth null// 根据,一系列的点,创建曲线 le…