SGFormer:简化并增强Transformer以应对大型图表示的挑战

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

大型图数据的表示学习面临的主要挑战是如何在有限的计算资源下,有效地捕捉节点间的依赖关系并生成有用的节点表示。现有的基于Transformer的方法通常采用多层多头注意力机制,这虽然能够捕获全局信息,但计算复杂度高,难以扩展到拥有数百万甚至更多节点的大型图。而且这些方法往往需要额外的位置编码、特征预处理或额外的损失函数,增加了模型的复杂性和计算负担。上海交通大学的研究者团队提出了一种新的简化图Transformer(SGFormer),旨在解决大型图表示学习中的可扩展性和效率问题。

SGFormer通过单层注意力机制实现对任意节点间信息的高效传播。这种设计不仅减少了计算开销,而且由于其线性复杂度,使得模型能够扩展到亿级别节点的超大规模图。SGFormer的主要优点为:

  1. 简化的全局注意力机制:SGFormer采用单层单头注意力模型,通过一次传播层和线性复杂度,有效地在节点间传播信息。
  2. 无需位置编码或预处理:与需要位置编码或其他预处理步骤的方法不同,SGFormer直接使用节点特征,简化了模型的复杂性。
  3. 高效的计算性能:SGFormer的计算复杂度与节点数成线性关系,这使得它在处理大型图时具有显著的效率优势。

方法

研究者首先使用一个神经网络层将输入特征映射到潜在空间中的节点嵌入,其中f_I​可以是一个浅层(例如,单层)MLP。这些节点嵌入将用于后续的注意力计算和传播。

SGFormer的核心是其简单的全局注意力模型,该模型能够以线性复杂度捕捉节点间的隐式依赖关系。通过单层注意力机制,任意节点对之间的信息可以被计算出来。与传统的Transformer不同,SGFormer发现仅需单层全局注意力就足够,因为在密集连接的注意力图上的单层传播可以自适应地将每个节点的信息传播到批次中的任意节点。因此,尽管模型简单,但足以捕捉任意节点对之间的隐式依赖关系,同时显著减少了计算开销。

为了结合输入图G的先验信息,研究者采用了一种简单而有效的方案,将全局注意力的输出与GNN传播的嵌入在输出层组合。具体为:,其中α是一个权重超参数,GN模块可以是一个简单的GNN架构(例如,GCN),具有良好的可扩展性。输出函数f_O​将最终表示Z_O映射到预测,具体取决于下游任务。

模型的总体计算复杂度为O(N+E),其中E=∣E∣,因为GN模块需要O(E)。由于图的典型稀疏性(即2E≪N^2),模型可以线性地相对于图大小进行扩展。另外由于只有一层全局注意力和简单的GNN架构,模型相当轻量,使得训练和推理更加高效。

对于连GCN也无法在单个GPU上使用全批量处理训练的大型图,可以使用随机小批量划分方法。这种方法在训练过程中只增加了微不足道的额外成本,并且允许模型扩展到任意大型图。

由于全局注意力机制的线性复杂度,可以采用大批量大小,这有助于模型在每个小批量中捕获信息性的全局交互。模型还与高级技术(如邻居采样、图聚类和历史嵌入)兼容。

表1展示了图Transformer在架构、表达性和可扩展性方面的对比。大多数现有Transformer针对小图分类任务开发,而部分专注于节点分类任务,面临的挑战在于大型图的规模。

在架构方面,现有模型可能采用边缘/位置嵌入或增强训练损失来捕获图信息。然而,这些方法可能需要额外的预处理步骤,对于大型图可能耗时且占用内存,也可能使优化过程复杂化。相比之下,SGFormer无需位置嵌入、增强损失或预处理,仅使用单层单头全局注意力,提供了一种既高效又轻量的解决方案。

在表达性方面,一些图Transformers将注意力计算限制在节点的子集上,允许线性扩展,但牺牲了表达性。SGFormer则在每一层都保持对所有节点的注意力计算,同时实现O(N)复杂度,无需任何近似或随机组成部分,训练过程更稳定。

在可扩展性方面,现有模型通常因全局所有节点对注意力而具有O(N^2)复杂度,限制了对中等规模图的扩展。SGFormer则实现线性扩展,支持在具有多达0.1M个节点的大型图上进行全批量训练。对于更大的图,SGFormer与大批量大小的小批量训练兼容,允许模型在对性能影响极小的情况下捕获信息性的全局信息。值得关注的是SGFormer可以扩展到web规模的图,如ogbn-papers100M,展示了其强大的可扩展性。

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

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

LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

实验

实证评估聚焦于SGFormer在不同规模图数据集上的表现,检验了其学习有效表示和在大型图上扩展的能力。评估涵盖了从中等规模(2K至30K节点)到大规模(0.1M至0.1B节点)图的数据集。

评估始于常用图数据集,包括三个高同质性比率的引文网络Cora、CiteSeer和PubMed,以及四个异质性图Actor、Squirrel、Chameleon和Deezer-europe。这些图的节点数在2K至30K之间。对于引文网络,数据划分遵循了半监督设置。Actor和Deezer-europe使用了随机划分,而Squirrel和Chameleon则依据评估论文进行划分,以过滤掉重叠节点。

SGFormer与多个GNN和Transformer模型进行了比较,包括标准的GCN、GAT和SGC,以及更先进的模型如JKNet、APPNP、SIGN、H2GCN、CPGNN和GloGNN。此外,还与专为节点分类设计的最先进模型NodeFormer,以及为图分类设计的Graphormer和GraphTrans进行了比较。

表2展示了所有模型的结果,显示SGFormer在所有数据集上显著优于标准的GNN模型(GCN、GAT和SGC),在Actor数据集上的最大改进达到25.9%。这一发现表明,尽管SGFormer模型简单,但其单层全局注意力机制效果显著。另外与NodeFormer等其他先进模型相比,SGFormer在大多数情况下也展现出更高的性能。

进一步在节点数从百万到十亿的大型图数据集上评估SGFormer,包括引文网络ogbn-arxiv、蛋白质相互作用网络ogbn-proteins、物品共现网络Amazon2M和社交网络pokec。这些评估使用了OGB的公共划分。

由于规模庞大,与MLP、GCN、SGC、SIGN以及使用邻居采样的GCN-NSampler和GAT-NSampler进行了比较。主要竞争对手为NodeFormer,这是一个最近提出的具有全对注意力的可扩展图Transformer。

表3展示了实验结果,SGFormer在所有数据集上均取得了优异的结果,相较于GNN竞争对手显示出显著的性能提升。这证实了SGFormer的全局注意力机制在捕捉大量节点间隐式相互依赖性方面的有效性。特别是在最大的数据集ogbn-papers100M上,SGFormer表现出了其在极大规模图上的强大性能。

表4报告了在Cora、PubMed和Amazon2M上的每个时期的训练时间、推理时间和GPU内存成本。结果显示,SGFormer的速度比其他竞争对手快了几个数量级,尤其在Cora数据集上比Graphormer快了38倍至141倍。

通过在Amazon2M数据集上随机抽取节点子集进行测试,图2展示了SGFormer的时间和内存成本与图的大小线性相关,证明了其在节点数量增加时的可扩展性。

图3和图4进一步探讨了注意力层数对模型性能的影响,结果表明,增加注意力层数并不一定能显著提升性能,反而可能导致性能下降,同时增加训练时间成本。这些发现证实了SGFormer单层注意力机制的有效性和效率。

实验表明,SGFormer在各种规模的图上都取得了与现有最先进技术相媲美或更好的性能。特别是在处理拥有数亿节点的ogbn-papers100M数据集时,SGFormer显示出了高达141倍的推理加速,同时保持了较高的准确率。

https://arxiv.org/pdf/2306.10759

https://github.com/qitianwu/SGFormer

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

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

相关文章

fasterRCNN模型实现飞机类目标检测

加入会员社群,免费获取本项目数据集和代码:点击进入>> 关于python哥团队 我们是一个深度学习领域的独立工作室。团队成员有:中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等,曾在腾讯、百度、德勤等担任算法工程师…

13.面试算法-字符串常见算法题(二)

1. 字符串反转专题 我们知道反转是链表的一个重要考点,反转同样是字符串的重要问题。常见问题也就是在LeetCode中列举的相关题目: 【1】LeetCode344. 反转字符串:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符…

【多维动态规划】64. 最小路径和(面试真题+面试官调整后的题目)

64. 最小路径和 难度:中等 力扣地址:https://leetcode.cn/problems/minimum-path-sum/description/ 1. 原题以及解法 1.1 题目 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和…

Redis——redispluspls库list及set类型相关接口使用

文章目录 list 类型相关接口lpush和lrangerpushlpop和rpopblpop和brpopllen set 类型相关接口sadd和smemberssismemberscardspopsinstersinterstore list 类型相关接口 lpush和lrange void lrange_lpush(sw::redis::Redis& redis){std::cout<<"lpush 和 lrang…

Windows控制台中文乱码怎么解决?(nes,一些exe窗口程序)

当我们打开一些Window窗口程序出现中文乱码时&#xff0c;可以像这样设置一下&#xff01; 1、打开 设置-->时间和语言-->语言和区域 2、 管理语言设置 3、更改系统区域设置 4、取消勾选 Beta版&#xff1a;UTF-8 5、效果演示 这下中文不乱码了&#xff01;

多维系统下单点登录之生产实践(2种方案3种实践)

1、基于 Cookie 跨域与分布式 Session 的技术实践 1、XXL-SSO 整体价格 2、实现原理剖析 首次请求 第二次请求 跨域请求 注销流程 3、案例演示 首次登陆跳转至统一认证中心 访问&#xff1a;http://xxlssoclient1.com:8081/ 登陆成功&#xff0c;写入 Cookie&#…

MySQL record 06 part

事务、存储过程 事务&#xff1a; MySQL的同步&#xff0c;同步是指 together done&#xff0c;要么一起前进&#xff0c;要么一起后退的意思。 注意&#xff0c;回滚 rollback 对已经提交 commit 的数据是无效的&#xff0c;也就是说&#xff0c;只能对没有被提交 commit …

【iOS】KVC的学习

【iOS】KVC的学习 文章目录 【iOS】KVC的学习前言KVC定义KVC设值KVC取值KVC使用keyPathKVC处理异常处理nil异常 KVC的一些应用修改动态的设置值实现高阶的消息传递 小结 前言 笔者简单学习了有关与KVC的相关内容&#xff0c;这里写一篇博客简单介绍一下相关内容。 KVC 定义 KV…

saas收银系统源码

1. 线下门店多样化收银 ①门店有社区小店、也会有大店&#xff0c;甚至还会有夫妻店&#xff0c;同时还要有Windows版和安卓版&#xff0c;需满足不同门店的收银需求。 ②支持Windows收银、安卓收银、无人自助收银、聚合码收银等&#xff0c;支持ai智能称重、收银称重一体机等…

『功能项目』QFrameWorkBug拖拽功能【66】

我们打开上一篇65QFrameWork道具栏物品生成的项目&#xff0c; 本章要做的事情是实现物品的拖拽功能 修改脚本&#xff1a;UISlot.cs 实现接口后编写脚本&#xff1a; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; namespace QFramework {publi…

Netty+HTML5+Canvas 网络画画板实时在线画画

采用Html5的canvas做前端画画板&#xff0c;发送数据到后端Netty服务&#xff0c;实时转发笔迹数据&#xff0c;在线实时同步画笔轨迹&#xff0c;单击绿色小方块&#xff0c;保存画板的图片 页面&#xff1a; <!-- index.html --><!DOCTYPE html> <html> …

[Linux]:信号(下)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;Linux学习 贝蒂的主页&#xff1a;Betty’s blog 1. 信号的阻塞 1.1 基本概念 信号被操作系统发送给进程之后&#xff0c;进程…

机器学习05-聚类算法(python)SC(轮廓系数)详解

# 导入必要的库 from sklearn.cluster import KMeans # 导入 KMeans 聚类算法 import matplotlib.pyplot as plt # 导入 matplotlib 用于绘图 from sklearn.datasets import make_blobs # 导入 make_blobs 用于生成模拟数据 from sklearn.metrics import silhouette_score …

react:组件通信

组件通信 父组件向子组件通信 function App() {return (<div><div>这是父组件</div><Child name"这是子组件" /></div>); }// 子组件 function Child(props) {return <div>{props.name}</div>; }props说明 props可以传…

浅谈计算机视觉的学习路径1

计算机视觉&#xff08;Computer Vision, CV&#xff09;是人工智能领域的一个重要分支&#xff0c;它的目标是使计算机能够像人类一样理解和处理图像和视频数据。 面向想要从事该方向的大学生&#xff0c;笔者这里给出以下是关于计算机视觉的学习路径建议&#xff1a; 简要了解…

Linux开发工具(git、gdb/cgdb)--详解

目录 一、Linux 开发工具分布式版本控制软件 git1、背景2、使用 git&#xff08;1&#xff09;预备工作——安装 git&#xff1a;&#xff08;2&#xff09;克隆远程仓库到本地&#xff08;3&#xff09;把需要提交的代码拷贝到本地仓库&#xff08;4&#xff09;提交本地仓库文…

一种新的电子邮件攻击方式:AiTM

新的攻击组利用合作伙伴组织之间的信任关系来绕过多重身份验证。 一种新的攻击方式开始出现&#xff0c;它利用合作伙伴组织之间的信任关系绕过多重身份验证。在一个利用不同组织之间关系的攻击中&#xff0c;攻击者成功地对四家或更多组织进行了商业电子邮件欺诈(BEC)攻击&…

VM-Ubantu中使用vscode头文件报错——解决办法

问题 系统中头文件明明存在但是却报错 解决方法 在报错的文件中点击&#xff0c;shift ctrl p选择Edit Configurations(JSON) 修改文件内容 原文件内容 修改之后的内容 {"configurations": [{"name": "Linux","includePath":…

计算机毕业设计推荐-基于python大数据的个性化图书数据可视化分析

&#x1f496;&#x1f525;作者主页&#xff1a;毕设木哥 精彩专栏推荐订阅&#xff1a;在 下方专栏&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; 实战项目 文章目录 实战项目 一、个性化图书数据可视化分析-项…

828华为云征文 | 云服务器Flexus X实例:开源项目 LangChain 部署,实例测试

目录 一、LangChain 介绍 二、部署 LangChain 2.1 安装 langchain 2.2 安装 langchain_community 2.3 安装 qianfan 三、实例运行 3.1 Chat Models 3.2 LLMs 3.3 Embedding Models 四、总结 本篇文章主要通过 Flexus云服务器X实例 部署开源项目 LangChain&#xff0c…