深度图变换器的新突破:DeepGraph

news2025/2/24 2:30:47

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

在图变换器领域,尽管其全局注意力机制在图结构数据处理上显示出了巨大潜力,但现有的图变换器模型却普遍较浅,通常不超过12层。这一现象引发了学者们对于“增加层数是否能进一步提升图变换器性能”的深入探讨。在北京大学和微软研究院的合作下,研究者们提出了一个关键问题:为何现有的图变换器在增加深度后,性能并未得到显著提升,甚至出现了性能瓶颈?通过深入分析,他们发现这一问题的核心在于全局注意力机制的“消失容量”,即随着模型深度的增加,图变换器越来越难以聚焦于图的关键子结构,从而限制了模型获取富有表现力特征的能力。图1展示了不同深度的图变换器在ZINC数据集上的性能。左侧展示了随着深度增加,基线模型的性能如何变化。右侧展示了不同深度下,模型对子结构的注意力容量。

为了解决这一问题,研究团队提出了一种名为DeepGraph的新型图变换器模型。该模型通过在编码表示中显式引入子结构标记,并在相关节点上应用局部注意力,以获取基于子结构的注意力编码。这种方法不仅增强了全局注意力对子结构的聚焦能力,还提升了表示的表达力,有效解决了随着图变换器深度增加时自注意力的局限性。

方法

DeepGraph模型提出的基于子结构标记的局部注意力方法与直接替换全局注意力不同,DeepGraph在保留节点间全局注意力的同时,为子结构引入了局部注意力,实现了全局与局部编码的更好平衡。这种方法首先对图的子结构进行采样,然后将这些子结构编码为标记,并在这些子结构上实施局部注意力。

子结构被分为两类:包含局部特征的邻居(如图2跳邻居和随机游走邻居)和代表图拓扑特征的几何子结构(如图2中的环、路径、星形等特殊子结构)。为了确保计算的可行性,模型在每次编码时对子结构进行采样。图2展示了这一过程,其中子结构通过图工具包进行有效匹配,并缓存以供重用。该框架首先通过子结构采样策略从图中提取关键子结构,然后利用子结构标记编码将这些子结构转换为模型可以理解的标记形式。最后,在局部注意力机制的辅助下,模型能够专注于与子结构相关的节点,从而获得更丰富的图表示。

输入嵌入包括节点标记嵌入和子结构标记嵌入,分别由节点特征编码器和子结构编码器独立编码。子结构标记通过排列不变的结构编码直接编码子结构邻接矩阵。为了减少可能的排列组合数量,采用了深度优先搜索(DFS)算法,并在每一步中根据节点的度进行排序。公式:定义了子结构标记编码器,其中通过DFS采样代替了池化操作。

在子结构标记添加后,在子结构及其对应节点上应用局部注意力,通过在自注意力模块中添加掩码M来实现,其中掩码元素可以是0或负无穷大,从而在自注意力矩阵中实现稀疏性。公式:展示了如何通过定义掩码来引导模型对子结构标记和对应节点的局部注意力,其中子结构标记仅对相应节点应用局部注意力。这种注意力机制的结合不仅增强了模型对子结构的聚焦能力,还提升了子结构表示的区分度和表达能力。

DeepGraph模型通过在保留全局注意力的同时引入基于子结构的局部注意力,有效地解决了大模型在处理图数据时对关键子结构特征捕捉不足的问题。通过子结构采样、编码和局部注意力的实施,模型能够更准确地学习和表示图数据的复杂结构特征。

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

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

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

实验

实验验证旨在解答几个关键问题:DeepGraph与其他变换器在流行基准测试中的表现如何?随着深度的增加,DeepGraph的性能是否提高?DeepGraph是否能够缓解注意力容量缩小的问题?以及模型各个部分对整体性能的影响如何?

实验在四个流行的图数据集上进行验证,包括PCQM4M-LSC、ZINC、CLUSTER和PATTERN,这些数据集被广泛用于图变换器研究。涵盖了从分子属性预测到节点分类的不同任务。

表1展示了DeepGraph与现有最先进方法在图回归和节点分类任务上的比较。结果显示,即使是12层的DeepGraph模型也在多个数据集上超越了基线模型。随着模型深度的增加,性能持续改善,48层的DeepGraph在所有数据集上都优于基线模型,证明了增加深度的有效性。

图3展示了DeepGraph模型与通过不同深度变换方法增强的现有最先进(SOTA)方法的性能比较。这些方法包括对Graphormer和SAT模型进行深度扩展,并通过融合方法(fusion method)和重注意力方法(reattention method)进行优化。结果表明,无论在哪个数据集上,DeepGraph都能显著优于这些基线模型,即使在模型深度增加的情况下也能保持性能提升,证明了其在深层图变换器中的有效性和优越性。

实验还通过可视化方法展示了DeepGraph与深层基线模型在ZINC数据集上的注意力容量。图1(右)展示了结果,表明DeepGraph模型的注意力容量在所有层中都保持较高,这表明基于子结构的局部注意力是防止注意力缺陷的有效方法。另外子结构标记的容量远高于基于节点计算的注意力容量,这证明了使用子结构标记对子结构进行编码的好处。

消融研究见表2。通过在ZINC和CLUSTER任务上进行消融研究来验证模型的有效性,移除了局部注意力、子结构编码和deepnorm,以观察它们的影响。结果表明,没有局部注意力,性能显著下降,证明了所提方法的有效性。另外子结构编码也起到了关键作用,强调了结构信息的重要性。最后,deepnorm通过稳定优化过程也有助于模型性能,特别是对于48层模型。

表3展示了在ZINC数据集上对DeepGraph模型进行的敏感性分析,特别是针对不同类型的子结构。这项研究探讨了仅使用几何子结构或邻居子结构,以及同时使用两者时,模型性能的变化。分析结果表明,虽然所有配置在一定程度上都能提升性能,但结合使用几何和邻居子结构时,模型表现最佳。这强调了在图变换器中同时考虑局部和几何子结构的重要性,以及DeepGraph模型在灵活利用不同子结构信息方面的能力。

实验结果证明了DeepGraph模型在图数据任务中的有效性和优越性,特别是在处理更深层模型时的性能提升。

论文地址:https://arxiv.org/pdf/2303.00579v1

项目地址:https://github.com/zhao-ht/deepgraph

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

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

相关文章

Vue3 多组复选框重置(v-if 强制刷新组件)

通过v-if指令强制刷新&#xff0c;当v-if的值发生变化时&#xff0c;组件都会被重新渲染一遍。因此&#xff0c;利用v-if指令的特性&#xff0c;可以达到强制刷新组件的目的。 先用个简单例子 --> 项目中使用 <template><comp v-if"refresh"></c…

普罗米修斯监控

目录 概念 部署方法 1. 二进制&#xff08;源码包&#xff09; 2. 部署在k8s集群当中&#xff0c;用pod形式部署 概念 prometheus是开源的系统监控和告警。在k8s分布式的容器化管理系统当中&#xff0c;一般都是搭配prometheus来进行监控。它是服务监控系统&#xff0c;也…

运动规划第二节【深蓝学院,高飞】笔记

文章目录 Graph Search BasisConfiguration SpaceConfiguration Space ObstacleWorkspace and Configuration Space Obstacle Graph and Search MethodGraph Search OverviewGraph TraversalBreadth First Search (BFS)Depth First Search (DFS)versus Heuristic SearchGreedy …

武汉大学:如何做好高校电子邮件账号安全防护

上个世纪七十年代&#xff0c;电子邮件占据了互联网的前身ARPANET上流量的75%&#xff0c;是最主要的应用。随着互联网的发展&#xff0c;电子邮件在全面普及后&#xff0c;被各种各样的即时通讯软件抢走了不少风头。然而&#xff0c;其始终还是被社会所认可的主流网络通讯渠道…

网络高级day01(Modbus 通信协议)

目录 1》modbus分类 1> Modbus RTU 2> Modbus ASCLL 3> Modbus TCP 2》Modbus TCP的特点 3》Modbus TCP协议 1> 报文头&#xff08;一共7个字节&#xff09; 2> 寄存器 3> 功能码 4> 数据 01H 功能码分析 05H 功能码分析 0FH 功能码分析 1》modbus…

git reflog 和 git log 的详解和区别

文章目录 1. git log 介绍基本用法&#xff1a;输出内容&#xff1a;常见选项&#xff1a;git log 的局限性&#xff1a; 2. git reflog 介绍基本用法&#xff1a;输出内容&#xff1a;git reflog 输出字段&#xff1a;常见选项&#xff1a;主要用途&#xff1a;示例&#xff1…

Rasa对话模型——做一个语言助手

1、Rasa模型 1.1 模型介绍 Rasa是一个用于构建对话 AI 的开源框架&#xff0c;主要用于开发聊天机器人和语音助手。Rasa 提供了自然语言理解&#xff08;NLU&#xff09;和对话管理&#xff08;DM&#xff09;功能&#xff0c;使开发者能够创建智能、交互式的对话系统。 1.2…

JavaScript 基础 - 第20天_Node.js模块化

文章目录 Day02_Node.js模块化目录学习目标01.模块化简介目标讲解小结 02.ECMAScript标准-默认导出和导入目标讲解小结 03.ECMAScript标准-命名导出和导入目标讲解小结 04.包的概念目标讲解小结 05.npm软件包管理器目标讲解小结 06.npm安装所有依赖目标讲解小结 07.npm全局软件…

计算机领域CCF推荐期刊A/B/C类全目录

计算机领域CCF推荐期刊 最新在检的【自动化与控制系统】的64本SCI期刊最新影响因子、期刊分区、自引率 CCF-A类 CCF-B类 CCF-C类 更多期刊解析干货&#xff0c;移步公众号【Unionpub学术】 计算机领域CCF推荐期刊A/B/C类全目录&#xff08;附excel下载&#xff09;

3.使用 VSCode 过程中的英语积累 - Selection 菜单(每一次重点积累 5 个单词)

前言 学习可以不局限于传统的书籍和课堂&#xff0c;各种生活的元素也都可以做为我们的学习对象&#xff0c;本文将利用 VSCode 页面上的各种英文元素来做英语的积累&#xff0c;如此做有 3 大利 这些软件在我们工作中是时时刻刻接触的&#xff0c;借此做英语积累再合适不过&a…

多线程篇六

多线程篇六 如笔者理解有误欢迎交流指正~⭐ 什么是单例模式&#xff1f; 单例模式是最常见的 设计模式. 顾名思义&#xff0c;单例模式指的就是单个实例的模式.&#xff08;针对某些类只能使用一个对象的场景【如MySQL、JDBC、DataSource】&#xff09; 设计模式 设计模式是…

CentOS7.9环境上NFS搭建及使用

Linux环境NFS搭建及使用 1. 服务器规划2. NFS服务器配置2.1 主机名设置2.2 nfs安装2.2.1 repo文件替换2.2.2 NFS服务安装 2.3 nfs配置2.4 服务查看2.5 资源发布2.6 配置nfs服务开机自启2.7 端口开放 3.应用服务器配置3.1 主机名设置3.2 nfs安装3.2.1 repo文件替换3.2.2 NFS服务…

Vue学习记录之五(组件/生命周期)

一、组件 在每一个.vue文件可以看作是一个组件&#xff0c;组件是可以复用的&#xff0c;每个应用可以看作是一棵嵌套的组件树。 在Vue3中&#xff0c;组件导入以后即可直接使用。 二、组件的生命周期 生命周期就是从诞生(创建)到死亡(销毁) 的过程。 Vue3 组合式API中(se…

Java中的事务管理

1.1 事务管理 1.1 事务回顾 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位。事务会把所有的操作作为一个整体&#xff0c;一起向数据库提交或者是撤销操作请求。所以这组操作要么同时成功&#xff0c;要么同时失败。 怎么样来控制这组操作&#xff0c;让这组操…

力扣最热一百题——合并两个有序链表

目录 题目链接&#xff1a;21. 合并两个有序链表 - 力扣&#xff08;LeetCode&#xff09; 题目描述 示例 提示&#xff1a; 解法一&#xff1a;比大小放入 Java写法&#xff1a; 运行时间以及复杂度 C写法&#xff1a; 运行时间以及复杂度 总结 题目链接&#xff1a…

Qt/C++事件过滤器与控件响应重写的使用、场景的不同

在Qt/C中&#xff0c;事件过滤器和控件响应重写是两种用于捕获和处理鼠标、键盘等事件的机制&#xff0c;它们的用途和使用场景不同&#xff0c;各有优劣。下面详细介绍它们的区别、各自适用的场景、以及混合使用的场景和注意事项。 1. 事件过滤器&#xff08;Event Filter&…

JavaScript 可选链操作符:深度解读与实战应用( JS 可选链操作符)

前言 在JavaScript开发中&#xff0c;我们经常会遇到访问嵌套对象属性的需求。然而&#xff0c;处理深层嵌套对象时&#xff0c;属性可能为 undefined 或 null&#xff0c;直接访问这些属性时会抛出错误。为了解决这种问题&#xff0c;JavaScript在ES2020中引入了一项新特性—…

104.游戏安全项目-基址的技术原理-基址的本质

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;易道云信息技术研究院 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要盲目相信…

【初阶数据结构】一文讲清楚 “堆” 和 “堆排序” -- 树和二叉树(二)(内含TOP-K问题)

文章目录 前言1. 堆1.1 堆的概念1.2 堆的分类 2. 堆的实现2.1 堆的结构体设置2.2 堆的初始化2.3 堆的销毁2.4 添加数据到堆2.4.1 "向上调整"算法 2.5 从堆中删除数据2.5.1 “向下调整”算法 2.6 堆的其它各种方法接口函数 3. 堆排序3.1 堆排序的代码实现 4. TOP-K问题…

主机和Docker容器之间的文件互传方法汇总

Docker渐渐成为前端的一个工具&#xff0c;它像一个通用包装&#xff0c;可以把各种环境包裹其中&#xff0c;从而实现跨设备的兼容。使用的过程中&#xff0c;往往会需要将本地的文件和docker容器内部的文件互传&#xff1a;将主机的文件传递给容器内&#xff0c;让里面的工具…