赞
踩
论文:https://arxiv.org/abs/2310.08975
代码:https://github.com/LHRLAB/ChatKBQA
用生成再检索代替检索再生成。
传统的KBQA方法是先检索相关信息,然后基于这些信息生成回答。
这种方法效率低下,因为它需要在大量的数据中进行检索。
ChatKBQA改变了这个流程,先通过大型语言模型(LLM)生成一个问题的逻辑形式,再去检索与逻辑形式匹配的具体实体和关系。
这样做提高了检索效率,因为直接生成的逻辑形式更准确地指向了需要检索的信息。
假设用户想知道:“阿司匹林用于治疗哪种疾病?”这是一个典型的知识库问答(KBQA)任务,需要准确地从医学知识库中检索信息。
逻辑形式生成:ChatKBQA利用fine-tuned的LLM直接将问题“阿司匹林用于治疗哪种疾病?”转换为准确的逻辑形式,如“(treats ‘Aspirin’ ?disease)”。
能够精确匹配到问题中的关键实体和时间,提高了检索的准确性和相关知识的覆盖范围。
这个步骤快速准确地缩小了搜索范围。
避免了在庞大的知识库中进行广泛的搜索,直接锁定相关的实体和关系,显著提高了检索效率。
无监督检索:然后,ChatKBQA使用先进的无监督检索技术,如SimCSE,直接在知识库中寻找符合逻辑形式的实体和关系,无需复杂的实体和关系识别步骤。
答案生成:最后,基于检索到的准确信息,ChatKBQA生成答案,如“心脏病”。
生成的SPARQL查询不仅精确反映了用户的查询需求,还能通过知识图谱的查询路径提供清晰的解释性,如通过查询路径展示两者的直接关联。
用户不仅得到了准确的答案,还能理解答案的来源和逻辑,减少了对答案的疑惑,提高了用户的信任度。
ChatKBQA在处理效率、准确性和可解释性方面相较于传统KBQA方法的显著优势。
ChatKBQA能够更直接、准确地理解和回答复杂的医学查询,是利用最新NLP技术优化知识库问答系统的一个典范。
这图展示了传统的“检索-然后-生成”知识库问答(KBQA)框架与ChatKBQA的“生成-然后-检索”框架之间的对比。
左侧:传统的检索-然后-生成框架
右侧:ChatKBQA的生成-然后-检索框架
这两个框架的主要区别在于处理的顺序和方法。
ChatKBQA采用先生成逻辑形式再进行检索的方法,而传统方法是先检索实体和关系再生成逻辑形式。
ChatKBQA的方法可以减少因错误检索信息而导致的逻辑形式生成错误的可能性,并且能够更直接地利用LLMs的强大语义理解能力。
ChatKBQA 为什么被拆解成这些特定的子解法?
整个解题步骤是:从理解问题到找到答案,再到解释答案的过程。
逻辑形式生成(直接语义映射):首先,我们需要理解用户的问题。
这就像是读懂一个复杂问题的第一步,把它翻译成一种计算机能理解的“逻辑形式”。
这一步骤跳过了传统的实体和关系识别过程,直接利用大型语言模型的能力将问题转化为结构化的查询,就像是用直接的方式把问题翻译成计算机语言。
无监督实体和关系检索(无监督语义检索):有了这个“逻辑形式”,我们接下来要在知识库中找到匹配的信息。
这一步就像是在图书馆里根据索引卡找到你需要的书一样,但是更高级,因为它用的是无监督学习的技术,可以在没有明确指导的情况下找到正确的信息。
参数高效的微调(精细化参数调优):为了确保这个过程既准确又高效,我们还需要确保我们的工具(即大型语言模型)针对这个特定任务是最佳状态。
这就像是调整你的搜索工具,确保它既不会错过重要信息,也不会浪费时间在不相关的信息上。
GQoT 可解释的查询执行:最后,当我们找到了答案,我们还需要能够解释我们是怎么得到这个答案的。
这就像是不仅给你答案,还要告诉你答案的来源,让整个过程对用户来说是透明的,增加了用户对答案的信任。
生成阶段
检索阶段
这张图提供了一个整体的流程图,说明了从用户输入问题到获取答案的整个过程,包括使用LLMs生成逻辑形式,以及后续的无监督检索步骤,最后形成可执行的查询以提供答案。
GQoT(Graph Query of Thoughts)是一个新概念,将知识图谱查询看作是大型语言模型思考的过程。
这意味着模型生成的查询不仅仅是用于检索数据,而是反映了模型对问题的理解和解答思路。
通过这种方式,结合LLM和知识图谱(KG)的优势,实现了一种新的协同推理问答模式,不仅能给出答案,还能提供推理路径,增强了答案的可解释性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。