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

译者 | 高永祺

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

原文链接: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.mzph.cn/bicheng/22790.shtml

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

相关文章

智能推荐算法应用:如何提升淘宝在线扭蛋机用户购物体验

在淘宝的在线扭蛋机平台上,用户的购物体验至关重要。为了提升这一体验,我们引入了智能推荐算法,帮助用户发现他们可能感兴趣的扭蛋产品。这一技术的应用不仅提高了用户的购物效率,还大大增强了用户的购物乐趣。 一、智能推荐算法…

JWT快速入门

文章目录 概念基本概念JWT组成 JWT使用准备工作JWT演示 参考来源 概念 基本概念 JWT全称是JSON Web Tokens,它是一种通用的基于文本的消息传输格式。常作为用户进入Web系统的令牌 JWT组成 JWT由三段Base64编码组成,它们之间用.分隔,从左到…

洛谷 CF358B Dima and Text Messages 题解

思路 首先按照操作一和操作二得到一个没有进行操作三的字符串 s s s&#xff0c;再判断 s s s 是否是题目给定的字符串的子序列即可。 Code #include<iostream> using namespace std; signed main() {ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);int n,cnt…

spring 中 BeanPostProcessor 的调用时机

BeanPostProcessor 这个接口是所有后置处理器的父级接口&#xff0c;下面看看这个接口定义了哪几个方法&#xff1a; Nullable default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {return bean; } Nullable default Obje…

做抖音小店卖什么最赚钱?精准锁定爆款的技巧!新手商家必看

哈喽~我是电商月月 做抖音小店的核心就是选品&#xff0c;商品好&#xff0c;出单的几率就多&#xff0c;那么怎么选中一个好的商品&#xff0c;就是每个商家必须细琢的一个技巧&#xff01; 为了解答这个疑惑&#xff0c;今天月月就给大家介绍几个赚钱的类别&#xff0c;并教…

临界区保护

1. 临界区的保护实际应用中可能需要的场合: 调用公共函数的代码(不可重入函数) 读取或者修改变量(全局变量) 使用硬件资源(MCU的ram、flash、uart、spi、adc等) 对时序有精准要求的操作(I2C通讯) 某些用户不想被打断的代码(比如 printf 打印),串口接收的状态、接收…

力扣每日一题 6/5

3072.将元素分配到两个数组中 II [困难] 题目&#xff1a; 给你一个下标从 1 开始、长度为 n 的整数数组 nums 。 现定义函数 greaterCount &#xff0c;使得 greaterCount(arr, val) 返回数组 arr 中 严格大于 val 的元素数量。 你需要使用 n 次操作&#xff0c;将 nums 的…

用增之Google GA4F

目录 简介 Google开发文档 开发提炼(走过的坑) DDL代码环节 1、深层链接简介 2、assetlinks.json发布 3、 测试deeplink 4、完成以上操作步骤DDL的前置工作已经做好,在已安装app的情况,所有打开app的链路已经走通,最后就是Firebase 来接收ddl

semaphore | 使用web界面的ansible来批量运维 linux、windows主机

Ansible 的现代化 UI &#xff0c;可以轻松管理和运行 Ansible playbook&#xff0c;功能强大&#xff0c;操作简单&#xff0c;支持中文。 文章目录 一、系统功能说明二、系统安装2.1 直接安装2.2 docker 安装 三、系统使用3.1 建立存储库3.2 编写代码3.3 建立主机配置3.3 建立…

C++课程设计杭电题目(下)

2076.夹角有多大(题目已修改,注意读题) 题目描述 http://acm.hdu.edu.cn/showproblem.php?pid2076 Problem Description 时间过的好快&#xff0c;一个学期就这么的过去了&#xff0c;xhd在傻傻的看着表&#xff0c;出于对数据的渴望&#xff0c;突然他想知道这个表的时针…

南卡、韶音、Cleer、漫步者开放式耳机好用吗?最强开放式耳机对比揭秘!

在挑选开放式耳机时&#xff0c;个人经验和实际需求应当优先考虑&#xff0c;而非盲目追随潮流或品牌效应。投资耳机前务必慎重&#xff0c;毕竟高价值商品若无法退换&#xff0c;难免造成遗憾。为了帮助大家做出更加明智的决策&#xff0c;我亲自出资购买并测试了市面上多款主…

重生奇迹mu魔剑士

1、魔剑士低端装备-SF10(升级)亚特传说等S-S(PK)亚特奔雷魔神等。评价:优越的极品双属卓越,极其高的性价比,造福穷人玩家的装。 2、中端装备(只适合力魔剑士)-SF10S-S天魔斗神评价&#xff1a;与低级亚特等一样不过由于成本,装备PVP属性等原因,价钱稍贵点。 3、中端套装(只适合…

使用Python实现深度学习模型:序列到序列模型(Seq2Seq)

序列到序列&#xff08;Seq2Seq&#xff09;模型是一种深度学习模型&#xff0c;广泛应用于机器翻译、文本生成和对话系统等自然语言处理任务。它的核心思想是将一个序列&#xff08;如一句话&#xff09;映射到另一个序列。本文将详细介绍 Seq2Seq 模型的原理&#xff0c;并使…

49.字母异位词分组

49.字母异位词分组 /*** param {string[]} strs* return {string[][]}*/ var groupAnagrams function(strs) {const map new Object;for(let str of strs){let arr new Array(26).fill(0);for(let s of str){arr[s.charCodeAt() - a.charCodeAt()];}//数组直接作为对象的键…

【Web API DOM08】事件汇总(加载事件、滚动事件)

一&#xff1a;页面加载事件 1 概述&#xff1a; 页面加载指加载外部资源&#xff08;如图片、外联CSS和JavaScript等&#xff09;加载完毕时&#xff0c;触发事件 2 load事件 监听页面所有资源加载完毕 //页面加载事件 //window 对象表示一个包含 DOM 文档的窗口 window.…

【阿里前端面试题】聊聊前端性能优化的方案,解决过什么样的性能问题?

大家好&#xff0c;我是“寻找DX3906”。每天进步一点。日积月累&#xff0c;有朝一日定会厚积薄发&#xff01; 前言&#xff1a; 前面已经和大家分享了4篇面试题&#xff1a; 《【阿里前端面试题】浏览器的加载渲染过程》 《【阿里前端面试题】客户端和服务器交互&#xff…

IO流----字节流

字节流 字节流&#xff1a;操作&#xff1a;文件字节输入输出流 &#xff1a;写入数据&#xff1a;读取数据&#xff1a;文件拷贝&#xff1a; 带缓冲区的字节输入输出流&#xff1a;拷贝文件&#xff1a;写入数据&#xff1a;读取数据: 深入 带缓冲区的字节输出流 &#xff1a…

Java线程池execute和submit的区别

前言 ThreadPoolExecutor提供了两种方法来执行异步任务&#xff0c;分别是execute和submit&#xff0c;也是日常开发中经常使用的方法&#xff0c;那么它俩有什么区别呢&#xff1f; 语义不同 首先是语义上的不同。execute声明在Executor接口&#xff0c;它接受一个Runnable…

【论文阅读】Point2RBox (CVPR’2024)

paper:https://arxiv.org/abs/2311.14758 code:https://github.com/yuyi1005/point2rbox-mmrotate

阿里云sls 采集日志安装记录

参考阿里云给的安装文档 阿里云安装Logtail组件 注意这里&#xff0c;选择地域&#xff0c;是中国地域选中国&#xff0c;海外选海外即可 按照文档继续下去 修改配置文件./alibaba-cloud-log-all/values.yaml 所有的操作完成后&#xff0c;去控制台配置 以上操作的前提是…