【论文阅读】GPT4Graph: Can Large Language Models Understand Graph Structured Data?

news2024/9/22 7:21:33

文章目录

  • 0、基本介绍
  • 1、研究动机
  • 2、准备
    • 2.1、图挖掘任务
    • 2.2、图描述语言(GDL)
  • 3、使用LLM进行图理解流程
    • 3.1、手动提示
    • 3.2、自提示
  • 4、图理解基准
    • 4.1、结构理解任务
    • 4.1、语义理解任务
  • 5、数据搜集
    • 5.1、结构理解任务
    • 5.2、语义理解任务
  • 6、实验
    • 6.1、实验设置
    • 6.2、结构理解任务的结果
      • 6.2.1、输入设计对最终结果有重要影响。
      • 6.2.2、角色转换通常会提高绩效
      • 6.2.3、例子对图形理解有影响
      • 6.2.4、外部知识的地位很重要。
    • 6.3、语义理解任务的结果
      • 6.3.1、结点分类的结果
      • 6.3.2、图分类的结果
  • 7、讨论

0、基本介绍

  • 作者:Jiayan Guo, Lun Du, Hengyu Liu
  • 文章链接:GPT4Graph: Can Large Language Models Understand Graph Structured Data? An Empirical Evaluation and Benchmarking
  • 代码链接:GPT4Graph: Can Large Language Models Understand Graph Structured Data? An Empirical Evaluation and Benchmarking

通过使用自然语言描述图并向LLM提供文本描述,直接应用LLM来解决图问题,但是忽视了重要的结构信息。

1、研究动机

 大语言模型,例如ChatGPT,已经成为生成式人工智能(AGI)不可或缺的一部分,已经在自然语言处理任务上表现出优秀的性能,但是,图数据,他是生活中普遍存在同时也是AGI重要的组成部分,关于LLM在图结构数据上的性能的研究却很少。

 本文中,通过实验评估LLM在理解图结构数据的能力——在各种各样的结构和语义相关的任务上评估LLM在图结构数据理解的能力。目标是建立一个全面的比较,以显示LLM在理解图结构数据的能力。

生成式人工智能是一种可以自主产生文字、图像、音乐、视频等多种形式的人工智能,它可以模仿人类的创造力和想象力,甚至超越人类的能力。

2、准备

2.1、图挖掘任务

 图挖掘任务是指从图结构化数据中提取有价值和可操作信息的过程。一些图挖掘任务包括节点分类、链接预测和图分类。

2.2、图描述语言(GDL)

 图描述语言是一种用于定义或表示图结构化数据的形式语言或符号,它为描述图中的元素和关系提供了标准化的语法和语义。图形描述语言使图形的创建、操作和解释能够以一致的和机器可读的方式进行。GRL提供了一种定义图结构、指定节点和边属性以及对图执行查询和操作的方法。例如,图可以由边列表或邻接列表表示,从而提供关于图的结构的两个不同的视角。边列表根据其各个连接来定义图,而邻接列表根据其相邻节点来描述每个节点。

3、使用LLM进行图理解流程

 对于图数据,首先生成他们的图描述语言(GDL),然后使用图提示处理程序将用户查询和GDL结合形成LLM的输入,LLM执行推理并为用户生成答案。在推理期间,LLM可以生成中间输出,该中间输出应当由提示处理器处理以形成到LLM的新输入。

使用LLM进行图理解的框架
在这里插入图片描述

3.1、手动提示

 图问题上的手动提示是利用相似的图表示提示大语言模型(LLM)以获得需要的输出。

 它需要将传统得文本输入转化为图表征(GDL)。通过使用这些图形式数据作为输入,可以向LLM提供有关图全面的和丰富的上下文信息。

 其他手动提示方法包括增加格式解释,使LLM更好地理解格式;增加作用提示,使LLM更好地理解特定任务。此外,还可以改变问题和外部输入之间的输入顺序,并添加示例来利用上下文学习能力。最近新提出的思想改变提示也可以用于增强LLM的多步推理能力。

3.2、自提示

 由于给定图有时包含较少的信息或冗余的信息,LLM可以通过自提示从输入中获得更多的上下文信息或消除冗余信息。因为图数据有复杂的结构和关系,为LLM生成有效的用于图任务的提示仍然是一个挑战。

但仍有几种方法可用于图任务上的自提示:
(1)上下文总结
LM可以通过提取关键特征(如重要节点、边或子图)来生成给定图的摘要。生成的摘要可以作为后续图形相关问题或任务的提示。此外,基于节点和边等重要元素,我们可以使用LLM来总结它们的上下文(邻域)信息,以形成邻域感知的文本特征。
(2)形式说明
 有时候人类很难给予输入图形格式的完整描述。为了使LLM获得更多的输入图的上下文信息,我们可以让LLM自己生成格式解释。

 通过利用这些self-prompting策略,LLM可以促进对图的理解和操作,促进图形任务上的推理和学习。

self-prompting图解:
在这里插入图片描述

4、图理解基准

4.1、结构理解任务

(1)图大小检测
 闻如其名,这个任务是来评估LLM是否能够辨别所给图大小的能力,其中大小是指图中存在的结点和边的数量。LLM应该准确地确定这些指标。
 尽管这是对LLM提出的一个挑战,但是结点和边的数量至关重要,它能使LLM能够将相应的信息置于上下文中。
(2)度检测

 这项任务评估LLM有没有能力理解图中结点的上下文相关性。结点的度,是结点重要性和其连接稀疏性的指示器——这是任务的关键。
基于图文本和补充信息,LLM必须弄清楚所给结点的邻居数量。节点的度是各种中心性度量(如度中心性和聚类系数)的基础,强调了任务在理解节点局部结构方面的重要性。

(3)边检测

 基于度检测的基础上,该任务进一步探索了LLM对结点局部结构的理解。模型必须能够识别给定结点的相邻结点,这对于九三距离和识别连接模式等复杂的图挖掘活动至关重要。这项任务的掌握意味着LLM的先进的图形分析所需的基本方面的理解。

(4)属性检索
 此任务测试LLM检索有关节点的相关详细信息的能力,例如节点的属性,这些属性在定义其特征时起着关键作用。例如,LLM可能需要检索特定属性,如论文标题或作者性别。这项任务的成功突出了LLM理解和检索基本节点相关信息的能力。
(5)直径计算
 这个任务要求LLM计算图的直径。直径是任何两个节点之间最长的最短路径,它为图的整体连通性和可达性提供了有价值的见解。直径的成功计算展示了LLM对图的结构的把握及其分析图的总体特征的能力。
(6)聚类系数计算
 在这个任务中,LLM需要计算图的聚类系数,这是一个衡量图中节点聚集在一起的程度的指标。因此,该任务提供了一种评估LLM对本地连接模式的理解以及它评估图内聚类程度的能力。此外,还测试了LLM的推理能力,因为计算CC有几个步骤

4.1、语义理解任务

(1)知识图谱问题分类
 这个任务衡量LLM在回答与知识图有关的问题方面的熟练程度。知识图将数据组织成结构化格式,体现实体,属性和关系。任务的成功取决于LLM推理和理解底层图形结构以提供准确答案的能力,从而展示其语义理解以及从KG中导航和提取信息的能力。

(2)图查询语言生成。

 该任务测量LLM生成满足用户需求的图查询语言的能力。这些语言,包括GQL和Cypher,允许用户从图形数据库中提取特定的信息。查询响应用户的信息需求,LLM展示了其对用户意图的理解和查询公式的精确性。

(3)结点分类
 该任务要求LLM基于节点的属性或结构特征对图中的节点进行分类。LLM给出了标记的节点示例及其相关类,并且它必须通过应用从标记数据中学习的模式来正确预测未见过节点的类。节点分类的成功展示了LLM从示例中概括并应用其对节点属性和结构的理解来准确分类新节点的能力。

(4)图分类。
 此任务将节点分类的范围扩展到包含整个图。LLM给出了图,每个图都标记有特定的类别或类,并且期望通过使用从标记的示例中学习的模式来准确地对未见过的图进行分类。该任务评估LLM整体理解和应用图的结构和基于属性的特征的能力,从而实现对新图的准确分类。

5、数据搜集

5.1、结构理解任务

 选择了两个著名的引文网络:obgn-arxiv and Aminer . 从每个图中随机抽取100个初始种子节点,并应用深度优先搜索(DFS)算法对以这些节点为中心的2跳子图进行采样。每个子图由大约10-20个节点和40条边组成

 为了评估语言模型的性能,我们在这些子图中分配了以下任务:度检测,属性检索,聚类,大小检测和直径估计。

 对于前三个任务,模型为子图中的每个节点提供结果。然而,对于大小检测和直径估计,我们计算每个整个子图的结果。我们处理的另一个任务是边缘检测。在这里,我们将图中的每条边视为正样本,并随机选择图中不存在的边作为负样本。然后,我们要求语言模型据子图所提供的信息,确定给定的边是否属于子图。

5.2、语义理解任务

 两个广泛使用的数据集:Wiki,一个时间知识图,和MetaQA,一个多跳电影知识库。
对于节点分类,我们利用了ogbn-arxiv数据集中可用的原始标签。我们从测试集中随机抽取了100个节点,并让语言模型根据节点的标题、摘要和来自其k-hop邻居的文本信息等信息来预测它们的标签。
 此外,探索了使用MetaQA数据集生成图形查询语言。我们根据该数据集构建了一个图形库,并提示语言模型生成相应的图查询语言(GQL),如Cypher。然后使用Neo4j引擎执行生成的GQL语句。通过这些实验,我们旨在评估语言模型在与图结构数据的结构和语义理解相关的各种任务中的性能。

6、实验

6.1、实验设置

 评估了最近占主导地位的LLM模型InstructGPT-3,使用版本text-davinci-001、text-davinci-002和text-davinci 003。除非另有说明,在所有实验中使用text-davinci-003。温度设置为0.3以控制输出的变化。

不同任务的输入设置

在这里插入图片描述

6.2、结构理解任务的结果

6.2.1、输入设计对最终结果有重要影响。

 输入的设计在确定模型的性能中起着至关重要的作用。通过仔细考虑输入数据的安排和组织,我们可以极大地影响模型理解手头任务的结构方面的能力。微调输入设计可以进一步提升性能并对结构更准确的理解。

6.2.2、角色转换通常会提高绩效

 研究结果表明,结和角色提示技术一般会提高模型的性能在结构理解任务。通过明确引导模型关注图中的特定角色或关系,我们使其能够提取更有意义的见解并做出更准确的预测。角色提示是一种有效的机制,可以捕捉图结构的细微差别,并利用这些信息来提高理解。

6.2.3、例子对图形理解有影响

 类似于以前的研究,表明在大型语言模型(LLM)中的例子的效用,发现,例子在图形理解场景中也有一定程度的积极影响。然而,忽略特定的例子和依赖零射击学习方法有时会产生更强大的结果。这种现象可以归因于图本身存在丰富的固有信息,这使得模型能够在不需要明确示例的情况下掌握结构的复杂性。在某些情况下,示例可能会引入噪声、偏差或不完整的信息,从而阻碍对模型的整体理解。

6.2.4、外部知识的地位很重要。

 我们研究了外部知识对图理解的影响,如问题,陈述和例子。比较外部知识在图输入之前或之后的放置,我们观察到将外部知识放置在图之前通常会导致更好的性能。将外部知识放在图之前提供了额外的上下文信息,使模型能够更好地理解它需要处理的特定图。相反,将图定位在外部知识之后可能会阻碍模型有效利用相关信息的能力,从而可能降低性能。

 这些发现表明了深思熟虑的输入设计的重要性,角色提示技术的潜在好处,在图形理解的例子的有限影响,以及定位外部知识的最佳性能的意义。了解这些因素可以指导未来的研究,并为结构理解任务开发更有效的模型提供信息。

6.3、语义理解任务的结果

6.3.1、结点分类的结果

 对于OGBN-ARXIV上的节点分类,“oneshot + 1-hop邻域上下文摘要”模型在所有变体中具有最高的准确度,为60.00。值得注意的是,增加了2跳邻域上下文摘要(“2-hop”)的模型显示出比1跳模型更好的性能,这表明扩大上下文范围有助于提供有价值的信息。此外,该模型的表现优于思维改变(cot)模型,这表明cot策略在这项任务中可能没有那么有效。这些结果表明,潜在的改进领域,特别是对于“零样本-cot”和“改变顺序”的战略,这并不一定提高性能。尽管如此,实验提供了有价值的见解不同的策略在节点分类任务的性能。

6.3.2、图分类的结果

 结果表明,自增广对提高GC的性能是有效的。实验结果表明,self-format explanation 和 self-summarization等自增强技术可以丰富原始图的上下文,使LLM更容易完成任务。

7、讨论

  • 需要更多的研究来了解不同的输入设计和角色激励技术如何进一步提高绩效。
  • 鼓励研究人员研究为什么例子对于图理解不那么有效,并探索利用图中嵌入的丰富信息的替代策略
  • 外部知识配置的作用值得进一步探讨
  • 开发新的图增强方法来提高语义理解任务的性能。

 应该致力于将基于图的信息集成到LLM中,探索不同类型的图结构,并将LLM应用于其他领域。在未来,我们也可以考虑将LLM作为控制外部工具的使用,以更好地处理图结构化数据。

 未来的研究应该集中在开发和改进将图结构信息编码为大型语言模型可以有效理解和操作的格式的方法

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

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

相关文章

Spark面试题

1. spark core 1.简述hadoop 和 spark的不同点(为什么spark更快)♥♥♥ shuffle都是需要落盘的,因为在宽依赖中需要将上一个阶段的所有分区数据都准备好,才能进入下一个阶段,那么如果一直将数据放在内存中&#xff0c…

ARM多核调度器DSU

1. 背景 从A75开始,ARM提出了一个新的多核心管理系统单元,叫做DSU(DynamIQ Shared Unit)。DSU的核心功能是控制CPU内核,使其成簇Cluster使用,簇内每一个核心可以单独开关、调整频率/电压,能效表现更佳,甚至…

手动正则删除console.log

依赖删除的可以先出去了 先得删除箭头函数里的 正则匹配不能直接删,如这种箭头函数,得先全局改了 然后正则 console.log(.*?) 选中》空着〉全局替换 最后删除 // 因为有的 console.log在代码块原来就是被空着状态, 所以也得全局为空替…

正则表达式..

1.字符串的合法检验 现在有一个字符串验证码 我们需要检验其的合法性 什么条件才能够使得字符串合法呢?就是6-10个字符串长度 并且以字母开头 并且其中由字母、数字、下划线构成 那么我们可以先通过自定义的方式进行检验 public class Main {public static void m…

通过Konva.js实现canvas列表滚动

列表可以通过Konva.js中的Rect来实现,通过group可以丰富列表的内容 在滚动方面,可以通过vue的scroll方法,通过rect中的move方法来修改y值即可 我这里设置的是一个透明的盒子在想要滚动的canvas上,这样就可以实现直接滚动canvas列…

K8s(七)四层代理Service

Service概述 Service在Kubernetes中提供了一种抽象的方式来公开应用程序的网络访问,并提供了负载均衡和服务发现等功能,使得应用程序在集群内外都能够可靠地进行访问。 每个Service都会自动关联一个对应的Endpoint。当创建一个Service时,Ku…

springboot109新闻稿件管理系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的新闻稿件管理系统 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获…

SpringMVC下半篇之整合ssm

4.ssm整合 4.1.创建表 CREATE TABLE account (id int(11) NOT NULL AUTO_INCREMENT,name varchar(20) DEFAULT NULL,money double DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8;4.2.创建工程 4.3.pom.xml <?xml version"1.0" encoding&…

【图形学】颜色线性插值和Wu反走样算法

颜色线性插值 绘制一条颜色渐变的直线&#xff0c;直线上每一个点的颜色都来自端点颜色的线性插值。线性插值公式为 P ( 1 − t ) P s t a r t t P e n d P 是直线上任意一个点&#xff0c; P s t a r t 是直线的起点&#xff0c; P e n d 是直线的终点 对应直线上任意一点…

[flutter]GIF速度极快问题的两种解决方法

原因&#xff1a; 当GIF图没有设置播放间隔时间时&#xff0c;电脑上会默认间隔0.1s&#xff0c;而flutter默认0s。 解决方法一&#xff1a; 将图片改为webp格式。 解决方法二&#xff1a; 为图片设置帧频率&#xff0c;添加播放间隔。例如可以使用GIF依赖组件设置每秒运行…

低代码技术杂谈

一、探讨低代码的定义 “Low-Code”是什么&#xff1f;身为技术人员听到这种技术名词&#xff0c;咱们第一反应就是翻看维基百科 或者其他相关技术论文&#xff0c;咱们想看维基百科的英文介绍&#xff1a; A low-code development platform (LCDP) provides a development env…

Docker(七)使用网络

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; Docker 中的网络功能介绍 Docker 允许通过外部访问容器或容器互联的方式来提供网络服务。 一、外部访问容器 容器中可以运行一些网络应用&…

数学建模常见算法的通俗理解(1)

目录 1.层次分析法&#xff08;结合某些属性及个人倾向&#xff0c;做出某种决定&#xff09; 1.1 粗浅理解 1.2 算法过程 1.2.1 构造判断矩阵 1.2.2 计算权重向量 1.2.3 计算最大特征根 1.2.4 计算C.I.值 1.2.5 求解C.R.值 1.2.6 判断一致性 1.2.7 计算总得分 2 神经…

go语言(八)---- map

map的声明方式有以下三种。 package mainimport "fmt"func main() {//第一种声明方式//声明map1是一个map类型&#xff0c;key是String&#xff0c;value是Stringvar myMap1 map[string] stringif myMap1 nil {fmt.Println("myMap1 是一个空map")}//在使…

多测师肖sir___ui自动化测试po框架(升级)

ui自动化测试po框架&#xff08;升级&#xff09; po框架 一、ui自动化po框架介绍 &#xff08;1&#xff09;PO是Page Object的缩写&#xff08;pom模型&#xff09; &#xff08;2&#xff09;业务流程与页面元素操作分离的模式&#xff0c;可以简单理解为每个页面下面都有一…

java数据结构与算法刷题-----LeetCode59. 螺旋矩阵 II

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 解题思路 初始&#xff0c;top行执向第一行&#xff0c;bottom行指向最后一…

积分梳状滤波器CIC原理与实现

CIC&#xff08;Cascade Intergrator Comb&#xff09;&#xff1a;级联积分梳状滤波器&#xff0c;是由积分器和梳状滤波器级联而得。滤波器系数为1&#xff0c;无需对系数进行存储&#xff0c;只有加法器、积分器和寄存器&#xff0c;资源消耗少&#xff0c;运算速率高&#…

TypeScript语法总结

JavaScript 与 TypeScript 的区别 TypeScript 是 JavaScript 的超集&#xff0c;扩展了 JavaScript 的语法&#xff0c;因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改&#xff0c;TypeScript 通过类型注解提供编译时的静态类型检查。 TypeScript 可处理已…

GitHub 13.7k star,一款让Windows和macOS瘦身减肥实用工具,免安装+开源+性能高

GitHub 13.7k star&#xff0c;一款让Windows和macOS瘦身减肥实用工具&#xff0c;免安装开源性能高 大家好&#xff01;我是老码农。 今天给大家推荐一款&#xff1a;让Windows和macOS操作系统瘦身减肥的实用工具&#xff0c;czkawka。 这款工具主要干啥事呢&#xff1f;说…

Latex绘图

排查Latex报错 “Command \csubfigure already defined” 这个可以通过添加如下命令&#xff1a; \usepackage{subfig} \usepackage{subfloat} ..... \begin{figure*}[h] \centering \subfloat[subfloat title]{ \label{fig:subfig:a} \includegraphics[scale0.7]{Figs/.....…