论文浅尝 | 树遍历:一种用知识图谱增强黑盒语言模型的零样本推理算法(ACL2024)...

笔记整理:https://arxiv.org/abs/2407.21358

论文链接:刘佳俊,东南大学硕士,研究方向为知识图谱、大语言模型

发表会议:ACL2024

1. 动机

知识图谱能够提供给大语言模型可靠的、结构化的、领域上的以及最新的知识,现有的集成方案包括两种,一是将知识图谱数据用于训练或者微调大语言模型,二是结合知识图谱的知识提示大语言模型或者矫正大语言模型输出,都难以实现高效的耦合度较高的集成方案。本文提出了图搜索和LLM推理深度结合的方法,让KG和LLM的结合更为紧密。

2. 方法

树遍历算法维护一个本地 KG 子图,该子图会不断扩展,直到它包含 LLM 回答给定查询所需的所有信息。首先,本地 KG 子图初始化为包含原始查询中存在实体的最小子图。然后使用树搜索算法对其进行扩展,根据LLM生成的行动和想法进行选择扩展方向。当 LLM 能够使用本地 KG 子图作为上下文来回答原始查询时,算法就会停止。

树遍历算法由三个主要部分组成:

(1)知识图谱交互方式,包括初始化,获取当前子图,获取当前子图可以扩展的节点。

(2)动作状态机(Action state machine, ASM),它是一个有限状态机,定义了LLM与KG交互行为,包括扩展本地KG子图时的动作、状态和提示模板。

(3)树搜索算法,定义了总体 LLM 搜索轨迹,包括最佳优先搜索、深度优先搜索、出错时回溯以及找到答案时的终止条件。

具体细节:

1.动作状态机: 包含预设的五种动作,Think、Answer、ExpandKG、Select_EntitiesSelect_Relation ,和五种状态default, selecting-entities, selecting-relation,done 。在不同的状态下可以执行不同的动作,用于转换到下一个状态。每个状态的转换根据树搜索算法的结果进行执行,多次转换后达到状态done结束,流程如图所示:

**2.树搜索算法:**从默认初始子图开始,获取当前子图种可以扩展的实体后,交给LLM评分,按照最优算法选择评分最高的实体和下一步节点扩展子图。评分相同时按照深度优先搜索。无法扩展时进行回退,选择上一步第二个扩展节点。直到LLM认为当前子图能够回答原始查询问题结束搜索,根据当前子图返回结果。同时设置两个超参数阈值最大规模和最大深度,子图达到最大规模和最大深度后不再拓展,根据当前子图内的知识直接回答原始问题

**3.多个知识图谱:**设置多个初始化子图,同时在多个子图上拓展,将多个知识图谱种可扩展的实体一起交给LLM评分,选取其中一个进行拓展。

下面是一个具体的例子:

如图所示,该例子用树遍历方法回答查询:《盗梦空间》和《星际穿越》中都有哪些演员扮演?

(1)初始状态得到子图,包含两个实体**《盗梦空间》和《星际穿越》**,用矩形表示,此时LLM评估子图,不足以回答问题,应该扩展子图

(2)选择需要扩展的实体为**《盗梦空间》** 或两个实体同时扩展,此时选择**《盗梦空间》**

(3)继续选择可以拓展的下一步节点,发现都不符合,此时有问题,进行回退

(4)选择两个实体同时扩展,并选择下一步关系演员

(5)得到对应的演员节点,此时子图可以回答原始查询,搜索结束

3. 实验

论文在2个数据集上选用三个LLM模型对Tree-of-Traversals进行了主要实验评估,选用Wikidata作为知识图谱,指标为EM-in,如果真实答案与答案中任意位置完全匹配,则 EM-in 为 1,否则为 0。实验对比了多种强大的基线,最终结果如图所示,其中ReAct->CoT表示在ReAct得不到答案时改为使用CoT方法。该实验结果表明,Tree-of-Traversals方法在测试的LLM模型上对比现有常见方法有一定提升。

对于同时使用多个知识图谱进行树搜索的方法,论文中构建了一个人工标注的测试集MusicBrainz-x-Wikidata Dataset。如图所示,其中的问题需要MusicBrainz和Wikidata两个图谱的知识进行回答,同时数据集中提供了推理路径。

在MusicBrainz-x-Wikidata上的实验结果如下,对比CoT和Chain-of-Traversals方法,Tree-of-Traversal方法有显著的提升。

同时论文进行了消融实验,测试了没有回溯时和带有回溯时的方法,结果如图所示。如果不允许回溯,性能将会严重下降。

4. 总结

论文指出了现有知识图谱和LLM结合耦合度不高的问题。提出了Tree-of-Traversal方法,该方法将图搜索和LLM推理深度结合,利用LLM指导图的搜索。该方法在图谱上构造一张子图,用动作状态机和树搜索算法扩展子图,直到LLM能够用该子图回答问题。该方法对比现有的CoT,ReAct,Chain-of-Traversals等方法有明显提升。论文还用消融实验验证了回溯步骤的必要性。


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

点击阅读原文 ,进入 OpenKG 网站。

相关推荐
SpikeKing1 分钟前
LLM - 大模型 ScallingLaws 的指导模型设计与实验环境(PLM) 教程(4)
人工智能·llm·transformer·plm·scalinglaws
编码浪子10 分钟前
Transformer的编码机制
人工智能·深度学习·transformer
凭君语未可11 分钟前
豆包MarsCode:小C点菜问题
算法
IE0624 分钟前
深度学习系列76:流式tts的一个简单实现
人工智能·深度学习
GIS数据转换器28 分钟前
城市生命线安全保障:技术应用与策略创新
大数据·人工智能·安全·3d·智慧城市
C语言魔术师31 分钟前
【小游戏篇】三子棋游戏
前端·算法·游戏
自由自在的小Bird31 分钟前
简单排序算法
数据结构·算法·排序算法
一水鉴天2 小时前
为AI聊天工具添加一个知识系统 之65 详细设计 之6 变形机器人及伺服跟随
人工智能
王老师青少年编程7 小时前
gesp(C++五级)(14)洛谷:B4071:[GESP202412 五级] 武器强化
开发语言·c++·算法·gesp·csp·信奥赛
DogDaoDao7 小时前
leetcode 面试经典 150 题:有效的括号
c++·算法·leetcode·面试··stack·有效的括号