《Don't Stop Pretraining》

假装没事ソ 提交于 2020-10-02 08:26:27
题目:Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks
来源:ACL 2020
原文链接: https://www.aclweb.org/anthology/2020.acl-main.740.pdf

Abstract

对各种来源的文本进行预训练的语言模型构成了当今NLP的基础。鉴于这些广泛覆盖的模型的成功,我们研究了将预训练的模型在目标任务的领域再次预训练是否仍然有帮助。我们提出了一项针对四个领域(生物医学和计算机科学出版物,新闻和评论)和八个分类任务的研究,表明在领域内进行再次进行预训练(领域自适应预训练)可提高性能。此外,在进行域自适应的预训练之后,在特定任务的未标记数据进行预训练(任务自适应的预训练)也可以提高性能。最后,我们证明,使用简单的数据选择策略进行数据增强是一种有效的选择,尤其是在没有用于领域自适应预训练的资源时。总体而言,我们发现,多阶段自适应预训练可大大提高模型性能。

1. Introduction

当今的预训练语言模型是在庞大的异构语料库上进行训练的。 例如,ROBERTA在160GB以上的非压缩文本进行训练,包括英语百科全书,新闻文章,文学作品和Web内容。 通过这些模型学习到的表示,在包含多种来源的各种大小的数据集的许多任务中实现出色的性能。 这让我们提出了一个问题,任务文本域(通常用于表示表征给定主题或体裁的语言的分布)是否仍然有意义。 最新的大型预训练模型是否可以通用,或者仍然有利于对构建特定领域的不同预训练模型?

尽管一些研究表明对特定领域的未标记数据进行持续预训练有好处,但这些研究一次仅考虑单个域,并在较小规模的语料上进行预训练。而且,尚不知道持续预训练的好处如何随其他因素的变化,如可用的标记数据的数量或目标域与原始预训练语料库的接近度。

我们使用ROBERTA研究解决了这个问题。 我们考虑了四个领域(生物医学和计算机科学出版物,新闻和评论)和八个分类任务(每个域两个)。 对于尚未在ROBERTA进行域内训练的任务,我们的实验表明,对领域进行持续的预训练(我们称为领域自适应预训练或DAPT)可以在高资源和低资源设置下提高目标领域任务的性能。

图1

我们还考虑:对与任务更直接相关的语料库进行预训练是否可以进一步提高性能。 我们研究在较小但直接与任务相关的未标记语料库进行预训练(任务自适应预训练或TAPT)并与领域自适应预训练(DAPT)进行比较。 任务自适应的预训练已被证明是有效的,但没有在最新模型中应用。 我们发现,无论有没有域自适应的预训练,TAPT都能大大提高ROBERTA的性能。

最后,我们发现,当我们获得由任务设计者或标注者手动标注的更多的未标记数据时,任务自适应预训练的收益就会增加。 受此启发,我们提出了自动选择与任务相关的其他未标记文本的方法,并展示了如何在数据贫乏的情况下提高性能。 在所有任务上,我们采用自适应预训练的结果都与SOTA相抗衡。

2. 领域自适应预训练

我们进行域自适应预训练(DAPT)的方法很简单-我们继续在大量未标记特定领域文本的语料库上对ROBERTA进行预训练。 我们关注的四个领域是生物医学(BIOMED)论文,计算机科学(CS)论文,REALNEWS的新闻文本和AMAZON评论。 我们选择这些域是因为它们在以前的工作中很流行,并且每个域都有用于文本分类的数据集。 表1列出了所有四个域中未标记的数据集的详细信息,以及ROBERTA的训练语料。

2.1 领域相似性分析

在执行DAPT之前,我们尝试量化目标域与ROBERTA的预训练域的相似性。我们在每个域语料库中的保留文档中(held-out document)抽取前10K个最常见的unigram(不包括停用词)。除了REVIEWS之外,每个域我们都使用50K保留文档,而REVIEWS中则使用150K保留文档,因为它们要短得多。我们还从与ROBERTA的预训练语料库(即BOOKCORPUS,STORIES,WIKIPEDIA和REALNEWS)相似的来源中提取了5万个文档,以构建预训练领域词汇表,因为原始的预训练语料库尚未发布。图2显示了这些样本之间的词汇重叠。我们观察到,ROBERTA的预训练域与NEWS和REVIEWS有很强的重叠性,而CS和BIOMED与其他域则相差甚远。这个简单的分析表明,将ROBERTA适应不同的域,域越不相似,DAPT的潜力就越大。

图2

2.2 实验

我们的LM遵循训练ROBERTA的规定设置。 我们将ROBERTA在v3-8 TPU上在每个域上训练 12.5K步,相当于在每个域数据集上训练一个epoch(single pass); 此第二阶段的预训练会生成四个自适应域的LM,每个域一个。 我们在表1中显示了DAPT之前和之后每个域上ROBERTA的掩盖LM损失。我们观察到,除DAPT之后的NEWS以外,所有域中的LM掩盖的LM损失都减少了。

在每个域下,我们考虑两个文本分类任务,如表2所示。我们的任务有高资源和低资源(≤5K标记的示例)设置。 对于HYPERPARTISAN,我们使用Beltagy等人的数据划分。 对于RCT,我们以一个长序列表示所有句子以进行同时预测。

表2

作为我们的baseline,我们使用现成的ROBERTA模型,并针对每个分类任务对其参数进行有监督的微调。 平均而言,ROBERTA并没有大大地落后于最新技术水平,并且由于它提供了单个LM来适应不同领域的要求,因此可以作为良好的baseline。按照标准惯例,我们将最后一层[CLS]token表示传递给特定于任务的前馈层以进行预测。

测试结果显示在表3的DAPT栏中。 我们注意到,在所有领域中,DAPT都比ROBERTA有所提高。 对于BIOMED,CS和REVIEWS,我们看到了相对于ROBERTA的持续改进,这证明了当目标域与ROBERTA的源域距离较远时DAPT的优势。 该模式在高资源和低资源设置之间是一致的。 尽管DAPT不能提高AGNEWS的性能,但是我们在HYPERPARTISAN中观察到的提升表明,即使对于与ROBERTA的源域更紧密匹配的任务,DAPT也可能有用。

表3

2.3 DAPT中的领域相关

此外,我们将DAPT与一个设置进行比较,在该设置中,对于每个任务,我们将LM调整为目标域之外的域。 这可以排除以下情况:对ROBERTA的改进可能仅仅是由于暴露于更多数据而不受域限制的影响。 在此设置中,对于NEWS,我们使用CS LM。 对于review,是BIOMED LM; 对于CS,是NEWS LM; 对于BIOMED而言,是review LM。 我们使用图2中的词汇重叠统计信息来指导这些选择。

我们的结果显示在表3中,其中最后一列(¬DAPT)与此设置相对应。 对于每项任务,DAPT在适应无关领域方面的表现均明显优于roberta,这表明对领域相关数据进行预训练的重要性。 此外,我们通常观察到,在最终任务上,¬DAPT的性能甚至比ROBERTA还要差。 综上所述,这些结果表明,在大多数情况下,不考虑域相关性而暴露于更多数据对最终任务性能是有害的。 但是,存在两个任务(SCIERC和ACL-ARC),其中¬DAPT相对于ROBERTA略微提高了性能。 这可能表明,在某些情况下,如Baevski等人所述,继续对任何其他数据进行预训练是有用的。

2.4 Domain Overlap

我们对DAPT的分析是基于任务数据如何分配到特定域的先前直觉。例如,要对“Helpfulness”执行DAPT,我们仅适应于AMAZON评论,而不适用于任何REALNEWS文章。但是,图2中表明,域之间的边界在某种意义上是模糊的。例如,REVIEWS和NEWS之间共享40%的字母组合。为了进一步说明这种重叠,我们还定性地找出了跨域重叠的文档:在表4中,我们展示了与这些评论类似的评论和REALNEWS文章。实际上,我们发现使ROBERTA适应NEWS不会对其在REVIEWS任务上的性能造成危害(NEWPT的DAPT在HELPFULNESS上达到65.5,在IMDB上达到95.0)。

表4

尽管这种分析绝不是全面的,但它表明引起可观察到的域差异的因素可能并非相互排斥。超越常规领域边界的预训练可能会导致更有效的DAPT。我们将这项调查留给以后的工作。

3. 任务自适应预训练

用于特定任务的数据集往往只覆盖更广范围内可用文本的一个子集。 例如,用于提取化学物质和蛋白质之间关系的CHEMPROT数据集来自于PubMed类别中最近发表的,具有高影响力的文章的摘要。 我们假设当数据集是广义数据集的子集的情况下,对任务数据集本身或与任务相关的数据进行预训练可能会有所帮助。

任务自适应预训练(TAPT)是指针对给定任务的未标记训练集的预训练; 先前的工作已经证明了它的有效性。 与领域自适应预训练(DAPT)相比,任务自适应方法产生了不同的权衡:它使用的预训练语料库要小得多,但与任务相关的语料要多得多(假设训练集很好地代表了任务的各个方面)。 这使TAPT的运行成本比DAPT低得多,而且正如我们在实验中所显示的,TAPT的性能通常与DAPT相比具有竞争力。

3.1 实验

与DAPT相似,TAPT的预训练包括第二阶段的ROBERTA预训练,但仅基于可用的特定于任务的训练数据。 与我们训练12.5K步的DAPT相比,我们训练100个epoch。 我们通过随机mask不同的单词(使用0.15的mask概率)来人为地增强每个数据集。 像在DAPT实验中一样,我们将最后一层[CLS]token表示形式传递到特定于任务的前馈层进行分类。

表5

我们的结果显示在表5的TAPT列中。TAPT改进了所有任务的ROBERTA baseline。 即使在新闻领域(属于ROBERTA预训练语料库的一部分),TAPT也比ROBERTA有所改进,展示了任务适应性的优势。 TAPT和DAPT之间的相对差异尤其显着。 DAPT具有更多的资源优势,但是TAPT可以在某些任务(例如SCIERC)中使其性能与之相匹配。 在RCT,HYPERPARTISAN,AGNEWS,HELPFULNESS和IMDB中,结果甚至超过了DAPT的结果,突出了这种低成本的适应技术的功效。

我们一起使用两种技术进行实验。 我们从ROBERTA开始,在此设置下先应用DAPT,然后应用TAPT。 预训练的三个阶段加起来使它成为我们所有设置中计算代价最高的(参见表9)。 如预期的那样,结合领域和任务自适应的预训练可以在所有任务上实现最佳性能。

表9 RCT-500

总体而言,我们的结果表明,紧随TAPT之后进行DAPT在领域和任务意识两方面都达到了最佳,并获得了最佳性能。 尽管我们推测TAPT后接DAPT可能会使与任务相关的语料库发生灾难性的遗忘,但是将这些过程组合在一起的其他方法可能会产生更好的下游性能。 未来的工作可能会使用更复杂的领域和任务分配来进行预训练。

我们探讨一项任务是否能转移到同一领域的其他任务。我们完成了DAPT和TAPT之间的比较。 例如,我们使用RCT未标记的数据对LM进行预训练,并使用CHEMPROT标记的数据对其进行微调,然后观察效果。 我们将此设置称为Transfer-TAPT。 我们在所有四个领域中的任务结果如表6所示。我们看到TAPT针对单个任务性能进行了优化,这不利于跨任务迁移。 这些结果表明,给定域内任务的数据分布可能有所不同。 此外,这也可以解释为什么仅适应广泛领域的数据是不够的,以及DAPT之后的TAPT为什么有效。

表6

4. TAPT的数据增强

受TAPT成功的启发,我们接下来研究另一种设置,其中存在来自任务分布的大量未标记数据,通常由人来收集。

我们探索两种情况。 首先,对于三个任务(RCT,HYPERPARTISAN和IMDB),我们使用来自可用的人类管理语料库的较大的未标记数据池(第4.1节)。 接下来,我们探索从大型的未标记域内语料库中检索TAPT的相关未标记数据,以解决无法获得额外的人工数据(第4.2节)的问题。

4.1 Human Curated-TART

数据集创建通常要从已知来源收集大量未标记的语料。 然后根据标注预算对该语料库进行标注。 我们期望较多的未标记语料与任务的训练数据具有相似的分布。我们探索这种语料库在任务自适应预训练中的作用。

通过将RCT数据集的训练数据下采样到500个示例(可用的180K中),我们模拟了一个资源较少的设置RCT-500,并将其余训练数据视为未标记。 HYPERPARTISAN共享任务有两个设置:资源不足和资源丰富。 我们将高资源设置中的5K个文档用作Curated-TAPT未标记数据,并使用原始的低资源训练文档进行任务微调。 对于IMDB,我们使用标注者手动管理的额外未标记数据,这些数据是从与标记数据相同的分布中提取的

表7

我们将表7中的Curated-TAPT与TAPT和DAPT + TAPT进行了比较。在所有三个数据集中,Curated-TAPT进一步改进了§3中的先前结果。 在DAPT之后应用Curated-TAPT可以最大程度地提高所有任务的性能。 在HYPERPARTISAN中,DAPT + Curated-TAPT在Curated-TAPT的标准偏差内。 此外,采用完全标记的RCT语料库(表5),仅使用0.3%的标记数据,curated-TAPT可以达到DAPT + TAPT的95%的性能。 这些结果表明,从任务分布中整理大量数据对于最终任务性能极为有利。 我们建议任务设计者为其任务释放大量未标记的任务数据,以通过预训练来帮助模型自适应。

4.2 TAPT的自动数据筛选

考虑一个资源短缺的情况,无法访问大量未标记的数据以充分受益于TAPT,并且缺少DAPT所需的计算资源(请参见表9,了解不同预训练阶段的计算要求的详细信息)。 我们提出了简单的无监督方法来从大型域内语料库中检索与任务分布一致的未标记文本。 我们的方法是通过将来自任务和域的文本嵌入到共享空间中,从域中查找与任务相关的数据,然后根据使用任务数据的查询从域中选择候选对象。 重要的是,嵌入方法必须足够轻巧,可以在合理的时间内嵌入数百万个句子。

图3

鉴于这些限制,我们采用了VAMPIRE(Gururangan等人,2019;图3),这是一种轻量级的词袋语言模型。 我们在域的一个大型重复数据删除(deduplicated)样本(1M句子)上对VAM-PIRE进行预训练,以从任务样本和领域样本中获取文本的嵌入。 然后,我们在嵌入空间中从领域样本中选择每个任务句子的k个候选词。 通过(i)最近邻选择(kNN-TAPT)或(ii)随机(RAND-TAPT)选择候选人。 我们将继续使用任务数据(如TAPT中)和选定的候选库在此增强的语料库上对ROBERTA进行预训练。

表8

4.3 计算资源要求

表9中的BIOMED域中,我们对RCT-500的所有适应技术的计算要求。在单个v3-8 TPU上,TAPT的训练速度比DAPT快60倍,而在此基础上DAPT的存储要求任务是TAPT任务的580万倍。 我们对DAPT + TAPT的最佳设置是三个阶段的预训练,乍一看成本似乎很高。 但是,一旦将LM适应了一个领域,就可以将其重新用于该领域内的多个任务,而每个任务只有一个附加的TAPT阶段。 尽管Curated-TAPT在此比较中往往会获得最佳的成本效益比,但还必须考虑到整理大型域内数据的成本。 诸如kNN-TAPT之类的自动方法比DAPT成本低得多。

图9

5. Conclusion

表10

我们调查了几种使预训练的LM进行域适应和任务适应的变体,总结在表10中。我们的实验表明,即使是数亿个参数的模型也难以编码单个文本域的复杂性。 实验表明,针对特定任务或小型语料库对模型进行预训练可以带来明显的好处。 我们的发现表明,通过识别和使用与领域和任务相关的语料库来进行模型的第二阶段预训练,并且在更大的LM上进行预训练可能是有价值的。 我们的结果证明了这些方法可以如何改善LM ROBERTA,并且我们研究的方法具有足够的通用性,可以应用于任何预训练的LM。 我们的工作指出了许多未来的方向,例如更好地选择TAPT数据,有效地将大型的预训练语言模型迁移到遥远的领域,以及在迁移后建立可重用的语言模型。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!