论文阅读:Can Generative Pre-trained Language Models Serve As Knowledge Bases for Closed-book QA

研究发现BART在闭卷式问答中面临困难,特别是在记忆和利用已知事实进行回答时。通过SQuAD构建新数据集,实验揭示BART在大量预训练知识下仍易遗忘,且QA微调会干扰知识记忆。文章提出了知识记忆解耦和QA-bridge-tune方法来改善性能。
摘要由CSDN通过智能技术生成

论文阅读:Can Generative Pre-trained Language Models Serve As Knowledge Bases for Closed-book QA

来源:ACL 2021

下载地址:https://arxiv.org/pdf/2106.01561.pdf

Abstract

最近的工作使用预先训练的语言模型 (PLM) 作为回答开放问题的知识库是一个值得研究的问题。 然而,现有的工作在使用具有高测试训练重叠的小基准时受到限制。 我们使用 SQuAD 构建了一个新的闭卷 QA 数据集,并研究了 BART 的性能。 实验表明,BART 很难准确地记住训练事实,即使保留了相关知识,也很难回答闭卷问题。 我们发现了一些有希望的方向,包括将知识记忆过程和 QA 微调过程解耦,强制模型在回答问题时回忆相关知识。

Introduction

最近的研究考虑了生成 PLM,例如 T5 和 BART 用于封闭式 QA,它只有问答对,没有外部知识源。这些研究出色的结果主要是由于训练和测试数据之间的高问答重叠率。现有的研究留下了许多关于生成预训练 LM 在闭卷 QA 上的潜力的悬而未决的问题。 例如,使用的数据集仅由问答对组成,并且没有机制来控制在回答闭卷问题之前已经使用哪些事实知识来训练生成 PLM。 此外,训练和测试问题和答案之间的高重叠率使得很难理解模型给出的答案是来自其固有知识还是训练数据中的表面线索。为了解决这些问题,我们从 SQuAD(Rajpurkar 等人,2018 年)制定了一个新的问答对基准,其中每个问题都有一个相应的 Wikipedia 段落作为预训练的可追溯知识源。

这一结果表明,直接使用 BART 进行闭卷 QA 仍然存在很大挑战。我们通过分别考察BART能否准确地记住事实性知识,以及能否利用记住的知识来回答问题来进一步调查原因。调查这两个问题的一般过程如图 1 所示。
在这里插入图片描述
图 1:用于闭卷 QA 的生成 PLM 流程。 (1) BART 在 QA 微调后的闭卷 QA 上表现不佳; (2)我们用相关段落LM-finetune BART来提供知识,并使用背诵任务来评估LM-finetuned模型记忆了多少知识; (3) BART虽然记忆了最需要的知识,但在QA微调后仍然面临闭卷QA的挑战。

对于第一个问题,我们使用 SQuAD 中的相关段落来进一步预训练 BART,我们称之为 LM-finetuning,并使用语言建模任务测试保留的事实知识的比率,我们称之为背诵。 结果表明,随着训练段落数量的增加,BART 表现出严重的遗忘问题,丢失了 LM 任务中的确切事实。 例如,当段落数在 500 左右时,BART 可以记住 66% 的所需知识。 但是当段落数增加到大约 5000 时,该比率变为 4%。

对于第二个问题,我们使用 LM-finetuned BART 的版本,通过限制段落的数量,可以保留大部分事实知识以进行进一步的 QA 微调。 尽管所有的训练和测试问题都涉及 LM-finetuning 中的段落,但 BART 仍然无法回答大部分问题。 这表明了将内部知识用于 QA 的困难。 此外,进一步的实验表明,QA 微调会对使用原始 LM 任务测量的保留的事实知识产生负面影响。

在报告此类挑战的同时,我们还通过使用简单的数据增强技巧找到了一些有希望的方向。 例如,简单地将相关段落添加到测试输出中可以帮助 BART 检索相关的事实知识并给出正确答案。 此外,与其以与 LM 预训练相同的方式处理 QA 微调(Roberts 等人,2020),将 LM 预训练任务和 QA 微调任务解耦还可以让模型通过 QA-finetuning任务更好的保留事实知识。

Using SQuAD for Closed-book QA

SQuAD (Rajpurkar et al., 2018) 是一个广泛采用的 QA 数据集,通常用于抽取式 QA,其中输入是一个问题以及包含答案事实的段落,答案是段落的一个跨度。 为了将 SQuAD 应用于封闭式 QA,我们仅在 QA-finetuning 时将 QA 对用于输入和输出。

对于 TriviaQA 和 WebQuestions,许多问题都有多个答案。 为了与其他两个数据集对齐,我们在训练时将一个有多个答案的问题拆分为几个有一个答案的相同问题,并在测试时将一个测试输出如果出现在答案列表中,则认为它是正确的。

由于 SQuAD、NaturalQuestions 和 TriviaQA 的测试集尚未完全公开发布且 WebQuestions 没有开发集,我们将三个数据集的开发集和 WebQuestions 的测试集拆分为两个子集作为新的开发集和一个新的测试集。 我们在表 2 中报告了新测试集的性能,同时在表 4 和表 5 中分析了两个子集的重叠。我们预处理后的四个数据集的详细信息如表 1 所示。
在这里插入图片描述
表 1:我们处理后的每个数据集的详细信息。
在这里插入图片描述
表 2:BART 在四个数据集上的封闭式 QA 性能。 对于 SQuAD,此实验仅使用 QA 对。 WB、TQ 和 NQ 分别表示 WebQuestions、TriviaQA 和 NaturalQuestions。
在这里插入图片描述
表 3:四个数据集上的问答重叠。 NaturalQuestions、TriviaQA 和 WebQuestions 的问题重叠数据来自 Lewis 等人(2020b); 因为我们的数据集预处理,三个数据集上的答案重叠与 Lewis 等人的有点不同。
在这里插入图片描述
表 4:测试输出/目标答案和训练答案之间的重叠分析。 我们选择表现最好的结果进行分析。
在这里插入图片描述
表 5:BART 对 WebQuestions 和 SQuAD 测试输出的重叠分析。 在结果单元格中,我们同时显示百分比和案例数。 我们选择表现最好的结果进行分析。

Results

四个数据集的整体 QA 结果如表 2 的第一行所示。BART 在 WebQuestions、TriviaQA 和 NaturalQuestions 三个数据集上取得了相对较高的结果。然而,它在闭卷 QA 中的 SQuAD 上表现不佳,准确率仅为 1.5%。 我们还使用 SQuAD 段落进一步预训练 BART,然后进行 QA-finetuning。 结果如表 2 的第二行所示,性能比 1.5% 提高了 1.8%,但仍然非常低。

为简单起见,我们将训练集中的金标准答案集定义为 G t r a i n G^{train} Gtrain ,将测试集中的金标准答案集定义为 G t e s t G^{test} Gtest。 我们将 BART 在测试集上的输出答案集定义为 O t e s t O^{test} Otest,将正确的输出答案集定义为 O c o r r e c t O^{correct} Ocorrect

为了进一步研究重叠如何影响 BART 的输出,我们选择 WebQuestions 作为高重叠数据集代表,以与低重叠数据集 SQuAD 进行比较。 结果如表 4 所示。BART 在 WebQuestions 上的 O t e s t O^{test} Otest
G t r a i n G^{train} Gtrain 有 88.5% 的重叠,这是一个很大的比例。 然而, G t e s t G^{test} Gtest G t r a i n G^{train} Gtrain 只有 59.3% 的重叠。对于 SQuAD 上的 BART,该比率为 39.8% 至 24.9%,相对较轻。 这表明如果测试问题与训练问题有很大的重叠,则模型倾向于生成训练集中的目标和单词。

我们进一步测量正确/错误输出与 G t r a i n G^{train} Gtrain 重叠/不重叠之间的关系。 结果如表 5 所示,WebQuestions 上 BART 的 O c o r r e c t O^{correct} Ocorrect 有 604 个与 G t r a i n G^{train} Gtrain 重叠,只有 5 个 O c o r r e c t O^{correct} Ocorrect 实例在 G t r a i n G^{train} Gtrain 中不存在。 但是,WebQuestions 上的五个不重叠的 O t e s t O^{test} Otest 都是 G t r a i n G^{train} Gtrain 的词和问题词的组合,可以看作是一种温和的重叠类型。 SQuAD 的情况类似,但要好得多。 这些结果表明,BART 通过表面线索正确回答比使用其内部知识要容易得多。

Task Design

以往研究(Petroni et al., 2019; Roberts et al., 2020)的最初目的是使用预训练语言模型(PLMs)作为知识库(KBs),并根据模型包含的内部知识回答问题。 但是,如果模型倾向于将测试问题与训练问题相匹配以检索答案,那么知识的来源就仅限于训练问题。 这与初衷不符。

模型在闭卷 QA 中的能力可以分为两个部分。 首先,记忆预训练知识的能力。 二是检索记忆知识进行问答的能力。 我们在以下两节中展示调查并报告结果。

Procedure

如图 2 所示,我们的设计受到课堂教学的启发。 老师先教教科书的内容,然后让学生背诵书中的要点,以测试他们对这本书的了解程度。 接下来,老师给学生一些练习题供练习。最后,老师给出一组不同的试题来测试学生。 注意整本书是讲授和背诵的,而不是书的拆分,并且练习题和考试题都与本书相关。
在这里插入图片描述
图 2:主要任务设计。 每个进程的右下角粗体上下文是该进程的名称。 每个过程中上段加粗的上下文是课堂教学中的对应过程。 中间语境是这个过程的目的。 左侧图标代表模型的状态。

Knowledge Memory

为了调查 BART 是否可以从原始语料库中获取和存储知识,我们使用 SQuAD 中的段落来微调 BART 模型,我们称之为 LM-finetuning。这一时期可以被视为向 BART 提供知识。 然后我们测试该模型以检查 BART 可以记住多少知识。 我们也称这个测试过程为背诵。

Training of LM-finetuning

我们遵循 BART 的原始训练目标进行 MLM-finetune 步骤,这是一个去噪自动编码过程。 最初的 BART 训练目标涉及五个操作,即标记掩码、句子排列、文档轮换、标记删除和文本填充。 我们仅在这项工作中采用令牌填充,因为它显示了所有下游任务的好处。对于每个输入段落,我们在 Lewis 等人之后随机屏蔽 30% 的标记。 图 3 的第三行显示了一个示例。我们要求模型将段落恢复为输出,并使用输出和原始段落来计算损失。
在这里插入图片描述
图 3:LM-finetuning 训练和测试期间的两种 MASK 策略示例。 随机屏蔽的段落用于训练,用答案跨度屏蔽的段落用于测试(背诵)。

Testing of LM-finetuning(Reciting)

在 LM-finetuning 的测试阶段,我们开发了一个名为“Reciting”的任务来探测模型有多少(具体)知识。 要求判别 PLM 填充给定 masked 段落/句子的蒙版,我们的背诵任务是为生成 PLM 提供几个 masked 段落并要求它恢复它们。 对于每个段落,我们掩盖了作为相关问题答案的标记跨度。图 3 的最后一行显示了一个示例。通过这种方式,我们可以假设如果 BART 可以恢复特定屏蔽的段落,它必须具有进一步 QA 所需的知识。 请注意,在进行 LM-finetuning 训练时,根据 BART(Lewis 等人,2020a)随机选择掩码标记。 此外,由于答案跨度主要是实体或独立的知识片段,因此模型通过启发式或表面线索恢复它们的可能性相对较小。 背诵来探究模型的内部知识是很自然的,因为它与 Masked Language Model 过程(LM-finetuning 和 BART 的预训练任务)最相关。

Evalution Metrics

我们使用掩码跨度恢复的准确性来衡量模型记忆了多少知识。 由于许多答案跨度在段落中出现多次,我们不能简单地将跨度的存在视为正确。 此外,即使正确生成了掩码标记,如果其上下文词发生变化,句子的含义也可能不同。 考虑到这些,我们选择了更严格的背诵准确度评估指标。 仅当当前掩码之后和下一个掩码之前的后续单词(或者如果掩码标记之间的跨度大于 10,则后续的 10 个标记)也被正确预测时,我们将跨度视为正确预测。

Results

我们首先使用原始 BART、随机初始化 BART 和 LM 微调 BART 对所有 SQuAD 段落进行背诵实验。 结果如表6所示。
在这里插入图片描述
表 6:所有 SQuAD 段落的背诵表现。 我们使用 BART-Large 检查点。 LM-finetuning 和 reciting 都是在相同的 20279 段落上进行的。

随机初始化的 BART 的准确度为零,表明该任务很困难,没有猜测的可能性。 原始 BART 得分为 2.2%,表明它包含一定但有限的知识。LM-finetuned BART 提供 2.7% 的准确度。 这个结果说明LM-finetuning在一定程度上是有用的。 然而,尽管给出了 100% 的知识,LM-finetuning 仅将结果提高了 0.5%,这表明 BART 在记忆训练前 SQuAD 文本中包含的重要知识方面面临着重大挑战。

鉴于上述观察,我们尝试通过从 SQuAD 中提取子集来生成更小的数据集来减少挑战。 子集分别包括20、160、547、1094、1641、6020个段落,其中三个数字表示段落数量。 对于这些背诵实验,我们只考虑原始的和 LM 微调的 BART。结果如表7的前两行所示。我们可以发现(1)使用LM-finetuning,BART可以记忆一些知识。 例如,当通道子集为 547 时,原始 BART 只能正确恢复 3.6% 的掩蔽跨度,而 LM-finetuned BART 可以恢复 66.3% 的掩蔽跨度; (2)随着通过量的增加,记忆能力迅速下降。 例如,当通道子集为 20 时,BART 可以正确恢复 87.3% 的掩码; 为1094时,准确率下降到34.3%; 6020时,准确率只有3.9%。
在这里插入图片描述
表 7:背诵的表现。 我们使用 BART-Large 检查点。 对于每列的标题,数字代表子集的通过量。 请注意,LM-finetuning 和 reciting 都是在相同的段落上进行的。

我们得出结论,BART 具有一定的存储(事实)知识的能力,但能力较弱。 如果我们控制 LM-finetuning 的段落数,我们可以确保 BART 可以记住最需要的知识。 当我们确信相关知识被保留时,在较小子集上训练的 LM-finetuned 模型为测试 BART 的 QA 能力提供了更有用的设置。

Question Answering

我们采用表 7 中前三列的设置,其中模型可以记住至少 50% 的所需知识,以进一步分析记忆与 QA 能力之间的关系。

Overall Results

评估方式:EM加人工。

总体结果如表8的前两行所示。根据 ‘original BART-Large→LM-finetuning→QA-finetuning’ 的结果,与每个模型的Reciting Accuracy(RA)相比,QA准确率要低得多( HE 中 87.3% 对 30%、72.6% 对 6.5%、66.3% 对 6.7%)。 这一结果表明,BART 利用其内部知识回答问题的能力较弱。
此外,第一行和第二行的比较表明,记忆的知识有助于模型更好地回答问题,但帮助并不大(HE 中 30% vs 0.0%、6.5% vs 4.3%、6.9% vs 4.9%)。
在这里插入图片描述
表 8:三个 SQuAD 子集的 QA 性能。 标题中的数字是段落和 QA 对的数量,例如,“160 (128/16/16;653/107/93)”表示该子集总共有 160 个段落和 128/16/16 个段落,653/107/ 训练/开发/测试集中分别有 93 个 QA 对。 RA列中的数字代表背诵准确率,与表7相同。表中的RA可以显示BART在QA-finetuning之前记忆了多少知识,模型如果能够充分利用QA准确率应该达到哪些值 回答问题的内部知识。 带有粗体文本的单元格是我们的方法。 EM、HE 分别表示精确匹配、人工评价。 “BART”表示“BART-Large”检查点。

对于 reciting-QA-accuracy 的差距,我们提出了两种可能的解释,第一是模型无法激活相关记忆进行问答; 第二个是在 QA-finetuning 过程中,记忆的知识在某种程度上被破坏了。

Strengthening Memory Retrieval

定性案例表明,即使模型包含所需的知识,模型也不一定会在 QA-finetuning 后引用最相关的问答记忆。 我们在表 9 的“QA-finetune”列中列出了几个此类示例。
在这里插入图片描述
表 9:BART 的 QA-finetuning 和 QA-bridge-tuning 的四个实际输出示例。

例如,在表 9 的第一行,对于问题“Southern California 通常缩写为什么?”,尽管模型Models 是用“Southern Californi,通常缩写为 SoCal”训练的,但它仍然回答“Southern California”,即表示模型无法检索相关记忆来回答问题。我们提出了一种加强知识检索的简单方法,即 QA-bridge-tune,它是一个扩展的 QA-finetuning 过程。 该过程如图 4 所示,对于每个问题输入,输出将相关段落与答案连接起来。
在这里插入图片描述
图 4:一种直观的 QA-bridge-tuning 方法。为了使模型更依赖于内部知识来回答问题,模型不仅要生成答案,还要生成相应的段落。 输出应该是‘P A’,其中‘P’代表相应的段落,是一个特殊的标记,A代表答案。

因此,模型可以在回答问题时明确地回忆起记忆的段落,QA-bridge-tune 通过它在 QA 和记忆的知识之间架起了一座桥梁,使模型可以用学到的知识回答问题。 此外,这种方法可以帮助提高可解释性。结果如表 8 所示。我们可以看到,QA-bridge-tune 可以帮助模型在 QA 时唤醒相关的记忆知识,从而提高 EM 准确率,并在基线上提高两到三倍。 除了答案的正确性之外,我们还考虑了模型输出和黄金答案之间的相关性,无论答案是否正确。 例如,问题是“亚马逊雨林占地球雨林的数量?” 目标答案是“超过一半”,生成的两个答案是“60%”和“亚马逊雨林”。它们都是不正确的,但前者更相关,因此是更好的答案。我们要求人类手动比较使用和不使用 QA-bridge-tuning 的结果,使用“BART→LM-finetuning→QA-finetuning”和“oBJ→LM-finetuning→QA-bridge-tuning”策略在“128/16/16”子集上选择结果 。 结果如表 10 所示。根据人类专家的说法,在 30.2% 的情况下,QA-bridge-tuning 的输出比 QA-finetuning 的输出与黄金答案更相关,而只有 16.6% 的情况下,QAfinetuning 更相关。这个结果表明 QA-bridge-tuning 可以帮助 BART 找到更多相关知识。
在这里插入图片描述
表 10:使用和不使用具有正确答案的 QA-bridge-tune 的结果之间的人工评估相关性。 A > B 表示 A 的输出与 B 的正确答案相关性更高。在此表中,A = QA-bridgetune,B = QA-finetune。

我们还列出了图 9 所示的几个示例。对于问题“南加州通常缩写为什么?”,BART 可以在 QA -bridge-tuning 之后输出相应的段落以及正确答案“SoCal”。 这些结果表明,QA-bridge-tuning 可以有效地帮助模型回忆起记忆的知识。

Influence of QA on Memory

为了探索 QA-finetune 是否会干扰 LM-finetuned 模型的记忆,我们使用 QA-finetuned 模型进行背诵任务。 结果如表 11 所示。经过 QA 微调后,模型的背诵准确率下降。 对于这种现象,我们有两种可能的解释。
在这里插入图片描述
表 11:QA 后背诵的表现。 标头中的数字是该子集的通过量。“BART”表示“BART-Large”检查点。

首先,QA-finetune 过程破坏了模型在表示方面的内部记忆; 其次,任务不同,因此模型输出空间受到干扰,但模型仍然保留知识。我们针对这个问题尝试了一个简单直观的解决方案,即将QA-finetune过程和LM-finetune过程解耦,使两个任务输入/输出空间在一定程度上有所区分。 这可以简单地在输入和输出级别完成。 我们分别在 LM-finetuning 和 Reciting/QA-finetuning 时为每个输入段落/问题添加 / 前缀标记和 / 后缀标记,并且还添加了 / 后缀标记到每个输出段落/答案。结果显示在表11中带有(添加前缀/后缀)的行中。LM-finetuning后带有前缀/后缀的背诵精度与没有前缀/后缀的情况相比没有太大差异。 但是,添加前缀/后缀时 QA 准确度显着提高(HE 中为 2.8% 至 5.7%、10.9% 至 51.4%、2.4% 至 16.2%)。结果表明,我们的解耦方法可以帮助模型区分输入类型以找到合适的语义空间,从而缓解这个问题。 此外,根据表 8 中第二行和第三行的比较,添加前缀/后缀可以帮助模型更好地回答问题。 我们认为也是因为这种方法可以帮助模型区分输入/输出空间。

Conslusion

我们使用 SQuAD 进行了调查,发现封闭式 QA 对于生成式预训练语言模型(如 BART)仍然具有挑战性。 挑战既在于记住知识细节,也在于记住知识后回答问题。 潜在的解决方案包括在回答问题时明确要求模型回忆相关知识,以及解耦 LM-finetuning 过程和 QA-finetuning 过程。

GPT (Generative Pre-trained Transformer)是由OpenAI公司开发的一系列自然语言处理模型。它采用多层Transformer结构来预测下一个单词的概率分布,通过在大型文本语料库中学习到的语言模式来生成自然语言文本。GPT系列模型包括多个版本,如GPT-2和GPT-3等。\[2\]这些模型在不同任务中展现了出色的性能,包括零样本学习和少样本学习等。GPT使用Transformer的Decoder结构,并对其进行了一些改动,保留了Mask Multi-Head Attention。\[3\]通过这些改进,GPT模型在自然语言处理领域取得了显著的成果。 #### 引用[.reference_title] - *1* [深入理解深度学习——GPT(Generative Pre-Trained Transformer):基础知识](https://blog.csdn.net/hy592070616/article/details/131341012)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【LLM系列之GPT】GPT(Generative Pre-trained Transformer)生成式预训练模型](https://blog.csdn.net/yanqianglifei/article/details/130756814)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>