目录
- [1 论文信息](#1 论文信息)
-
- [1.1 论文标题](#1.1 论文标题)
- [1.2 论文摘要](#1.2 论文摘要)
- [1.3 论文创新](#1.3 论文创新)
- [1.4 相关技术](#1.4 相关技术)
-
- [1.4.1 证据文档(Evidence Documents)](#1.4.1 证据文档(Evidence Documents))
- [1.4.2 知识图谱(Knowledge Graphs)](#1.4.2 知识图谱(Knowledge Graphs))
- [1.5 论文方法](#1.5 论文方法)
-
- [1.5.1 三元组构建](#1.5.1 三元组构建)
- [1.5.2 证据句子选择(Evidence Sentence Selection)](#1.5.2 证据句子选择(Evidence Sentence Selection))
- [1.5.3 回答生成(Answer Generation)](#1.5.3 回答生成(Answer Generation))
- [2 论文实验](#2 论文实验)
-
- [2.1 数据集与评估方法](#2.1 数据集与评估方法)
- [2.2 大模型](#2.2 大模型)
- [2.3 基准](#2.3 基准)
- [2.4 结果](#2.4 结果)
1 论文信息
1.1 论文标题
KS-LLM: Knowledge Selection of Large Language Models with Evidence Document for Question Answering
1.2 论文摘要
大型语言模型(LLMs)存在幻觉问题,在应用于知识密集型任务时面临重大挑战。一种有前景的解决方案是利用证据文档作为额外的支持知识,这些文档可以通过检索或生成获取。然而,现有方法通常直接利用证据文档的全部内容,这可能引入噪声信息,从而削弱大型语言模型的性能。为了解决这一问题,我们提出了一种新颖的大型语言模型知识选择方法(KS-LLM),旨在从证据文档中识别出有价值的信息。KS-LLM方法利用三元组(triples)有效地从证据文档中选择有助于回答问题的知识片段。具体而言,我们首先基于输入问题生成三元组,然后从证据文档中选择与三元组最相似的证据句子,最后结合证据句子和三元组,辅助大型语言模型生成答案。在多个问答数据集(如TriviaQA、WebQ和NQ)上的实验对比表明,所提出的方法优于基线方法,并取得了最佳结果。
1.3 论文创新
① 提出了一种新颖的方法,可以从证据文档中选择与输入问题高度相关的知识片段,提高大型语言模型在回答问题时的准确性和可靠性,同时缓解幻觉问题。
② 结合了多种形式的知识,包括文本证据句子和结构化三元组,充分利用了不同形式知识之间的交互和互补关系。
1.4 相关技术
1.4.1 证据文档(Evidence Documents)
证据文档通常指包含与查询问题相关信息的文档,用于促进准确的答案生成或支持推理过程。基于证据文档的问答方法主要分为两类:基于检索的方法和基于生成的方法。
基于检索的方法从大规模语料库中检索可能包含答案的文档,然后使用检索到的文档生成正确答案。早期的研究利用稀疏检索方法,如BM25或神经排序模型来检索文档。早期研究的代表性工作包括DrQA和BiDAF。随后,提出了密集检索模型,如ORQA和DPR,它们通过编码上下文信息,获取文档的密集表示。近年来的研究增强了检索器的性能,从而获得更有效的证据文档,进一步提高了模型回答问题的准确性。与依赖外部知识的检索方法不同,基于生成的方法从大语言模型的参数中提取知识,生成证据文档。近期研究表明,大规模预训练模型在预训练后可以形成一个隐式知识库,其中包含大量的知识。GenRead是首个提出使用大语言模型生成的文档而不是检索文档的工作。GenRead和RECITE通过大语言模型的隐式知识生成上下文文档,然后读取这些文档来预测最终答案。
尽管证据文档可以提供额外的知识来帮助回答问题,但上述方法将证据文档中的所有信息作为支持知识,这可能引入与查询问题无关的噪音。论文提出的方法有效地从证据文档中提取最相关的句子,以帮助大语言模型,从而提高回答问题的准确性和效率。
1.4.2 知识图谱(Knowledge Graphs)
知识图谱(KGs)存储现实世界中的事实性知识,并在动态、明确和结构化的知识表示方面具有优势。基于知识图谱的问答方法利用结构化的知识图谱作为辅助信息,以提高问答系统的性能,通常涉及像Wikidata和Freebase这样的知识库。
早期的研究要求模型在训练或微调过程中学习知识图谱中的结构化知识,这需要大量的计算资源。近年来,新的方法通过将知识图谱集成到大语言模型的提示中,利用三元组的形式表达知识图谱。ToG通过外部知识库探索实体和关系,动态发现多个推理路径,从而增强大语言模型的多跳推理能力。KGR利用存储在知识图谱中的事实性知识纠正推理过程中可能出现的错误,自动缓解了大语言模型的幻觉问题。CoK通过查询语言从结构化知识源中获取知识,提高了大语言模型的事实正确性。
尽管上述方法提高了大语言模型在问答任务中的表现,但它们仅利用单一形式的知识。论文提出的方法同时结合了来自证据文档的结构化三元组和文本句子,充分利用了多种形式的知识。
1.5 论文方法
论文的目标是通过利用三元组从证据文档中有效选择知识,提升大型语言模型在知识密集型任务中的性能。主要提出了为解决问答任务的KS-LLM方法。如下图所示,KS-LLM包含三个阶段:(1) 三元组构建:根据查询问题中的主体实体生成一组三元组;(2) 证据句子选择:从证据文档中提取与三元组最相关的证据句子;(3) 答案生成:利用三元组和证据句子作为支持知识生成最终答案。
fig1. framework of KS-LLM
1.5.1 三元组构建
三元组构建过程利用大型语言模型根据自然语言问题生成结构化的三元组,从而能够精准捕捉问题的意图和关键信息。对于给定的查询问题𝑄,三元组构建的目标是使用大型语言模型生成一组三元组 t = { ( h i , r i , t i ) } , i = 1 , . . . , m t=\{(h_{i},r_{i},t_{i})\},i=1,...,m t={(hi,ri,ti)},i=1,...,m,其中𝑚表示三元组的数量,ℎ和𝑡分别表示头实体和尾实体,𝑟表示头实体与尾实体之间的关系。形式化地,𝑇可通过公式 T = L M ( Q ) T=LM(Q) T=LM(Q)获得,LM是指定的大模型。
论文将提取与查询问题主体相关的实体,称之为主体实体。具体而言,以查询问题作为输入,三元组构建过程首先识别查询问题中的主体实体,然后基于该主体实体生成一组包含丰富信息的三元组。该实体可以是个人、地点、组织或其他反映查询问题核心内容的实体。接下来,论文利用主体实体作为头实体构建一组三元组。这些扩展的三元组涵盖了与查询问题紧密相关的各个方面的知识,从多个角度为模型提供上下文信息。
如下图所示,首先从问题"What star sign is Jamie Lee Curtis?"中提取主体实体"Jamie Lee Curtis",然后构建了以"Jamie Lee Curtis"为头实体的多个三元组,例如(Jamie Lee Curtis, occupation, actress)。
通过聚焦于主体实体,可以确保所构建的三元组捕捉到回答查询问题所需的最相关信息。构建的三元组不仅有助于模型更好地理解查询问题,还能引导大型语言模型执行复杂的推理,从而生成准确且一致的答案。三元组构建过程由大型语言模型自动执行,无需额外的人工干预。
fig2. The large language model generates the incorrect answer with the given evidence document, while obtaining the correct answer with evidence sentences selected from the evidence document.
1.5.2 证据句子选择(Evidence Sentence Selection)
证据文档是指为查询问题提供背景信息、相关事实或支持性知识的文档。然而,证据文档通常包含大量信息,将整个文档输入到大型语言模型中可能会引入噪声信息,从而增加模型理解和筛选相关知识的难度。因此,从证据文档中选择有价值的证据句子至关重要,这可以显著提升大型语言模型在问答任务中的质量和准确性。
给定构建的三元组𝑇和证据文档 D = ( s 1 , s 2 , . . . , s n ) D=(s_{1},s_{2},...,s_{n}) D=(s1,s2,...,sn),其中𝑠表示一个句子,𝑛为句子数量,证据句子选择过程从证据文档𝐷中提取与三元组𝑇最相关的证据句子𝑆。具体而言,论文首先使用 BERT 模型 Kenton 和 Toutanova (2019) 来获取构建的三元组和证据文档中每个句子的嵌入表示,其过程可以表示为如下公式:
q = Bert ( T ) , K = { k i ∣ k i = Bert ( s i ) } q=\text{Bert}(T),K=\{ k_{i}|k_{i}=\text{Bert}(s_{i}) \} q=Bert(T),K={ki∣ki=Bert(si)}
其中,𝑞和𝐾分别表示三元组和证据文档的嵌入表示。BERT 模型通过将句子编码为密集向量来捕捉句子的语义信息和上下文特征。随后,为了衡量语义相似度,模型基于嵌入表示计算每个句子与三元组之间的欧几里得距离,并选择距离最近的前𝑘个句子作为证据句子。证据句子的索引通过下述公式计算得出。
L = arg min i k { ∣ ∣ k i − q ∣ ∣ 2 } L=\text{arg} \ \overset{k}{\underset{i}{\text{min}}} \{ ||k_{i}-q||_{2} \} L=arg imink{∣∣ki−q∣∣2}
这里, L = ( l 1 , l 2 , . . . , l k ) L=(l_{1},l_{2},...,l_{k}) L=(l1,l2,...,lk)表示由 arg min i k \text{arg} \ \overset{k}{\underset{i}{\text{min}}} arg imink 返回的前 𝑘个最小值的索引, ∣ ∣ ⋅ ∣ ∣ ||\cdot|| ∣∣⋅∣∣表示欧几里得距离。最终, S = { s l i ∣ l i ∈ L } S=\{ s_{l_{i}}|l_{i} \in L \} S={sli∣li∈L}为从证据文档中选出的证据句子。在实验中,论文设定 k = 2 k=2 k=2。
如图2所示,论文计算了三元组(Jamie Lee Curtis, occupation, actress)、(Jamie Lee Curtis, birthdate, November 22, 1958)、(Jamie Lee Curtis, notable work, Halloween)与证据文档中每个句子之间的欧几里得距离。然后,我们选择与这些三元组距离最接近的前两个句子作为证据句子,即:"She was born on November 22, 1958."和"Scorpio corresponds to the solar calendar time from October 23 to November 22."
在证据句子选择步骤中,模型能够从大量的证据文档中提取与三元组最相关的证据句子。这些句子包含与查询问题相关的关键信息,并为后续的答案生成提供支持知识。此外,与直接使用整个文档作为证据相比,有效的证据句子选择可以去除文档中可能干扰答案生成的无关信息。证据句子选择过程通过向量数据库实现,具有高效的优势。
1.5.3 回答生成(Answer Generation)
论文将三元组和证据句子作为支持知识,与查询问题结合,利用大语言模型的推理能力生成最终答案。形式上,最终答案 A 是通过如下公式生成的。
A = LM ( Q , T , S ) A=\text{LM}(Q,T,S) A=LM(Q,T,S)
之前的方法仅使用知识图谱或证据文档作为外部知识来辅助大语言模型进行问答,未考虑不同形式知识之间的相互作用。三元组提供了知识图谱中的结构化知识,而证据句子则以文本格式提供来自证据文档的详细信息。通过融合多种形式的知识并在不同粒度上进行处理,能够为模型提供更丰富的上下文和事实知识,从而帮助大语言模型生成更准确、一致的答案。
由于不同规模的模型在遵循指令的能力上存在差异,因此在生成答案时,提示中的输出格式控制可能会有所不同。论文期望模型生成一个单一实体作为答案,以便进行公平的比较。
2 论文实验
2.1 数据集与评估方法
论文在三个具有代表性的问答数据集上进行了实验。
TriviaQA-verified 是一个阅读理解数据集,涵盖了广泛的主题,包含超过65万个问答证据三元组。证据文档通过远程监督收集,可能包含与问题无关的噪声信息。因此,本文采用TriviaQA中的经过验证的子集,该子集经过人工验证,确保每个文档都包含回答问题所需的相关事实。
WebQ 是WebQuestions的简称,是一个开放域问答数据集,包含大量的问答对。WebQ中的问题来源于网络,旨在评估问答系统在处理无领域限制的真实世界问题时的表现。
NQ 是自然问题数据集(Natural Questions)的简称,这是一个广泛使用的开放域问答数据集,由Google AI团队创建。该数据集包含从Google搜索日志中选出的真实世界问题,对于评估和推动问答系统研究具有重要意义。
由于WebQ和NQ数据集缺乏证据文档,论文参考了Yu et al. (2023)的前期工作,使用大型语言模型为WebQ和NQ中的每个问题生成证据文档。具体来说,使用了Vicuna 13B来生成证据文档。
论文在每个数据集的验证集上报告EM(exact match)得分,以评估模型的表现。当且仅当答案的标准化形式在可接受的答案列表中有匹配时,才认为答案是正确的。
2.2 大模型
论文在三种具有不同规模的代表性基础大型语言模型上进行实验。
Vicuna 是由大型模型系统组织(LMSYS Org)发布的开源大型语言模型。Vicuna包括三个版本:7B、13B和33B,基于Llama模型并使用SharedGPT收集的开放对话数据集进行微调。最新发布的Vicuna 1.5基于Llama 2进行微调,支持最大上下文长度为16K的输入。论文使用Vicuna 1.5的13B版本。
Llama 2 是Meta公司发布的开源大型语言模型,包括三个版本:7B、13B和70B。Llama 2在包含超过2万亿个标记的数据集上进行训练,微调数据包括公开的指令数据集,以及超过100万个新的标注示例。论文使用Llama 2的7B和13B版本。
2.3 基准
论文设置了六个不同的基准。
标准基准(Standard baseline)直接提示大型语言模型输出问题的答案。
标准+文档基准(Standard+doc baseline)将问题和相应的证据文档作为输入,提示大型语言模型输出答案。对于Trivia-verified数据集,由于其证据文档的长度可能超过模型的最大输入长度,论文设置了一个统一的参数 max_token 来限制证据文档的长度。在本文中将 max_token 设置为300。
链式思维+文档基准(CoT+doc baseline)在标准+文档基准的基础上,结合了链式思维(CoT)方法 Wei et al. (2022)。
KS-Q方法计算问题和证据文档中每个句子的嵌入表示,选择与问题最相似的前k个句子作为证据句子。随后,KS-Q将问题和证据句子输入大型语言模型。与使用问题不同,论文的方法利用三元组来选择证据句子。
KS-T和KS-S基准分别利用在三元组构建步骤中生成的三元组和在证据句子选择步骤中获得的证据句子作为支持知识。与此不同,论文提出的方法将三元组和证据句子结合作为支持知识。然后,KS-T和KS-S分别将问题和三元组、问题和证据句子输入大型语言模型。
2.4 结果
如表1所示,所提的KS-LLM方法通过超越多个基准方法,在所有三个数据集上实现了显著的进展。具体来说,在使用开源模型的情况下,KS-LLM方法分别在Trivia-verified、WebQ和NQ数据集上取得了令人印象深刻的EM分数,分别为58.48、24.7和21.69。此外,KS-LLM方法在与包含证据文档的方法比较时仍然保持优异的性能。例如,与使用Vicuna-13B的CoT+doc方法相比,论文的KS-LLM在Trivia-verified和WebQ数据集上分别提升了8.14和3.59。这些结果充分证明了论文的方法能够有效提取证据文档中的有价值知识,从而显著提高大型语言模型在生成答案时的准确性。此外,论文的方法在绝大多数情况下超越了仅使用单一知识形式的KS-T和KS-S方法。这表明,整合不同形式的知识能够有效利用知识之间的互动和互补关系,进一步增强大型语言模型的知识吸收能力。
我们还发现,直接结合适当的证据文档通常会带来轻微的性能提升(Standard vs. Standard+doc)。在使用三种大型语言模型的三个数据集中的九个案例中,七个案例通过结合证据文档提高了语言模型的准确性。然而,应用链式思维(CoT)技术并未始终提高大型语言模型的性能(Standard+doc vs. CoT+doc)。这可能是由于我们实验中使用了零-shot提示,其中零-shot CoT的性能不稳定。此外,基础模型的选择对知识的利用有显著影响。例如,Llama 2模型在TriviaQA-verified数据集上难以有效利用有效的知识。这可能是因为TriviaQA-verified的证据文档是通过远程监督从网络上获取的,其中包含一些非典型的自然语言表达,如"Sam Smith releases new James Bond title song --- Film --- DW.COM --- 25.09.2015",Llama 2未经过适配,无法处理这种形式的知识。
table1. Performance comparison on TriviaQA-verified, WebQuestions (WebQ), and Natural Questions (NQ) datasets using three large language models with different sizes.