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

文章目录

  • 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作为控制外部工具的使用,以更好地处理图结构化数据。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VB6.0报错:操作符AddressOf使用无效

VB调试,尝试调用DLL中的方法并带有回调函数,报错提示: 操作符AddressOf使用无效 代码: Private Sub btnScan_Click()... WCHBLEStartScanBLEDevices AddressOf callBackEnd Sub This function is called from the dll Public Fu…

蓝桥杯-最少刷题数

📑前言 本文主要是【算法】——最少刷题数的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句&#x…

IaC基础设施即代码:Terraform 创建 docker 网络与容器资源

目录 一、实验 1.环境 2.Terraform查看版本 3.Linux主机安装Docker 4.Terraform使用本地编译(In-house)的Providers 5.Docker-CE 开启远程API 6. Linux主机拉取镜像 7.Terraform 创建docker 网络资源 8.Terraform 创建docker 容器资源 一、实验 …

Tensorflow2.0笔记 - 不使用layer方式,简单的MNIST训练

本笔记不使用layer相关API,搭建一个三层的神经网络来训练MNIST数据集。 前向传播和梯度更新都使用最基础的tensorflow API来做。 import tensorflow as tf from tensorflow import keras from tensorflow.keras import datasets import numpy as npdef load_mnist(…

Modern C++ 条件变量

今天无意中看到一篇帖子&#xff0c;关于条件变量的&#xff0c;不过仔细看看发现它并达不到原本的目的。 程序如下&#xff0c;读者可以先想想他的本意&#xff0c;以及有没有问题&#xff1a; #include <iostream> #include <thread> #include <condition_v…

无刷电机学习-原理篇

一、无刷电机的优点 使用一项东西首先就要明白为什么要使用它&#xff0c;使用它有什么优点。与有刷电机相比无刷电机除了控制繁琐几乎全是优点。 1、应用范围广&#xff1a;家用电器&#xff08;冰箱空调压缩机、洗衣机、水泵等&#xff09;、汽车、航空航天、消费品工业自动…

STM32之002--软件安装 Keil

文章目录&#xff1a; 一、安装 Keil 二、注册 三、安装芯片支持包 一、安装 Keil 重点 1&#xff1a; 安装时&#xff0c;不能使用中文路径&#xff0c;否则无法正常使用!! 重点 2&#xff1a; 不要安装 V5.36 及以上的版本&#xff0c;其默认AC6编译器&#xff0c…

(二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真

一、创建工作空间 mkdir catkin_ws cd catkin_ws mkdir src cd src 二、下载wpr_simulation源码 git clone https://github.com/6-robot/wpr_simulation.git 三、编译 ~/catkin_make 目录下catkin_makesource devel/setup.bash 四、运行 roslaunch wpr_simulation wpb_s…

priority_queue的使用与模拟实现(容器适配器+stack与queue的模拟实现源码)

priority_queue的使用与模拟实现 引言&#xff08;容器适配器&#xff09;priority_queue的介绍与使用priority_queue介绍接口使用默认成员函数 size与emptytoppush与pop priority_queue的模拟实现构造函数size与emptytoppush与pop向上调整建堆与向下调整建堆向上调整建堆向下调…

ssh: connect to host github.com port 22: Connection refused

ssh: connect to host github.com port 22: Connection refused 问题现象 本文以Windows系统为例进行说明&#xff0c;在个人电脑上使用Git命令来操作GitHub上的项目&#xff0c;本来都很正常&#xff0c;突然某一天开始&#xff0c;会提示如下错误ssh: connect to host gith…

通讯录项目的实现以及动态顺序表(基于顺序表)

首先我们要知道什么是顺序表: 顺序表的底层结构是数组,对数组的封装,实现了常⽤的增删改查等接⼝,顺序表分为静态顺序表(使⽤定⻓数组存储元素)和动态顺序表(按需申请) 静态顺序表缺点: 空间给少了不够⽤,给多了造成空间浪费 拿出来我之前以及写好了的顺序表的代码:…

LeetCode、162. 寻找峰值【中等,最大值、二分】

文章目录 前言LeetCode、162. 寻找峰值【中等&#xff0c;最大值、二分】题目及类型思路及代码思路1&#xff1a;二分思路2&#xff1a;寻找最大值 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿…

微信小程序(七)navigator点击效果

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.默认效果 2.无效果 3.激活效果 源码&#xff1a; index.wxml //如果 <navigator url"/pages/logs/logs">跳转到log页面&#xff08;默认&#xff09; </navigator><navigator url&q…

ctfshow命令执行(web29-web52)

目录 web29 web30 web31 web32 web33 web34 web35 web36 web37 web38 web39 web40 web41 web42 web43 web44 web45 web46 web47 web48 web49 web50 web51 web52 web29 <?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match…

Rust基础语法1

所有权转移&#xff0c;Rust中没有垃圾收集器&#xff0c;使用所有权规则确保内存安全&#xff0c;所有权规则如下&#xff1a; 1、每个值在Rust中都有一个被称为其所有者&#xff08;owner&#xff09;的变量&#xff0c;值在任何时候只能有一个所有者。 2、当所有者离开作用域…

MacBookPro怎么数据恢复? mac电脑数据恢复?

使用电脑的用户都知道&#xff0c;被删除的文件一般都会经过回收站&#xff0c;想要恢复它直接点击“还原”就可以恢复到原始位置。mac电脑同理也是这样&#xff0c;但是“回收站”在mac电脑显示为“废纸篓”。 如果电脑回收站&#xff0c;或者是废纸篓里面的数据被清空了&…

【GitHub项目推荐--微软开源的可视化工具】【转载】

说到数据可视化&#xff0c;大家都很熟悉了&#xff0c;设计师、数据分析师、数据科学家等&#xff0c;都需要用各种方式各种途径做着数据可视化的工作.....当然许多程序员在工作中有时也需要用到一些数据可视化工具&#xff0c;如果工具用得好&#xff0c;就可以把原本枯燥凌乱…

springcloud Client端cloud-consumer-order80

文章目录 简介建立module修改pom修改yml主启动类把公共代码写在一个mudule 里面测试 简介 这个是和之前的8001相互配合端口测试 这里的80的用户测试端口。 代码在&#xff1a;GitHub 上&#xff1a;https://github.com/13thm/study_springcloud/tree/main/days2 建立module …

C++无锁队列的原理与实现

目录 1.无锁队列原理 1.1.队列操作模型 1.2.无锁队列简介 1.3.CAS操作 2.无锁队列方案 2.1.boost方案 2.2.ConcurrentQueue 2.3.Disruptor 3.无锁队列实现 3.1.环形缓冲区 3.2.单生产者单消费者 3.3.多生产者单消费者 3.4.RingBuffer实现 3.5.LockFreeQueue实现 …

django admin后台中进行多个手机号解密消耗时间对比

需求&#xff1a; 1 手机号在数据库中是使用rsa方式加密存储&#xff0c;后台查看中需要转换为明文&#xff0c;因为需要解密多个手机号&#xff0c;所以在后台查看中消耗时间3秒&#xff0c;希望通过多线程&#xff0c;多进程&#xff0c;异步方式来缩短时间 相关注意点&…