知识增强语言模型提示 零样本知识图谱问答10.8

知识增强语言模型提示 零样本知识图谱问答

  • 摘要
  • 介绍
  • 相关工作
  • 方法
    • 零样本QA的LM提示
    • 知识增强的LM提示
    • 与知识问题相关的知识检索

在这里插入图片描述

摘要

大型语言模型(LLM)能够执行 零样本closed-book问答任务 ,依靠其在预训练期间存储在参数中的内部知识。然而,这种内部化的知识可能是不足和错误的,这可能导致LLM生成错误的答案。此外,对LLM进行微调以更新其知识是昂贵的。为此,本文提议直接在LLM的输入中增加知识。具体而言,首先根据问题与相关事实之间的语义相似性从知识图谱中检索与输入问题相关的事实。然后,将检索到的事实以提示的形式前置到输入问题之前,然后将其转发给LLM生成答案。本文提出的框架,称为knowledge-Augmented language model PromptING(KAPING),无需模型训练,因此完全是零样本的。

还验证了KAPING框架在知识图谱问答任务上的性能,该任务旨在基于知识图谱上的事实回答用户的问题,在此任务上,本文的方法在多个不同规模的LLM上相对于相关的零样本基线平均提高了高达48%的性能。

Closed-book问答任务指在回答问题时,模型只能依靠其在预训练阶段学到的知识,而无法进行额外的外部搜索或引用。这意味着在回答问题时,模型不能直接访问互联网或其他外部资源。
Zero-shot closed-book问答任务是一种更具挑战性的闭书问答任务,其中模型在没有任何先前训练的情况下,无需额外的模型微调或更新,直接回答问题。
在传统的闭书问答任务中,模型需要在预训练后进行微调,以根据特定的问题集和答案集进行调整。而在zero-shot closed-book问答任务中,模型不需要进行任何额外的调整或微调,仍然可以回答新问题。
这种任务要求模型能够利用其预训练阶段学到的通用语言理解和推理能力,以及内部的知识表示来解决新问题。模型需要将问题与其内部知识进行联结,从而推断出答案,而无需对任务进行特定的针对性训练。
在zero-shot closed-book问答任务中,模型通常会使用问题的提示信息或关键词来引导答案的生成。模型会利用其预训练的语言表示能力和对内部知识的理解,以及与问题相关的提示信息,生成可能的答案。

介绍

在这里插入图片描述

预训练语言模型通过自监督学习在大量文本语料上进行训练,可以执行闭书问答(closed-book Question Answering,QA)任务,即仅依靠其内部参数中的知识来回答用户的问题,而不使用任何外部知识。此外,当增加语言模型的规模时,大型语言模型可以在没有任何额外微调步骤的情况下为问题生成答案,这称为语言模型提示(LM prompting)。然而,由于LLMs中的知识可能是不完整、错误和过时的,它们经常会生成事实上错误的答案,即所谓的幻觉(hallucination)(见图1a)。此外,通过参数更新来完善LLMs中的知识是昂贵的,特别是当知识不断变化时(例如货币汇率)。最后,LLMs是否正在获取正确的知识来回答问题尚不清楚。

为了克服这些限制,本文提出直接检索和注入相关知识作为输入,称为提示(prompt),传递给LLMs(图1b)。使用知识图谱作为知识源,其中包含以三元组形式表示的符号知识(头实体、关系、尾实体)。因此,为了提取与输入问题相关的事实,首先将问题中的实体与知识图谱中的实体进行匹配。然后,与知识图谱中的实体相关联的三元组被转化为文本形式,并 前置到输入问题前面 ,然后传递给LLMs生成答案。

“前置到输入问题前”
指的是将相关知识直接插入到输入问题之前,作为输入序列的一部分。在传统的问答系统中,只有输入问题作为模型的输入,模型需要通过自身的预训练知识来回答问题。而在这种方法中,我们将从知识图谱中提取的相关知识以文本形式添加到输入问题之前,形成一个新的输入序列。
举个例子,假设有一个问题:
“谁是美国的第一位总统?”。
如果我们有一个知识图谱,并且知道其中包含了以下三元组:(美国,首都,华盛顿)和(华盛顿,位于,哥伦比亚特区)。那么,在前置知识的情况下,我们可以将这些知识转化为文本形式:
“美国的首都是华盛顿,华盛顿位于哥伦比亚特区。”
然后将这个文本知识添加到原始问题之前,形成新的输入序列:
“美国的首都是华盛顿,华盛顿位于哥伦比亚特区。谁是美国的第一位总统?”。
通过这种方式,语言模型在生成答案时可以同时考虑问题和前置的知识,从而能够更好地利用外部知识来提高答案的准确性和相关性。这种前置知识的方法可以帮助语言模型更好地理解问题的上下文和意图,避免产生基于不准确或过时知识的错误答案。

因此,基于事实知识的LLMs能够生成准确的答案,减轻了幻觉问题,同时保持LLMs的参数不变,无需进行知识更新的微调。整体框架称为Knowledge-Augmented language model PromptING(KAPING),它完全是零样本的,并且可以与任何现成的LLMs一起使用,无需额外的训练。

虽然上述方案看起来简单而有效,但还存在一些挑战。
首先,与问题实体相关的大多数检索到的三元组与回答给定问题无关。例如,在维基数据知识图谱中为问题实体(例如Poseidon)检索相关的三元组时,存在60个三元组,其中大多数(例如流派、出版日期等)与回答问题无关。因此,它们可能会误导模型生成错误的答案。
另一方面,问题实体的三元组数量有时很大(例如,WebQSP数据集中有27%的样本有超过1000个三元组),因此编码包括不必要的所有三元组会带来很高的计算成本,特别是对于大型语言模型来说。

为了克服这些挑战,受信息检索的启发,进一步提出了 基于语义相似性过滤不必要三元组 的方法。具体而言,首先将问题及其相关的语言化三元组表示为嵌入空间中的向量。然后,检索出一小部分三元组,其嵌入与输入问题的嵌入相比其他三元组更接近。这样,只将与给定问题更相关的三元组前置,可以有效防止大型语言模型生成与问题无关的答案,并且具有高的计算效率,不像增加所有三元组的方法那样。值得注意的是,这种过滤方法使用 现成的句子嵌入模型,因此在我们的流程的每个部分都不需要额外的训练。

基于语义相似性过滤不必要的三元组
是指通过比较问题和其关联的三元组之间的语义相似性来筛选出与问题相关性较高的三元组,从而减少不相关的三元组对于问题回答的干扰。
在知识图谱问答任务中,通常通过检索知识图谱中与问题实体相关的三元组来获取问题的背景知识。然而,检索到的三元组中可能包含大量与问题无关的信息,这些不必要的三元组可能会误导模型,导致生成错误的答案。
为了解决这个问题,可以使用语义相似性来衡量问题和三元组之间的相似程度。常见的方法是将问题和三元组表示为向量形式,然后计算它们之间的相似度。根据相似度的大小,可以选择保留与问题最相关的三元组,而过滤掉与问题关联性较低的三元组。

"现成的句子嵌入模型"指的是已经经过预训练并可供使用的句子级别的文本表示模型。这些模型通过将输入的句子转换为连续向量表示,捕捉句子的语义和语法信息,并将其映射到一个高维向量空间中。这些向量表示可以用于计算句子之间的相似性、分类、聚类等自然语言处理任务。常见的句子嵌入模型包括BRERT、GPT等。

然后,在知识图谱问答(KGQA)任务中验证了KAPING框架。结果表明,KAPING显著优于相关的零样本基线。此外,详细的分析支持知识检索和增强方案的重要性。

本文这项工作中的贡献有三个方面:
• 提出了一种新的知识增强的语言模型提示框架,利用知识图谱中的事实知识进行零样本问答。
• 提出了基于问题及其相关三元组之间的语义相似性来检索和增强知识图谱中相关事实的方法。
• 在知识图谱问答基准数据集上验证了我们的KAPING,在这些数据集上,本文的方法令人印象深刻地优于相关的零样本基线。

相关工作

语言模型提示
语言模型预训练是一种训练Transformer模型的方法,使用未标注的文本语料库进行自编码或自回归目标的训练。它已成为自然语言任务的一种重要方法。此外,大型语言模型能够进行零样本学习,例如基于预训练参数中存储的知识,根据输入的文本提示生成答案,而无需额外的参数更新或标记的数据集。为了进一步提高它们的性能,一些工作提出从训练数据集中检索与输入问题相关的样本,并将它们在少样本学习中添加到提示中。最近的一些工作进一步表明,当LLMs在从自然语言任务中提取的一系列指令上进行微调时,它们在未见过的零样本任务上具有强大的泛化性能。然而,LLMs内部的知识可能不足以处理事实性问题,这引发了知识增强的LLMs。

知识增强的语言模型
最近的研究提出将知识,如来自无结构语料库(例如维基百科)的文档和来自知识图谱的事实,整合到语言模型中。其中,REALM和RAG学习检索文档并将其与语言模型结合。此外,知识图谱也可以是另一种知识源,其中知识以最紧凑的形式进行编码,一些方法将KG中的事实增强到语言模型中。然而,所有上述方法都需要大量的训练数据和模型更新用于下游任务。虽然最近的一些工作表明,通过检索增强的语言模型在少样本学习中具有很强的性能,但仍需要额外的训练步骤,这与完全零样本的LM提示不同。

最近,有几项研究在LM提示方案中增加了知识。首先,一些工作提出通过提示提取LLMs本身参数中的知识,然后使用提取的知识回答问题。然而,由于LLMs的参数可能不足以存储所有世界知识,提取的知识和生成的答案可能不准确。另一方面,最近,Lazaridou等人提出使用谷歌搜索在Web上检索文档,然后将检索到的文档与少样本演示一起添加到输入问题中,在少样本的LLM提示方案下回答问题。然而,关注与之前研究不同的零样本提示与KGs的结合,利用KGs可以带来额外的优势。具体而言,由于KGs可以以紧凑的三元组形式简洁地编码知识,在问答任务中,相比于文档情况,本文的方法使LLM提示更加高效(即减少输入序列长度),同时在零样本问答方案上更加有效:LLMs需要从提示中选择包含答案实体的一个三元组,而不是查找包含各种实体的冗长文档。

方法

接下来描述KAPING框架。

零样本QA的LM提示

首先从零样本问答开始,然后解释语言模型提示。

零样本问答
给定一个输入问题x,问答(QA)系统返回一个答案y,其中x和y都由一系列标记组成:x = [w1,w2,…,w|x|]。假设P是一个基于生成语言模型的QA模型,它生成给定问题x的答案y的条件概率如下:P(y|x)。与使用一组带标注的(x , y)样本来训练模型P的监督学习不同,零样本学习不使用任何带标签的样本和模型训练。值得注意的是,对这种零样本QA感兴趣是因为收集数据集并为每个新领域微调现有的LM被认为是昂贵且有时不可行的。

LM提示
LM通常通过基于先前标记预测下一个标记进行预训练,这被称为自回归语言建模。然后,由于这种预训练目标,LLM可以进行零样本指令学习。具体而言,当向LLM(即P)提供一个问题和一条指令(例如,“请回答以下问题:《Lady Susan》的作者是谁?”)时,LLM在输入文本的条件下可以顺序生成输出标记的概率,这可能是一个答案,比如“Jane Austen”。

为了更规范,对于每个输入问题x,首先使用特定的指令模板T将其修改为一个文本字符串x’,称为提示(prompt),如下所示:T:x → x’。例如,如果我们有先前的问题x = “Who is the author of Lady Susan?” 以及先前的指令模板"Please answer the question:",则生成的提示x’将为T(x) = “Please answer the question: Who is the author of Lady Susan?”。然后,将提示x’传递给LLM(即P),LLM通过P(y|x’)生成答案(即y)。注意,这种LM提示方案不需要对标记数据进行任何额外的模型参数更新(即微调),因此适用于目标零样本QA任务。

然而,在这种单纯的零样本提示QA中存在多个挑战。首先,LLM依赖参数中的知识,容易生成事实上不正确的答案,因为LLM中的知识可能是不准确和过时的:知识可能随时间的推移而出现和变化。此外,使用额外的参数更新来改进内部知识是昂贵的,而且有必要反映错误和不断增长的知识。最后,LLM在生成对问题提示的答案时记忆和利用哪些知识是不清楚的,这限制了它们在输出上的可解释性。

知识增强的LM提示

为了解决现有LM提示方案的前述限制,本文提出了一种将相关知识从知识图谱(KG)注入到输入问题中的方法,称为增强知识语言模型提示(Knowledge-Augmented language model PromptING,KAPING)。

在本小节中,首先定义了KAPING框架的主要目标,然后介绍了增强KG上的知识以及注入到LM提示中所需的要素。

使用知识图谱进行LM提示
不再仅依赖于 参数内部化的知识 ,而是提出通过访问和注入来自外部KG的知识来回答问题,这些知识包含对回答问题有帮助的准确和最新的事实。形式上,知识图谱G由一组事实三元组{(s, r, o)}组成,其中s和o表示主体和客体实体,r是它们之间的特定关系类型。例如,一个关系型知识"《Lady Susan》是由Jane Austen编写的"可以表示为一个包含两个实体s = "Lady Susan"和o = "Jane Austen"以及关系r = "written by"的三元组。然后,对于通过模板T从示例问题x = "Who is the author of Lady Susan?"转换而成的问题提示x’,还将其相关三元组(Lady Susan, written by, Jane Austen)增加到LM提示方案中。通过这样做,LLM可以根据来自KG的增强知识生成正确的答案,形式化表示为P(y|x’, G)。需要注意的是,由于可以在KG中提供特定和有效的事实给LLM,该框架可以缓解LLM中不准确和过时知识导致的错误生成问题,而无需昂贵地更新模型参数。此外,还可以确认LLM是否基于增强事实生成答案,从而提高LM提示的可解释性。

剩下的问题是如何从输入问题中访问KG上的关系符号事实,将符号知识转化为文本字符串,并将转化后的知识注入到LM提示方案中。下面的段落中将逐一解释它们。

知识访问
为了利用与输入问题相关的事实,首先提取问题中的实体。例如,对于问题"谁是《Lady Susan》的作者?“,提取出实体"Lady Susan”。然后,基于提取的实体,在知识图谱中找到对应的实体,其关联的三元组成为与输入问题相关的事实。需要注意的是,实体匹配可以通过现有的实体链接技术来完成。

知识转化
LLMs处理的是文本输入,而事实三元组表示为符号图。因此,在将来自知识图谱的符号事实注入到LLMs之前,首先将包含(s, r, o)的三元组转化为文本字符串,称为转化。虽然存在最近的方法专门设计或学习图到文本的转换,但在本工作中,我们使用线性转化:将三元组中的主体、关系和客体文本连接起来,我们观察到这在LM提示中效果良好(参见附录B.5)。例如,一个三元组(Lady Susan, written by, Jane Austen)直接使用为"(Lady Susan, written by, Jane Austen)"作为LLM的输入。

知识注入
基于与输入问题相关的转化后的事实,剩下的步骤是实现知识注入机制,使LLMs能够基于外部知识生成答案。假设有一个与问题x相关的N个关联三元组k = {(sᵢ, rᵢ, oᵢ)}ᴺᵢ₌₁。类似于上述描述的指令模板T:x → x’,修改N个转化后的三元组k,并将知识注入指令添加到知识提示k’中,如下所示:T:k → k’。用于构建提示的一个特定模板,首先逐行列举N个转化后的三元组,然后在提示的顶部添加具体指令:“以下是以三元组形式表示的对回答问题有意义的事实。”。之后,将这样的知识提示字符串k’添加到问题提示x’之前,LLMs根据知识和问题提示生成答案标记,形式化表示为P(y|[k’, x’]),其中[·]表示连接。

与知识问题相关的知识检索

KAPING框架允许LLMs利用知识图谱中的知识进行零-shot问答。然而,存在一个关键挑战,即与问题相关的三元组数量往往太大,无法直接用于LLMs。而且,其中大部分与问题无关,会误导LLMs生成不相关的答案。

知识检索器
为了克服这些限制,进一步提出仅检索和增强与问题相关的三元组。需要注意的是,存在一种文档检索方案,其目标是根据嵌入相似性为给定查询检索相关文档,这激发了我们检索用户问题的三元组的想法。特别是,由于在上一节中定义的知识转化器,可以在文本空间中操作从符号知识图谱中获取的三元组。因此,对于转化后的三元组和问题,首先使用现成的句子嵌入模型对它们进行嵌入表示,然后计算它们之间的相似性。然后,仅使用与给定问题相关的前K个相似三元组,而不是使用所有与问题相关的N个三元组。需要注意的是,与最近的一些研究不同,这些研究旨在通过监督训练改进知识图谱检索器本身,专注于使用知识图谱进行零样本LM提示,因此将现成的检索器作为工具,用于过滤掉与问题无关的三元组。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在React中,什么是props(属性)?如何向组件传递props?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

QTableWidget 表格增删数据

QTableWidgetQTableWidgetQTableWidget部分使用方法,如在表格中插入或删除一行数据以及清空表格数据等。在添加数据时,设置了条件判断如正则表达式,若用户输入的数据不合法,则添加失败并提示用户错误的地方,便于用户修…

API接口安全运营研究(内附官方开发平台api接口接入方式)

摘 要 根据当前API技术发展的趋势,从实际应用中发生的安全事件出发,分析并讨论相关API安全运营问题。从风险角度阐述了API接口安全存在的问题,探讨了API检测技术在安全运营中起到的作用,同时针对API安全运营实践,提出…

Day 4 C++

算术运算符重载 种类&#xff1a; - * / % #include <iostream>using namespace std;class Cacu {friend const Cacu operator(const Cacu &l,const Cacu &r);friend const Cacu operator-(const Cacu &l,const Cacu &r);friend const Cacu operator*…

mysql面试题32:MySQL数据库服务器性能分析的方法命令有哪些?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:MySQL数据库服务器性能分析的方法命令有哪些? MySQL数据库服务器性能分析的方法和命令有以下几种: EXPLAIN命令:用于分析查询语句的执行计划,…

PHP Discord获取频道消息功能实现

PHP Discord获取频道消息功能实现 1. 关注对应频道2. 添加机器人3. 配置机器人权限4. 使用 DiscordPHP 类库5. 代码示例 (Laravel 框架)6. 服务器部署 1. 关注对应频道 首先要创建自己的频道, 然后到对应的公告频道中关注这个频道(这时 Discord 会让你选择频道, 选择之前创建的…

数据治理的核心是什么?_光点科技

数据治理是当今数字化时代中企业管理的关键组成部分。在信息爆炸的时代&#xff0c;企业积累了大量的数据&#xff0c;这些数据不仅是企业宝贵的资产&#xff0c;也是推动业务决策和创新的重要驱动力。数据治理的核心在于建立有效的框架和流程&#xff0c;以确保数据的质量、安…

经典面试题第十更---instanceof与typeof

前言&#xff1a; &#x1f921; 作者简介&#xff1a;我是Morning&#xff0c;计算机的打工人&#xff0c;想要翻身做主人 &#x1f648; &#x1f648; &#x1f648; &#x1f3e0; 个人主页&#xff1a; Morning的主页 &#x1f4d5;系列专栏&#xff1a; 前端…

uniapp vue3 静态图片引入

方法一 从新定义路径 一定看好你图片的路径 代码 <template><div class"main">Main<img :src"getImg()" alt""></div> </template><!-- 方式一 // <script setup> // let imgName logo.png // cons…

深度学习DAY3:FFNNLM前馈神经网络语言模型

1 神经网络语言模型NNLM的提出 文章&#xff1a;自然语言处理中的语言模型预训练方法&#xff08;ELMo、GPT和BERT&#xff09; https://www.cnblogs.com/robert-dlut/p/9824346.html 语言模型不需要人工标注语料&#xff08;属于自监督模型&#xff09;&#xff0c;所以语言…

[架构之路-235]:目标系统 - 纵向分层 - 数据库 - 数据库系统基础与概述:数据库定义、核心概念、系统组成

目录 一、核心概念 1.1 什么是数据与信息 1.2 数据与数据库的关系 1.3 什么是数据库 1.4 数据库中的数据的特点 1.5 数据库与数据结构的关系 二、数据库系统 2.1 什么是数据库管理系统 2.2 什么是数据库系统 2.3 数据库相关的人员 2.4 数据库的主要功能 2.5 Excel表…

【计算机网络-自顶向下方法】应用层(SMTP、POP3、DNS)

目录 1. Electronic Mail电子邮件应用画像1.1 电子邮件系统1.2 邮件报文格式1.3 邮件访问 2. DNS&#xff08;Domain Name System&#xff09;2.1 DNS提供的服务2.2 DNS工作机理2.3 DNS资源记录2.4 DNS协议&#xff0c;报文2.5 小结 1. Electronic Mail 电子邮件应用画像 应用…

企业如何使用CRM客户管理系统全面了解客户

B2B业务由于决策链长&#xff0c;涉及的部门和人员多&#xff0c;购买周期短则2、3个月&#xff0c;长则一年半载的原因一直被大家痛呼难做。B2B业务要求企业去认识客户&#xff0c;更要深入地了解客户。基于这种需求&#xff0c;使用CRM客户管理系统是企业全面了解客户的重要手…

Zabbix第二部分:基于Proxy分布式部署实现Web监控和Zabbix HA集群的搭建

代理和高可用 一、基于zabbix-proxy的分布式监控1.1 分布式监控的作用1.2 数据流向1.3 构成组件 二、部署zabbix代理服务器Step1 前置准备Step2 设置 zabbix 的下载源&#xff0c;安装 zabbix-proxyStep3 部署数据库并将zabbix相关文件导入Step4 修改zabbix-proxy的配置文件&am…

【排序算法】选择排序

文章目录 一&#xff1a;基本介绍1.1 概念1.2 算法思想1.3 思路分析图1.4 思路分析1.5 总结1.5.1 选择排序一共有数组大小-1轮排序1.5.2 每一轮排序&#xff0c;又是一个循环&#xff0c;循环的规则如下&#xff08;在代码中实现&#xff09;&#xff1a; 二&#xff1a;代码实…

VueRouter与expres/koa中间件的关联

ueRouter: runQueue 路由守卫都是有三个参数to,from,next。其中next就是下方的fn执行时候传入的第二个参数(回调函数)&#xff0c;只有该回调执行后才会挨个遍历queue内的守卫。 中间件的作用 隔离基础设施与业务逻辑之间的细节。详细的内容位于《深入浅出Node.js》P210 另外一…

CSS设置鼠标样式和添加视频样式

鼠标的样式 <div style"cursor: default">默认鼠标的样式</div><div style"cursor: pointer">小手样式</div><div style"cursor: move">移动样式</div><div style"cursor: text">文本样式&…

Twitter优化秘籍:置顶、列表、受众增长

在 Twitter 上&#xff0c;将你的一条推送文置顶到个人数据顶部是提高可见性和吸引关注者的绝佳方式。无论你是个人用户还是企业&#xff0c;此功能都可以让你的重要信息常驻在众人眼前&#xff0c;即使你发布了新的推文。接下来&#xff0c;我们将分享一些优化建议&#xff0c…

防雷排插的防雷应用以及解决方案

防雷排插是一种能够有效防止雷电对电器设备造成损坏的电源插座。防雷排插的应用&#xff0c;原理和作用如下&#xff1a; 地凯科技防雷排插的应用&#xff1a;防雷排插主要用于保护电脑&#xff0c;电视&#xff0c;音响等电子设备免受雷击或者电网过压的影响。防雷排插通常有…

随着 ChatGPT 凭借 GPT-4V(ision) 获得关注,多模态 AI 不断发展

原创 | 文 BFT机器人 在不断努力让人工智能更像人类的过程中&#xff0c;OpenAI的GPT模型不断突破界限GPT-4现在能够接受文本和图像的提示。 生成式人工智能中的多模态表示模型根据输入生成文本、图像或音频等各种输出的能力。这些模型经过特定数据的训练&#xff0c;学习底层模…