当前位置: 首页 > news >正文

论文浅尝 | MindMap:知识图谱提示激发大型语言模型中的思维图(ACL2024)

b4fe0cc327e760cd788e44e9649dee59.png

笔记整理:和东顺,天津大学硕士,研究方向为软件缺陷分析

论文链接:https://aclanthology.org/2024.acl-long.558/

发表会议:ACL 2024

1. 动机

虽然大语言模型(LLMs)已经在自然语言理解和生成任务中取得了显著的成绩,但是它们依然存在一些关键性的限制,包括但不限于以下几点:

(1)难以融合新知识:现有的LLMs在处理新知识时常常遇到困难,特别是在需要将新知识与现有知识进行综合分析的情况下。

(2)幻觉(Hallucinations):在生成文本时,LLMs可能会产生与上下文不符或事实不符的信息,这是由于模型缺乏对输入信息的有效验证机制。

(3)解释推理过程的能力有限:当LLMs生成答案或结论时,往往难以清晰地表达它们是如何从给定的信息中得出这些结论的,即缺乏透明度。

为了解决这些问题,本文提出了名为MindMap的方法。MindMap是一个创新的提示(Prompting)管道,它利用了知识图谱(Knowledge Graphs, KGs)来增强LLMs的推理能力和透明度。通过这种方法,MindMap不仅能让LLMs理解KGs的输入,还能让模型在隐性知识与外部知识的组合基础上进行推理。更重要的是,MindMap能够揭示LLMs的思维导图,这实际上反映了模型基于知识本体的推理路径。

6ced2a27ac57fb01eee1c7c9d9133117.png

图1: 本文方法与其他提示基线比较:纯LLM、文档检索+LLM和KG检索+LLM

2. 贡献

本文建立了一种即插即用的提示方法MindMap,能让 LLM 理解图输入,从而构建自己的思维导图,支持基于证据的推理生成。该框架的概念演示图如图2所示:

4209e9e2761eb40fb4096276af1f1472.png

图2:证据查询子图、合并推理子图和思维导图的概念演示。实体输入 Vq 可从输入中识别。相同颜色的线和圆表示它们相互对应。思维导图框中的红色虚线表示基于 LLM 知识的增强操作

具体而言,MindMap可以激发LLM的思维图:

(1)整合从KGs中检索到的事实和LLM的隐含知识;

(2)发现输入KGs中的新模式;

(3)对思维图进行推理以产生最终输出。

本文在三个数据集上进行了实验,结果表明 MindMap 的性能远远超过了一系列提示方法。这项工作强调了 LLM 如何学会与 KG 进行协同推理。通过整合隐式和显式知识,LLM可以实现透明、可靠的推理,并适应额外KG信息的不同正确性水平。

3. 方法

MindMap 的框架如图3所示:

d68617095cfc6380d2e3b2d2b1a82af8.png

图3: MindMap框架。左侧部分展示了证据图挖掘的各个组成部分,右侧部分展示了证据图聚合和使用思维导图的 LLM 推理

3.1 证据图挖掘

从外部 KG 发现相关证据子图 Gq 主要分为两个阶段。

(1)实体识别

首先,使用大语言模型(LLMs)来识别问题(Query)中的关键实体。这一过程通过构建一个包含问题分析、模板短语以及两个例子的提示来实现。随后,使用BERT相似度来匹配这些实体和关键词。具体来说,对LLMs抽取的所有关键词实体和外部知识图谱中的所有实体进行编码,形成密集嵌入向量,然后计算这些向量之间的余弦相似度矩阵。

(2)证据子图构建 

证据子图构建的目标是基于提取的实体构建证据子图。构建证据子图的过程可以分为两部分:

基于路径的探索:从选定的节点出发,在知识图谱中追踪最多k步的中间路径,形成路径片段。这一过程持续进行,直到所有的片段都连接起来,形成一系列的子图,存储在Gpath中。

基于邻居的探索:通过扩展每个节点到其邻居节点的距离为1步,增加关系三元组到Gnei中。这种方法将额外的相关证据纳入到证据子图中

为了管理和维护信息量,避免过载并保持多样性,通过聚类和采样方法对基于路径和基于邻居的子图进行修剪。最终形成的证据图保留了最优信息的同时保证了多样性。

3.2 证据图汇总

在这一阶段,LLM 被指示将不同的证据子图整合为统一的推理图。该推理图在完成后将作为步骤 III 的外部增强图输入,提供所有证据子图的整体视角,以增强输出生成过程。为了生成最终的附加知识子图输入,首先从上一部分中提取了至少 k 个基于路径的证据子图和 k 个基于邻居的证据子图,每个子图都代表了查询实体之间可能存在的联系。然后,将每个子图格式化为实体链,并分配一个序列号。接下来,LLMs被提示去理解和合并这些检索出的证据子图,以构建推理图。

3.3 基于思维导图进行LLM推理

在这一阶段,LLMs被指导去融合已经构建好的推理图以及它们的隐性知识。这意味着LLMs需要将从外部知识图谱中获取的信息与自己内部的已有知识相结合。随后,LLMs需要基于上述整合后的知识来生成最终的答案。这一阶段还包括构建一个思维导图,该导图揭示了LLMs的推理路径。

4. 实验

4.1 实验设置

本文评估了MindMap在三个医学问答数据集的复杂问题解答任务中对外部知识图谱的利用情况:GenMedGPT-5k、CMCQA 和 ExplainCPE。这些数据集分别涵盖了医患对话、多轮临床对话和中国国家执业药师考试的选择题。为了支持知识图谱增强方法,本文构建了两个知识图谱(EMCKG 和 CMCKG),其中包含与医学概念相关的实体和关系。ExplainCPE数据集利用知识不匹配的CMCKG来评估错误检索知识对模型性能的影响。本文将MindMap整合隐性知识和显性知识的能力与各种基线进行了比较,包括GPT-3.5和GPT-4,以及使用树形结构进行推理的思维树方法(TOT)。此外,本文还考虑了三种检索增强基线:BM25 retriever、Text Embedding retriever 和 KG retriever。这些基线利用不同的证据检索方法和来源,以 gpt-3.5-turbo-0613 作为所有基于检索方法的骨干。

4.2 医疗问答

使用 GenMedGPT-5K 测试了 LLM 如何处理医疗领域的问题解答,其中 LLM 需要回答疾病诊断、药物推荐和测试推荐等问题。

(1)评估指标

使用BERTScore和 GPT-4 Rating进行定量评估。BERTScore 衡量生成答案与参考答案之间的语义相似性。GPT4 用于:(1)根据基本事实对答案质量进行排序;(2)根据四个标准对答案对进行比较:答案多样性和完整性、总体事实正确性、疾病诊断正确性和药物推荐正确性。此外,还引入了一种新的幻觉量化指标,用于估算生成的答案与事实的偏离程度。为了计算该指标,首先使用步骤 I 生成的问题-额外实体数据,训练基于 mT5-large 的关键词提取模型(NER-MT5)。然后将 MindMap 的输出、其他基线和标签输入 NER-MT5 模型,得到每个答案的关键词列表。最后将关键词用逗号连接起来,作为 ner-sentences,并计算不同输出的 ner-sentences 之间的 tfidf 相似度得分。得分越低,说明答案中的幻觉越多。

(2)结果

表1根据 BERTScore、GPT-4 排名得分和幻觉量化得分对各种方法进行了评估。虽然 BERTScore 在各种方法中显示出相似的结果,但 MindMap 稍有进步,这可能是由于医学回答中的共同基调。不过,对于医学问题来说,全面的领域知识至关重要,而 BERTScore 并不能很好地捕捉到这一点。GPT-4排名得分和幻觉量化显示,MindMap明显优于其他方法,其平均GPT-4排名为1.8725,幻觉得分较低。这突出表明,与GPT3.5和GPT-4等基线模型相比,MindMap有能力生成有证据基础、可信且准确的答案,而GPT-4等基线模型由于依赖于内隐知识,可能会产生不正确的答案。此外,表 2 显示 MindMap 始终优于其他方法,强调了整合外部知识以减少 LLM 幻觉并提供准确答案的价值。

表1: GenMedGPT-5k 所有方法的 BERTScore 和 GPT4 排名

ac0443c2347e1da0b5751d69cbc312d6.png

表 2:在 GenMedGPT-5k 上,GPT-4 对 MindMap 与基线在多样性和完整性得分(%)、事实总匹配得分(%)和疾病诊断(%)方面的胜率进行了配对比较

b4006c1b20b0ff7e9e510d333065d9bf.png

4.3 长对话问答

在以需要复杂推理的冗长对话为特点的CMCQA数据集上进行的实验中,表3显示,尽管与KG Retriever类似,但MindMap的排名始终优于大多数基线。此外,在表4中,根据GPT-4判断,MindMap在成对胜率方面一直优于基线。尽管与GenMedGPT-5K相比,由于知识图谱(KG)不足以涵盖CMCQA问题的所有必要事实,MindMap的性能差距有所缩小,但它仍然超越了包括KG Retriever在内的所有基于检索的方法。这表明以前基于检索的方法可能会过度依赖检索到的外部知识,从而影响语言模型(LLM)利用其内隐知识把握复杂逻辑和对话细微差别的能力。相反,MindMap 在图推理中同时利用了外部知识和内隐知识,从而得到了更准确的答案。

表 3:所有方法在 CMCQA 数据集上的 BERTScore 和 GPT-4 排名

d24d7b247cf9f02a43d0e409d06d869b.png

表 4:GPT-4对MindMap在CMCQA疾病诊断和药物推荐方面的胜率与基线的成对比较

f9e9d3eefa6ca8f34cd1c9801e4a40bf.png

4.4 从KG生成不匹配的知识

在解决MindMap对KG事实正确性的稳健性问题时,利用第二个数据集--ExplainPE--中使用的相同的KG数据集。因此,检索到的知识可能会出现冗余或缺乏准确信息的情况。这一点尤为重要,因为它反映了生产中的一种常见情况,即 LLM 经常需要将其内隐知识和从外部来源获取的知识合并在一起生成答案。

(1)评估指标

根据生成选择的准确性和解释的质量对所有方法进行评估。为了评估解释质量,使用 BERTScore 和 GPT-4 排名。

(2)结果

在表 5 中,与各种基线相比, MindMap显示出更高的准确率,这肯定了它比文档检索提示技术更有效。有趣的是,直接将检索到的知识纳入提示中有时会降低答案质量,KG Retriever 和 BM25 Retriever 的表现就不如普通的 GPT-3.5 模型。造成这种差异的原因是外部知识不匹配,导致语言模型(LLM)受到误导。该模型倾向于依赖检索到的知识,如果不准确,LLM 可能会产生错误。指令提示的消融分析显示,提示LLM "结合你已有的知识"使成绩提高了8.2%。此外,表6突出显示了MindMap为答案生成理由的能力,在GPT-4中获得了2.98的排名。

表 5:ExplainCPE 的准确率得分

c008c6ae304f51a393419bcb826f0d5e.png

表 6:MindMap 与基线在 ExplainCPE 数据集中的 BERTScore 和 GPT-4 偏好排序的定量比较

fd6e60858ec0acdd6373001fd106b9bc.png

4.5 消融研究

将MindMap与两种变体进行了比较:纯邻居和纯路径。纯邻接法侧重于基于邻接的证据探索,而纯路径法侧重于基于路径的证据探索。尽管使用了额外的标记,但与纯邻居和纯路径方法相比,MindMap 在幻觉量化方面仍有显著改进。这凸显了结合基于路径和基于邻居的方法来减少幻觉的重要性。值得注意的是,与基于路径的方法相比,基于邻居的方法在提高事实准确性方面更为有效。对于涉及医疗咨询的任务,基于路径的方法在查找相关外部信息方面更胜一筹,但在处理多跳答案(如药物和测试建议)时则显得力不从心。

5. 总结

本文介绍了知识图谱提示:1)赋予语言学习者理解知识图谱输入的能力;2)促进语言学习者结合内隐知识和检索到的外部知识进行推理。然后,本文研究了激发思维导图的问题,在思维导图中,LLMs 进行推理并生成答案,其理由用图表示。通过在三个问题与答案数据集上进行广泛的实验,验证了本文的方法与直接使用LLMs 或RAG方法相比取得了显著的收益,并且对不匹配的检索知识具有鲁棒性,为在生产中实现可靠、透明的 LLM 推断打开了大门。


OpenKG

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

328a24f23c40383070cccd5885c1e166.png

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

相关文章:

论文浅尝 | MindMap:知识图谱提示激发大型语言模型中的思维图(ACL2024)

笔记整理:和东顺,天津大学硕士,研究方向为软件缺陷分析 论文链接:https://aclanthology.org/2024.acl-long.558/ 发表会议:ACL 2024 1. 动机 虽然大语言模型(LLMs)已经在自然语言理解和生成任务…...

第6章:TDengine 标签索引和删除数据

TDengine 标签索引和删除数据 目标 掌握标签索引的创建、删除掌握超表、子表创建以及数据删除删除数据 删除数据是 TDengine 提供的根据指定时间段删除指定表或超级表中数据记录的功能,方便用户清理由于设备故障等原因产生的异常数据。 注意:删除数据并不会立即释放该表所…...

【微软:多模态基础模型】(5)多模态大模型:通过LLM训练

欢迎关注[【youcans的AGI学习笔记】](https://blog.csdn.net/youcans/category_12244543.html)原创作品 【微软:多模态基础模型】(1)从专家到通用助手 【微软:多模态基础模型】(2)视觉理解 【微…...

海外带云仓多语言商城源码,多语言多商家云仓一键代发商城

新增海外仓,云仓国际供应链系统,商家可登陆云仓进行批量发货 商城修复了一些bug以及增加了订单数字提示,优化加载速度,二开了一些细微功能 基于 PHP Laravel 框架开发的一款 Web 商城系统。 1.前端多国语言自由切换,…...

android:taskAffinity 对Activity退出时跳转的影响

android:taskAffinity 对Activity跳转的影响 概述taskAffinity 的工作机制taskAffinity对 Activity 跳转的影响一个实际的开发问题总结参考 概述 在 Android 开发中,任务栈(Task)是一个核心概念。它决定了应用程序的 Activity 如何相互交互以…...

Apache Dolphinscheduler数据质量源码分析

Apache DolphinScheduler 是一个分布式、易扩展的可视化数据工作流任务调度系统,广泛应用于数据调度和处理领域。 在大规模数据工程项目中,数据质量的管理至关重要,而 DolphinScheduler 也提供了数据质量检查的计算能力。本文将对 Apache Do…...

solana链上智能合约开发案例一则

环境搭建 安装Solana CLI:Solana CLI是开发Solana应用的基础工具。你可以通过官方文档提供的安装步骤,在本地环境中安装适合你操作系统的Solana CLI版本。安装完成后,使用命令行工具进行配置,例如设置网络环境(如开发网…...

使用 PyTorch 实现 ZFNet 进行 MNIST 图像分类

在本篇博客中,我们将通过两个主要部分来演示如何使用 PyTorch 实现 ZFNet,并在 MNIST 数据集上进行训练和测试。ZFNet(ZFNet)是基于卷积神经网络(CNN)的图像分类模型,广泛用于图像识别任务。 环…...

车轮上的科技:Spring Boot汽车新闻集散地

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理汽车资讯网站的相关信息成为必然。开发合适…...

IDEA2023 SpringBoot整合Web开发(二)

一、SpringBoot介绍 由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。SpringBoot提供了一种新的编程范式,可以更加快速便捷…...

国产三维CAD 2025新动向:推进MBD模式,联通企业设计-制造数据

本文为CAD芯智库原创整理,未经允许请勿复制、转载! 上一篇文章阿芯分享了影响企业数字化转型的「MBD」是什么、对企业优化产品设计流程有何价值——这也是国产三维CAD软件中望3D 2024发布会上,胡其登先生(中望软件产品规划与GTM中…...

ubuntu 之 安装mysql8

安装 # 如果 ubuntu 版本 > 20.04 则不用执行 wget 这步 wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.debsudo apt-get updatesudo apt-get install mysql-server mysql-client 安装过程中如果没有提示输入密码 sudo cat /etc/mysql/debian.cnf # 查…...

Flink Lookup Join(维表 Join)

Lookup Join 定义(支持 Batch\Streaming) Lookup Join 其实就是维表 Join,比如拿离线数仓来说,常常会有用户画像,设备画像等数据,而对应到实时数仓场景中,这种实时获取外部缓存的 Join 就叫做维…...

Elasticsearch retrievers 通常与 Elasticsearch 8.16.0 一起正式发布!

作者:来自 Elastic Panagiotis Bailis Elasticsearch 检索器经过了重大改进,现在可供所有人使用。了解其架构和用例。 在这篇博文中,我们将再次深入探讨检索器(retrievers)。我们已经在之前的博文中讨论过它们&#xf…...

【并发模式】Go 常见并发模式实现Runner、Pool、Work

通过并发编程在 Go 程序中实现的3种常见的并发模式。 参考:https://cloud.tencent.com/developer/article/1720733 1、Runner 定时任务 Runner 模式有代表性,能把(任务队列,超时,系统中断信号)等结合起来…...

【前端知识】Javascript前端框架Vue入门

前端框架VUE入门 概述基础语法介绍组件特性组件注册Props 属性声明事件组件 v-model(双向绑定)插槽Slots内容与出口 组件生命周期样式文件使用1. 直接在<style>标签中写CSS2. 引入外部CSS文件3. 使用CSS预处理器4. 在main.js中全局引入CSS文件5. 使用CSS Modules6. 使用P…...

Springboot3.3.5 启动流程之 Bean创建流程

在文章Springboot3.3.5 启动流程&#xff08;源码分析&#xff09;中我们只是粗略的介绍了bean 的装配(Bean的定义)流程和实例化流程分别开始于 finishBeanFactoryInitialization 和 preInstantiateSingletons. 其实,在Spring boot中&#xff0c;Bean 的装配是多阶段的&#xf…...

golang反射函数注册

package main import ( “fmt” “reflect” ) type Job interface { New([]interface{}) interface{} Run() (interface{}, error) } type DetEd struct { Name string Age int } // 为什么这样设计 // 这样就避免了 在创建新的实例的之后 结构体的方法中接受者为指针类型…...

【Spring】Bean

Spring 将管理对象称为 Bean。 Spring 可以看作是一个大型工厂&#xff0c;用于生产和管理 Spring 容器中的 Bean。如果要使用 Spring 生产和管理 Bean&#xff0c;那么就需要将 Bean 配置在 Spring 的配置文件中。Spring 框架支持 XML 和 Properties 两种格式的配置文件&#…...

深入解析TK技术下视频音频不同步的成因与解决方案

随着互联网和数字视频技术的飞速发展&#xff0c;音视频同步问题逐渐成为网络视频播放、直播、编辑等过程中不可忽视的技术难题。尤其是在采用TK&#xff08;Transmission Keying&#xff09;技术进行视频传输时&#xff0c;由于其特殊的时序同步要求&#xff0c;音视频不同步现…...

为什么要使用Ansible实现Linux管理自动化?

自动化和Linux系统管理 多年来&#xff0c;大多数系统管理和基础架构管理都依赖于通过图形或命令行用户界面执行的手动任务。系统管理员通常使用清单、其他文档或记忆的例程来执行标准任务。 这种方法容易出错。系统管理员很容易跳过某个步骤或在某个步骤上犯错误。验证这些步…...

Android:任意层级树形控件(有效果图和Demo示例)

先上效果图&#xff1a; 1.创建treeview文件夹 2.treeview -> adapter -> SimpleTreeAdapter.java import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.ListView; i…...

C++ 容器全面剖析:掌握 STL 的奥秘,从入门到高效编程

引言 C 标准模板库&#xff08;STL&#xff09;提供了一组功能强大的容器类&#xff0c;用于存储和操作数据集合。不同的容器具有独特的特性和应用场景&#xff0c;因此选择合适的容器对于程序的性能和代码的可读性至关重要。对于刚接触 C 的开发者来说&#xff0c;了解这些容…...

C++---类型转换

文章目录 C的类型转换C的4种强制类型转换RTTI C的类型转换 类型转换 内置类型之间的转换 // a、内置类型之间 // 1、隐式类型转换 整形之间/整形和浮点数之间 // 2、显示类型的转换 指针和整形、指针之间 int main() {int i 1;// 隐式类型转换double d i;printf("%d…...

CSS基础学习练习题

编程题 1.为下面这段文字定义字体样式&#xff0c;要求字体类型指定多种、大小为14px、粗细为粗体、颜色为蓝色。 “有规划的人生叫蓝图&#xff0c;没规划的人生叫拼图。​” 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><me…...

TypeScript知识点总结和案例使用

TypeScript 是一种由微软开发的开源编程语言&#xff0c;它是 JavaScript 的超集&#xff0c;提供了静态类型检查和其他一些增强功能。以下是一些 TypeScript 的重要知识点总结&#xff1a; 1. 基本类型 TypeScript 支持多种基本数据类型&#xff0c;包括&#xff1a; numbe…...

解决BUG: Since 17.0, the “attrs“ and “states“ attributes are no longer used.

从Odoo 17.0开始&#xff0c;attrs和states属性不再使用&#xff0c;取而代之的是使用depends和domain属性来控制字段的可见性和其他行为。如果您想要在选择国家之后继续选择州&#xff0c;并且希望在选择了国家之后才显示州字段&#xff0c;您可以使用depends属性来实现这一点…...

单片机GPIO中断+定时器 实现模拟串口接收

单片机GPIO中断定时器 实现模拟串口接收 解决思路代码示例 解决思路 串口波特率9600bps,每个bit约为1000000us/9600104.16us&#xff1b; 定时器第一次定时时间设为52us即半个bit的时间&#xff0c;其目的是偏移半个bit时间&#xff0c;之后的每104us采样并读取1bit数据。使得…...

《深入理解 Spring MVC 工作流程》

一、Spring MVC 架构概述 Spring MVC 是一个基于 Java 的轻量级 Web 应用框架&#xff0c;它遵循了经典的 MVC&#xff08;Model-View-Controller&#xff09;设计模式&#xff0c;将请求、响应和业务逻辑分离&#xff0c;从而构建出灵活可维护的 Web 应用程序。 在 Spring MV…...

HTML简介

知识点一 HTML 什么是HTML&#xff1f; 超文本标记语言(HyperTextMarkup Language&#xff0c;简称HTML) 怎么学HTML&#xff1f; HTML 是一门标记语言&#xff0c;标记语言由一套标记标签组成&#xff0c;学习 HTML&#xff0c;其实就是学习标签 开发工具 编辑器: Pycha…...