图结构的稀疏变换器:EXPHORMER框架

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

尽管图变换器在理论上具有强大的表达能力,但是它们在扩展到大型图时面临着巨大的挑战。这一挑战主要源于其全局注意力机制的二次方时间复杂度,这不仅限制了其在大型图数据集上的应用,也使得其在内存和计算资源上的需求变得难以承受。

为了解决这一问题,一种名为EXPHORMER的框架应运而生。旨在构建强大且可扩展的图变换器。该框架的核心是一种基于虚拟全局节点和扩展器图的稀疏注意力机制,这些机制的数学特性,如谱扩张、伪随机性和稀疏性,使得图变换器的复杂度仅与图的大小成线性关系,同时保持了理论上的优越性质。

方法

稀疏注意力机制通过一个有向图H来建模,包含n个节点。如果存在一个从节点i到节点j的有向边,则表示这两个节点之间有直接的交互,即注意力机制将计算它们之间的内积。具体为一个变换器块可以被视为一个函数,它处理每个节点的d维嵌入,将R^d×n映射到R^d×n。注意力机制的输出由下式给出:

其中,X_{NH(i)}表示只包含节点i的邻居的子矩阵。这种注意力机制的计算量由图H的边数决定。标准的变换器块由注意力机制和前馈层组成。

图1 展示了EXPHORMER的各个组成部分。EXPHORMER架构是基于扩展器图的稀疏注意力机制,构建了一个交互图H,包括局部邻域注意力(即输入图的边)、度数为3的扩展器图、单个虚拟节点的全局注意力,以及将所有组件合并成一个交互图来决定注意力模式。

  1. 扩展器图注意力:使用随机扩展器图的边作为注意力模式。这些图具有小直径、谱近似完全图、良好的混合属性等理论特性,使得它们能够在不连接所有节点对的情况下,传播输入图中距离较远的节点对之间的信息。

  2. 全局注意力:在交互图中添加少量虚拟节点,每个节点都连接到所有非虚拟节点。这些节点充当全局“存储池”,具有全变换器的通用近似功能。

  3. 局部邻域注意力:通过允许每个节点v只关注其在G中的直接邻居,来模拟局部交互,即H包含输入图的边E及其反向,引入O(|E|)交互边。

扩展器图是完全图的稀疏近似。例如,一个d-regular的ϵ-expander图在n个顶点上的谱近似了完全图Kn。谱近似能够保持图的切割结构,因此基于扩展器边的稀疏注意力机制保留了全注意力机制的谱特性。

扩展器图的另一个属性是随机游走混合良好。这意味着从任意初始分布在顶点上的随机游走,在经过对数级步骤后,将接近于在所有节点上均匀分布。

尽管稀疏变压器模型的通用近似属性并不像密集变压器模型那样直接,但任何连续函数f : [0, 1]^d×|V| → R^d×|V|都可以被EXPHORMER网络使用全局注意力或适当版本的扩展器注意力近似到任意期望的精度。

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

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

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

实验

实验涉及多种图数据集,包括图像基础的图数据集(CIFAR10、MNIST、PascalVOC-SP、COCO-SP)、合成的SBM数据集(PATTERN、CLUSTER)、代码图数据集(MalNet-Tiny)和分子数据集(Peptides-Func、Peptides-Struct、PCQM-Contact)。还展示了EXPHORMER在处理超过5000个节点的更大图上的能力,包括引文网络(CS、Physics、ogbn-arxiv)和共同购买网络(Computer、Photo)。

实验中,EXPHORMER与MPNNs一起在GraphGPS框架下进行组合,构建图变换器模型。通过将注意力机制与消息传递方案相结合,并与适当的位置和结构编码一起使用。

表2 比较了在不同数据集上的注意力机制,包括EXPHORMER与其他稀疏变换器架构(BigBird和Performer)的性能,并与完整的变换器GPS模型进行了对比。结果显示,在四个数据集中,EXPHORMER模型优于GPS-BigBird和GPS-Performer模型,并在三个数据集上超越了GPS-Transformer模型,同时在第四个数据集上表现具有竞争力。

表1 展示了在五个数据集上的实验结果,包括四个来自Benchmarking GNNs集合的数据集和代码图数据集MalNet-Tiny。EXPHORMER在这些数据集上实现了最先进的性能,并在其余数据集上与最佳单一模型精度保持竞争力。所有数据集中,EXPHORMER模型的准确性都优于基于完全(密集)变换器的GraphGPS模型,并且也优于基于SAN模型和多种MPNN基线的模型。

表3 展示了在Long-Range Graph Benchmark(LRGB)中的实验结果,该基准由五个挑战性数据集组成,测试模型学习输入图中长期依赖关系的能力。结果显示,EXPHORMER在五个数据集中的三个上超越了GraphGPS,并在剩余两个数据集中与最佳单一模型结果保持竞争力。

表4 展示了在不同注意力机制下模型在归纳图数据集上的准确性。在大型数据集上,如ogbn-arxiv,EXPHORMER模型能够处理包含超过160,000个节点和超过一百万条边的单个大图。EXPHORMER可以用于更大的图,具有数十万个节点。

表5 展示了完整模型与移除每个组件后的模型的比较结果。这些实验表明,局部邻域一直是EXPHORMER的一个有效补充,但在虚拟节点和扩展器图之间,有时其中一个会导致性能下降。这一问题在附录D中有进一步讨论。

综合这些实验结果,可以得出以下结论:(a) EXPHORMER在多种数据集上实现了最先进的性能;(b) EXPHORMER在参数更少的情况下,一致性地优于其他稀疏注意力机制,并经常超越密集变换器;(c) EXPHORMER成功地允许GraphGPS克服内存瓶颈,扩展到更大的图(超过10,000个节点),同时仍然提供有竞争力的性能。

https://arxiv.org/pdf/2303.06147v2

GitHub - hamed1375/Exphormer: Exphormer: Sparse Transformer for Graphs

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

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

相关文章

Docker 里面按照ifconfig

1. 进入Docker 容器内部 docker exec -it xxx bash2. 安装 net-tools iputils-ping apt-get update && apt-get install -y net-tools apt-get update && apt-get install -y iputils-ping 3. 执行ifconfig 执行ping

Nacos注册中心(Nacos安装,快速入门,多级存储,负载均衡,环境隔离,配置管理,热更新,集群搭建,nginx反向代理)

Nacos注册中心 1. Nacos安装 (windows) 1.1 官网下载 网址:https://github.com/alibaba/nacos/releases/tag/1.4.1 这里下载nacos1.4.1的Windows版本为例1.2 解压到本地 注: 解压到非中文目录 nacos默认端口号:8848,可在配置文件properties中修改1.3 启动nacos 在G:\Sp…

鸿蒙OpenHarmony【轻量系统内核通信机制(互斥锁)】子系统开发

互斥锁 基本概念 互斥锁又称互斥型信号量,是一种特殊的二值性信号量,用于实现对共享资源的独占式处理。 任意时刻互斥锁的状态只有两种,开锁或闭锁。当任务持有互斥锁时,该互斥锁处于闭锁状态,这个任务获得该互斥锁…

了解CRM销售自动化:类型、优势、策略和工具

对于疲于手动追踪潜在客户和管理客户关系的销售人员而言,销售自动化提供了一种有效的解决方案,它能够简化这些繁琐的任务,从而使销售团队能够专注于其核心优势——销售本身。 销售自动化是什么? 销售自动化是指运用软件工具自动…

高德地图JS API AMap.MouseTool绘制

fang 🤖 作者简介:水煮白菜王 ,一位资深前端劝退师 👻 👀 文章专栏: 高德AMap专栏 ,记录一下平时在博客写作中,总结出的一些开发技巧✍。 感谢支持💕💕&#…

TPDO触发条件如何满足?

在上一期中,我们了解到TPDO(传输过程数据对象)的传输类型有很多种:同步周期性传输、RTR(远程传输请求)以及异步制造商特定事件等。这些类型的触发条件主要分为三种:同步(SYNC&#x…

Java 多态(难)

1. 即同一方法可以根据发送对象的不同而采用多种不同的行为方式。 2.一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多。 举例说明:新建两个类,Person类和Student类,Student类继承Person类&#xff1a…

Xinstall助力App推广,下载自动绑定提升转化率

在App推广和运营的过程中,我们经常会遇到一些痛点。比如,用户下载App后需要手动进行一系列繁琐的操作才能完成注册和绑定,这不仅影响了用户体验,还降低了转化率。那么,有没有一种方法能够简化这个过程,提升…

VsCode汉化教程(新手教程)

刚用VsCode的可能不知道怎么汉化,这里出个给新手的教程。 一.下载汉化插件 1.点击左侧边栏中的扩展 2.下载简体中文汉化插件(搜索chinese就行) 二.切换语言 很多人认为下完成就汉化成功了,实际上需要自己切换,这个插…

苹果撤诉NSO,竟因惧怕情报泄露?!VMware vCenter惊现高危漏洞!20万台设备遭感染!新型物联网僵尸网络肆虐全球! | 安全周报0920

新闻1:苹果撤诉NSO,竟因惧怕情报泄露?! 苹果公司已提交动议,“自愿”撤销对商业间谍软件供应商NSO集团的诉讼,理由是风险形势的转变可能导致关键“威胁情报”信息的暴露。 这一进展最初由《华盛顿邮报》于…

C++模拟实现list:list、list类的初始化和尾插、list的迭代器的基本实现、list的完整实现、测试、整个list类等的介绍

文章目录 前言一、list二、list类的初始化和尾插三、list的迭代器的基本实现四、list的完整实现五、测试六、整个list类总结 前言 C模拟实现list:list、list类的初始化和尾插、list的迭代器的基本实现、list的完整实现、测试、整个list类等的介绍 一、list list本…

电脑怎么录屏?超实用免费电脑录屏软件推荐与教程

在数字化时代,电脑录屏已成为我们工作、学习和娱乐中不可或缺的一部分。无论是录制教学视频、游戏直播、会议记录还是软件操作演示,一款好用的录屏软件都能大大提升我们的效率。今天,我们就来介绍五款超实用的电脑录屏软件,并附上…

【prefect】python任务调度工具 Prefect | 可视化任务工具 | Python自动化的终极武器 | 高效数据管道管理

一、产品介绍 1、官方 Github https://github.com/PrefectHQ/prefect 2、官方文档 https://docs.prefect.io/3.0/get-started/index 3、Pgsql说明 正确的python链接pgsql如下: import psycopg2 from sqlalchemy import create_enginedef connect_with_psycopg2(…

Node.js官网无法正常访问时安装NodeJS的方法

目录 一、使用 nvm 进行安装二、通过阿里云开源镜像站进行安装 一、使用 nvm 进行安装 此时如果直接使用 nvm install 命令进行安装会报错: nvm install 16.14.0Could not retrieve https://nodejs.org/dist/latest/SHASUMS256.txt. Get “https://nodejs.org/dis…

对称加密算法使用示例

Demo包括以下对称加密算法组合 备注:XTS仅支持AES128和AES256,不支持AES192 from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes from cryptography.hazmat.primitives import cmac from cryptography.hazmat.primitives.…

MFC-基础架构

前言 各位师傅大家好,我是qmx_07,今天讲解MFC的基础架构 概述 介绍:MFC(Microsoft Foundation Classes)是微软公司提供的一个类库,用于在 Windows 操作系统下进行 C 应用程序开发MFC把Windows SDK API函…

解决:The play() request was interrupted by a call to pause().报错

前言: 最近在公司中实现进入页面之后点击单词直接播放音频的时候,发现音频并不会播放声音,并且控制台报错: 研究之后找到了解决方案,与小伙伴们进行分享 原因: 首先看这句话的意思: 在调用 …

红黑树构建模拟实现

目录 一.红黑树概述 二.红黑树的性质 ​编辑 三.构建红黑树模拟实现 插入新节点情况分析 情况一、cur为红色,parent为红色,grandfather为黑色,uncle存在且为红 情况二、cur为红色,parent为红色,grandfather为黑色…

VS运行程序时报错--无法定位程序输入点

发现问题: VS 在运行程序时,报错: 找到原因: 因为我在替换动态库的时候,只替换了lib库,没有替换运行目录下的dll库,运行时候的dll与程序中的lib库不对应。 替换库后就能解决这个问题。

PyTorch使用------自动微分模块

目录 🍔 梯度基本计算 1.1 单标量梯度的计算 1.2 单向量梯度的计算 1.3 多标量梯度计算 1.4 多向量梯度计算 1.5 运行结果💯 🍔 控制梯度计算 2.1 控制不计算梯度 2.2 注意: 累计梯度 2.3 梯度下降优化最优解 2.4 运行结果&#x1…