鲁智深
Bahare Fatemi, Jonathan Halcrow, Bryan Perozzi
图是表示和分析现实世界应用中复杂关系的强大工具,如社交网络、推荐系统和计算金融。对图进行推理对于推断复杂系统中实体之间的关系,以及识别隐藏的模式和趋势是必不可少的。尽管在使用自然文本的自动推理方面取得了显著进展,但对使用大语言模型(LLM)的图推理仍然是一个有待研究的问题。
这项工作对将图结构数据编码为文本以供LLM使用进行了首次全面研究。证明了LLM在图推理任务上的表现在三个基本层次上有所不同: (1)图编码方法,(2)图任务本身的性质,以及(3)考虑的图结构。这些新的结果为将图编码为文本的策略提供了有价值的见解。利用这些见解,文章说明了正确选择编码器如何可以将LLM的图推理任务的性能提高4.8%到61.8%。
目前LLM的设计和实现方法存在一些局限性:
(1) 依赖于非结构化文本,导致模型有时会错过明显的逻辑含义或产生不正确的结论。
(2) LLM从本质上受到了训练时间的限制,而且很难整合关于已发生变化的世界状态的“新鲜”信息。
图结构数据是表示信息的最灵活的方式之一,可能是解决这两个挑战的一个很有前途的解决方案
设 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工程的目标是找到正确的方法来表述一个问题 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在上式优化中的作用。
绝大多数的提示启发式方法都是通过优化用于查询模型的提示文本 Q Q Q来操作。这里简要介绍本文中进一步研究的方法:
本研究的目标是优化基本图任务上的图编码函数。这些基本任务是在图上进行更复杂的推理任务的基本中间步骤。对图编码函数、问题和图生成器函数进行了广泛的实验,提供了对黑盒LLM使用的图编码方法的研究。
图编码是将图结构信息转换为供语言模型使用的序列的必要步骤。本节将研究一个图编码函数 g ( . ) g(.) g(.)的细节,它将图数据映射到tokens,供LLM使用。在本节中的实验结果试图理解图编码和提示工程的最佳形式,以最大化图推理任务的性能。
分析中发现的一些结果:
图编码函数:本节研究了将图表示为文本的各种方法。将图编码为文本的过程可以分为两个关键查询:首先是图中节点的编码,其次是节点之间的边的编码。关于节点和边的编码,我们研究了几种技术。上图显示了所使用的图编码函数的概述。
附录 图编码函数
将图编码为文本的过程可以分为两个关键查询:节点的编码,节点之间的边的编码
编码节点:关于节点的编码,我们研究了几种技术,包括:
• 整数编码(例如,节点0)
• 使用著名的英语名字(如David)
• 在电视剧《权力的游戏》和《南方公园》中使用的流行的角色名字
• 采用了美国政治家的名字
• 使用字母表字母作为表示形式
表示边:关于边的编码,我们研究了以下技术:
• 括号:将边描述为(源节点,目标节点)
• 友谊:源节点和目标节点是朋友
• 合著者:源节点和目标节点共同撰写了一篇论文
• 社交网络:源节点和目标节点相互连接
• 箭头:源节点→目标节点
• 入射:源节点连接到目标节点
结合节点编码和边缘编码,我们采用了以下的图编码函数:
•Adjacency。使用整数节点编码和圆括号边编码。
•Incident。使用整数节点编码和入射边编码
•Friendship。使用著名的英语名作为节点编码和友谊边编码
• Co-authorship。使用著名的英语名作为节点编码和合著者边编码
• SP。使用《南方公园》的角色名称作为节点编码,使用友谊作为边编码
• GOT。使用《权力的游戏》的角色名称作为节点编码,使用友谊作为边编码
• Social network。使用著名的英语名字和社交网络边编码
• Politician。使用美国政治家的名字和社交网络边编码
• Expert。使用字母表字母作为节点编码,使用箭头作为边缘编码。编码以“你是一个图形分析员”(专家提示)开始
在本实验中,我们衡量预训练好的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在基本图算法的性能有显著影响。因此,为特定的任务选择一个仔细和适当的函数是很重要的。这一发现特别重要,因为有许多推理任务包含图问题。例如,在社交网络中寻找有影响力的节点类似于在图中寻找节点的度。以正确的方式编码这样的图可以改进任务。
本实验使用Friendship作为图编码函数,并使用两种不同的问题编码器函数进行实验:图问题编码器和应用问题编码器。
图问题编码器负责编码与图相关的任务,例如确定一个特定节点的度(例如,“节点i的度是多少?”)。
应用程序问题编码器在一个更实际的,日常的上下文中解释图问题。在应用场景中,使用一个基于Friendship的场景,将任务转换为:边缘存在成为“评估友谊存在”,节点度成为“计算朋友的数量”,节点数成为“计算提到的人数”,边缘数成为“计算友谊的数量”,连接节点成为“朋友列表”。
结果:表2总结了对问题编码器函数的实验结果。结果显示,应用编码器在几乎所有任务上都优于图编码,尽管这两个编码器都具有相同的图编码功能,并且在提出问题的方式上仅略有不同。例如,在使用PALM 2 XXS的ZERO-SHOT边缘存在任务上,图编码的准确率为42.8%,而应用编码器的准确率为60.8%。
总结:在处理基本的图算法时,问题编码器函数的选择会影响LLM的性能。因此,在使用LLM进行推理时,将给定的任务转换为更有上下文意义的文本信息变得很重要。
在此实验设置中,对Friendship图编码函数进行了修改,基于一系列不同的关系类型,包括朋友、同事、配偶、兄弟姐妹、邻居、熟人、队友、同学、同事或室友。关系类型的选择是从这个预定义的集合中随机化的,使用多个词来指代节点之间关系的存在。
结果:如表3所示,使用多个单词来表示关系并没有影响LLM的性能,甚至在某些情况下提高了性能。这种改进可能是因为不同的关系集为LLM提供了更多的文本信息来执行任务,并且与之前的设置相比,最终的编码更接近于LLM在训练过程中可能看到的文本。
此实验测量了模型容量对图任务的影响。比较了PaLM 2 XXS、XS、S和L的结果,它们具有不同的参数数量,因此具有不同的容量。我们报告了大多数基线以供参考。
结果:模型容量对LLM的图推理能力有显著影响。实验结果显示了较大的模型在图推理任务中通常更好。这是因为它有更多的能力来学习和存储复杂的信息。模型容量对边缘存在性的影响较小。结果还表明,即使容量较大,该模型也不能超过边缘存在的多数基线。
此实验评估了LLM在断开节点任务上的性能。这个任务与之前的不同之处在于,它需要对图中隐含的信息进行推理,即在图编码函数的输出中没有明确提到的信息。
结果:LLM缺乏对图的全局建模。ZERO-SHOT提示方法的准确率为0.5%,而ZERO-COT、FEW-SHOT、COT和COT-BAG方法的准确率接近0.0%。这些结果表明,LLM在断开节点任务上的表现明显比在连接节点任务上更差。我们认为,这是因为图编码函数主要编码关于已连接节点的信息,而不是显式地编码关于未连接节点的信息。因此,LLM在处理连接节点之间的关系方面比在捕获没有连接的情况方面更好,这导致在与断开相关的任务中性能次优。
本节试图衡量LLM对具有不同结构的图的推理能力。
为了能够在图上实验LLM,使用各种图生成器算法生成随机图。
实验使用Erd˝os-R´enyi (ER)图、scale-free网络(SFN)、Barab´asi–Albert (BA)模型和stochastic block模型(SBM),以及星型图、路径图和完整图生成器。使用NetworkX来生成随机图。
之前的实验使用ER模型生成的随机图研究LLM在基本图任务上的性能。但ER图往往不能准确地表示真实世界的图的特征。本实验研究不同的随机图生成器对LLM的图推理任务性能的影响。为了使实验更加真实,我们从使用不同算法生成的图中随机抽取几个例子。表4中报告了这个实验的结果。
Talk Like a Graph: Encoding Graphs for Large Language Models
@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}
}