网站制作好学吗,网络销售怎么才能找到客户,微信登录,免费网络推广网站大全知识增强语言模型提示 零样本知识图谱问答 摘要介绍相关工作方法零样本QA的LM提示知识增强的LM提示与知识问题相关的知识检索 摘要
大型语言模型#xff08;LLM#xff09;能够执行 零样本closed-book问答任务 #xff0c;依靠其在预训练期间存储在参数中的内部知识。然而LLM能够执行 零样本closed-book问答任务 依靠其在预训练期间存储在参数中的内部知识。然而这种内部化的知识可能是不足和错误的这可能导致LLM生成错误的答案。此外对LLM进行微调以更新其知识是昂贵的。为此本文提议直接在LLM的输入中增加知识。具体而言首先根据问题与相关事实之间的语义相似性从知识图谱中检索与输入问题相关的事实。然后将检索到的事实以提示的形式前置到输入问题之前然后将其转发给LLM生成答案。本文提出的框架称为knowledge-Augmented language model PromptINGKAPING无需模型训练因此完全是零样本的。
还验证了KAPING框架在知识图谱问答任务上的性能该任务旨在基于知识图谱上的事实回答用户的问题在此任务上本文的方法在多个不同规模的LLM上相对于相关的零样本基线平均提高了高达48%的性能。 Closed-book问答任务指在回答问题时模型只能依靠其在预训练阶段学到的知识而无法进行额外的外部搜索或引用。这意味着在回答问题时模型不能直接访问互联网或其他外部资源。 Zero-shot closed-book问答任务是一种更具挑战性的闭书问答任务其中模型在没有任何先前训练的情况下无需额外的模型微调或更新直接回答问题。 在传统的闭书问答任务中模型需要在预训练后进行微调以根据特定的问题集和答案集进行调整。而在zero-shot closed-book问答任务中模型不需要进行任何额外的调整或微调仍然可以回答新问题。 这种任务要求模型能够利用其预训练阶段学到的通用语言理解和推理能力以及内部的知识表示来解决新问题。模型需要将问题与其内部知识进行联结从而推断出答案而无需对任务进行特定的针对性训练。 在zero-shot closed-book问答任务中模型通常会使用问题的提示信息或关键词来引导答案的生成。模型会利用其预训练的语言表示能力和对内部知识的理解以及与问题相关的提示信息生成可能的答案。 介绍 预训练语言模型通过自监督学习在大量文本语料上进行训练可以执行闭书问答closed-book Question AnsweringQA任务即仅依靠其内部参数中的知识来回答用户的问题而不使用任何外部知识。此外当增加语言模型的规模时大型语言模型可以在没有任何额外微调步骤的情况下为问题生成答案这称为语言模型提示LM prompting。然而由于LLMs中的知识可能是不完整、错误和过时的它们经常会生成事实上错误的答案即所谓的幻觉hallucination见图1a。此外通过参数更新来完善LLMs中的知识是昂贵的特别是当知识不断变化时例如货币汇率。最后LLMs是否正在获取正确的知识来回答问题尚不清楚。
为了克服这些限制本文提出直接检索和注入相关知识作为输入称为提示prompt传递给LLMs图1b。使用知识图谱作为知识源其中包含以三元组形式表示的符号知识头实体、关系、尾实体。因此为了提取与输入问题相关的事实首先将问题中的实体与知识图谱中的实体进行匹配。然后与知识图谱中的实体相关联的三元组被转化为文本形式并 前置到输入问题前面 然后传递给LLMs生成答案。 “前置到输入问题前” 指的是将相关知识直接插入到输入问题之前作为输入序列的一部分。在传统的问答系统中只有输入问题作为模型的输入模型需要通过自身的预训练知识来回答问题。而在这种方法中我们将从知识图谱中提取的相关知识以文本形式添加到输入问题之前形成一个新的输入序列。 举个例子假设有一个问题 “谁是美国的第一位总统”。 如果我们有一个知识图谱并且知道其中包含了以下三元组美国首都华盛顿和华盛顿位于哥伦比亚特区。那么在前置知识的情况下我们可以将这些知识转化为文本形式 “美国的首都是华盛顿华盛顿位于哥伦比亚特区。” 然后将这个文本知识添加到原始问题之前形成新的输入序列 “美国的首都是华盛顿华盛顿位于哥伦比亚特区。谁是美国的第一位总统”。 通过这种方式语言模型在生成答案时可以同时考虑问题和前置的知识从而能够更好地利用外部知识来提高答案的准确性和相关性。这种前置知识的方法可以帮助语言模型更好地理解问题的上下文和意图避免产生基于不准确或过时知识的错误答案。 因此基于事实知识的LLMs能够生成准确的答案减轻了幻觉问题同时保持LLMs的参数不变无需进行知识更新的微调。整体框架称为Knowledge-Augmented language model PromptINGKAPING它完全是零样本的并且可以与任何现成的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 [w1w2…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如下所示Tx → 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即PLLM通过P(y|x’)生成答案即y。注意这种LM提示方案不需要对标记数据进行任何额外的模型参数更新即微调因此适用于目标零样本QA任务。
然而在这种单纯的零样本提示QA中存在多个挑战。首先LLM依赖参数中的知识容易生成事实上不正确的答案因为LLM中的知识可能是不准确和过时的知识可能随时间的推移而出现和变化。此外使用额外的参数更新来改进内部知识是昂贵的而且有必要反映错误和不断增长的知识。最后LLM在生成对问题提示的答案时记忆和利用哪些知识是不清楚的这限制了它们在输出上的可解释性。
知识增强的LM提示
为了解决现有LM提示方案的前述限制本文提出了一种将相关知识从知识图谱KG注入到输入问题中的方法称为增强知识语言模型提示Knowledge-Augmented language model PromptINGKAPING。
在本小节中首先定义了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ᵢ)}ᴺᵢ₌₁。类似于上述描述的指令模板Tx → x’修改N个转化后的三元组k并将知识注入指令添加到知识提示k’中如下所示Tk → k’。用于构建提示的一个特定模板首先逐行列举N个转化后的三元组然后在提示的顶部添加具体指令“以下是以三元组形式表示的对回答问题有意义的事实。”。之后将这样的知识提示字符串k’添加到问题提示x’之前LLMs根据知识和问题提示生成答案标记形式化表示为P(y|[k’, x’])其中[·]表示连接。
与知识问题相关的知识检索
KAPING框架允许LLMs利用知识图谱中的知识进行零-shot问答。然而存在一个关键挑战即与问题相关的三元组数量往往太大无法直接用于LLMs。而且其中大部分与问题无关会误导LLMs生成不相关的答案。
知识检索器 为了克服这些限制进一步提出仅检索和增强与问题相关的三元组。需要注意的是存在一种文档检索方案其目标是根据嵌入相似性为给定查询检索相关文档这激发了我们检索用户问题的三元组的想法。特别是由于在上一节中定义的知识转化器可以在文本空间中操作从符号知识图谱中获取的三元组。因此对于转化后的三元组和问题首先使用现成的句子嵌入模型对它们进行嵌入表示然后计算它们之间的相似性。然后仅使用与给定问题相关的前K个相似三元组而不是使用所有与问题相关的N个三元组。需要注意的是与最近的一些研究不同这些研究旨在通过监督训练改进知识图谱检索器本身专注于使用知识图谱进行零样本LM提示因此将现成的检索器作为工具用于过滤掉与问题无关的三元组。