Abstract

自然语言理解包括文本蕴涵、问题回答、语义相似度评估和文档分类等广泛的任务。尽管大量未标记的文本语料库丰富,但用于学习这些特定任务的标记数据很少,这使得判别训练模型难以充分执行。我们证明,通过在不同的未标记文本语料库上对语言模型进行生成式预训练,然后对每个特定任务进行判别性微调,可以实现这些任务的巨大收益。与以前的方法相反,我们在微调期间利用任务感知输入转换来实现有效的传输,同时需要对模型体系结构进行最小的更改。我们在自然语言理解的广泛基准上证明了我们的方法的有效性。我们的通用任务不可知模型优于为每个任务使用专门设计的架构的判别训练模型,在研究的12个任务中的9个任务中显著提高了技术水平。例如,我们在常识性推理(故事完形测试)上实现了8.9%的绝对改进,在问题回答(RACE)上实现了5.7%的绝对改进,在文本蕴涵(MultiNLI)上实现了1.5%的绝对改进。

1 Introduction

在自然语言处理(NLP)中,从原始文本中有效学习的能力对于减轻对监督学习的依赖至关重要。大多数深度学习方法需要大量的人工标记数据,这限制了它们在许多缺乏注释资源的领域的适用性。在这些情况下,可以利用未标记数据中的语言信息的模型为收集更多注释提供了有价值的替代方法,而收集更多注释既耗时又昂贵。此外,即使在有大量监督的情况下,以无监督的方式学习良好的表示也可以显著提高性能。到目前为止,最令人信服的证据是广泛使用预训练词嵌入来提高一系列NLP任务的性能。

然而,由于两个主要原因,从未标记的文本中利用超过单词级别的信息是具有挑战性的。首先,目前还不清楚哪种类型的优化目标在学习对迁移有用的文本表示时最有效。最近的研究着眼于不同的目标,如语言建模、机器翻译和话语连贯,每种方法在不同的任务上都优于其他方法其次,对于将这些习得表征转移到目标任务的最有效方法尚无共识。现有的技术包括对模型架构进行特定于任务的更改,使用复杂的学习方案和添加辅助学习目标。这些不确定性使得开发有效的半监督学习语言处理方法变得困难。

在本文中,我们探索了一种半监督方法,使用无监督预训练和监督微调相结合的方法来完成语言理解任务。我们的目标是学习一种普遍的表征,这种表征可以在很少的适应下转移到广泛的任务中。我们假设可以访问大量未标记文本的语料库和几个带有手动注释的训练示例(目标任务)的数据集。我们的设置不要求这些目标任务与未标记的语料库在同一域中。我们采用两阶段的训练程序。首先,我们在未标记数据上使用语言建模目标来学习神经网络模型的初始参数。随后,我们使用相应的监督目标将这些参数调整到目标任务中。

对于我们的模型体系结构,我们使用Transformer[62],它已被证明在各种任务上表现出色,例如机器翻译[62]、文档生成[34]和语法解析[29]。与循环网络等替代方案相比,这种模型选择为我们提供了更结构化的记忆来处理文本中的长期依赖关系,从而在不同任务之间实现了强大的传输性能。在传输过程中,我们利用源自遍历式方法[52]的特定于任务的输入调整,该方法将结构化文本输入处理为单个连续的令牌序列。正如我们在实验中所展示的那样,这些适应性使我们能够在对预训练模型的架构进行最小更改的情况下有效地进行微调。

我们在四种类型的语言理解任务上评估了我们的方法——自然语言推理、问题回答、语义相似性和文本分类。我们的一般任务不可知模型优于为每个任务专门设计的架构的判别训练模型,在研究的12个任务中的9个任务中显著提高了技术水平。例如,我们在常识推理(故事完形测试)[40]上实现了8.9%的绝对改进,在问答(RACE)[40]上实现了5.7%的绝对改进,在文本隐含(MultiNLI)上实现了1.5%的绝对改进[66],在最近引入的GLUE多任务基准测试上实现了5.5%的绝对改进[64]。我们还分析了四种不同设置下预训练模型的零射击行为,并证明它为下游任务获得了有用的语言知识。

2 Related Work

我们的工作大致属于自然语言的半监督学习范畴。这种范式已经引起了极大的兴趣,并应用于序列标记[24,33,57]或文本分类[41,70]等任务。最早的方法是使用未标记的数据来计算词级或短语级统计,然后将其用作监督模型[33]中的特征。在过去的几年里,研究人员已经证明了使用词嵌入的好处[11,39,42],它是在未标记的语料库上训练的,可以提高各种任务的性能[8,11,26,45]。然而,这些方法主要是传递词级信息,而我们的目标是捕获更高级别的语义。最近的方法研究了从未标记数据中学习和利用超过单词级别的语义。短语级或句子级嵌入可以使用未标记的语料库进行训练,已用于将文本编码为适合各种目标任务的向量表示[28,32,1,36,22,12,56,31]。

无监督预训练是半监督学习的一种特殊情况,其目的是寻找一个好的初始点,而不是修改监督学习目标。早期的工作探索了该技术在图像分类[20,49,63]和回归任务[3]中的应用。随后的研究[15]表明,预训练作为一种正则化方案,可以在深度神经网络中实现更好的泛化。在最近的工作中,该方法已被用于帮助训练深度神经网络完成各种任务,如图像分类[69]、语音识别[68]、实体消歧[17]和机器翻译[48]。

与我们最接近的工作包括使用语言建模目标预训练神经网络,然后在监督下对目标任务进行微调。Dai et al.[13]和Howard and Ruder[21]采用该方法改进了文本分类。然而,尽管预训练阶段有助于捕获一些语言信息,但他们对LSTM模型的使用限制了他们的预测能力在很短的范围内。相比之下,我们对transformer网络的选择使我们能够捕获更远距离的语言结构,正如我们的实验所证明的那样。此外,我们还证明了我们的模型在更广泛的任务上的有效性,包括自然语言推理、释义检测和故事完成。预训练语言或机器翻译模型作为辅助特征,同时在目标任务上训练监督模型。

这涉及到每个单独的目标任务的大量新参数,而我们需要在转移期间对模型体系结构进行最小的更改。

辅助训练目标添加辅助无监督训练目标是半监督学习的另一种形式。Collobert和Weston[10]的早期工作使用了各种辅助NLP任务,如词性标注、分块、命名实体识别和语言建模,以改进语义角色标注。最近,Rei[50]在他们的目标任务目标中添加了一个辅助语言建模目标,并展示了在序列标记任务上的性能提升。我们的实验也使用了辅助目标,但正如我们所示,无监督的预训练已经学习了与目标任务相关的几个语言方面。

3 Framework

我们的训练程序包括两个阶段。第一阶段是在大量文本语料库上学习高容量语言模型。接下来是一个微调阶段,我们将模型调整为具有标记数据的判别任务。

3.1 Unsupervised pre-training

给定一个无监督的令牌语料库U = {u1,…,我们使用标准的语言建模目标来最大化以下可能性:L1(u) = \sum_{i}^{}logp(ui|ui-k,....ui-1)

其中k是上下文窗口的大小,条件概率P使用参数为Θ的神经网络建模。这些参数是用随机梯度下降来训练的。

在我们的实验中,我们为语言模型使用了多层Transformer解码器,这是Transformer的一个变体[。该模型在输入上下文令牌上应用多头自关注操作,然后在位置前馈层上生成目标令牌的输出分布:h0 = UWe +Wp

hl = transformer_block(hl-1)

P(u) = softmax(hnWT e )

其中U = (U - k,…), u−1)为令牌的上下文向量,n为层数,We为令牌嵌入矩阵,Wp为位置嵌入矩阵。

3.2 Supervised fine-tunin

在使用Eq. 1中的目标训练模型后,我们将参数调整为监督目标任务。我们假设一个有标签的数据集C,其中每个实例由一系列输入令牌组成,x1,…, xm,以及标签y。输入通过我们的预训练模型获得最终变压器块的激活hm 1,然后将其馈送到一个附加的线性输出层,参数为Wy,以预测y:P(y|x1, . . . , xm) = softmax(hm l Wy).

这给了我们以下最大化的目标:L2(C) =\sum_{(x,y)}^{}logp(y|xi,....xm)

我们还发现,将语言建模作为微调的辅助目标有助于学习(a)提高监督模型的泛化,(b)加速收敛。这与先前的研究一致[50,43],他们也观察到使用这种辅助目标可以提高性能。具体来说,我们优化以下目标(权重为λ):L3(C) = L2(C)+\lambda *L1(C)

总的来说,我们在微调过程中需要的唯一额外参数是wy,以及分隔符标记的嵌入(在下面的3.3节中描述)。

图1:(左)此工作中使用的Transformer架构和训练目标。(右)对不同任务进行微调的输入转换。我们将所有结构化输入转换为标记序列,由我们的预训练模型处理,然后是线性softmax层。

3.3 Task-specific input transformations

对于某些任务,比如文本分类,我们可以像上面描述的那样直接微调我们的模型。某些其他任务,如问答或文本蕴涵,具有结构化输入,如有序的句子对,或文档、问题和答案的三元组。由于我们的预训练模型是在连续的文本序列上训练的,因此我们需要进行一些修改才能将其应用于这些任务。先前的工作提出了基于迁移表征b[44]的学习任务特定架构。这种方法重新引入了大量特定于任务的自定义,并且没有对这些额外的体系结构组件使用迁移学习。相反,我们使用遍历式方法[52],将结构化输入转换为预训练模型可以处理的有序序列。这些输入转换允许我们避免跨任务对体系结构进行广泛的更改。我们在下面提供了这些输入转换的简要描述,图1提供了一个可视化的说明。所有转换都包括添加随机初始化的开始和结束令牌(<s>,<e>)。

文本蕴涵 对于蕴涵任务,我们将前提p和假设h标记序列连接起来,中间使用分隔符标记($)。

相似度 对于相似度任务,比较的两个句子没有固有的顺序。为了反映这一点,我们修改输入序列以包含两种可能的句子顺序(中间有分隔符),并独立处理每个序列以生成两个序列表示H_{l}^{m},这些序列表示H_{l}^{m}在输入到线性输出层之前以元素方式添加。

对于这些任务,我们给出了一个上下文文档z,一个问题q和一组可能的答案{ak}。我们将文档上下文和问题与每个可能的答案连接起来,并在两者之间添加分隔符以得到[z; q; $; ak]。这些序列中的每一个都用我们的模型独立处理,然后通过softmax层进行规范化,以产生可能答案的输出分布。

4 Experiments

4.1 Setup

我们使用BooksCorpus数据集[71]来训练语言模型。它包含了7000多本独特的未出版的书籍,包括冒险、幻想和浪漫等各种类型。至关重要的是,它包含了很长的连续文本,这使得生成模型能够学习远程信息。另一个可供选择的数据集是1B Word Benchmark,它由类似的方法ELMo[44]使用,大小大致相同

Table 1: A list of the different tasks and datasets used in our experiments.

而是在句子层面上被打乱,破坏了长期结构。我们的语言模型在这个语料库上实现了非常低的令牌层次困惑度,为18.4。

我们的模型在很大程度上遵循了原来的变压器工作[62]。我们训练了一个只有12层解码器的变压器,它具有被掩盖的自我注意头(768维状态和12个注意头)。对于位置前馈网络,我们使用了3072维的内部状态。我们使用Adam优化方案[27],最大学习率为2.5e-4。在前2000次更新中,学习率从零线性增加,并使用余弦调度退火到0。我们在64个随机采样的小批量上训练100个epoch,连续序列为512个token。由于layernorm[2]在整个模型中被广泛使用,一个简单的权重初始化N(0,0.02)就足够了。我们使用了一个字节对编码(BPE)词汇表,其中包含40000个合并、残差、嵌入和注意缺失,正则化率为0.1。我们还采用了[37]中提出的L2正则化的修改版本,在所有非偏差或增益权值上w = 0.01。对于激活函数,我们使用高斯误差线性单元(GELU)[18]。我们使用了学习的位置嵌入而不是原始作品中提出的正弦版本。我们使用ftfy库2来清理BooksCorpus中的原始文本,标准化一些标点和空白,并使用spaCy标记器除非特别说明,否则我们重用来自无监督预训练的超参数设置。我们以0.1的速率将dropout添加到分类器中。对于大多数任务,我们使用6.25e-5的学习率和32的批处理大小。我们的模型调整得很快,大多数情况下3次训练就足够了。我们使用线性学习率衰减计划,热身超过训练的0.2%。λ设为0.5。

4.2 Supervised fine-tuning

我们在各种监督任务上进行实验,包括自然语言推理、问题回答、语义相似性和文本分类。其中一些任务可以作为最近发布的GLUE多任务基准测试的一部分[64],我们使用了它。图1提供了所有任务和数据集的概述。

自然语言推理(NLI)的任务,也被称为识别文本蕴涵,包括阅读一对句子,并从蕴涵、矛盾或中性中判断它们之间的关系。尽管最近有很多人对此感兴趣[58,35,44],但由于存在各种各样的现象,如词汇蕴涵、共指、词汇和句法歧义,这项任务仍然具有挑战性。我们评估了五个不同来源的数据集,包括图像说明(SNLI)、转录语音、通俗小说和政府报告(MNLI)、维基百科文章(QNLI)、科学考试(SciTail)或新闻文章(RTE)。

表2详细说明了我们的模型和以前最先进的方法在不同NLI任务上的各种结果。我们的方法在五个数据集中的四个数据集上显著优于基线,在MNLI上实现了1.5%的绝对改进,在SciTail上实现了5%的绝对改进,在QNLI上实现了5.8%的绝对改进,在SNLI上实现了0.6%的绝对改进。这证明了我们的模型能够更好地对多个句子进行推理,并处理语言歧义。在RTE上,我们评估的较小的数据集之一(2490个样本),我们实现了56%的准确率,低于多任务biLSTM模型报告的61.7%。考虑到我们的方法在更大的NLI数据集上的强大性能,我们的模型很可能也会从多任务训练中受益,但我们目前还没有对此进行探索。

表2:自然语言推理任务的实验结果,将我们的模型与当前最先进的方法进行比较。5x表示5个模型的集合。所有数据集都使用准确性作为评估指标。

表3:问题回答和常识推理的结果,我们的模型与目前最先进的方法的比较。9x表示9个模型的集合。

另一个需要单句和多句推理的任务是问答。我们使用最近发布的RACE数据集[30],该数据集由初中和高中考试中的英语短文和相关问题组成。该语料库已被证明包含比CNN[19]或SQuaD[47]等其他数据集更多的推理类型问题,为我们的模型提供了完美的评估,该模型被训练用于处理远程上下文。此外,我们对故事完形测试[40]进行了评估,该测试涉及从两个选项中选择多句故事的正确结尾。在这些任务上,我们的模型再次以显著的优势超越了之前的最佳结果——在故事完形填空上达到8.9%,在RACE上达到5.7%。这证明了我们的模型有效处理远程上下文的能力。 

语义相似度语义相似度(或意译检测)任务包括预测两个句子在语义上是否相等。挑战在于识别概念的重述、理解否定和处理句法歧义。我们使用三个数据集来完成这项任务——微软释义语料库(MRPC)[14](从新闻来源收集),Quora问题对(QQP)数据集[9]和语义文本相似基准(STS-B)[6]。我们在三个语义相似性任务中的两个(表4)上获得了最先进的结果,在STS-B上获得了1分的绝对增益。QQP上的性能差异是显著的,比单任务BiLSTM ELMo Attn有4.2%的绝对改进。

最后,我们还对两种不同的文本分类任务进行了评价。语言可接受性语料库(Corpus of Linguistic Acceptability, CoLA)[65]包含了专家对句子是否符合语法的判断,并测试了训练模型的先天语言偏见。另一方面,斯坦福情感树库(SST-2)[54]是一个标准的二元分类任务。我们的模型在CoLA上获得了45.4分,这比之前的最好成绩35.0有了特别大的飞跃,这表明我们的模型学习到了先天的语言偏见。该模型在SST-2上也达到了91.3%的精度,这与最先进的结果具有竞争力。我们在GLUE基准测试中也取得了72.8的总分,明显好于之前的最好成绩68.9。

表4:语义相似度和分类结果,将我们的模型与当前最先进的方法进行比较。该表中的所有任务评估都是使用GLUE基准测试完成的。(mc=马修斯相关,acc=准确率,pc=皮尔森相关)

总体而言,我们的方法在我们评估的12个数据集中的9个中实现了新的最先进的结果,在许多情况下优于集成。我们的结果还表明,我们的方法在不同规模的数据集上都能很好地工作,从较小的数据集,如STS-B(≈5.7k训练样例)到最大的数据集,如SNLI(≈550k训练样例)。

5 Analysis

转移层数的影响我们观察了从无监督预训练转移可变层数到有监督目标任务的影响。图2(左)说明了我们的方法在multi NLi和RACE上的性能作为传输层数的函数。我们观察到的标准结果是,传输嵌入提高了性能,并且每个变压器层在multi NLi上的完全传输提供了高达9%的进一步好处。这表明预训练模型中的每一层都包含解决目标任务的有用功能。

图2:(左)从预训练语言模型中迁移越来越多的层对RACE和MultiNLI的影响。(右)图显示了不同任务上零射击性能的演变作为LM预训练更新的函数。每个任务的性能在随机猜测基线和单个模型的当前状态之间归一化。

我们想更好地理解为什么语言模型预训练变压器是有效的。一种假设是,底层生成模型学习执行我们评估的许多任务,以提高其语言建模能力,并且更加结构化

表5:各模型在不同任务下的消融分析。平均分是所有结果的未加权平均值。(mc=马修斯相关,acc=准确率,pc=皮尔森相关)

与lstm相比,变压器的注意记忆有助于转移。我们设计了一系列启发式解决方案,使用底层生成模型在没有监督微调的情况下执行任务。我们在图2(右)中可视化了这些启发式解决方案在生成式预训练过程中的有效性。我们观察到这些启发式的性能是稳定的,并且在训练中稳步增长,这表明生成式预训练支持各种任务相关功能的学习。我们还观察到LSTM在其零射击性能中表现出更高的方差,这表明Transformer架构的电感偏置有助于转移。对于CoLA(语言可接受性),示例作为生成模型分配的平均标记对数概率进行评分,并通过阈值进行预测。对于SST-2(情感分析),我们将标记very附加到每个示例,并将语言模型的输出分布限制为只有单词positive和negative,并猜测它分配更高概率的标记作为预测。对于RACE(问答),我们选择生成模型在文档和问题条件下分配的平均令牌对数概率最高的答案。对于DPRD [46] (winograd模式),我们用两个可能的指称替换了确定的代词,并预测了生成模型在替换后为序列的其余部分分配更高的平均标记对数概率的分辨率。

消融研究我们进行了三种不同的消融研究(表5)。首先,我们在微调期间检查了我们的方法在没有辅助LM目标的情况下的性能。我们观察到辅助目标对NLI任务和QQP都有帮助。总的来说,趋势表明较大的数据集受益于辅助目标,而较小的数据集则没有。其次,我们通过将变压器与使用相同框架的单层2048单元LSTM进行比较来分析变压器的效果。当使用LSTM而不是Transformer时,我们观察到平均分数下降了5.6。LSTM只在一个数据集上优于Transformer——MRPC。最后,我们还比较了直接在监督目标任务上训练而不进行预训练的变压器体系结构。我们观察到,缺乏预训练会影响所有任务的表现,导致与完整模型相比下降14.8%。

6 Conclusion

我们引入了一个框架,通过生成式预训练和判别微调,使用单一任务不可知论模型实现强自然语言理解。通过在具有长段连续文本的不同语料库上进行预训练,我们的模型获得了重要的世界知识和处理远程依赖关系的能力,然后成功地转移到解决判别性任务,如问题回答、语义相似性评估、蕴意确定和文本分类,提高了我们研究的12个数据集中的9个数据集的技术水平。长期以来,使用无监督(预)训练来提高识别任务的性能一直是机器学习研究的一个重要目标。我们的工作表明,实现显著的性能提升确实是可能的,并提供了关于哪种模型(变形金刚)和数据集(具有长期依赖关系的文本)最适合这种方法的提示。我们希望这将有助于对自然语言理解和其他领域的无监督学习进行新的研究,进一步提高我们对无监督学习如何以及何时起作用的理解。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐