备注好友:方向-学校/公司-姓名/昵称
【AIGC 先锋科技】交流群
以往的研究表明,它们在许多自然语言理解任务中处理否定时存在困难。在本研究中,作者提出了一种自监督方法,使语言模型对否定的鲁棒性更强。
作者引入了一个新的任务,即下一句极性预测(NSPP),以及下一个句子预测(NSP)任务的一个变体。作者证明,在BERT和RoBERTa在完成作者的任务进一步预训练后,在九个与否定相关的基准测试中优于现成的版本。
最值得注意的是,作者的预训练任务在CondaQA上带来了1.8%到9.1%的提升,CondaQA是一个需要基于否定进行推理的大型问答语料库。
- 引言
在人工智能(AI)的迅猛发展背景下,本研究旨在探讨人工智能领域的最新进展及其在各个行业的应用。通过对相关文献的回顾和分析,本文将概述当前AI技术的发展趋势,并展望其在未来可能带来的变革。
否定是一种语义现象,它改变表达方式以传达相反的意义。否定是一种在所有语言中以各种形式广泛使用的语言结构。否定出现在大约25%的英语句子中。语言模型(LMs)在广泛的自然语言理解任务中取得了显著的性能,但当涉及否定时,它们已被证明存在困难。Truong等人(2023年)表明,像GPT-3 和InstructGPT(Ouyang等人,2022年)这样的大语言模型对否定的存在也不敏感,难以对其进行推理。尽管最先进的大型模型可能在处理否定方面表现更好,但解决这一问题对于更高效、成本更低的较小语言模型仍然很重要。
Kassner和Schitze(2020年)的研究表明,BERT 在句子中加入否定词时,往往预测出相同的 Token 。例如,在句子“A beagle is a type of [M A S K]”中,BERT在原句以及将否定词“not”加入句子“A beagle is not a type of”后,都预测出“dog”作为 Mask Token 。作者假设这种行为的产生是由于预训练中缺乏否定词建模。具体来说,模型没有接触过添加(或删除)否定词会影响话语中意义和连贯性的实例。作者提出在涉及否定词的两个新任务上进一步预训练语言模型。第一个任务是下一个句子极性预测(NSPP)任务,即给定一个句子,模型预测下一个句子是否包含否定词。第二个任务是对BERT(Devlin等人,2019年)中介绍的著名下一个句子预测(NSP)任务的变体。
然而,在作者的版本中,作者将第二个句子的极性反转,以形成负样本,而不是从文档中随机选择句子。作者将反转极性定义为向含有(或不含)否定词的句子添加(或删除)否定词。图1展示了自监督任务的示例。
本文的主要贡献包括:
- 提出两种新颖的自监督任务,用于预训练否定性语言模型。创建了大规模数据集(约640万样本)用于这些任务。
- 证明了在这些任务上进一步预训练BERT(Devlin等人,2019年)和RoBERTa(Liu等人,2019年)可以独立提升CondaQA(Ravichander等人,2022年)以及其他八个与否定性相关的基准测试的性能。然而,对这两个任务进行联合预训练并不总是能提高性能。
根据作者了解,CondaQA是目前已知需要处理否定推理的最大语料库。它包含14,182个问答对以及200多个独特的否定线索。此外,作者还对作者模型在Hossain等人(2022)分析的三种自然语言理解(NLU)语料库(QNLI(Rajpurkar等人,2016),WiC(Pilehvar和Camacho-Collados,2019),以及WsC(Levesque等人,2012))进行了评估。作者还评估了Hossain等人(2020)为RTE(Dagan等人,2006)、SNLI(Bowman等人,2015)和MNLI(Williams等人,2018)引入的新否定基准。最后,作者在LAMA(Petroni等人,2019)和LAMAneg(Kassner和Schitze,2020)上进行了评估。
否定理解研究主要集中在否定的各个方面,包括否定检测(Khandelwal和Sawant,2020;Truong等人,2022;Morante和Daelemans,2012)、范围检测(Qian等人,2016;Jumelet和Hupkes,2018;Fancellu等人,2017;Morante和Daelemans,2009;Li和Lu,2018;Zhao和Bethard,2020)以及焦点检测(Rosenberg和Bergler,2012;Shen等人,2019;Zou等人,2014,2015)。
近期的研究也关注了在存在否定词时提高语言模型(LMs)性能的方法。Sarabi等人(2019年)引入了肯定解释,即在不用否定 Prompt 的情况下改写否定句子。Hossain和Blanco(2022年)以及Rezaei和Blanco(2024年)表明,引入肯定解释可以提高LMs在否定相关基准测试上的性能。在本论文中,作者展示了作者的预训练策略在CondaQA上的表现优于肯定解释。与他们的不同,作者的预训练在预测时并未增加任何复杂性。
所有代码和数据均可在https://github.com/mhrezaei1/pretraining-negation处获取,遵循Apache 2.0许可证。
霍赛尼等人(2021年)提出通过不可能性训练和合成数据生成来增强BERT的否定理解。辛格等人(2023年)重复了BERT的前训练程序(即MLM和NSP),并对它们进行了修改以改善否定理解。他们将否定 Prompt 添加到原始的下一句中,而不是随机选择一句。与他们的不同,作者并非总是添加否定;相反,作者在NSP任务中反转第二句的极性。
也就是说,一半的时间作者在下一句中添加否定,另一半的时间作者将其移除。作者还引入了一个新颖的任务,即下一句极性预测(NSPP),这是之前的研究未曾涉及的。正如作者将看到的,作者的预训练优于先前的研究。
- 强化语言模型对抗否定
作者提出了一种自监督方法,以增强语言模型对否定表达的鲁棒性。作者的方法是在涉及否定的两个任务上进一步预训练语言模型。这两个任务分别是下一句极性预测(NSPP)任务和一种变体的知名下一句预测(NSP)任务。这些任务均无需标注数据;任何文本语料库都适用。此外,它们不局限于任何特定领域或下游任务。
3.1 下一个句子极性预测(NSPP)
作者引入NSPP任务,即根据当前句子预测下一句的极性。对于一对连续的句子
,模型的输入仅为
,输出为一个二进制标签,表示
是否包含任何否定线索。例如,考虑以下一对句子:
:天气预报显示天空晴朗。
:但情况并未持续如此。
给定仅
,模型应预测该句子包含否定线索。
3.2 下一个句子预测(NSP)
自然语言处理(NSP)是语言模型预训练中的一个知名任务,最早由BERT(Devlin等人,2019年)提出。NSP任务的目标是预测两个句子是否连续。Devlin等人(2019年)在(a)方面使用了来自维基百科的连续句子作为正面示例;(b)另一方面,他们从同一篇文章中随机选择一个句子来替换第二个句子,从而创建一个负面示例。
作者提出了一种NSP任务的变体,以提升否定理解的准确性。对于一对连续的句子
,作者构建一个负对
,其中
是通过翻转
的极性得到的。也就是说,如果
包含否定线索,作者就去除它们,反之亦然。
3.2.1 极性反转
作者定义了添加和删除否定 Prompt 的规则。这些规则用于在自然语言推理(NSP)任务中创建否定对
。为了简化流程,作者仅处理包含“不”、“n't”或“从未”作为否定 Prompt 的句子;否定 Prompt 修饰主动词;不是疑问句;并且恰好包含一个否定 Prompt 的句子。
为了制定规则,作者从满足这些标准的英文维基百科语料库(维基媒体基金会,2024年)中收集了大量句子。接着,作者使用spaCy(Honnibal和Montani,2017年;Honnibal和Johnson,2015年)为每个句子生成了依存树,并分析了主动词出发边的频率。之后,作者手动检查了与每个边最频繁出现的 Token ,并利用这些模式开发了以下规则。
作者对这些规则进行了评估,通过手动检查了100个样本。在其中的96%样本中,规则正确地反转了极性。请注意,这里的目的是不是达到100%的正确率——而是为了自动生成数据,用于作者的任务进行预训练。
添加否定词。对于主动词没有助动词的句子,作者直接插入否定 Prompt 并调整动词的时态和主谓一致。 Prompt 词始终直接放在主动词之前。如果主动词是以下之一:were, was, is, are, do, will, would, may, might, shall, should, can, could, 或 must,作者就在其后直接添加n't或not。例如,给定句子“I was shopping”(我正在购物),作者添加not来构成句子“I was not shopping”(我并没有在购物)。
如果一个主要动词是动名词或现在分词,作者不会直接在其后添加“n't”;相反,作者将“not”置于动词之前。对于现在分词或过去分词,作者将其替换为其词元,并在词元前插入适当的“do”形式,确保其与动词的时态和主语的人称相匹配。对于现在分词,作者添加“do”或“does”,而对于过去分词,作者添加“did”。然后,作者在助动词后插入“not”或“n't”。例如,给定的句子“我去过商店”,主要动词“去过”被替换为“没有去过”,结果形成“我没有去过商店”。如果主要动词在依存树中有一个 Token 为“aux”或“auxpass”的出边,作者将否定信号添加到助动词上。例如,给定的句子“商店关门了”,作者在助动词“is”后添加“n't”,形成句子“商店没关门”。然而,对于某些助动词如“might”和“may”,无法直接在其后添加“n't”。在这种情况下,作者只向句子中添加“not”或“never”。附录A列出了作者使用的助动词以及添加每个否定信号的规则。
此外,为了使句子带有更自然的否定 Prompt ,作者将修饰词如"already"和"some"分别替换为"yet"和"any"。
删除否定词。作者首先从句子中移除否定 Prompt 词,并相应地调整语法。如果否定 Prompt 词是“n't”(如“can't”或“won't”),则移除“n't”并将助动词替换为其词源形式(例如,“can”和“will”)。接下来,作者移除任何额外的助动词,并根据时态和主语一致性调整主动词。如果助动词是“did”,则移除“did”并使用主动词的过去时态形式。例如,对于句子“我没有去过商店”,作者移除“did”并将“go”更新为“went”,结果为“我去过商店”。对于“do”和“does”,作者采用相同的处理过程。也就是说,作者将主动词替换为其基础形式或第三人称单数形式。
作者还将表示否定极性的词汇,如“yet”、“at all”和“any”,替换为它们的肯定对应词(分别是“already”、“somewhat”和“some”)。最后,如果“but”作为连词且在依存树中是主要动词的兄弟节点,作者将其替换为“and”。
关于使用大语言模型(LLMs)的笔记。尽管使用LLMs成本高昂且耗时,作者尝试使用最先进的LLMs来反转句子的极性。作者使用了Llama-2模型(Touvron等,2023年)和GPT-4模型(OpenAI,2023年)。作者尝试了多种 Prompt 方法来指导模型只添加或删除否定线索,而不修改句子的其他部分。然而,模型始终会对句子进行额外的修改以保持句意完整。作者推测这可能是由于作者处理的是维基百科中的句子,这些句子通常涉及事实。因为这些模型被认为是在训练中注重真实性,所以它们往往拒绝生成与真实世界事实相矛盾的文字。附录B中提供了 Prompt 和输出的示例。
3.3 数据集
接下来,作者只保留可以应用反转极性规则的句子。作者还提取肯定句子(即没有否定 Prompt 的句子)及其前置句子(
)。为确保句子确实是肯定的,作者验证CondaQA中的所有否定 Prompt 均不存在。此外,作者旨在从同一篇文章中选取与否定句子相同数量的肯定句子。如果无法实现,剩余的句子将来自另一篇文章。作者获得相同数量的否定句和肯定句,共约640万个
对。否定句和肯定句分别用作NSPP任务的正面和负面示例。接下来,作者通过反转
句子的极性来创建
对。作者只在肯定句子中添加一个否定 Prompt ,并确保每个文章中的分布与否定句子相同。
作者随机选取了25,000对
及其对应的
对,以构建预训练的验证集。其中,
句子的一半为否定句,另一半为肯定句。NSPP任务不需要
对。因此,验证集包括25,000对用于NSPP任务,以及50,000对用于NSP任务。
4 评估基准
作者评估了现成的语言模型以及进一步使用作者策略预训练的版本,在需要推理否定关系的基准测试中进行评估。作者主要在CondaQA(Ravichander等人,2022年)上进行评估,并在八个其他相关基准测试上提供结果。作者使用的所有语料库均为英文。
4.1 CondaQA是一种用于自动化构建和测试复杂软件包依赖关系的工具。它能够识别和解决软件包之间的冲突,从而简化软件部署过程。
CondaQA(Ravichander等人,2022年)是一个对比问答数据集。该数据集旨在评估模型在处理否定推理方面的能力。数据集包含14,182个问答对。每个问题都与一段包含该问题答案的文本相对应。问题的答案可以是“是/否/不知道”,或者是问题中的一个片段,或者文本中的一个片段。
该模型是通过从包含否定短语的英语维基百科中提取1,289段文本创建的。他们从一个否定线索集合(Morante等,2011;van Son等,2016)开始,并对其进行扩展。CondaQA中包含超过200个独特的否定线索,包括单词否定(例如,not、never)、词缀否定(例如,un-lucky、in-correct)和多词否定线索(例如,a lack of、instead of)。它们还包括多个词性标签,如动词(例如,refuse)、名词(例如,absence)、形容词(例如,uninterested)和副词(例如,incorrectly)。
《CondaQA》的作者指导众包工作者对每段文本进行三种类型的编辑:
改写否定句:重新表述被否定的句子。 范围变更:改变否定范围,即句中被否定的部分。 肯定句:从句子中去除否定部分。
改写编辑保持意义不变,但范围和肯定编辑会改变句子的意义。这些问题是由众包工作者编写的,旨在针对段落中否定语句的隐含意义。然后,这些问题分别针对原始段落和编辑后的段落进行回答。附录C展示了示例。
重要的是,Ravichander等人(2022年)证明了CondaQA无法仅通过依赖问题、编辑类型或线索的模型来解决。这保证了数据集不会出现模型可能利用来解决任务的缺陷。
作者对模型在CondaQA数据集上的表现进行了评估,采用准确率和组内一致性指标。这里的“组”指的是原始段落以及所有三个或其中之一被编辑过的段落。组内一致性衡量的是一个组中所有段落正确回答问题的百分比。组内一致性或许更为重要,因为对否定词的鲁棒性意味着能够使用所有原始和编辑过的段落正确回答问题。
4.2 其他语料库
自然语言推理(NLI)和自然语言理解(NLU)语料库。Hossain等人(2020年)和Hossain等人(2022年)分析了现有NLI和NLU语料库中的否定表达。他们指出,在这些语料库中,否定线索相对较少,且这些线索通常对任务并不重要。也就是说,句子中的否定可以去除,而不会改变示例的标签。
此外,他们引入了三个基于现有NLI语料库构建的新否定基准。
图2:从左到右展示了在NSPP、NSP以及联合任务上的预训练Transformer的趋势。随着模型在语料库更大子集上进行训练,验证损失逐渐降低。当验证损失趋于平稳时,作者停止训练。
他们与RTE(Dagan等人,2006年;BarHaim等人,2006年;Giampiccolo等人,2007年;Bentivogli等人,2009年)、SNLI(Bowman等人,2015年)和MNLI(Williams等人,2018年)进行了合作。为了创建他们的基准,他们从每个语料库中随机选取了500个文本和假设对。然后,他们在文本和假设句的主谓语中加入了否定 Prompt ,从而从每个原始对中创建了三个新对。新对使用原始基准的标签进行了人工标注。附录D包含了作者工作中使用的NLU和NLI语料库的更多细节和示例。
LAMA和LAMA-Neg。LAMA Prob (Petroni等人,2019)是评估语言模型事实和常识知识的一个基准。LAMA由多个数据集组成,包括GoogleRE、T-REx(Elsahar等人,2018)、ConceptNet(Speer和Havasi,2012)以及SQuAD(Rajpurkar等人,2016)。模型的输入是一个带有 Mask Token 的句子。目标是正确预测被 Mask 的 Token 。LAMANeg(Kassner和Schutze,2020)是LAMA的一个变体,其中在句子中插入了否定线索。模型应该预测除原始 Token 之外的任何 Token 。附录E提供了有关这些语料库的更多信息。
首先,作者进一步在第三章节描述的任务上对transformers进行预训练。然后,在第四章节描述的基准测试集上评估这些模型。
5.11 对否定句型进行预训练的语言模型
作者采用了BERT(Devlin等人,2019年)和RoBERTa(刘等人,2019年)的基础版和大型版作为作者的 Baseline 模型。作者进一步在NSPP和NSP任务上分别和联合地预先训练这些模型。由于BERT和RoBERTa已经使用 Mask 语言模型在维基百科上进行了预训练,因此在作者的预训练过程中进行进一步的 Mask 语言建模是多余的。作者使用了Transformers(Wolf等人,2020年)和PyTorch(Paszke等人,2019年)库。对于两项任务,作者使用学习率为
的Adam优化器(Kingma和Ba,2017年)和交叉熵损失。在验证集上,作者采用提前停止策略,耐心值设置为3个epoch。
在NSPP和NSP任务上的联合训练中,作者使用相同的学习率和优化器。模型最后一层的输出被输入到两个独立的线性层中,每个层预测其对应任务的标签。总损失是各个任务损失的总和。模型的输入与NSP任务中的相同,使用特殊 Token [SEP]将两个句子连接起来。当仅在NSPP任务上进行预训练时,输入仅为第一句
。然而,当联合预训练时,输入中存在第二句并不会使任务变得简单。请注意,在NSP任务中,作者有一半的时间会反转第二句的极性。因此,即使模型在第二句中寻找否定线索,它也不能依赖这些线索来预测NsPP任务中下一句的极性。
在全部语料库(约12.8百万句子对用于NSP和约6.4百万用于NSPP)上进行训练计算量大且耗时。因此,作者选择在语料库的较小子集上进行训练,随着训练的进行逐渐增加其规模,直到验证损失趋于平稳。图2展示了随着更多预训练数据的使用,损失的变化情况。作者发现BERT和RoBERTa模型在基础和大型配置下都表现出相似的趋势。在训练了1百万句子对后,作者停止了预训练,除了在NSP和NSPP任务上训练的大型模型,作者在训练了500K对后停止。尽管在NSPP任务上的损失减少没有在NSP任务上那么显著,但模型在下游任务上的表现仍然有所提升。
表1:CondaQA测试集上的结果。第一组行显示了先前工作的结果。第二组行显示了在作者任务上进一步预训练的结果。星号(*)表示相对于现成的LM版本有统计学上显著的提升(McNemar测试(McNemar,1947),p<0.05)。在作者的任何任务上预训练BERT和RoBERTa都显著优于现成的LM。在任意任务上预训练的RoBERTa-large达到了比(1)采用肯定解释和(2)UnifiedQA-v2-large更高的组内一致性(和准确率),而UnifiedQA-v2-large已经在约1百万个标注的问答对上进行过预训练。
5.2 下游任务
对于下游任务(除了没有训练集的LAMA之外),作者在第4节所述的基准上进一步微调了预训练模型。有关实现细节和超参数的更多详细信息请见附录F。
6 结果与讨论
首先,作者展示了CondaQA的结果,接着是第4节中介绍的八个其他语料库的结果。
6.1 CondaQA的研究结果
表1展示了使用CondaQA测试集的结果。与现成模型相比,BERT和RoBERTa模型在进一步预训练作者任何一项任务时,均能实现1.8%至9.3%的更高准确率。重要的是,所有改进都具有统计学意义。根据Ravichander等人(2022年)的研究,组一致性是一个更可靠的指标,用于评估模型推理否定能力,这一指标在所有模型中也得到了提升。唯一的例外是,在NSPP或两者联合任务上预训练的BERT-base,其差异微乎其微(分别为2.7%和2.9%,而对比3.4%)。最值得注意的是,在任一任务上预训练的RoBERTa-base,其组一致性达到了15.6%至17.6%,而现成模型的组一致性仅为2.4%。
回忆一下,否定句的肯定性编辑是通过取消否定(即移除否定 Prompt )来实现的,然后编辑后的句子就是肯定的。作者观察到,在肯定性编辑上,与准确性提升和组内一致性保持相同的效果(除了BERTbase模型)。这表明作者提出的预训练任务不仅增强了模型对否定推理的鲁棒性。
UnifiedQA-v2(哈沙比等,2022年)模型在性能上优于现成的RoBERTa模型。然而,它们是在约1百万个问答对上进行微调的。相比之下,作者的模型尚未在任何问答数据上进行预训练,却以相似数量的参数超过了UnifiedQA-v2。所有在作者任务上预训练的RoBERTa-large(3.55亿参数)模型在群组一致性方面比大型(7.7亿参数)的UnifiedQA-v2模型高出3.3%至4.6%,在准确率方面高出0.6%至1.6%。
此外,作者将作者的模型与Rezaei和Blanco(2024)的先前研究进行了比较。他们通过自动生成否定句的肯定性解释并将其添加到输入中。然而,在作者的任务上进行预训练比将输入与肯定性解释相结合更有效(在组一致性上提高了
,在准确率上提高了
)。重要的是,作者的方法绕过了生成否定句肯定性解释的需要。
尽管在任一项任务上进行预训练都有益,但作者观察到在NSP任务上的预训练始终优于在NSPP任务上的预训练。同时在这两项任务上进行联合训练,可以使RoBERTa-large模型在准确率上提高0.3%,在组内一致性上提高0.8%。然而,这却降低了其他模型的表现。这可能是因为NSP任务更容易学习,因为它要求模型预测输入的两个句子之间的连贯性。相比之下,NSPP任务更具挑战性,它要求模型仅根据前一个句子来预测句子的极性。作者假设当两项任务联合训练时,NSPP任务引入的复杂性干扰了模型有效学习和处理否定推理的能力。
此外,作者还进行了一项消融实验,其中作者只在预训练数据中添加或删除否定线索。附录G显示,反转句子极性始终比仅添加或删除否定线索更有效。有趣的是,仅对一种类型的实例(添加或删除否定)进行预训练,在统计上显著优于除BERT-large以外的所有模型。作者还观察到,使用仅包含添加否定线索的数据子集进行预训练比使用仅包含删除否定线索的数据子集进行预训练更有益。
6.2 其他语料库上的结果
NLI语料库。表2展示了在RTE、SNLI和MNLI上的结果。预训练并没有显著改变所有原始实例的准确性。它们的准确率都在
到
之间,除了使用RoBERTa-base在RTE上提高了
。这表明,当否定词不存在时,作者的模型仍然与现成的模型表现相当。有趣的是,对这两个任务进行联合训练并没有提升除了RoBERTa-base之外任何模型的性能,相对于在NSP上的预训练。
表3:自然语言理解基准测试验证集上的宏平均F1分数。作者报告了在原始实例和包含否定词的实例子集中的性能。在WiC和WsC中带有否定的所有实例均不重要(即,无需考虑否定即可回答)。主要结论如下:(a) 在NSP上进行预训练一致地提高了对包含否定词的实例的性能,(b) 在NSPP上进行预训练或联合预训练也是有益的,或者不会显著改变性能。
根据Hossain等人(2020年)的研究,原始开发集包含的否定实例过少,无法评估模型在否定方面的性能。因此,作者专注于他们新创建的否定配对。详见附录H,其中详细列出了每种配对类型的结果。
在进一步对BERT模型进行预训练的任何任务上,其在新的否定对(RTE:5.1%,25.5%,SNLI:1.9%至-6.1%,MNLI:0至-1.6%)上的表现均优于现成的模型。重要的是,进一步在NSP上进行预训练的模型,在性能上超过了Hosseini等人(2021年)和Singh等人(2023年)的先前工作,分别提高了0%-4.2%和1%-4.7%。与BERT模型相比,RoBERTa在进一步预训练后显示出的改进有限。基础模型从联合预训练中获益更多,超越了现成的模型和先前的工作。然而,大型模型在NSP上的预训练中获益更多,但并未在RTE上超越先前的工作。在NSPP上的预训练持续提升了所有模型的表现,除了RoBERTa large。然而,除了在SNLI上使用BERT-base提高了3.5%外,其他情况要么效果较差,要么与在NSP上预训练的模型相差在+1%以内。
自然语言理解语料库。表3展示了自然语言理解任务验证集上的结果。遵循先前的研究,作者报告了在验证集上的宏平均F1分数,因为一些测试标签并未公开可用。结果表明,进一步的预训练在包含否定或最坏情况下仅导致可忽略的下降(在WsC上使用RoBER表se时下降了0.01%)。平均而言,预训练在所有任务上提高了3.11%。值得注意的是,基模使用WiC任务时,改进最为显著(平均增加7.5%),而在WsC任务使用大型模型时,平均性能提高了6.0%。重要的是,所有在NsP或NsPP上预训练的模型在QNLI的重要实例上都优于现成的版本,唯一例外是使用NSPP或NSP预训练的BERT-large。
LAMA和LAMA-Neg。表4展示了LAMA-Neg任务的结果。值得注意的是,在LAMA-Neg任务上实现0%的错误率,只需模型在存在否定的情况下随机行为即可。因此,虽然低顶1平均错误率可以作为合理性检查,但它们并不能可靠地指示模型推理否定的能力。尽管如此,作者的模型在LAMA-Neg任务上的表现优于现成的模型,错误率降低了0.09至19.96个百分点(平均6.19个百分点)。表5展示了原始LAMA数据集上
时的平均精确率。关键的是,除了同时预训练于NSP和NSPP的RoBERTa模型外,所有其他模型均保持在vanilla模型
的范围内。最值得注意的是,在SQuAD上,经过NSP和NSPP预训练的模型始终比vanilla模型高出0.33%至1.32%,唯一例外是经过NSPP预训练的BERT-base,其表现比vanilla模型差0.32%。值得注意的是,LAMA数据集不包含否定实例。因此,不期望有改进。然而,模型保持在vanilla模型
的范围内,以及LAMA-neg(表4)和其他语料库上的显著改进,表明模型在保持无否定输入的竞争力同时,实现了对否定的更强鲁棒性。
表4:作者报告了否定LAMA Query 的平均前1个错误率。错误率越低,模型性能越好。作者所有的模型都优于现成的模型。
在这项工作中,作者提出了一种自监督方法,以提高语言模型对否定表达的鲁棒性。作者引入了两个任务以进一步预训练语言模型:(a) 首次提出的下一句极性预测(NSPP)任务;(b) 一种改进的下一句预测(NSP)任务,该任务涉及反转第二句的极性,而不是选择一个随机的句子。这些任务的预训练数据可以从任何文本语料库中生成,并且这些任务不需要任何人工标注。
作者的实验表明,在上述任务上进一步预训练BERT和RoBERTa模型,可以持续提升它们在一系列与否定相关基准测试中的性能,特别是在具有挑战性的CondaQA语料库上。
值得注意的是,虽然NSPP和NSP任务都有益,但NSP任务带来的改进效果比具有挑战性的NSPP任务更为显著。或许出人意料的是,联合训练这两个任务并没有带来额外的收益。未来的研究可以探索超出维基百科之外的其他模型架构和预训练语料库,或者将更多上下文信息(多于两句)纳入预训练任务中。
参考
[1]. Making Language Models Robust Against Negation .