像图一样交流:为大语言模型编码图

news2025/1/19 20:34:11

译者 | 高永祺

单位 | 东北大学自然语言处理实验室

原文链接:https://blog.research.google/2024/03/talk-like-graph-encoding-graphs-for.html

1.作者介绍

Bahare Fatemi,谷歌蒙特利尔研究部门的研究科学家,专门从事图表示学习和自然语言处理,目前在WiML董事会任职,曾在NeurIPS、ICLR、AAAI和JMLR顶级人工智能会议和期刊上发表工作。

Bryan Perozzi,谷歌研究科学家,致力于数据挖掘、机器学习、图论和网络科学的交叉领域,特别关注局部图算法。

2.译者说

图(Graph)是一种传统的数据结构,用于描述对象之间的连接。大语言模型(LLM)技术正在崛起,但LLM主要在文本上进行训练。图与文本都可以用来表示信息,如何在这两种媒介之间架起桥梁,让LLM更好地理解图?作者深入探究了如何用文本将图的信息编码,故而论文题目称为Talk like a graph。

3.译文大纲

3.1 引言

3.2 将图转换为文本

3.3 分析与结果

3.4 结论

04 译文

4.1 引言

想象一下你周围的所有事物——你的朋友、厨房里的工具,甚至是你自行车的零件。它们以不同的方式相互连接。在计算机科学中,术语“图”被用来描述对象之间的连接。图由节点(对象本身)和边(连接两个节点,表示它们之间的关系)组成。现在,图随处可见。互联网本身就是一个由网站互联构成的巨大的图。

此外,人工智能领域显著进步——例如,能够在几秒钟内编写故事的聊天机器人,甚至能够解释医疗报告的软件。这些令人兴奋的进步很大程度上归功于大语言模型(LLM)。人们针对不同用途不断开发新的LLM技术。

由于图随处可见,而LLM技术正在崛起,发表在ICLR 2024 上的论文“Talk like a Graph: Encoding Graphs for Large Language Models”提出了一种方法,可以教会强大的LLM如何更好地利用图信息进行推理。图是一种组织信息的有效方式,但LLM主要是在常规文本上进行训练的。我们的目标是测试不同的技术,看看哪种效果最好。将图转换为LLM能理解的文本是一项非常复杂的任务。困难在于图结构本身的复杂性,其中有多个节点以及将它们连接起来的复杂网络。我们的工作研究了如何将图转换为LLM能理解的格式。我们还设计了一个称为GraphQA的基准,用于研究不同的方法处理不同的图推理问题,并展示如何表达与图相关的问题,使得 LLM能够解决图问题。我们发现,LLM在图推理任务上的性能在三个层次上都有不同:1)图编码方法,2)图任务本身的性质,3)所考虑的图的结构本身。这些发现启发我们如何为LLM最好地表示图。选择正确的方法可以使LLM在图任务上提升高达60%!

图片

图1 将图编码为文本的过程采用了两种不同的方法,并将文本和关于图的问题输入到LLM中

4.2 将图转换为文本

为了系统地找出将图转换为文本的最佳方法,我们首先设计了一个名为GraphQA的基准。可以将GraphQA看作一个专门用于评估LLM在图问题上表现的测试。我们希望了解LLM在不同设置下理解和解决涉及图的问题的能力。为了为LLM创建一个全面而现实的测试,我们不仅仅使用一种类型的图,而是使用一系列图,确保连接数量的广度。这主要是因为,不同类型的图会使解决此类问题更容易或更难。通过这种方式,GraphQA有助于暴露出LLM思考图时的偏见,整个测试更接近LLM可能在现实世界中遇到的真实情况。

图片

图2 我们使用LLM进行图推理的框架概览

GraphQA专注于与图相关的简单任务,例如检查边是否存在、计算节点或边的数量、查找连接到某特定节点的节点,以及检查图中是否存在循环。这些任务可能看起来很基础,但它们需要理解节点和边之间的关系。通过涵盖不同类型的挑战,从识别模式到创建新连接,GraphQA帮助模型学习如何有效地分析图。这些基本任务对于在图上进行更复杂的推理至关重要,例如在节点之间找到最短路径、检测社区或识别有影响力的节点。此外,GraphQA提供了丰富多样的数据集进行训练,包括使用各种算法生成随机图,如Erdős-Rényi[1]、无标度网络[2]、Barabasi-Albert模型[3]和随机块模型[4],以及更简单的图结构,如路径、完全图和星形图。

在处理图时,我们还需要找到询问图相关问题的方法使得LLM能够理解。提示启发法有不同的方式来做到这一点。让我们分解一下常见的方式:

Zero-shot(零样本):简单描述任务(“这个图中是否存在循环?”)并告诉LLM去完成。不提供示例。

Few-shot(少样本):这类似于在真正的测试之前给LLM提供一个小练习。我们提供几个示例图问题及其正确答案。

Chain-of-Thought(思维链):我们向LLM展示如何逐步分解问题并提供示例。目标是教会它在面对新图时生成自己的“思考过程”。

Zero-CoT(零样本思维链):类似于CoT,但是我们不提供训练示例,而是给LLM一个简单的提示,比如“让我们逐步思考”,以触发其自己的问题解决过程。

BAG(build a graph):这专门用于图任务。我们在描述中添加短语“让我们构建一个图...”,帮助LLM集中注意力在图结构上。

我们探索了不同的方法,将图转换为LLM可以处理的文本。我们的关键问题是:

节点编码:我们如何表示单个节点?测试的选项包括简单的整数、常见名称(人名、角色)和字母。

边编码:我们如何描述节点之间的关系?方法涉及括号表示法、诸如“是朋友”之类的短语,以及箭头等符号表示法。

系统地结合了各种节点和边编码,编码函数如下图所示:

图片

图3 用于通过文本对图进行编码的图编码函数的示例

4.3 分析与结果

我们进行了三个关键实验:一个是测试LLM处理图任务的能力,另外两个是了解LLM的大小和不同图的形状对性能的影响。所有的实验在GraphQA上进行。

4.3.1 LLM如何处理图任务

在这个实验中,我们测试了预训练的LLM处理识别连接、循环和节点度等图问题的能力。以下是我们的发现:

LLM表现不佳:在大多数基础任务中,LLM的表现并不比随机猜测好多少。

编码影响显著:如何将图表示为文本对LLM的性能有很大影响。对于大多数任务来说,“incident”编码在总体上表现优异。

我们的结果总结在以下图表中。

图片

图4基于不同图任务准确率对各种图编码函数的比较。从这个图表中得出的主要结论是,图编码函数的选择对结果影响显著

4.3.2 规模越大,通常越好

在这个实验中,我们想要看到LLM的大小(以参数量为衡量)是否影响它们处理图问题的能力。为此,我们在PaLM 2的XXS、XS、S和L尺寸上测试了相同的图任务。以下是我们的研究结果总结:

总的来说,更大的模型在图推理任务上表现更好。似乎额外的参数给了它们学习更复杂模式的空间。

奇怪的是,对于“边存在”任务(找出图中两个节点是否连接)来说,模型大小并不那么重要。

即使是最大的LLM在检查循环问题(确定图是否包含循环)上也无法始终击败简单的基准解决方案。这表明LLM在某些图任务上仍有改进的空间。

图片

图5 模型大小对于PaLM 2-XXS、XS、S和L在图推理任务中的影响

4.3.3 不同的图的形状是否会让LLM感到困惑

我们想知道图的“形状”(节点如何连接)是否会影响LLM解决问题的能力。以下的图是图的形状的不同示例。

图片

图6 使用GraphQA中的不同图形生成器生成的图样本。其中,ER、BA、SBM和SFN分别指Erdős–Rényi、Barabási–Albert、随机块模型和无标度网络

我们发现图的结构对LLM的性能有很大影响。例如,在询问循环是否存在的任务中,LLM在紧密相互连接的图上表现出色(循环在这里很常见),但在路径图上表现困难(从来不会出现循环)。有趣的是,提供一些混合示例可以帮助它适应。例如,在循环检查任务中,我们将一些包含循环的示例和一些不包含循环的示例作为我们提示中的少样本示例添加进去。类似的模式也出现在其他任务中。

4.4 总结

简而言之,我们深入研究了如何最好地将图表示为文本,以便LLM能够理解它们。我们发现了三个主要因素会产生影响:

将图转换为文本的方式:如何将图表示为文本显著影响了LLM的性能。在大多数任务中,“incident”编码在总体上表现出色。

任务类型:某些类型的图问题往往对LLM来说更难,即使从图到文本的转换很好。

图结构:令人惊讶的是,用于进行推理的图的“形状”(密集连接、稀疏等)会影响LLM的表现。

这项研究揭示了为LLM准备图的关键。正确的编码技术可以显著提高LLM在图问题上的准确性(从大约5%到超过60%的提升)。我们的新基准,GraphQA,将有助于推动这一领域的进一步研究。

[1] https://en.wikipedia.org/wiki/Erd%C5%91s%E2%80%93R%C3%A9nyi_model

[2] https://en.wikipedia.org/wiki/Scale-free_network

[3] https://en.wikipedia.org/wiki/Barab%C3%A1si%E2%80%93Albert_model

[4] https://en.wikipedia.org/wiki/Stochastic_block_model

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

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

相关文章

关于nginx的一些介绍

一、Nginx 简介 中文简介文档 二、Centos 安装 Nginx 2.1 安装编译工具及库文件 $ yum -y install make zlib zlib-devel gcc-c libtool openssl openssl-devel2.2 安装 pcre pcre 作用是 Nginx 支持 Rewrite 功能 $ cd /usr/local/src $ wget http://downloads.sourcef…

VUE3 学习笔记(12):对比Vuex与Pinia状态管理的基本理解

在组件传值中,当嵌套关系越来越复杂的时候必然会将混乱,是否可以把一些值存在一个公共位置,无须传值直接调用呢?VUEX应运而生,但是从VUE3开始对VUEX的支持就不那么高了,官方推荐使用Pinia。 Vuex配置 ST1:…

1.1 OpenCV随手简记(一)

OpenCV学习篇 OpenCV (Open Source Computer Vision Library) 是一个开源的计算机视觉库,它提供了大量的算法和函数,用于图像处理、计算机视觉和机器学习等领域。 1. OpenCV 简介 1.1 OpenCV 的起源和发展 OpenCV 项目始于 1999 年,由 In…

【C#学习笔记】属性和字段

文章目录 前言属性和字段的区别字段访问修饰符和关键字定义变量类型的定义变量命名变量的赋值 属性 不同的使用情况 前言 最近在工作的过程中常常会觉得自己在程序设计方面的能力还是有欠缺。例如一直对于变量的声明感到不足,在工作中为了图方便总是直接public定义…

计算机图形学入门06:视口变换

在前面的内容中,在MVP变换(模型变换,视图变换,投影变换)完后,所有的物体位置都变换到了[-1, 1]的标准立方体里,下一步要把物体绘制到屏幕(Screen)上。 1.什么是屏幕? 对于图形学来说把屏幕抽象的认为是一个…

解锁EasyRecovery2024专业版!仅需一键点击恢复数据即可完美数据恢复

EasyRecovery2024是一款专业的数据恢复软件,它能够帮助用户找回因各种原因丢失的数据。然而,有些用户为了节省开支,可能会寻找破解版,也就是所谓的crack版本。但是,使用破解版软件存在很多风险,包括但不限于…

开关电源基本原理2

目录 开关电源的传递函数 电感量的计算​编辑 Buck电路分析 Boost电路分析 Buck-Boost电路分析 开关电源的传递函数 占空比Dton/Tton/(tontoff) 由EtVontonVofftoff 得 (适用于所有拓扑) 表1.三种变换器的传递函数 电感量的计算 其中&#xf…

高效数据处理的前沿:【C++】、【Redis】、【人工智能】与【大数据】的深度整合

目录 1.为什么选择 C 和 Redis? 2.人工智能与大数据的背景 1.大数据的挑战 2.人工智能的需求 3.C 与 Redis 的完美结合 1.安装 Redis 和 Redis C 客户端 2.连接 Redis 并进行数据操作 高级数据操作 列表操作 哈希操作 4.与大数据和人工智能结合 5.实际应…

Vue3-Ref Reactive toRef toRefs对比学习、标签ref与组件ref

响应式数据: Ref 作用:定义响应式变量。 语法:let xxx ref(初始值)(里面可以是任何规定内类型、数组等)。 返回值:一个RefImpl的实例对象,简称ref对象或ref,ref对象的value属性是响应式的。 注意点&am…

AndroidStudio中debug.keystore的创建和配置使用

1.如果没有debug.keystore,可以按照下面方法创建 首先在C:\Users\Admin\.android路径下打开cmd窗口 之后输入命令:keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000 输入两次密码(密码不可见,打码处随便填写没关系) 2.在build…

【DSP】xDAIS算法标准

1. 简介 在安装DSP开发支持包时,有名为 “xdais_7_21_01_07”文件夹。xDAIS全称: TMS320 DSP Algorithm Standard(算法标准)。39条规则,15条指南。参考文档。参考文章。 2. 三个层次 3.接口 XDAIS Digital Media。编解码引擎。VISA(Video&…

PS的抠图算法原理剖析 1

以这个抠tree为例子 在PS里,操作过程是让你开启R G B三个通道 分别看一下 哪一个的对比最明显 上面的图片 树叶肯定B最少 天空B富裕,所以对比最明显的就用B通道 然后使用一些奇怪的函数,把texture.bbb这张图片变成黑白,纯黑纯白 那…

高通开发系列 - 借助libhybris库实现Linux系统中使用Andorid库

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 返回:专栏总目录 目录 概述Android代码下载和编译aarch64开发环境libhybris下载和编译libhybris测试验证调用库中的函数概述 我主要是基于…

Renesas MCU之定时器计数功能应用

目录 概述 1 功能介绍 1.1 时钟相关配置 1.2 应用接口 2 FSP配置Project参数 2.1 软件版本信息 2.2 配置参数 2.3 项目生成 3 定时器功能代码实现 3.1 定时器初始化函数 3.2 定时器回调函数 4 功能测试 5 参考文档 概述 本文主要介绍Renesas MCU的定时器功能的基…

图像背景去除工具:removebg

文章目录 简介面向不同用户价格 简介 removebg,就是remove background,是一款智能图片背景去除工具。 在免费使用时,用到的是本地的CPU。我第一次试用时,图片刚上传之后,电脑的帧率便直线下降,鼠标都拖不…

[Redis]Zset类型

Zset有序集合相对于字符串、列表、哈希、集合来说会有一些陌生。 它保留了集合不能有重复成员的特点,但与集合不同的是,有序集合中的每个元素都有一个唯一的浮点类型的分数(score)与之关联,着使得有序集合中的元素是可…

深度学习笔记:2.Jupyter Notebook

Jupyter Notebook 常用操作快捷键魔法指令_jupyter notebook快捷键调用函数-CSDN博客https://blog.csdn.net/qq_26917905/article/details/137211336?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171748112816800182160793%2522%252C%2522scm%2522%253A%25222014…

Redis 异常三连环

本文针对一种特殊情况下的Reids连环异常,分别是下面三种异常: NullPointerException: Cannot read the array length because “arg” is nullJedisDataException: ERR Protocol error: invalid bulk lengthJedisConnectionException: Unexpected end o…

产品经理的AI大模型实战指南:驾驭未来,引领创新

前言: 在数字化浪潮席卷全球的今天,AI大模型正以其惊人的潜力和速度,重塑着各行各业的生态。对于产品经理而言,如何在这场变革中站稳脚跟,甚至引领潮流,成为了一个亟待解决的问题。为此,我们特…

vue对图片进行裁剪

安装依赖&#xff1a; npm install cropperjs -save <template><div class"bigBox"><h3>预览</h3><!-- 裁剪按钮--><el-button click"sureSava">裁剪</el-button><el-button click"confirm">确…