知识图谱驱动的深度推理:ToG算法的创新与应用

LLMs通过预训练技术在大量文本语料库上生成连贯且符合上下文的响应。然而,面对需要复杂知识推理的任务时,它们存在明显的局限性。这些问题包括对超出预训练阶段的专业知识的准确回答失败,以及缺乏责任性、可解释性和透明度。为了解决这些问题,研究者们提出了将外部知识图谱(KG)引入LLM推理的新范式。本论文提出了一种名为“Think-on-Graph”(ToG)的新方法,该方法将LLM视为在知识图谱上交互探索相关实体和关系的代理,并基于检索到的知识执行推理。

 三种LLM推理范式的代表性工作流程:
(a) LLM-only,例如仅使用链式思考提示(Chain-of-Thought prompting);
(b) LLM ⊕ KG,例如通过LLM生成的SPARQL查询进行知识库问答(KBQA);
(c) LLM ⊗ KG,例如Think-on-Graph(ToG)。
这个图表说明了ToG方法如何通过结合LLM的推理能力和知识图谱(KG)的信息来提高推理的准确性

方法

下图展示了 ToG(Think-on-Graph)的一个示例工作流程。在这个流程中,发光的实体是每个迭代(深度)开始搜索的中心实体,而加粗的实体是剪枝后选择的下一个迭代的中心实体。在每个剪枝步骤中,边的暗度代表了 LLM(大型语言模型)给出的排名分数,而虚线表示由于评分低而被剪枝的关系。

ToG的工作流程示例

ToG 工作流程如下:

  1. 初始化搜索(Initialization of Search):ToG 从问题中识别出初始实体,并以这些实体作为搜索的起点。

  2. 探索阶段(Exploration Phase):在每个迭代深度,ToG 探索与当前中心实体相关的所有可能的关系和实体。探索过程包括搜索(Search)和剪枝(Prune)两个子步骤:
    1. 在剪枝阶段,ToG 根据 LLM 分配的分数来选择最相关的几个关系,并将这些关系保留在推理路径中。
    2. 在搜索阶段,ToG 寻找与尾部实体相关联的所有关系。
  3. 推理阶段(Reasoning Phase):一旦收集到足够的信息,ToG 会进入推理阶段,LLM 将评估当前的推理路径是否足以回答问题。如果 LLM 认为信息充足,则会使用这些路径生成答案;如果不足,ToG 将继续探索更多的路径。

  4. 剪枝(Pruning):在剪枝步骤中,根据 LLM 给出的评分,去除那些对问题贡献较小的关系和实体。边的暗度表示 LLM 分配的分数,分数越高,边越暗,表示该关系对回答问题越重要。被剪掉的关系用虚线表示,这些是因为评分低而被认为对当前问题不太相关或重要性较低的关系。

  5. 生成答案(Generate Answer):当 ToG 确定已经找到了足够的信息来回答问题时,它会使用 LLM 根据检索到的知识和图谱中的路径生成最终答案。

  6. 迭代过程(Iterative Process):ToG 的整个过程是迭代的,每一层迭代都可能增加推理路径的深度,直到找到正确的答案或达到预设的最大搜索深度。

ToG首先使用底层的语言模型(LLM)来定位知识图谱上的初始实体,作为推理路径的起点。这一步骤可以看作是推理路径集合P的初始化。ToG会提示LLM自动提取问题中的主题实体,并获取一组主题实体

在第D次迭代开始时,每条路径由 D−1 个三元组组成,表示为 =,其中分别表示主体和客体实体,是它们之间的特定关系。

关系探索是 ToG 算法中的一个关键环节,它使用束搜索来找出与问题相关的关系。这个过程分为两个阶段:搜索和剪枝。

  1. 搜索阶段:ToG 从上一轮迭代中得到的实体出发,寻找与之相关的关系。例如,如果当前的实体是“堪培拉”,ToG 就会搜索所有与“堪培拉”直接相连的关系。

  2. 剪枝阶段:在搜索到所有相关的关系后,ToG 需要决定哪些关系对于回答问题最有用。它使用大型语言模型(LLM)来评估这些关系的有用性,然后选择最重要的几个关系。这些被选中的关系将被保留,并用于下一轮的实体探索。

接下来是实体探索,它同样包括搜索和剪枝两个步骤:

  1. 搜索阶段:在确定了与问题相关的关系后,ToG 会根据这些关系来寻找相关的实体。例如,如果关系是“首都”,ToG 就会搜索所有与这个关系相连的实体。

  2. 剪枝阶段:在搜索到所有可能的实体后,ToG 再次使用 LLM 来评估这些实体的相关性,并选择最重要的几个实体。这些实体将被用来扩展当前的推理路径。

通过探索过程获得当前推理路径P后,ToG提示LLM评估当前推理路径是否足够生成答案。如果评估结果是肯定的,则提示LLM使用推理路径和查询作为输入生成答案。如果评估结果是否定的,则重复探索和推理步骤,直到评估结果为正或达到最大搜索深度

基于之前基于语义解析的KBQA方法,作者提出了基于关系的ToG (ToG-R),它从主题实体开始探索顶级关系链,而不是基于三元组的推理路径。ToG-R在每次迭代中顺序执行关系搜索、关系剪枝和实体搜索,然后基于通过实体搜索获得的所有候选推理路径 执行推理步骤。

如果LLM确定检索到的候选推理路径不包含足够信息以回答问题,我们将从候选实体 中随机采样N个实体并继续到下一次迭代。假设每个实体集合 中的实体可能属于同一实体类别并具有相似的邻近关系,剪枝实体集合 的结果可能对随后的关系探索影响不大。因此,ToG-R使用随机束搜索而不是ToG中的LLM约束束搜索进行实体剪枝,称为随机剪枝。

实验

作者选择了多个数据集来测试 ToG 在多跳知识密集型推理任务上的能力,包括五个知识库问答(KBQA)数据集(四个多跳和一个单跳),以及其他类型的数据集,如开放域问答、槽填充和事实核查数据集。评估指标采用的是精确匹配准确率(Hits@1)。

ToG 与多种方法进行了比较,包括标准提示(IO prompt)、思维链提示(Chain-of-Thought prompting, CoT prompt)和自洽性(Self-Consistency, SC)方法。还与之前在各个数据集上达到最佳状态的方法(SOTA)进行了比较。

ToG在不同数据集上的性能,包括多跳知识库问答(KBQA)、单跳KBQA、开放域问答(Open-Domain QA)、实体填充(Slot Filling)和事实核查(Fact Checking)等任务。表格中列出了不同方法在各个数据集上的表现,包括ToG和ToG-R在不同LLM模型上的结果

他们使用了三种不同的大型语言模型(LLMs):ChatGPT、GPT-4和Llama-2-70B-Chat,并利用OpenAI API调用了ChatGPT和GPT-4模型。对于Llama2-70B-Chat,作者在一个没有量化的8 A100-40G GPU集群上运行模型,设置了特定的温度参数以在探索过程中增加多样性,并在推理过程中确保可重复性。他们还规定了生成的最大令牌长度为256,并为所有数据集的ToG推理提示设置了5个示例。在知识图谱的选择上,使用了Freebase和Wikidata两个知识库,分别对应不同的数据集。实验中,作者还设置了束搜索的宽度N和最大搜索深度Dmax为3,以平衡搜索的广度和计算成本。

ToG 在多个数据集上与基于微调和基于提示的方法进行了比较。即使 ToG 是一种无需额外训练的基于提示的方法,它仍然在六个数据集上达到了新的最佳性能,并且在其他数据集上的性能也非常接近最佳状态。

对比了在CWQ和WebQSP数据集上,使用不同LLM模型(如ChatGPT、GPT-4和Llama2-70B-Chat)时ToG的性能。表格显示了不同模型大小对ToG性能的影响,以及ToG相对于传统提示方法(如CoT)的性能提升

作者还探讨了不同规模的大型语言模型(LLMs)对ToG算法性能的影响。实验使用了ChatGPT、GPT-4和Llama-2-70B-Chat三种模型,发现随着模型规模的增大(即参数数量的增加),ToG的性能得到了提升,显示出更强大的模型能够更有效地挖掘知识图谱的潜力。即使使用较小的模型,ToG的性能也显示出了超越大型模型如GPT-4的潜力,尤其是在特定场景下,这表明ToG算法能够有效利用不同规模的模型来实现成本效益和性能的平衡。

消融研究中,作者通过一系列控制实验来分析ToG算法中各个组成部分的贡献和重要性。这些实验包括改变搜索深度和宽度、使用不同的知识图谱、以及不同的提示设计和剪枝工具。结果表明,搜索深度和宽度对ToG性能有显著影响,而不同的知识图谱对性能的影响则各有不同。消融研究还发现,使用LLM作为剪枝工具比使用传统的文本相似度模型如BM25或SentenceBERT更有效,尽管这会增加计算成本。这些发现有助于理解ToG算法的内部工作机制,并为进一步优化提供了指导。

ToG在CWQ和WebQSP数据集上使用不同知识源(如Freebase和WikiData)时的性能。表格说明了不同知识源对ToG性能的影响
ToG在不同搜索深度(Dmax)和束搜索宽度(N)设置下的性能变

ToG 的一个有趣特性是其在 LLM 推理过程中提供了知识可追溯性和可更正性。这允许用户或专家发现并纠正 ToG 答案中的潜在错误或不确定性。ToG通过明确的推理路径,增强了推理过程的可解释性,使得用户或专家能够在发现潜在错误或不确定性时,回溯并检查推理路径,找出并纠正错误的知识三元组。例如,如果ToG给出了错误答案,可以通过分析推理路径来定位问题所在,然后利用LLM的知识库或专家反馈来修正知识图谱中的错误信息。这种能力不仅提升了LLM结合知识图谱时的推理准确性,而且也为知识图谱的构建和维护提供了一种成本效益更高的方法,即通过ToG算法本身来提高知识图谱的质量。

ToG如何通过显示明确的推理路径来进行知识可追溯性和可更正性。如果发现ToG答案中的潜在错误或不确定性,可以通过检查推理路径,找到并纠正错误的三元组

ToG算法框架通过将LLM作为参与KG推理的代理,为更好的决策提供了深度、负责任且高效的LLM推理。实验结果证明了ToG在减少LLM幻觉问题的同时,不依赖额外训练就能超越现有方法。 

论文链接:https://arxiv.org/pdf/2307.07697

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(19)夹钳(用于送货)

文章目录 前言 1 常见的抓手参数 2 参数说明 前言 Copter 支持许多不同的抓取器,这对送货应用和落瓶很有用。 按照下面的链接(或侧边栏),根据你的设置了解配置信息。 Electro Permanent Magnet v3 (EPMv3)Electro Permanent M…

教育相关知识

教育的含义 教育的基本要素 教育的属性 教育的功能 教育的起源 教育的发展

软件安全性测试的工具有哪些?

软件安全性测试是确保软件系统在设计和实施过程中能够保护系统的机密性、完整性和可用性。为了进行软件安全性测试,有许多工具可供选择,这些工具可以帮助测试人员发现潜在的安全漏洞和弱点,从而提高软件系统的安全性。 以下是一些常用的软件安…

两年经验前端带你重学前端框架必会的ajax+node.js+webpack+git等技术 Day2

前端框架必会的(ajaxnode.jswebpackgit)个人学习心得作业及bug记录 Day2 你好,我是Qiuner. 为帮助别人少走弯路和记录自己编程学习过程而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​ gitee https://gitee.com/Qiuner 🌹 如果本…

从RL的专业角度解惑 instruct GPT的目标函数

作为早期chatGPT背后的核心技术,instruct GPT一直被业界奉为里程碑式的著作。但是这篇论文关于RL的部分确写的非常模糊,几乎一笔带过。当我们去仔细审查它的目标函数的时候,心中不免有诸多困惑。特别是作者提到用PPO来做强化学习,…

Jenkins 常用的 Linux 指令

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

法国工程师IMT联盟 密码学及其应用 2022年期末考试

1 密码学 1.1 问题1 对称加密(密钥加密) 1.1.1 问题 对称密钥la cryptographie symtrique和公开密钥有哪些优缺点? 1.1.1.1 对称加密(密钥加密)的优缺点 1.1.1.1.1 优点 加解密速度快encrypt and decrypt:对称加密算法通常基于…

不锈钢焊条A022

说明:A022是钛钙型药皮的不锈钢焊条。交直流两用,操作性能良好。熔敷金属有良好的耐热、耐腐蚀及抗裂性能。 用途:用于焊接尿素、合成纤维等设备及相同类型的不锈钢结构,也可用于焊后不能进行热处理的铬不锈钢以及复合钢和异种钢等…

使用 pgbadger 自动填充准备好的语句占位符#PG培训

问题 当某些应用程序使用扩展查询协议/准备好的语句来查询 Postgres(出于性能原因,您通常应该这样做)并由于某种原因获得查询错误或只是超过“慢查询日志”阈值(log_min_duration_statement配置参数)时,您…

Kafka(二)Producer第一篇

一,Client开发 生产逻辑需要具备以下几个 步骤: (1)配置生产者客户端参数及创建相应的生产者实例。 (2)构建待发送的消息。 (3)发送消息。 (4)关闭生产者实例…

字节码编程javassist之打印方法耗时和入参

写在前面 本文看下如何实现打印方法耗时和入参。 1:程序 需要增强的类: public class ApiTest1 {public Integer strToInt(String str01, String str02) {return Integer.parseInt(str01);}}插桩类 package com.dahuyou.javassist.huohuo.aa;import…

基于 V7 FPGA 的4X 100G 光纤加速卡,可应用于基于服务器的光纤通道数据采集、数据传输等场景

4个100G QSFP28 光纤通道PCIE x16 主机接口,支持xdma,支持SG DMA光纤通道支持Aurora等协议标准,最高支持25Gbps/lane2组独立的DDR4 SDRAM 缓存,工作时钟频率1200MHz多路数字离散IO接口高性能时钟管理单元 功能框图 一款基于PCIE总…

easyexcel使用小结-未完待续

官网&#xff1a;https://easyexcel.opensource.alibaba.com/docs/current/ <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>4.0.1</version></dependency>一、读 1.1简单读 Getter…

Vue 与 OpenAI 接口交互实战:发送请求的全流程解析(一)

前言 本文讲解使用vue去搭建一个项目&#xff0c;然后向OpenAI发送请求&#xff0c;并获取数据 文章分为两篇书写&#xff0c;本篇文章侧重于书写API的封装与调用&#xff0c;第二篇文章侧重于页面逻辑的处理 接下来就让我们开始吧! 调用OpenAI的本质是什么&#xff1f; 本…

基于AD8232的心电图套件的测试

基于AD8232的心电图套件的测试 1、测试设备2、电源的选择3、 用于测试心电图套件的模拟心电图电路基本4017B的电路基于multisim的电路仿真基于STM32F103RCT6 参考测试数据 1、测试设备 1、AD8232心电模块 2、手持示波器 3、心电信号模拟发生器 4、NI multisim 14.3 5、实物待补…

关于振动盘正反料下料逻辑编写

写在前文 借鉴某个程序的逻辑套路写的 1.就是第一个料是正方向&#xff0c;第二个料是反方向。 (* 基础逻辑应该都差不多&#xff0c;这个是一个振动盘&#xff0c;振动盘的末端是一个上下对射的感应器&#xff0c;这个感应器的作用是对射感应到物料的到位信号&#xff0c;末端…

java LogUtil输出日志打日志的class文件内具体方法和行号

最近琢磨怎么把日志打的更清晰&#xff0c;方便查找问题&#xff0c;又不需要在每个class内都创建Logger对象&#xff1b;利用堆栈的方向顺序拿到日志的class问题。看效果&#xff0c;直接上代码。 1、demo test 2、输出效果 3、完整的LogUtil文件 import org.jetbrains.anno…

导入项目,JAVA文件是咖啡杯图标

问题 从图中可以看到&#xff0c;JAVA文件是咖啡杯图标 原因 项目没有识别为MAVEN项目 解决办法 进入pom.xml文件&#xff0c;右键点击Add as Maven Project即可

详解Linux的shell脚本基础指令

一、shell简介 是Linux系统的用户界面&#xff0c;它提供用户与内核的一种交互方式。它接收用户输入的命令&#xff0c;并把它送入内核去执行&#xff0c;是一个命令解释器。 脚本&#xff1a;本质是一个文件&#xff0c;文件里面存放的是 特定格式的指令&#xff0c;系统可以…

CC4利用链分析

我的Github主页Java反序列化学习同步更新&#xff0c;有简单的利用链图 分析版本 Commons Collections 4.0 JDK 8u65 环境配置参考JAVA安全初探(三):CC1链全分析 分析过程 在Commons Collections 4.0中&#xff0c;TransformingComparator类变为可序列化类&#xff0c;增…