Talk Like a Graph: Encoding Graphs for Large Language Models
基本信息
博客贡献人
鲁智深
作者
Bahare Fatemi, Jonathan Halcrow, Bryan Perozzi
摘要
图是表示和分析现实世界应用中复杂关系的强大工具,如社交网络、推荐系统和计算金融。对图进行推理对于推断复杂系统中实体之间的关系,以及识别隐藏的模式和趋势是必不可少的。尽管在使用自然文本的自动推理方面取得了显著进展,但对使用大语言模型(LLM)的图推理仍然是一个有待研究的问题。
这项工作对将图结构数据编码为文本以供LLM使用进行了首次全面研究。证明了LLM在图推理任务上的表现在三个基本层次上有所不同: (1)图编码方法,(2)图任务本身的性质,以及(3)考虑的图结构。这些新的结果为将图编码为文本的策略提供了有价值的见解。利用这些见解,文章说明了正确选择编码器如何可以将LLM的图推理任务的性能提高4.8%到61.8%。
目前LLM的设计和实现方法存在一些局限性:
(1) 依赖于非结构化文本,导致模型有时会错过明显的逻辑含义或产生不正确的结论。
(2) LLM从本质上受到了训练时间的限制,而且很难整合关于已发生变化的世界状态的“新鲜”信息。
图结构数据是表示信息的最灵活的方式之一,可能是解决这两个挑战的一个很有前途的解决方案
用于图推理的LLMs prompt
符号定义
设 f f f为生成式AI模型的接口函数,模型采用高维离散输入tokens ,并在同一token空间中产生输出( f : W ↦ W f:W↦W f:W↦W)。在不丧失一般性的情况下,将在整个工作中将 f f f称为预先训练的大型语言模型(LLM),但这里的讨论适用于任何具有这种离散接口的生成式AI模型。在这项工作中,考虑编码图 G = ( V , E ) G =(V,E) G=(V,E),其中 V V V是顶点(或节点)的集合,而 E ∈ ( V × V ) E∈(V×V) E∈(V×V)是连接它们的边集。
prompt 工程
prompt工程的目标是找到正确的方法来表述一个问题
Q
Q
Q,这样一个LLM
f
f
f(或其他生成模型)将返回相应的答案
A
A
A,(
Q
∈
W
,
A
∈
W
Q∈W,A∈W
Q∈W,A∈W)。换句话说:
A
=
f
(
Q
)
A=f(Q)
A=f(Q)
这项工作的目标是为LLM
f
f
f提供图信息,以便它可以更好地推理需要访问任意结构化关系信息的问题/答案对。
A
=
f
(
G
,
Q
)
A=f(G,Q)
A=f(G,Q)
有多种方法可以修改LLM
f
(
.
)
f(.)
f(.),使它能更好地执行具有图数据的任务,如微调、软提示等。这项工作中,感兴趣的是
f
(
.
)
f(.)
f(.)及其参数是固定的,系统只能用于黑盒设置中使用,其中LLM只使用和产生文本(即LLM
f
:
W
↦
W
f:W↦W
f:W↦W)。随着可用的专有模型的数量和其硬件需求的增加,这种设置很有价值。
因此,引入图编码函数
g
(
G
)
g (G)
g(G)和问题转述函数
q
(
Q
)
q (Q)
q(Q),其中
g
:
W
↦
W
g:W↦W
g:W↦W和
q
:
W
↦
W
q:W↦W
q:W↦W(其中
W
W
W是用于训练LLM的token的大离散域)。
A
=
f
(
g
(
G
)
,
q
(
Q
)
)
A=f(g(G),q(Q))
A=f(g(G),q(Q))
对基于图的提示系统的训练输入
D
D
D是一组
G
,
Q
,
S
G,Q,S
G,Q,S三元组,其中
G
G
G是一个图,
Q
Q
Q是一个问题,而
S
,
S
∈
W
S,S∈W
S,S∈W,是
Q
Q
Q的一个解。我们试图在训练数据集
D
D
D上,找到一个
g
(
.
)
g(.)
g(.)和
q
(
.
)
q(.)
q(.)使答案的模型的预期得分(
s
c
o
r
e
f
score_f
scoref)最大化。
m
a
x
(
g
,
q
)
E
(
G
,
Q
,
S
∈
D
)
s
c
o
r
e
f
(
g
(
G
)
,
q
(
Q
)
,
S
)
max_{(g,q)} E_{(G,Q,S∈D)} score_f (g(G),q(Q),S)
max(g,q)E(G,Q,S∈D)scoref(g(G),q(Q),S)
由于
W
W
W是一个非常大的离散空间,所以目前的许多方法都使用启发式方法来进行优化(通过改变提示符
Q
Q
Q)。这项工作的新贡献是考虑了图编码函数
g
(
.
)
g(.)
g(.),问题重述函数
q
(
.
)
q(.)
q(.),以及图结构
G
G
G在上式优化中的作用。
prompt启发
绝大多数的提示启发式方法都是通过优化用于查询模型的提示文本 Q Q Q来操作。这里简要介绍本文中进一步研究的方法:
- Zero-shot提示(ZERO-SHOT):这种方法简单地为模型提供了一个任务描述,并要求它生成所需的输出,而不需要事先对任务进行任何训练。
- Few-shot上下文学习(FEW-SHOT):这种方法为模型提供了少量的任务示例,以及所需的输出。然后模型从这些例子中学习,以便对新的输入执行任务。
- 思维链提示(CoT):这种方法为模型提供了一系列示例,每个示例都展示了如何逐步解决任务。然后模型学习生成其思维链来解决新的问题。
- Zero-shot思维链提示(ZERO-COT):这种方法类似于思维链提示,但不需要任何事先的训练示例。相反,模型使用一个简单的提示符来生成它自己的思维链。正如原论文所建议的那样,我们使用了“让我们一步一步地思考”。
- Bag提示(COT-BAG):提出该技术是为了提高LLM在图相关任务上的性能。它的工作原理是将“让我们先构造一个包含节点和边的图”附加到图的描述中。
本研究的目标是优化基本图任务上的图编码函数。这些基本任务是在图上进行更复杂的推理任务的基本中间步骤。对图编码函数、问题和图生成器函数进行了广泛的实验,提供了对黑盒LLM使用的图编码方法的研究。
像图一样说话:通过文本来编码图
图编码是将图结构信息转换为供语言模型使用的序列的必要步骤。本节将研究一个图编码函数
g
(
.
)
g(.)
g(.)的细节,它将图数据映射到tokens,供LLM使用。在本节中的实验结果试图理解图编码和提示工程的最佳形式,以最大化图推理任务的性能。
分析中发现的一些结果:
- R1:LLM在基本的图形任务上表现不佳(3.1)
- R2:图编码函数对LLM的图推理有显著影响(3.1)
- R3:模型容量对LLM的图推理能力有显著影响(3.4)
图编码函数:本节研究了将图表示为文本的各种方法。将图编码为文本的过程可以分为两个关键查询:首先是图中节点的编码,其次是节点之间的边的编码。关于节点和边的编码,我们研究了几种技术。上图显示了所使用的图编码函数的概述。
附录 图编码函数
将图编码为文本的过程可以分为两个关键查询:节点的编码,节点之间的边的编码
编码节点:关于节点的编码,我们研究了几种技术,包括:
• 整数编码(例如,节点0)
• 使用著名的英语名字(如David)
• 在电视剧《权力的游戏》和《南方公园》中使用的流行的角色名字
• 采用了美国政治家的名字
• 使用字母表字母作为表示形式
表示边:关于边的编码,我们研究了以下技术:
• 括号:将边描述为(源节点,目标节点)
• 友谊:源节点和目标节点是朋友
• 合著者:源节点和目标节点共同撰写了一篇论文
• 社交网络:源节点和目标节点相互连接
• 箭头:源节点→目标节点
• 入射:源节点连接到目标节点
结合节点编码和边缘编码,我们采用了以下的图编码函数:
•Adjacency。使用整数节点编码和圆括号边编码。
•Incident。使用整数节点编码和入射边编码
•Friendship。使用著名的英语名作为节点编码和友谊边编码
• Co-authorship。使用著名的英语名作为节点编码和合著者边编码
• SP。使用《南方公园》的角色名称作为节点编码,使用友谊作为边编码
• GOT。使用《权力的游戏》的角色名称作为节点编码,使用友谊作为边编码
• Social network。使用著名的英语名字和社交网络边编码
• Politician。使用美国政治家的名字和社交网络边编码
• Expert。使用字母表字母作为节点编码,使用箭头作为边缘编码。编码以“你是一个图形分析员”(专家提示)开始
实验1:变化的图编码函数
在本实验中,我们衡量预训练好的LLM在图任务上的性能:边的存在性、节点度、节点计数、边缘计数、连接节点和回路检查。在附录A.2中详细描述了这些任务和包含它们的图基准测试(GraphQA)。
附录 图任务
GraphQA由一系列不同的基本图问题组成,包括:
• 边的存在性。确定图中是否存在一条给定的边
• 节点度。计算图中给定节点的度
• 节点数。计算图中的节点数
• 边数。计算图形中的边数
• 连接的节点。在图中查找连接到给定节点的所有节点
• 循环检查。确定图形中是否包含一个循环
• 断开连接的节点。查找图中未连接到给定节点的所有节点
这些任务都相对简单,但它们要求LLM能够推理图中的节点和边之间的关系。在坚持基本的图任务的同时,我们的目标是一组不同的任务,包括区别性(例如,循环检查)和生成性(例如,连接或断开的节点)挑战。这些任务涵盖了图分析的各个方面,从存在性检查(例如,边缘存在性)到定量评估(例如,节点计数)、路径分析(例如,循环检查)、基于recall的任务(例如,连接的节点),以及null空间探索(例如,断开连接的节点)。
实验结果
表1显示了实验中不同的图编码和提示技术的实验结果。显示了几个有趣的结论,简要地总结为:
LLM在基本的图任务上表现不佳:LLM在实验的几乎所有基本图任务上都表现不佳。对于边缘存在性和回路检查任务,其中边缘存在任务的53.96%的情况不存在边缘,而循环检查任务的81.96%的情况存在循环。因此LLM的表现比大多数基线的要差。(这个实验中对ER图进行了实验,且ER图很可能有一个循环。)
简单的提示最适合用于简单的任务:在基本的图任务中,ZERO-COT提示的模型性能更差。这可能是因为ZERO-SHOT提示对于这些任务就足够了,而这些任务不需要多跳推理。ZERO-COT提示对于需要多跳推理的任务是有效的,比如算术问题,但对于大多数基本的图任务是不必要的。对于更复杂的任务,添加few-shot示例和思维链提示通常可以提高模型的性能。这主要是因为few-shot示例使LLM能够更好地理解它正在解决的任务。思维链提示还可以通过帮助LLM找出如何找到问题的答案来提高性能。
图编码函数对LLM推理有重要影响:结果表明,图编码函数的选择对LLM在图相关任务上的性能有显著影响。这是因为不同的编码器函数捕获了图结构的不同方面。例如,在图中寻找与节点相连的节点,Adjacency达到19.8%的准确率,Incident准确率达到53.8%。对于节点度和连接节点,Incident编码的性能都优于其他编码器函数。这可能是因为Incident编码器以一种使相关信息更容易访问的方式编码图结构,即,非常接近LLM。
整数节点编码提高了算术性能:节点(如节点0)的整数编码可以提高LLM在整数输出任务上的性能,如预测节点度、节点计数和边计数。这是因为LLM的输入和输出在同一个空间中,这使得模型更容易学习两者之间的关系。然而,有趣的是,具有特定名称的(如David)的编码器函数在非整数输出任务中工作得更好,例如用于边缘存在的GOT或用于循环检查的Friendship。
总结:选择正确的图编码函数对LLM在基本图算法的性能有显著影响。因此,为特定的任务选择一个仔细和适当的函数是很重要的。这一发现特别重要,因为有许多推理任务包含图问题。例如,在社交网络中寻找有影响力的节点类似于在图中寻找节点的度。以正确的方式编码这样的图可以改进任务。
实验2:不同的提示问题
本实验使用Friendship作为图编码函数,并使用两种不同的问题编码器函数进行实验:图问题编码器和应用问题编码器。
图问题编码器负责编码与图相关的任务,例如确定一个特定节点的度(例如,“节点i的度是多少?”)。
应用程序问题编码器在一个更实际的,日常的上下文中解释图问题。在应用场景中,使用一个基于Friendship的场景,将任务转换为:边缘存在成为“评估友谊存在”,节点度成为“计算朋友的数量”,节点数成为“计算提到的人数”,边缘数成为“计算友谊的数量”,连接节点成为“朋友列表”。
结果:表2总结了对问题编码器函数的实验结果。结果显示,应用编码器在几乎所有任务上都优于图编码,尽管这两个编码器都具有相同的图编码功能,并且在提出问题的方式上仅略有不同。例如,在使用PALM 2 XXS的ZERO-SHOT边缘存在任务上,图编码的准确率为42.8%,而应用编码器的准确率为60.8%。
总结:在处理基本的图算法时,问题编码器函数的选择会影响LLM的性能。因此,在使用LLM进行推理时,将给定的任务转换为更有上下文意义的文本信息变得很重要。
实验3:多重关系编码
在此实验设置中,对Friendship图编码函数进行了修改,基于一系列不同的关系类型,包括朋友、同事、配偶、兄弟姐妹、邻居、熟人、队友、同学、同事或室友。关系类型的选择是从这个预定义的集合中随机化的,使用多个词来指代节点之间关系的存在。
结果:如表3所示,使用多个单词来表示关系并没有影响LLM的性能,甚至在某些情况下提高了性能。这种改进可能是因为不同的关系集为LLM提供了更多的文本信息来执行任务,并且与之前的设置相比,最终的编码更接近于LLM在训练过程中可能看到的文本。
实验4:模型计算能力和图推理能力
此实验测量了模型容量对图任务的影响。比较了PaLM 2 XXS、XS、S和L的结果,它们具有不同的参数数量,因此具有不同的容量。我们报告了大多数基线以供参考。
结果:模型容量对LLM的图推理能力有显著影响。实验结果显示了较大的模型在图推理任务中通常更好。这是因为它有更多的能力来学习和存储复杂的信息。模型容量对边缘存在性的影响较小。结果还表明,即使容量较大,该模型也不能超过边缘存在的多数基线。
实验5:在没有边的情况下进行推理
此实验评估了LLM在断开节点任务上的性能。这个任务与之前的不同之处在于,它需要对图中隐含的信息进行推理,即在图编码函数的输出中没有明确提到的信息。
结果:LLM缺乏对图的全局建模。ZERO-SHOT提示方法的准确率为0.5%,而ZERO-COT、FEW-SHOT、COT和COT-BAG方法的准确率接近0.0%。这些结果表明,LLM在断开节点任务上的表现明显比在连接节点任务上更差。我们认为,这是因为图编码函数主要编码关于已连接节点的信息,而不是显式地编码关于未连接节点的信息。因此,LLM在处理连接节点之间的关系方面比在捕获没有连接的情况方面更好,这导致在与断开相关的任务中性能次优。
4.图的结构对LLM很重要吗?
本节试图衡量LLM对具有不同结构的图的推理能力。
随机图生成
为了能够在图上实验LLM,使用各种图生成器算法生成随机图。
- 涵盖了广泛的属性:不同的图生成器产生具有不同属性的图。例如:ER图较稀疏,Barab´asi-Albert图较稠密。
- 避免在图问题评估中的偏差:根据图的性质,图问题的难度可能会有所不同,因此使用一组不同的图来避免偏差。
- 提供现实的基准:真实世界的图显示了广泛的属性,没有一个图生成器能够完美地捕获所有这些属性。通过使用一组不同的生成器,我们创建了一个更能代表真实世界图的基准测试。
实验使用Erd˝os-R´enyi (ER)图、scale-free网络(SFN)、Barab´asi–Albert (BA)模型和stochastic block模型(SBM),以及星型图、路径图和完整图生成器。使用NetworkX来生成随机图。
随机图生成器的结果
之前的实验使用ER模型生成的随机图研究LLM在基本图任务上的性能。但ER图往往不能准确地表示真实世界的图的特征。本实验研究不同的随机图生成器对LLM的图推理任务性能的影响。为了使实验更加真实,我们从使用不同算法生成的图中随机抽取几个例子。表4中报告了这个实验的结果。
- 图的结构对LLM的性能有重要的影响:结果表明,用于生成图的算法对LLM对图任务的性能有显著影响。例如,循环检查任务在完整图上的准确率达到91.7%,在路径图上的准确率达到5.9%。这是因为LLM对具有循环的图有很强的优先性。因此,对于总是有循环的完整图的精度很高,而对于从来没有循环的路径图的精度很低。通过添加一些有循环和一些没有循环的例子,在路径图上的循环检查的精度从5.9%提高到19.7%。
- 图编码函数中的干扰语句会破坏LLM的性能:星形图和路径图的节点度、节点数和连接节点任务的精度最高。这可能是因为星形图和路径图更有可能有更少的边,而它们的图编码很可能更短,对这些任务的干扰更少。这也可以从这些任务的准确性在完整的图中得到明显看出,这些完整的图有许多边需要指定,因此有许多干扰。
总结:大语言模型在图任务上的性能受到图结构和图编码函数中的干扰语句的显著影响。具有较少边和较少复杂编码的图往往在大多数任务上表现得更好。
相关知识链接
论文原文
Talk Like a Graph: Encoding Graphs for Large Language Models
总结
[亮点]
- 研究在大语言模型中使用图结构提示技术
- 研究将图编码为可在大语言模型中使用的文本
- 提出了一个新的图测试基准(GraphQA)来帮助社区进一步研究图结构对大语言模型的影响
BibTex
@article{fatemi2023talk,
title={Talk like a graph: Encoding graphs for large language models},
author={Fatemi, Bahare and Halcrow, Jonathan and Perozzi, Bryan},
journal={arXiv preprint arXiv:2310.04560},
year={2023}
}