图领域首个通用框架来了!入选ICLR’24 Spotlight,任意数据集、分类问题都可搞定

能不能有一种通用的图模型——

它既能够根据分子结构预测毒性,又能够给出社交网络的朋友推荐?

或者既能预测不同作者的论文引用,还可以发现基因网络中的人类衰老机制?

你还真别说,被ICLR 2024接收为Spotlight的“One for All(OFA)”框架就实现了这个“精髓”。

该研究是由圣路易斯华盛顿大学陈一昕教授团队、北京大学张牧涵以及京东研究院陶大程等研究者共同提出的。

作为图领域首个通用框架,OFA实现了训练单一GNN模型即可解决图领域内任意数据集、任意任务类型、任意场景的分类任务。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

图领域首个通用框架来了!入选ICLR'24 Spotlight,任意数据集、分类问题都可搞定

具体如何实现,以下为作者投稿。

图领域通用模型设计面临三大难

设计一个通用的基础模型来解决多种任务是人工智能领域的一个长期目标。近年来,基础大语言模型(LLMs)在处理自然语言任务方面表现出色。

然而,在图领域,虽然图神经网络(GNNs)在不同的图数据中都有着不俗的表现,但如何设计与训练一个能同时处理多种图任务的基础图模型依然前路茫茫。

与自然语言领域相比,图领域的通用模型设计面临着许多独有的困难。

首先,区别于自然语言,不同的图数据有着截然不同的属性与分布。

比如分子图描述了多个原子如何通过不同的作用力关系形成不同的化学物质。而引用关系图则描述了文章与文章之间相互引用的关系网。

这些不同的图数据很难被统一在一个训练框架下。

其次,不同于LLMs中所有任务都可以被转化成统一的下文生成任务,图任务包含了多种子任务,比如节点任务,链路任务,全图任务等。

不同的子任务通常需要不同的任务表示形式与不同的图模型。

最后,大语言模型的成功离不开通过提示范式而实现的上下文学习(in-context learning)。

在大语言模型中,提示范式通常为对于下游任务的可读文字描述。

但是对于非结构化且难以用语言描述的图数据,如何设计有效的图提示范式来实现in-context learning依然是个未解之谜。

用“文本图”概念等来解决

下图给出了OFA的整体框架:

图领域首个通用框架来了!入选ICLR'24 Spotlight,任意数据集、分类问题都可搞定

具体而言,OFA的团队通过巧妙的设计来解决上述所提到的三个主要问题。

对于不同图数据属性与分布不同的问题,OFA通过提出文本图(Text-Attributed Graph, TAGs) 的概念来统一所有图数据。利用文本图,OFA将所有的图数据中的节点信息与边信息用统一的自然语言框架来描述,具体如下图所示:

图领域首个通用框架来了!入选ICLR'24 Spotlight,任意数据集、分类问题都可搞定
图领域首个通用框架来了!入选ICLR'24 Spotlight,任意数据集、分类问题都可搞定

接着,OFA通过单一LLM模型对所有数据中的文本进行表示学习得到其嵌入向量。

这些嵌入向量将作为图模型的输入特征。这样,来自不同领域的图数据将被映射到相同的特征空间,使得训练一个统一的GNN模型可行。

OFA收集了9个来自不同领域,不同规模的图数据集,包括引用关系图,Web链接图,知识图谱,分子图, 如下图所示:

图领域首个通用框架来了!入选ICLR'24 Spotlight,任意数据集、分类问题都可搞定

此外,OFA提出Nodes-of-Interest(NOI)子图与NOI提示节点 (NOI Prompt Node)来统一图领域内不同的子任务类型。这里NOI代表参与到相应任务的一组目标节点。

比如,在节点预测任务中,NOI是指需要预测的单个节点;而在链路任务中,NOI包括需要预测链路的两个节点。NOI子图是指围绕着这些NOI节点扩展出的一个包含h-hop邻域的子图。

然后,NOI提示节点为一个新引入的节点类型,直接连接到所有的NOI上。

猫眼课题宝 猫眼课题宝

5分钟定创新选题,3步生成高质量标书!

猫眼课题宝 85 查看详情 猫眼课题宝

重要的是,每个NOI提示节点包含了当前任务的描述信息,这些信息以自然语言的形式存在,并和文本图被同一个LLM所表示。

由于NOI中节点所包含的信息在经过GNNs的消息传递后将被NOI提示节点所收集,GNN模型仅需通过NOI提示节点来进行预测。

这样,所有不同的任务类型将拥有统一的任务表示。具体实例如下图所示:

图领域首个通用框架来了!入选ICLR'24 Spotlight,任意数据集、分类问题都可搞定

最后,为了实现图领域的in-context learning,OFA引入统一的提示子图。

在一个有监督的k-way分类任务场景下,这个提示子图包含了两类节点:一类是上文提到的NOI提示节点,另一类是代表k个不同类别的类别节点 (Class Node)。

每个类别节点的文本将描述此类别的相关信息。

NOI提示节点将会单向连接到所有类别节点上。通过这个方式构建好的图将被输入进图神经网路模型进行消息传递与学习。

最终,OFA将对每个类别节点分别进行二分类任务,并取概率最高的类别节点作为最终的预测结果。

由于类别信息存在于提示子图中,即使遇到全新的分类问题,OFA通过构建相应的提示子图即可直接进行预测而无需任何微调,从而实现了零样本学习。

对于少样本学习场景,一个分类任务将包含一个query输入图和多个support输入图,OFA的提示图范式会将每个support输入图的NOI提示节点与其所对应的类别节点相连,同时将query输入图的NOI提示节点与所有类别节点相连。

后续的预测步骤与上文所述一致。这样每个类别节点将会额外得到support输入图的信息,从而在统一的范式下实现少样本学习。

OFA的主要贡献总结如下:

统一的图数据分布:通过提出文本图并用LLM转化文本信息,OFA实现了图数据的分布对齐与统一。

统一的图任务形式:通过NOI子图与NOI提示节点,OFA实现了多种图领域子任务的统一表示。

统一的图提示范式:通过提出新颖的图提示范式,OFA实现了图领域内的多场景in-context learning。

超强泛化能力

文章在所收集的9个数据集上对OFA框架进行了测试,这些测试覆盖了在有监督学习场景下的十种不同任务,包括节点预测、链路预测和图分类。

实验的目的是验证单一的OFA模型处理多任务的能力,其中作者对比使用不同LLM(OFA-{LLM})和每个任务训练单独模型(OFA-ind-{LLM})的效果。

比较结果如下表所示:

图领域首个通用框架来了!入选ICLR'24 Spotlight,任意数据集、分类问题都可搞定

可以看到,基于OFA强大的泛化能力,一个单独的图模型(OFA-st,OFA-e5,OFA-llama2-7b,OFA-llama2-13b)即能够在所有的任务上都具有与传统的单独训练模型(GCN, GAT, OFA-ind-st)相近或更好的表现。

同时,使用更强大的LLM可以带来一定的性能提升。文章进一步绘制了训练完成的OFA模型对于不同任务的NOI提示节点的表示。

可以看到不同的任务被模型嵌入到不同的子空间,从而使得OFA可以对于不同的任务进行分别的学习而不会相互影响。

在少样本以及零样本的场景下,OFA在ogbn-arxiv(引用关系图),FB15K237(知识图谱)以及Chemble(分子图)上使用单一模型进行预训练,并测试其在不同下游任务及数据集上的表现。结果如下:

图领域首个通用框架来了!入选ICLR'24 Spotlight,任意数据集、分类问题都可搞定
图领域首个通用框架来了!入选ICLR'24 Spotlight,任意数据集、分类问题都可搞定

可以看到,即使在零样本场景下,OFA依旧可以取得不错的效果。综合来看,实验结果很好的验证了OFA强大的通用性能以及其作为图领域基础模型的潜力。

更多研究细节,可参考原论文。

地址:https://www.php.cn/link/dd4729902a3476b2bc9675e3530a852chttps://github.com/LechengKong/OneForAll

以上就是图领域首个通用框架来了!入选ICLR’24 Spotlight,任意数据集、分类问题都可搞定的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/428265.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月7日 12:36:26
下一篇 2025年11月7日 12:37:42

相关推荐

  • 网页标题怎么设置?title标签应该放在哪里?

    网页标题由html中 区域内的标签定义,必须且只能出现在该位置;2. 设置标题需在内插入标签并填入文本,如“我的个人博客”;3. 撰写标题时应包含核心关键词但避免堆砌,控制在50-60字符内,确保独特性与吸引力,并与内容高度相关;4. 未设置或设置不当会导致用户体验差、seo效果差、社交媒体分享效果…

    2025年12月22日
    000
  • meta标签的用途是什么?网页元信息如何设置?

    设置meta标签需在html的 区域添加对应代码;2. 必设标签包括:防止乱码;3. 确保移动端正常显示;4. 提升搜索点击率;5. 控制页面是否被索引;6. 添加ogp标签如og:title、og:image等优化社交分享效果;7. 避免滥用keywords标签,因其已基本被搜索引擎忽略;8. 注…

    2025年12月22日 好文分享
    000
  • html的盒模型详解

    这次给大家带来html的盒模型详解,使用html盒模型的注意事项有哪些,下面就是实战案例,一起来看一下。 1.1. 盒的内容区的尺寸— content width和content height —取决于几个因素: –生成该盒的元素是否设置了’width’或&#82…

    好文分享 2025年12月21日
    000
  • JavaScript图算法实现_javascript复杂计算

    图算法在JavaScript中通过邻接表或矩阵表示,适用于社交网络、导航等场景,结合DFS、BFS、Dijkstra等算法可高效处理路径与关系问题。 图算法在JavaScript中能高效处理复杂关系和路径问题,尤其适合社交网络、地图导航、依赖分析等场景。虽然JavaScript不是专为数值计算设计的…

    2025年12月21日
    000
  • JavaScript 的算法中,深度优先搜索与广度优先搜索各有何适用场景?

    DFS适合探索所有路径、连通性及深度较大场景,BFS适合最短路径、层级遍历及目标较近情况,选择依据是问题是否要求最少步数或最短距离。 深度优先搜索(DFS)和广度优先搜索(BFS)是两种基础的图或树遍历算法,在 JavaScript 中常用于解决不同类型的路径、查找与结构问题。它们的核心区别在于搜索…

    2025年12月20日
    000
  • JS 树形结构操作指南 – 深度优先与广度优先遍历算法的应用场景

    DFS和BFS是JavaScript处理树形结构的核心遍历算法,DFS优先深入分支,适用于路径查找、序列化等场景,可用递归或迭代实现;BFS逐层扩展,适合层级渲染、最近节点查找,通常用队列实现;选择依据包括数据结构特征和具体需求,如深度、宽度、内存限制及访问顺序要求。 在JavaScript中处理树…

    2025年12月20日
    000
  • 如何实现自定义的迭代器和可迭代对象,以及这些特性如何简化复杂数据结构的操作?

    自定义迭代器和可迭代对象通过实现__iter__和__next__方法,使数据结构能被for循环遍历,封装复杂逻辑,支持惰性求值、内存优化及多种遍历方式;生成器以更简洁的方式实现相同功能,适用于简单或一次性迭代场景,而类实现更适合需复杂状态管理或多策略遍历的情况。 自定义迭代器和可迭代对象,本质上为…

    2025年12月20日
    300
  • 什么是并查集?并查集的典型应用场景

    并查集通过维护一个森林结构来高效处理集合的合并与查询问题,其核心操作为find和union。find操作用于确定元素所属集合的根节点,并通过路径压缩优化,将查找路径上的所有节点直接连接到根,从而提升后续查询效率;union操作用于合并两个不同集合,通常结合按秩或按大小合并的策略,即将较小树的根连接到…

    2025年12月20日
    000
  • 图的定义是什么?JS如何表示图结构

    图在JavaScript中常用邻接表表示,适合稀疏图和动态操作,邻接矩阵适用于顶点固定且边密集的场景,边列表则用于特定算法;实际应用如社交网络、导航和推荐系统均依赖图结构。 图,简单来说,就是由一些“点”(我们称之为顶点或节点)和连接这些点的“线”(我们称之为边)构成的抽象结构。它最核心的作用是用来…

    2025年12月20日
    000
  • 什么是层序遍历?队列实现层序遍历

    层序遍历之所以重要,是因为它提供了一种广度优先的全局视角,适用于寻找最短路径、按层处理节点等问题,如求树的最小深度或判断完全二叉树;它不仅可用于二叉树,还可推广到图的遍历、网络爬虫、社交网络分析、迷宫求解等场景;与深度优先遍历相比,层序遍历使用队列实现,按层访问,空间复杂度与树的宽度相关,适合解决最…

    2025年12月20日
    000
  • 什么是JS数据结构?数据结构在编程中的作用

    JavaScript数据结构是组织和操作数据的核心方式,直接影响程序性能。除常用的数组和对象外,Set和Map提供去重与灵活键值对存储,队列、栈、链表、树和图等可基于JS实现,适用于不同场景。如Set优化查找去重,链表提升插入删除效率,图处理复杂关系。合理选择结构能显著提升性能,避免卡顿。前端中,D…

    2025年12月20日
    100
  • JS如何实现图的邻接表?图的表示方法

    答案:图的两种主要表示方法是邻接矩阵和邻接表。邻接矩阵使用二维数组存储边,适合稠密图,检查边存在性快(O(1)),但空间占用大(O(V²)),遍历邻居慢(O(V));邻接表使用Map或链表存储每个顶点的邻居,空间效率高(O(V+E)),遍历邻居高效(O(degree(V))),适合稀疏图和图遍历算法…

    2025年12月20日
    000
  • JS如何实现广度优先搜索?BFS的应用

    JS实现广度优先搜索(BFS)的核心在于使用队列逐层遍历图或树,结合visited集合避免重复访问,其典型应用包括无权图最短路径、社交网络连接、Web爬虫和迷宫求解,与DFS相比,BFS适合寻找最短路径和层级遍历,而DFS更适合遍历所有路径或处理深度较深的图,优化BFS的方法包括双向BFS、使用优先…

    2025年12月20日
    100
  • 什么是队列?JS中如何实现队列操作

    队列是一种先进先出(fifo)的数据结构,常用于任务调度、消息队列、bfs算法等场景;在javascript中可通过数组或对象实现,数组实现简单但出队操作性能较差(o(n)),推荐使用对象模拟指针(head和tail)实现o(1)时间复杂度的入队和出队操作;与栈(lifo)和链表(灵活存储结构)相比…

    2025年12月20日
    000
  • JS中如何实现图的遍历?DFS和BFS区别

    图的遍历在JS中通过DFS和BFS实现,DFS使用递归深入搜索,适用于路径存在性问题;BFS利用队列逐层扩展,适合最短路径求解;两者可应用于组件依赖分析、路由管理等前端场景。 JS中实现图的遍历,主要依赖深度优先搜索(DFS)和广度优先搜索(BFS)这两种算法。简单来说,DFS像走迷宫一样,一条路走…

    2025年12月20日
    100
  • javascript如何实现数组图结构

    在javascript中实现数组图结构的关键是选择邻接矩阵或邻接表来表示节点和边,并根据图的特性进行遍历与优化。1. 邻接矩阵使用二维数组表示图,适合稠密图,查找边的时间复杂度为o(1),但空间复杂度为o(n²);2. 邻接表使用对象或数组存储邻接节点,适合稀疏图,空间复杂度为o(n+m),但查找边…

    2025年12月20日 好文分享
    000
  • JS如何实现并查集?并查集的优化

    并查集的时间复杂度经过路径压缩和按秩合并优化后接近o(α(n)),其中α(n)是反阿克曼函数,在实际应用中可视为常数,因此可近似认为是o(1),未优化时最坏情况为o(n);其核心优化方法包括路径压缩和按秩合并;主要应用场景有判断图的连通性、kruskal算法中的环检测、动态连通性维护、图像处理中的区…

    2025年12月20日
    000
  • javascript数组如何实现分形结构

    要实现javascript数组的分形结构,核心是利用递归函数构建嵌套数组以模拟自相似性,1. 通过递归函数createfractalbranch生成多层嵌套数组,每个层级包含分支信息及子分支引用;2. 分形结构在数据可视化中的应用包括树状图、旭日图展示层级数据,网络图布局优化,分形艺术生成设计,以及…

    2025年12月20日
    000
  • 怎样用JavaScript实现图结构?

    用javascript实现图结构可以通过对象或数组表示。1) 创建无向图类,使用对象存储节点和边。2) 实现有向图,只需修改无向图的边添加方法。3) 实际应用中,需注意大规模图的性能优化和循环引用处理。这篇文章详细介绍了如何在javascript中实现无向图和有向图,并分享了在实际项目中使用图结构的…

    2025年12月20日
    000
  • Javascript 没有 LeetCode 的日子

    在上一篇文章中,我开始在 hackerrank 上练习算法,并向男友提起了此事。他建议我试试 leetcode,因为它无需使用 node.js,让我能专注于算法挑战本身。现在我已经在 leetcode 上练习两天了。 背景说明: 本文中关于平台的描述,类似于我在《系统设计》中那样,是将 Twitte…

    2025年12月19日 好文分享
    000

发表回复

登录后才能评论
关注微信