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

论文浅尝 | Interactive-KBQA:基于大语言模型的多轮交互KBQA(ACL2024)

转载至:何骏昊 开放知识图谱

原文地址:论文浅尝 | Interactive-KBQA:基于大语言模型的多轮交互KBQA(ACL2024)

图片

笔记整理:何骏昊,东南大学硕士,研究方向为语义解析

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

发表会议:ACL 2024

1. 动机

知识库问答(KBQA)是一个日益重要的研究领域,它利用结构化知识库(KB)为自然语言(NL)问题提供精确答案。大语言模型(LLM)的出现为增强KBQA系统开辟了新途径。这些模型在KBQA领域中的推理和少样本学习方面显示出惊人的结果。该工作的动机主要源于解决KBQA领域中的以下关键挑战:

(1)复杂查询处理的局限性:现有基于信息检索(IR)的方法在处理涉及类型约束、数值比较或多跳推理的复杂查询时表现不足。例如,类似“身高超过2米的篮球运动员有多少人?”的问题需要更深入的语义理解,而传统方法难以有效捕捉此类复杂逻辑。

(2)语义解析(SP)方法的高标注成本:基于语义解析的方法依赖大量标注数据来生成可执行的逻辑形式(如SPARQL查询),但数据标注成本高昂,限制了方法的可扩展性。此外,这类方法的推理过程通常缺乏透明性,形成“黑箱”问题。

(3)大语言模型的潜力未充分释放:尽管LLMs在少样本学习和复杂推理任务中展现了强大能力,但现有KBQA系统主要将其用作分类器或简单生成器,未充分利用其交互式推理能力。例如,许多方法仅用LLMs生成逻辑形式的初稿,而非通过多轮交互动态优化结果。

基于这些挑战,论文提出Interactive-KBQA框架,核心思路是将LLM视为与知识库交互的“智能体”,通过多轮对话逐步生成逻辑形式。这种方法不仅降低了标注成本,还通过交互式工具(如搜索节点、图模式匹配)增强了复杂问题的处理能力,并通过人工干预机制提高了系统的灵活性和可解释性。最终目标是实现一个高效、透明且适应低资源场景的KBQA系统。

2. 贡献

该工作的主要贡献为以下四点:

(1)提出交互式KBQA框架(Interactive-KBQA),将LLM视为与KB交互的智能体,通过多轮对话逐步生成逻辑形式(如SPARQL查询)。  

(2)设计统一工具集与交互逻辑:开发了三个通用API,适配不同知识库(Freebase、Wikidata、Movie KB);通过标准化工具接口,实现了跨异构知识库的兼容性,简化了复杂查询(如多跳、数值约束、限定符)的处理流程。

(3)实现低资源场景下的高效性能。针对每类复杂问题(如多跳、CVT、限定符),仅需标注2个示例即可引导LLM完成推理。在三个数据集上,使用极少量标注达到或超越传统全监督方法的性能。

(4)发布高质量标注数据集,包含逐步推理过程的人工标注(如交互历史、错误修正记录),涵盖多种复杂问题类型。

3. 方法

3.1 问题定义 

KB定义为三元组集合K∈E×R×(E∪L∪C),其中E为实体集合,R为关系集合,C为类别集合,L为字面值。给定自然语言问题Q和知识库K,目标是通过语义解析生成可执行的SPARQL查询S,即建模为条件概率p(S|Q,K)。

3.框架设计

提出Interactive-KBQA框架(如图1所示),将LLM视为与知识库交互的智能体,通过多轮对话生成逻辑形式(SPARQL)。

交互范式:采用“思考-行动-观察”(Thought-Action-Observation)循环:1. 思考(Thought):LLM生成自然语言推理步骤(如问题分解、谓词选择);2. 行动(Action):调用预定义工具(如搜索节点、执行查询),生成Python风格的API调用指令。3. 观察(Observation):执行工具后返回结果(如实体列表、子图模式),作为下一轮输入。

终止条件:当LLM生成Action: Done时,输出最终SPARQL查询结果。

图片

图1 Interactive-KBQA框架的交互过程示例

3.知识库交互工具

框架基于三个通用工具(SearchNodes、SearchGraphPatterns、ExecuteSPARQL)引导LLM逐步推理复杂问题:

(1)SearchNodes(name):通过实体表面名称(如“Tom Hanks”)搜索知识库中的节点,返回节点的规范化名称、描述和类型(如“Barack Obama | 美国前总统”)。

(2)SearchGraphPatterns(sparql, semantic):输入需以“SELECT ?e WHERE”开头的SPARQL片段,返回以 ?e 为中心的一跳子图,并根据语义参数(如“play in film”)对谓词排序。特别优化了Freebase的复合值类型(CVT)结构,例如将“Tom Hanks参演电影”映射为两个单跳关系(film.actor.film → film.performance.film)。

(3)ExecuteSPARQL(sparql):直接执行任意SPARQL查询,支持灵活探索知识库。

3.交互流程

构建提示模板Prompt={Inst,E,Q},其中Inst为任务指令,E为示例集合,Q为当前问题。每轮交互中,LLM根据历史H={c0,a0,o0,……,ct-1,at-1,ot-1} 生成动作at=LLM{Prompt,H},其中ct为自然语言推理步骤(如“需查找Tom Hanks参演的电影”),at为工具调用(如SearchNodes、ExecuteSPARQL),ot为工具返回结果。若生成动作“Done”,则输出最终答案。

针对多跳查询,逐步解析谓词而非具体实体(例如“法国的总统是谁?”需先定位国家节点,再搜索“president”关系);针对Freebase的CVT结构,显式分解为多个单跳关系(如将“演员-角色-电影”拆分为两跳);针对Wikidata的限定符(如“纽约市2010年人口”),设计专用SPARQL模式,通过修饰符(如point_in_time)约束查询。每类问题提供2个标注示例,引导LLM遵循特定推理路径。

3.人机协同标注

允许人工在交互过程中修正LLM的错误动作(如生成不存在谓词),形成修正后的历史{c0,a0,o0,……,a't,o't},并继续生成后续步骤。标注数据集包含详细的逐步推理过程,用于微调开源LLM(如Mistral-7B),降低对商业API的依赖。

4. 实验

4.实验设置

本工作采用:WebQuestionsSP (WebQSP) 和 ComplexWebQuestions 1.1 (CWQ):基于Freebase,分别包含简单(1-hop)和复杂(多类型)问题,问题类型包括Conjunction (Conj)、Composition (Compo)、Comparative (Compa)、Superlative (Super);KQA Pro:基于Wikidata,覆盖9类复杂问题(如计数、属性限定符、关系查询);MetaQA:基于Movie KB,包含1-hop至3-hop问题。 

本工作从每个数据集均匀采样900个实例确保问题类型分布平衡。

4.2 基线方法

本工作采用以下基线方法:

(1)全数据微调方法:DeCAF(WebQSP)、BART-SPARQL(KQA Pro)、Edge-aware(MetaQA)。

(2)提示方法:KB-BINDER(少样本)、Chain-of-Thought (CoT) + Self-Consistency (SC)。

(3)低资源微调方法:在标注数据集上微调开源LLMs(Mistral-7B、Llama2-7B/13B)。

(4)对比方法:StructGPT、ToG(假设实体已链接)。

4.3 评估指标

本工作采用以下评估指标:

(1)F1分数:逻辑形式生成的匹配程度。

(2)RHits@1(随机命中率@1):答案实体排名第一的比例。

(3)EM(精确匹配):生成的SPARQL与标注完全一致的比例。

(4)准确率(KQA Pro):答案集合完全匹配的比例。

4.主要结果

如表1所示,该工作在WebQSP和KQA Pro上,由于训练数据量差异,GPT-4 Turbo的性能略低于全监督方法,但在CWQ和MetaQA(表2)上显著超越(如CWQ的总体F1为49.07%,MetaQA的Hits@1达99.67%)。 在复杂问题类型上表现突出,例如CWQ的“比较类”(Compa)和“最高级”(Super)问题分别提升29.85%和13.96%。  

Mistral-7B微调后在CWQ和KQA Pro上的F1分别达到39.90%和64.40%,优于同等规模的基准方法(如SFT-SPARQL的28.10%和57.78%)。 

Llama2-13B在部分任务(如CWQ的Compa问题)上表现接近GPT-4 Turbo(55.98% vs. 47.89%)。

表1 Interactive-KBQA在WebQSP 和 CWQ 上的结果

图片

表2 Interactive-KBQA在MetaQA上的结果

图片

4.实体链接的影响

通过对比ELQ工具与论文方法,发现实体链接是性能瓶颈之一。在WebQSP和CWQ上,论文方法的F1分别为80.00%和76.06%,而ELQ仅41.30%和43.81%。引入提及覆盖率(MCR)指标(黄金实体名称在问题中的出现比例)后发现,KQA Pro和MetaQA的MCR较高(80.80%和100%),而WebQSP和CWQ较低(67.42%和76.64%)。

表3 实体链接的结果

图片

4.消融实验

示例数量与覆盖率:如表4和表5所示,在CWQ(4类问题)和KQA Pro(9类问题)上,增加示例覆盖率可提升性能(如CWQ 4-shot比0-shot F1提升2.5%),但成本增加37.86%。

表4 问题类型分类器的性能

图片

表5 示例编号和平均价格的影响

图片

骨干模型对比:如表6所示,GPT-4 Turbo显著优于GPT-3.5(CWQ F1为49.07% vs. 13.42%),微调后的Mistral-7B优于未训练版本(CWQ 39.90% vs. 4.76%)。

表6不同骨干模型的性能

图片

4.错误分析

如表7所示,错误类型分为六类:实体链接(18%)、谓词搜索(6%)、推理(32%)、格式合规性(17%)、幻觉(19%)及其他(8%)。案例分析显示,人工干预可有效修正幻觉(如生成不存在谓词)和推理错误(如多跳路径遗漏)。例如,在问题“Justin Bieber的兄弟是谁?”中,LLM需通过性别约束修正初始错误答案,最终生成正确的SPARQL查询。

表7 错误类型的分布

图片

5. 总结

该工作提出了Interactive-KBQA框架,通过将大型语言模型(LLM)作为与知识库交互的智能体,以多轮对话形式逐步生成可执行的逻辑形式(如SPARQL查询),解决了传统KBQA方法在处理复杂查询、高标注成本及模型黑箱问题上的瓶颈。其核心创新在于交互式工具设计(如SearchNodes、SearchGraphPatterns)与“思考-行动”范式的结合,允许LLM动态探索知识库结构,并通过少量标注示例引导推理。此外,该方法支持人工干预,能够修正模型错误,形成迭代优化机制,显著提升了低资源场景下的性能与可解释性。 

该工作中实验设计覆盖了四个主流数据集,涵盖从简单到复杂的多类问题(如多跳、数值约束、限定符)。亮点在于:首先,该工作仅用2-4个标注示例即可达到或超越传统方法,凸显了框架的样本效率。其次,该工作通过分类错误类型(如实体链接、幻觉)和案例研究,揭示了模型瓶颈与改进方向。最后,该工作量化交互轮次与推理成本(如GPT-4 Turbo每轮$0.3–$0.5),为实际应用提供参考。 

尽管方法在低资源场景下表现突出,但仍存在明显局限:首先,框架性能高度受限于LLM的推理质量,例如GPT-4 Turbo在复杂问题上的成功率显著高于开源模型(如Mistral-7B)。若LLM生成错误推理步骤(如幻觉谓词),需依赖人工干预修正,这在实际应用中可能增加操作成本。其次,多轮对话导致推理时间与API调用成本上升,尤其对需要高频查询的场景(如实时问答)不够友好。最后,实验集中于特定领域(如电影、人物),未验证在开放域或动态更新知识库中的适应性,且人工标注数据集的规模较小,可能影响模型鲁棒性。 

未来工作需进一步优化工具自动化程度、降低对商业API的依赖,并探索更高效的交互策略(如压缩历史信息),以推动方法在实际系统中的落地。

相关文章:

论文浅尝 | Interactive-KBQA:基于大语言模型的多轮交互KBQA(ACL2024)

转载至:何骏昊 开放知识图谱 原文地址:论文浅尝 | Interactive-KBQA:基于大语言模型的多轮交互KBQA(ACL2024) 笔记整理:何骏昊,东南大学硕士,研究方向为语义解析 论文链接&#xff…...

线性规划工具推荐篇 开源+商用 按需取用

一、开源免费工具 1. GLPK (GNU Linear Programming Kit) 特点: 支持线性规划(LP)、混合整数规划(MIP)使用MathProg语言建模,可通过glpsol命令行求解适合中小规模问题,性能低于商业求解器 适用…...

linux -- php 扩展之xlswriter

xlswriter - PHP 最强性能 Excel 扩展 linux 安装 完整编译安装步骤 ## 下载wget https://pecl.php.net/get/xlswriter tar -zxvf xlswriter cd xlswriterphpize # 执行配置 ./configure # 编译 make make install ./configure 如果报错,就指定配置路径 …...

Dockerfile文件构建镜像Anaconda+Python教程

文章目录 前言Dockerfile 核心模块解析**一、Dockerfile基础镜像选择二、系统基础配置1、时区设置2、镜像源替换 三、系统依赖安装四、复制本地文件五、指定路径六、Anaconda环境配置1、anaconda环境安装2、配置虚拟环境3、创建conda虚拟环境4、启动和安装环境 七、完整dockerf…...

本地部署大模型-web界面(ollama + open-webui)

一、安装ollama 二、安装部署open-webui 1、项目运行环境 (1)配置python环境—官方下载链接 可通过命令行直接更改python镜像源为阿里云镜像源: >pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/也可手动修…...

Uniapp 实现微信小程序滑动面板功能详解

文章目录 前言一、功能概述二、实现思路三、代码实现总结 前言 Uniapp 实现微信小程序滑动面板功能详解 一、功能概述 滑动面板是移动端常见的交互组件,通常用于在页面底部展开内容面板。本文将介绍如何使用 Uniapp 开发一个支持手势滑动的底部面板组件&#xff0…...

redis一些常用的命令(1)

启动redis redis-server /home/XXX/myredis/redis.conf 默认不是后台运行的,修改配置文件,daemonized on /var/run/redis.pid when daemonized port 6380 默认端口的6379 bind:127.0.0.1 默认是本地 连接不同的端口 redis-cli -p 6380 制…...

Java虚拟机JVM知识点(已完结)

JVM内存模型 介绍下内存模型 根据JDK8的规范,我们的JVM内存模型可以拆分为:程序计数器、Java虚拟机栈、堆、元空间、本地方法栈,还有一部分叫直接内存,属于操作系统的本地内存,也是可以直接操作的。 详细解释一下 程…...

【C++进阶四】vector模拟实现

目录 1.构造函数 (1)无参构造 (2)带参构造函数 (3)用迭代器构造初始化函数 (4)拷贝构造函数 2.operator= 3.operator[] 4.size() 5.capacity() 6.push_back 7.reserve 8.迭代器(vector的原生指针) 9.resize 10.pop_back 11.insert 12.erase 13.memcpy…...

VUE3+Mapbox-GL 实现鼠标绘制矩形功能的详细代码和讲解

以下是如何使用 Mapbox GL JS 实现鼠标绘制矩形功能的详细代码和讲解。Mapbox GL JS 是一个强大的 JavaScript 库,可以用来创建交互式地图。下面将通过监听鼠标事件并动态更新地图图层来实现这一功能。 实现步骤 初始化地图 在 HTML 文件中引入 Mapbox GL JS 库&…...

《筋斗云的K8s容器化迁移》

点击下面图片带您领略全新的嵌入式学习路线 🔥爆款热榜 88万阅读 1.6万收藏 文章目录 **第一章:斗战胜佛的延迟焦虑****第二章:微服务化的紧箍咒****第三章:混沌中的流量劫持****第四章:量子筋斗的终极形态****终章&…...

面试遇到的几个问题小记20250401

一、echarts设置数据的几种方式 在 ECharts 里,设置数据存在多种方式,下面为你详细介绍: 在初始化配置项时设置数据 这是最为常见的方式,也就是在创建 ECharts 实例的时候,于配置项 option 里直接设置数据。 // 基于…...

java swing 密码框如何在获取到焦点时,输入法自动切换为英文状态

一、java swing 密码框如何在获取到焦点时,输入法自动切换为英文状态 在 Java Swing 中,JPasswordField 用于输入密码,默认情况下,输入法状态不受控。要在获取焦点时自动切换为英文状态,可以通过以下步骤实现&#xf…...

图像处理中的Transformer Block实现与解析

图像处理中的Transformer Block实现与解析 随着深度学习技术的不断进步,Transformer结构在自然语言处理领域取得了显著的成功。近年来,这种注意力机制也被引入到计算机视觉任务中,展示了其强大的表现力和效果提升能力。本文将从代码实现的角…...

基于SpringBoot的“考研学习分享平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“考研学习分享平台”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体功能结构图 局部E-R图 系统首页界面 …...

Web3.0隐私计算与云手机的结合

Web3.0隐私计算与云手机的结合 Web3.0隐私计算与云手机的结合,标志着从“数据垄断”向“数据自主”的范式转变。通过技术互补,两者能够构建更安全、高效且用户主导的数字生态。尽管面临技术整合和成本挑战,但随着区块链、AI和分布式存储的成…...

视觉与激光点云 融合的 三维重建算法

以下是一些结合激光点云(LiDAR)与其他数据(如图像、RGB-D等)的三维重建算法,这类方法通过融合多模态数据提升重建的精度和完整性: ‌1. 传统几何融合方法‌ ‌(1) LiDAR 相机(RGB/LiDAR Fusion…...

Linux上位机开发实践(超越MPP去开发产品)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 对于芯片厂商来说,肯定希望客户的应用和自己的芯片绑定地越紧密越好。最好就是,他们自己成为客户的独家供应商。但是对于嵌…...

雪花算法生成的主键存在哪些问题,为什么不能使用自增ID或者UUID做MySQL的主键

MySQL 分布式架构中的主键选择:自增ID、UUID与雪花算法 为什么MySQL分布式架构中不能使用自增主键? 在分布式架构中,自增主键存在以下问题: 主键冲突风险:多个数据库实例同时生成自增主键会导致ID重复分片不均匀&am…...

SpringBean模块(二)bean初始化(2)和容器初始化顺序的比较--引入ApplicationContextInitializer

前面介绍了获取容器可以让spring bean实现ApplicationContextAware,实际也是初始化执行了setApplicationContext接口, 初始化接口还可以借助一些注解或者spring bean的初始化方法,那么他们的执行顺序是什么样的呢? 一、验证&…...

【分享】内外网文件摆渡系统:让数据传输更安全更可靠

【分享】Ftrans内外网文件摆渡系统:让数据传输更安全更可靠! 随着大数据时代的到来,数据的重要性日渐得到重视,数据作为数字经济时代下的基础性资源和战略性资源,是决定国家经济发展水平和竞争力的核心驱动力。以行业…...

2025年江苏省职业院校技能大赛 (高职组)大数据应用开发赛项任务书 (样题)

2025年江苏省职业院校技能大赛 (高职组)大数据应用开发赛项任务书 (样题) 背景描述:任务A:离线数据处理(35分)子任务一:数据抽取子任务三:指标计算 任务B&…...

前端学习记录之HTML

1. 网页 1.1 什么是网页 网站是指在因特网上根据一定的规则,使用HTML等制作的用于展示特定内容相关的网页集合。 网页是网站中的一“页”,通常是HTML格式的文件,它要通过浏览器来阅读 网页是构成网站的基本元素。它通常由图片,…...

解释一下Unity碰撞的触发条件

Unity中碰撞的触发条件主要与物体的碰撞体(Collider)和刚体(Rigidbody)组件有关。具体来说,Unity的物理引擎会根据物体的配置来检测碰撞(Collision)和触发器(Trigger)事件…...

手机显示5GA图标的条件

最近有星友问在什么情况下才能显示5G-A?虽然这个我也不知道,但是我有几个运营商的5G终端白皮书,从上面就可以找到答案。 如上是几个运营商显示5G-A的条件,基本上考虑的都是3CC的情况,联通还有考虑200M CA 2CC的场景&am…...

Spring Boot 实现文件秒传功能

前言 在开发Web应用时,文件上传是一个常见需求。然而,当用户需要上传大文件或相同文件多次时,会造成带宽浪费和服务器存储冗余。此时可以使用文件秒传技术通过识别重复文件,实现瞬间完成上传的效果,大大提升了用户体验…...

使用AOP技术实现Java通用接口验签工具

一、背景 在给第三方提供接口时,我们需要对接口进行验签。具体来说,当外部系统调用我们的接口时,请求中需要携带一个签名,我们接收到请求后,会解析数据并校验签名是否正确,以确保请求的合法性和安全性。 为了在不同项目中方便地使用这一功能,我们将签名校验规则封装成一…...

Foldseek快速蛋白质结构比对

1. 下载和安装 Foldseek 如果只是单个蛋白质结构的序列比对,我们只需要用Foldseek 的网站服务 https://search.foldseek.com/search 上传我们的蛋白质结构并选择想要进行比对的数据库即可,这里不做重点讲解。做生物信息学研究,我们难免需要批…...

JAVA设计模式之适配器模式《太白金星有点烦》

太白金星握着月光凝成的鼠标,第108次检查南天门服务器的运行日志。这个刚从天枢院调来的三等仙官,此刻正盯着瑶池主机房里的青铜鼎发愁——鼎身上"天地同寿"的云纹间,漂浮着三界香火系统每分钟吞吐的十万条功德数据。看着居高不下的…...

w2ui 水平滚动移动 虚拟列 数据丢失

https://w2ui.com/web/docs/1.5/w2grid.disableCVS https://github.com/vitmalina/w2ui/issues/1398 解决方案来源 问题现象: 窗口缩小 导致多列 出现水平滚动,滚动时触发本地样式重绘,导致record undefined,从而引发多列报错 解决方案: 使用 disableCVS : true 一次加载到d…...