Improving Language Understandingby Generative Pre-Training

摘要

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

1 介绍

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

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

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

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

2 相关任务

Semi-supervised learning for NLP

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

最近的方法研究了从未标记数据中学习和利用超过单词级别的语义。短语级或句子级嵌入可以使用未标记的语料库进行训练,已用于将文本编码为适合各种目标任务的向量表示[28,32,1,36,22,12,56,31]。

Unsupervised pre-training

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

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

Auxiliary training objectives

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

3 框架

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

3.1 Unsupervised pre-training

变体 分布

3.2 Supervised fine-tuning

假设 例子 泛化 收敛 和...一致 分割

3.3 Task-specific input transformations

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

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

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

Question Answering and Commonsense Reasoning(常识推理)

4 实验

4.1 设置

Unsupervised pre-training 我们使用BooksCorpus数据集[71]来训练语言模型。它包含了7000多本独特的未出版的书籍,包括冒险、幻想和浪漫等各种类型。至关重要的是,它包含了很长的连续文本,这使得生成模型能够学习远程信息。ELMo[44]使用的另一个数据集1B Word Benchmark大小大致相同,但在句子级别上进行了洗刷,破坏了长序列结构。我们的语言模型在这个语料库上实现了在token级别上非常低的困惑度,为18.4。 

Model specifications 我们的模型在很大程度上遵循了原来的tansformer工作[62]。我们训练了一个12层解码器,它具有被掩盖的自注意头(768维状态和12个注意头)。对于位置前馈网络,我们使用了3072维。我们使用Adam优化方案[27],最大学习率为2.5e-4。在前2000次更新中,学习率从零线性增加,并使用余弦调度退火到0。我们在64个随机采样的小批量上训练100个epoch,连续序列为512个token。由于layernorm[2]在整个模型中被广泛使用,一个简单的权重初始化N(0,0.02)就足够了。我们使用了一个字节对编码(BPE)词汇表,其中包含40,000个合并[53]和残差,生成embedding,attention dropout比例为0.1。我们还采用了[37]中提出的L2正则化的修改版本,在所有非偏差或增益权值上w = 0.01。对于激活函数,我们使用高斯误差线性单元(GELU)[18]。我们使用了学习的位置嵌入而不是原始作品中提出的正弦版本。我们使用ftfy库(https://ftfy.readthedocs.io/en/latest/)来清理BooksCorpus中的原始文本,标准化一些标点和空白,并使用spaCy tokenizer(https://spacy.io/)。

Fine-tuning details 除非特别说明,使用无监督预训练的超参数设置。我们以0.1的速率将dropout添加到分类器中。对于大多数任务,我们使用6.25e-5的学习率和32的批处理大小。我们的模型调整得很快,大多数情况下3次训练就足够了。我们使用线性学习率衰减计划,warmup超过训练的0.2%。λ设为0.5。

 4.2 Supervised fine-tunin

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

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

5x意味着5个模型的组合

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

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

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

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

5 分析

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

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

Zero-shot Behaviors 我们想更好地理解为什么语言模型预训练变压器是有效的。一种假设是,底层生成模型学习执行我们评估的许多任务,以提高其语言建模能力,并且与lstm相比,transformer的更结构化的注意力记忆有助于转移。我们设计了一系列启发式解决方案,使用底层生成模型在没有监督微调的情况下执行任务。我们在图2(右)中可视化了这些启发式解决方案在生成式预训练过程中的有效性。我们观察到这些启发式的性能是稳定的,并且在训练中稳步增长,这表明生成式预训练支持各种任务相关功能的学习。我们还观察到LSTM在其零射击性能中表现出更高的方差,这表明Transformer架构的感应偏差有助于迁移。

对于CoLA(语言可接受性),示例作为生成模型分配的平均标记对数概率进行评分,并通过阈值进行预测。对于SST-2(情感分析),我们将标记very附加到每个示例,并将语言模型的输出分布限制为只有单词positive和negative,并猜测它分配更高概率的标记作为预测。对于RACE(问答),我们选择生成模型在文档和问题条件下分配的平均分词对数概率最高的答案。对于DPRD [46] (winograd模式),我们用两个可能的指称物替换了确定代词,并预测生成模型为替换序列后的其余部分分配了更高的平均分词对数概率的分辨率。

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

6 Conclusion

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值