交互式知识库问答:一种结合大型语言模型的多轮交互方法

在当今信息爆炸的时代,人们每天都要处理海量的数据和信息。在这样的背景下,基于知识库的问答系统(KBQA)成为了一个重要的研究领域,它旨在使计算机能够理解自然语言提出的问题,并从结构化的知识库中检索出准确的答案。然而,KBQA面临着一系列挑战,尤其是如何将复杂的自然语言问题转化为可在知识库上执行的查询,以及如何在资源受限的情况下实现高效的问答。

传统的KBQA方法,如基于信息检索(IR)的方法和基于语义解析(SP)的方法,虽然在某些场景下取得了一定的成果,但它们通常需要大量的标注数据来训练模型,这不仅成本高昂,而且限制了方法的可扩展性和适应性。并且这些方法在处理复杂的多跳问题时也常常力不从心。随着大型语言模型(LLMs)的出现,研究者们开始探索利用这些模型的少样本学习能力和推理能力来提升KBQA系统的性能。但是,如何充分利用LLMs的潜力,尤其是在低资源情境下,仍然是一个开放的问题。

本文针对上述挑战,提出了一种名为Interactive-KBQA的新型框架。该框架通过设计一种多轮交互式的方法,将LLMs的推理能力与知识库交互工具结合起来,以实现对复杂问题的深入理解和精确回答。Interactive-KBQA通过直接与知识库进行交互,生成逻辑形式和SPARQL查询,从而克服了传统方法的局限,并在低资源情况下展现出卓越的性能。通过对交互过程的精心设计,Interactive-KBQA不仅提高了答案的准确性,还增强了模型的可解释性和适应性,为KBQA领域的研究和应用开辟了新的道路。

方法

交互式KBQA的流程

在Interactive-KBQA框架中,交互过程是实现知识库问答(KBQA)任务的核心机制。首先,用户提出一个问题,例如询问“有多少篮球运动员身高超过2米?”。这个问题将作为输入进入系统。LLM作为代理,首先需要进行“思考”(Thought),在这一阶段,LLM分析问题的语义,并决定需要执行的动作。例如,它可能需要搜索特定的实体或关系,或者构造一个SPARQL查询来从知识库中检索信息。

接下来是“行动”(Action)阶段,LLM根据思考的结果执行相应的操作。这可能包括调用SearchNodes工具来查找与问题相关的知识库节点,使用SearchGraphPatterns工具来识别关键的图模式谓词,或者执行一个SPARQL查询来直接从知识库中获取答案。

每个行动的执行都会产生“观察”(Observation)结果,这些结果反馈给LLM,为下一步的思考提供信息。例如,如果LLM执行了SearchNodes,它可能会观察到一系列与问题相关的实体列表。

随后,LLM再次进入“思考”阶段,根据新的观察结果调整其行动策略。这个过程是迭代的,LLM在每一轮中都会进行思考和行动,直到问题得到满意的解答。

为了引导LLM正确地进行思考和行动,研究者设计了一组示例(Exemplars),这些示例展示了如何将问题分解为子查询,并指导LLM如何使用不同的工具与知识库进行交互。

研究者还构建了“提示”(Prompt),这是一种包含工具描述、工具使用和交互格式的指导性文本,用于辅助LLM理解任务和执行交互。

当LLM执行“完成”(Done)动作时,最终的观察结果将作为问题的答案输出。整个过程是一个多轮的对话式交互,LLM通过连续的思考和行动,逐步深入理解问题并构建出正确的答案。

该研究首先定义了KBQA任务,即将自然语言问题转化为可在知识库上执行的SPARQL查询。知识库被形式化为一个包含实体、关系和类别的结构,研究的目标是生成一个与问题相对应的SPARQL表达式,这一过程可以视为条件概率模型 p(S∣Q,K) 的求解。

Interactive-KBQA框架将LLMs视为代理,知识库视为环境,通过直接与知识库的交互来引导LLMs进行语义解析和SPARQL生成。这种方法允许系统以对话的形式,逐步构建对问题的理解和回答。

为了实现与知识库的有效交互,研究者设计了三种工具:SearchNodes用于基于表面名称搜索实体;SearchGraphPatterns用于识别和排名与问题语义相关的图模式谓词;ExecuteSPARQL用于执行任意SPARQL查询。这些工具共同构成了交互逻辑的基础。

LLMs通过提示文本和交互历史生成动作。提示文本包括工具描述、使用说明和交互格式,而交互历史记录了整个对话过程中的思考、动作和观察结果。LLMs需要根据这些信息,决定下一步的行动,直至问题得到解答。

交互过程示例

研究者通过为不同类型复杂问题设计交互模式和标注高质量的示例,指导LLMs进行推理。这种方法允许系统处理多跳问题、涉及复杂结构的问题,以及需要特定推理步骤的问题。

为了克服现有LLMs在输出错误时难以纠正的问题,以及现有KBQA数据集缺乏详细推理步骤的局限,研究者提出了一种人机协作注释策略。通过手动标注包含详细推理过程的样本,并使用这些样本对开源LLMs进行微调,研究者提高了模型在低资源环境下的性能。

实验

研究者们选取了多个广泛使用的KBQA数据集,包括WebQuestionsSP、ComplexWebQuestions、KQA Pro和MetaQA,这些数据集覆盖了基于Freebase、Wikidata和特定领域知识库的问题。为了构建测试数据集,研究者们采用均匀采样方法从每个数据集中抽取样本,并手动标注部分样本以形成低资源数据集,从而评估模型在资源受限情况下的性能。

使用的数据集的统计信息,包括数据集类型、注释数量、原始数据量以及训练/测试数据的分布

为了全面评估Interactive-KBQA的性能,研究者们选择了多种先前最优的基线模型,这些模型包括了基于语义解析的方法和基于提示的方法。采用了F1分数、Random Hits@1和Exact Match等评估指标来衡量模型的性能。对于KQA Pro数据集,还特别报告了准确率指标。

实验结果显示,Interactive-KBQA在CWQ和MetaQA数据集上的性能超越了基线模型,特别是在处理比较性和最高级问题类型时,取得了显著的性能提升。此外,在低资源情境下,通过微调开源LLMs,Interactive-KBQA在特定问题类型上的性能甚至超过了GPT-4 Turbo。

Interactive-KBQA在WebQuestionsSP(WebQSP)和ComplexWebQuestions(CWQ)数据集上的结果

 表2中,对于WebQSP数据集,尽管Interactive-KBQA在1-hop和2-hop问题上的表现略低于使用完整数据训练的先前最优方法,但在整体性能上显示出了竞争力。特别是在CWQ数据集上。

Interactive-KBQA在MetaQA数据集上的结果

表3显示,Interactive-KBQA在所有问题类型上均优于基线模型,包括连接(Conjunction)、组合(Composition)、比较(Comparative)和最高级(Superlative)问题。特别是在比较性和最高级问题类型上,Interactive-KBQA实现了显著的性能提升,分别提高了29.85%和13.96%。

这些结果表明,Interactive-KBQA在处理复杂问题时的有效性,尤其是在资源受限的情况下,其性能优势更为明显。此外,通过使用少量示例进行微调的开源大型语言模型,Interactive-KBQA在低资源情境下的表现超越了商业化的LLMs,证明了其方法的实用性和可扩展性。

实体链接是KBQA中的一个关键步骤,研究者们评估了Interactive-KBQA在实体链接方面的表现,并引入了提及覆盖率(Mention Cover Rate, MCR)来量化实体链接的难度。实验结果指出,在KQA Pro和MetaQA数据集上,实体链接的表现对整体性能有显著影响。

实体链接的实验结果

在消融研究中,研究者们通过减少或增加某些组件(如示例数量、不同类型的问题示例),来观察这些变化对模型整体性能的影响。问题类型分类器的作用是根据问题的语义特征将其分类到预定义的问题类型中,从而为LLM提供正确的交互策略和示例。

问题类型分类器的性能

这些数据表明,分类器在识别1-hop问题时表现最佳,而在识别Conjunction类型的问题时表现相对较差。F1分数和准确率的高值表明分类器整体性能较好,但仍有改进空间,尤其是在处理某些特定类型的问题时。

研究者们对Interactive-KBQA在实验中出现的错误类型进行了系统性分析,包括实体链接错误、谓词搜索错误、推理错误、格式合规性错误和幻觉错误等。通过案例研究,研究者们展示了在人类辅助下纠正这些错误的流程,这为进一步优化模型提供了见解。

不同错误类型的分布

Interactive-KBQA框架通过结合大型语言模型的推理能力和与知识库的多轮交互,有效地提高了KBQA系统的准确性和可解释性。通过少量示例学习和手动干预,该框架在资源受限的情况下展现出了卓越的性能,为知识库问答领域提供了一种新的研究方向和工具。

论文链接:https://arxiv.org/abs/2402.15131.pdf

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

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

相关文章

通信系统网络架构_1.局域网网络架构

当今,通信网络从大的方面主要包括局域网、广域网、移动通信网等网络形式。不同的网络会采用不同的技术进行网络构建。以下针对不同的网络给出各自的网络架构以及所采用的技术。 1.概述 局域网,即计算机局部区域网络,是一种为单一机构所拥有的…

四边形不等式优化

四边形不等式优化 应用于类似以下dp转移方程。 f i min ⁡ 1 ≤ j ≤ i ( w i , j , f i ) f_{i}\min_{1\le j\le i}(w_{i,j},f_{i}) fi​1≤j≤imin​(wi,j​,fi​) 假设 w i , j w_{i,j} wi,j​ 可以在 O ( 1 ) O(1) O(1) 的时间内进行计算。 在正常情况下,…

如何验证Rust中的字符串变量在超出作用域时自动释放内存?

讲动人的故事,写懂人的代码 在公司内部的Rust培训课上,讲师贾克强比较了 Rust、Java 和 C++ 三种编程语言在变量越过作用域时自动释放堆内存的不同特性。 Rust 通过所有权系统和借用检查,实现了内存安全和自动管理,从而避免了大部分内存泄漏。Rust 自动管理标准库中数据类…

本科生大厂算法岗实习经验复盘:从投递到面试的底层思维!

目录 投递渠道boss直聘官网邮箱内推 面试准备leetcode八股深挖项目自我介绍mock面试技巧答不出来怎么办coding反问 复盘技术交流群用通俗易懂方式讲解系列 节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面…

30 - 每位经理的下属员工数量(高频 SQL 50 题基础版)

30 - 每位经理的下属员工数量 -- 根据reports_to ,获取employee_id,即分组用e1.reports_to,查询用e2.employee_id,e2.nameselect e2.employee_id,e2.name ,count(e1.reports_to) reports_count,round(avg(e1.age),0) average_age from Employees e1 left…

Springboot应用的信创适配-补充

Springboot应用的信创适配-CSDN博客 因为篇幅限制,这里补全Spring信创适配、数据库信创适配、Redis信创适配、消息队列信创适配等四个章节。 Springboot应用的信创适配 Springboot应用的信创适配,如上图所示需要适配的很多,从硬件、操作系统、…

【Linux基础IO】深入理解缓冲区

缓冲区在文件操作的过程中是比较重要的,理解缓冲区向文件刷新内容的原理可以更好的帮助我们更深层的理解操作系统内核对文件的操作。 FILE 因为IO相关函数与系统调用接口对应,并且库函数封装系统调用,所以本质上,访问文件都是通过…

国内外大模型生态发展报告!

很多同学只知类似Check GPT或者说对国内的一些比较了解,对国外的不太了解,所以在这总结。 1 大模型的发展 左表 名称参数特点发布时间GPT-215亿英文底模,开源2019年Google T5110亿多任务微调, 开源2019年GPT-3.51750亿人工反馈微调2022年M…

Django 循环模板标签

1&#xff0c;循环模板标签 Django 模板系统中提供了多种循环模板标签来迭代数据并显示列表、字典或其他可迭代对象。 1.2 {% for %} 标签 用于迭代列表或可迭代对象&#xff0c;并为每个元素提供上下文变量。 {% for item in items %}{{ item }} <!-- 渲染当前迭代项 -…

第二次IAG

IAG in NanJing City 我与南京奥体的初次相遇&#xff0c;也可能是最后一次&#xff01; 对我来说,IAG 演唱会圆满结束啦! 做了两场充满爱[em]e400624[/em]的美梦 3.30号合肥站&#xff0c;6.21号南京站[em]e400947[/em] 其实&#xff0c;没想到昨天回去看呀!(lack of money […

docker简单快速使用上手

1.Docker是什么&#xff1f; Docker 是一个开源的容器化平台&#xff0c;主要用于开发、运输和运行应用程序。它通过提供轻量级的虚拟化机制&#xff0c;使得开发者可以在一个隔离的环境中运行和管理应用程序及其依赖项。Docker 的核心组件包括镜像&#xff08;Image&#xff…

数据库浅识及MySQL的二进制安装

数据库基础概念与MySQL二进制安装与初始化 使用数据库的必要性 数据库可以结构化储存大量数据信息&#xff0c;方便用户进行有效的检索访问 有效的保持数据信息的一致性&#xff0c;完整性&#xff0c;降低数据冗余 可以满足应用的共享和安全方面的要求 数据库基本概念 数据…

Redis学习|Redis 是什么、Redis 能干嘛、Window安装Redis、Linux下安装Redis、Redis测试性能

Redis 是什么? Redis(Remote Dictionary Server)&#xff0c;即远程字典服务! 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API. redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记…

C++:STL容器-map

C:STL容器-map 1. map构造和赋值2. map大小和交换3. map插入和删除4. map查找和统计5. map容器排序 map中所有元素都是pair&#xff08;对组&#xff09; pair中第一个元素为key&#xff08;键&#xff09;&#xff0c;起到索引作用&#xff0c;第二个元素为value&#xff08;实…

揭秘古代手术工具与技术:从中国起源的医疗奇迹

在人类历史的长河中&#xff0c;医学的发展一直是推动社会进步的重要力量。而手术作为医学的一个重要分支&#xff0c;其发展历程同样充满了传奇色彩。今天&#xff0c;我们将带您走进古代手术的世界&#xff0c;揭秘那些令人惊叹的手术工具和技术。 这把手术刀出土于河北西村遗…

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇入口切换SMB共享WMI管道DCOM组件Impacket套件CS插件

红队内网攻防渗透 1. 内网横向移动1.1 WMI进行横向移动1.1.1 利用条件:1.1.1 利用详情1.1.1.1 wmic1.1.1.1.1 正向shell上线1.1.1.1.2 反向shell上线1.1.1.2 cscript(不建议使用)1.1.1.3 wmiexec-impacket1.1.1.4 cs插件1.2 SMB横向移动1.2.1 利用条件:1.2.2 利用详情1.2.2…

java中Object和json相互转换的方式

1.org中jackson转换json,springboot中内置jackson ObjectMapper onew ObjectMapper(); List<>listnew ArrayList(); String jonso.writeAsValueString(list); 2.alibaba中fastjson转换成json GetMapping("/test")public TbUser testHttpClient(){String url…

BFS:解决最短路问题

文章目录 什么是最短路问题&#xff1f;1.迷宫中离入口最近的出口2.最小基因变化3.单词接龙4.为高尔夫比赛砍树总结 什么是最短路问题&#xff1f; 最短路问题是图论中的经典问题&#xff0c;旨在寻找图中两个节点之间的最短路径。常见的最短路算法有多种&#xff0c;这次我们…

计算机组成原理 | 硬件电路整理

计算机组成原理 | 硬件电路整理 桶形移位器原理图 全加器逻辑框图 多位可控加减法电路逻辑框图 可级联的4位先行进位电路 4位快速加法器 16位组内并行、组间并行加法器 实现原码一位乘法的逻辑框图 补码一位乘法的逻辑框图 无符号数阵列乘法器 原码不恢复余数法硬件逻辑框图 基…

代码随想录第31天|贪心算法

134. 加油站 参考 思路: 以每个油站相差作为判断, 比如: gas [5 8 2 8]cost [6 5 6 6] [-1 3 -4 2]错误 : 把相差最大点当作起点判断能否绕一圈 : 相加数组是否小于0局部最优: 当前累加rest[i]的和curSum一旦小于0&#xff0c;起始位置至少要是i1&#xff0c;因为从i…