OpenAI GPT Improving Language Understanding by Generative Pre-Training

paper OpenAI GPT Improving Language Understanding by Generative Pre-Training

https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf

个人翻译,并不权威

提升语言理解通过生成预训练

摘要

自然语言理解包括各种各样的任务,如文本蕴涵,问题解答,语义相似性评估和文档分类。
虽然大量的未标记的文本语料库非常丰富,但是学习具体任务的标记数据是稀缺的,这就
使得鉴别性训练模型充分执行成为挑战。我们证明,通过在不同的未标记的文本语料库上
语言模型的生成预训练,然后对每个具体任务进行鉴别性微调,可以实现这些任务的巨大
收益。与以前的方法对比,我们利用微调期间任务感知的输入变化来获得有效的迁移同时
对模型的结构进行最小的更改。我们在自然语言理解的各种基准上证明了我们的方法的有
效行。我们的通用未知任务模型优于鉴别训练的模型,这些模型专门为每项任务设计的体
系结构,在所有研究的12项任务中,有9项任务显著改善了最新技术。例如我们在常识推理
(Stories Cloze Test)上取得了8.9%的绝对提升,在回答问题(RACE)上取得了5.7%的
绝对提升,在文本蕴涵(MultiNLI)上取得了1.5%的绝对提升。

1 介绍

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

然而,利用来自未标记文本的单词级信息主要有两个原因的挑战。首先,不清楚哪种类型
的优化目标在学习对迁移有用的文本表示方面最有效。最近的研究着眼于各种目标,如
语言建模,机器翻译和语篇连贯,每种方法在不同的任务上都优于其他方法。第二, 对于
将这些已知的表示迁移到目标任务的最有效的方法,还没有达成共识。现有的技术包括
对模型体系结构进行特定于任务的更改,使用复杂的学习方案以及添加辅助学习目标。
这些不确定性使得开发有效的半监督式语言处理学习方法变得困难。

本文探索了一种结合无监督预训练和监督微调的半监督语言理解任务方法。我们的目标是
学习一种通用的表示,这种表示几乎不用适配就能迁移到各种任务。我们假设能够获得
一个大量的未标记文本数据集和一些手动注释的训练样本数据集(目标任务)。我们的
设置不要求这些目标任务与未标记的语料库在同一个域内。我们采用两阶段训练过程。
首先,我们利用语言建模的目标对未标记的数据学习神经网络模型的初始参数。随后,
我们使用对应的监督目标将这些参数调整为目标任务。

对于我们的模型体系结构,我们使用了Transformer,它在各种任务(如机器翻译,
文档生成和语法分析)上都表现的很好。这个模型的选择为我们提供了一个更结构化的
内存来处理文本中的长期依赖关系,而不是像循环神经网络这样的替代方案,从而在
不同的任务之间产生鲁棒的迁移性能。在迁移过程中,我们使用从遍历样式方法派生的
特定于任务的输入自适应,该方法将结构化的文本输入处理为单个连续的词序列。正如
我们在实验中所证明的那样,这些调整,是我们能够有效地进行微调,而对于预先训练
的模型的体系结构进行最小的更改。

我们用我们的方法评估了四种类型的语言理解任务---自然语言推理,问答,
语义相似性和文本分类。我们的通用任务不可知模型优于经过鉴别训练的模型,
这些模型采用专门为每项任务设计的架构,在所研究的12项任务中有9项任务显著
改善了最新技术。例如,我们在常识推理(Stories Cloze Test)上取得了8.9%的绝对提升,
在回答问题(RACE)上取得了5.7%的绝对提升。在文本蕴涵(MultiNLI)上取得了
1.5%的绝对提升,在最近的GLUE 多任务基准上取得了5.5%的绝对提升。我们还分析了
预训练模型在四种不同环境下的零样本行为,并证明它为下游任务获得了有用的语言知识。

有关的工作

NLP 半监督学习 我们的工作大体属于自然语言半监督学习范畴。这种模式引起了人们的
极大兴趣,应用于序列标记或文本分类等任务。最早的方法使用未标记的数据来计算单词
级别或短语级别的统计信息,然后将这些统计信息用作监督模型中的特征。在过去的几年
里,研究人员已经证明了使用在未标记的语料库上的词嵌入的好处,就是可以提高各种任务的
性能。然而,这些方法主要是迁移单词级别的信息,而我们致力于捕获更高级别的语义。

最近的方法研究了从未标记的数据中学习和使用不只是词级语义。可以使用未标记语料库
进行训练的短语级或句子级嵌入已经被用于将文本编码为适合各种目标任务的向量表示。

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

最接近我们的工作的是使用语言建模目标对神经网络进行预训练,然后在有监督的情况下
对目标任务进行微调。Dai, Howward 和 Ruder遵循这种方法提升文本分类。然而,尽管
预训练阶段帮助捕获一些语言信息,但他们使用的LSTM模型限制了他们的预测能力在较短
范围内。相反,我们选择的Transformer 网络允许我们捕获更大范围的语言结构,如我们
的实验所示。此外,我们还展示了我们的模型在更广泛的任务上的有效性,包括自然语言
推理, 释义检测和故事完成。其他的方法使用预先训练的语言或机器翻译模型的中隐藏
表示作为辅助功能,当训练监督模型在目标任务上。这涉及到每个单独目标任务的大量
新参数,而在迁移过程中,我们需要对模型体系结构进行最小的更改。

辅助训练系统 增加辅助的非监督训练目标是半监督学习的一种替代形式。collobert 和
Weston 的早期工作使用了各种各样的辅助NLP任务,例如POS标记,分块,命名实体识别
和语言建模来提升语义角色标记。最近,Rei 在目标任务目标中添加了一个辅助语言建模
目标,并演示了序列标记任务的性能提升。我们的实验也使用了一个辅助目标,但正如
我们所展示的,无监督预训练已经学习了与目标任务无关的几个语言方面。

3 框架

我们的训练过程包括两个阶段。第一阶段是在一个大文本语料库上学习一个高容量语言模型。
接下来是一个微调阶段,在这个阶段中,我们是模型适应带有标签数据的具体任务。

3.1 非监督预训练

给出一个非监督分词语料库
U = {u 1 , . . . , u n }
我们使用标准的语言建模目标来最大化下面的似然:

(公式文档写不下)

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

在我们的实验中,我们使用了一个多层的Transformer decoder作为语言模型,这是Tansformer
的一个变种。这个模型在输入上下文分词上应用了一个multi-headed self-attention操作,
随后是position-wise feedforward layers,以在目标词汇上生成一个输出分布。
h 0 = U W e + W p
h l = transformer_block(h l−1 )∀i ∈ [1, n]
P (u) = softmax(h n W e T )

其中U = (u −k , . . . , u −1 )是分词的上下文向量,n是层数,We是词嵌入矩阵,
Wp是位置嵌入矩阵。

3.2 监督微调

在用等式1中的目标训练模型后。我们对参数进行调整以适应监督目标任务。我们假设一个
带标签的数据集C,其中每个实例由一些列输入标记x1…xm组成,以及标签y。输入通过
我们预先训练的模型得到最终tranformer block的激活值 hml,接着跟参数Wy一起输入进
附加的线性输出层来预测y:
P (y|x 1 , . . . , x m ) = softmax(hml Wy)

这给了我们下面的最大化目标:

( 公式文本写不下)

我们还发现将语言建模作为微调的辅助目标有助于学习 a 提升监督模型的泛化,b 加速收敛
这与先前的工作是一致的,他们也观察到了这种辅助目标的改进性能。具体的来说,我们
优化了下面的目标(权重 λ):
L3© = L2© + λ ∗ L1©
总的来说,我们在微调过程中需要的唯一额外的参数是Wy,以及分隔符号标记的嵌入
(在第3.3节中描述)。

3.3 具体任务输入转换

对于一些任务,比如文本分类,我们可以直接按照上面的描述对模型进行微调。某些其他
任务,如问答或文本推理,具有结构化的输入,如有序的句子对或文档,问题和答案的三元组。
由于我们的预训练模型是针对连续的文本序列进行训练的,因此我们需要对其进行一些修改,
以便将起应用于这些任务。先前的工作提出了学习具体化的架构,并将其置于所传输的表示之上。
这种方法重新引入了大量特定于任务的定制,并且这些附加的架构组件没有使用迁移学习。
相反,我们使用遍历式的方法,将结构化的输入转换成一个我们预先训练的模型可以处理的
有序序列。这些输入转换允许我们避免跨任务鬼体系结构进行广泛的更改。我们在下面提供了
这些输入转换的简要描述,图1提供了一个可视化的例子。所有的转换包括添加随机初始化的
开始和结束标志(, )

文本蕴涵 对于蕴含任务,我们将前提p和假设h标记序列连接起来,带着一个分隔符$在中间。

相似性 对于相似性任务,两个被比较的句子没有固定的顺序。为了反应这一点,我们修改
输入序列以包含两个可能的句子顺序(中间有一个分隔符),并分别处理每个序列,以生成
两个序列表示形式hml,这些表示形式在送入线性输出层之前逐元素相加。

问答与常识推理 对于这些任务,我们得到了上下文文档z,问题q和一组可能的答案{ak}。
我们将文档上下文和问题与每个可能的答案连接起来,在两者之间添加一个分隔符标记,
即[z;q; $; ak]。这些序列中的每一个都用我们的模型肚子处理,然后通过一个SoftMax层
进行归一化,在可能的答案上生成一个输出分布。

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

4 实验

4.1 设置

非监督预训练 我们使用BooksCorpus数据集来训练语言模型。它包含超过7000本独特的
未出版书籍,包括各种类型的冒险,幻想和浪漫。至关重要的是,它包含了长时间的连续
文本,这使得生成的模型能够以长期信息作为条件来学习。另一种数据集1B Word Benchmark
(由类似的方法ELMo使用)的大小大致相同,但在句子界别上进行了洗牌—破坏了远程结构。
我们的语言模型在这个语料库上实现了一个非常低的词级别的18.4 perplexity。

表1:我们实验中用到的不同任务和数据集

任务数据集
自然语言推断SNLI,MultiNLI,Question NLI, RTE,SciTail
问答RACE,Story Cloze
句子相似性MSR Paraphrase Corpus, Quora Question Pairs, STS Benchmark
分类Stanford Sentiment Treebank-2, CoLA
-----------------------------------------

模型规格 我们的模型在很大程度上遵循了原始的Transformer的工作方式。我们训练了
一个12-layer decoder-only transformer带着masked self-attention heads(768维的状态
和12个attention heads),对于position-wise feed-forward networks,我们使用3072维
内部状态feed-forward networks,我们使用了最大学习率为2.5e-4的Adam优化方案。
在最初的2000次更新中,学习率从0线性增加,并使用cosine进度表将其退火为0。
我们在64个随机抽样的,连续的512个词序列的小批量上训练了100个epoch。由于在模型
中广泛使用了layerNorm,因此只需要简单的权重初始化N(0,0.02)就足够了。我们
使用包含40000个合并的bytepair encoding(BPE)词汇表,和residual,embedding,and
attention dropouts with a rate of 0.1 用于正则化。我们还采用了[37]中提出的修正
版的L2正则化,所有非偏差或增益权重的w=0.01。对于激活函数,我们使用高斯误差线性
单元(GELU)。我们使用学习过的位置嵌入代替了最初工作中提出的正弦形式。我们使用
ftfy库清理BooksCorpus中的原始文本,标准化一些标点和空白,并使用spaCy分词器。

微调细节 除非另有指定,我们将重新使用无监督预训练中的超参数设置。我们将dropout
添加到分类器中,比率为0.1。对于大多数任务,我们使用6.25e-5的学习率和32的批量
大小。我们的模型微调的很快,3个epoch的训练对大多数情况来说都是足够的。我们使用
线性学习率衰减时间表,预热超过0.2%的训练。λ被设置到0.5。

4.2 监督微调

我们对各种监督任务进行了实验,包括自然语言推理,问答,语义相似性和文本分类。其中
一些任务是作为最近发布的GLUE多任务基准测试[64]的一部分提供的,我们使用它。

图1提供了所有任务和数据集的概述。

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

表2详细说明了我们的模型和以前最先进方法的不同NLI任务的各种结果。我们的方法明显
优于五个数据集中的四个数据集的基线,在MNLI,SciTail,QNLI,和SNLI上的绝对改善率
分别达到1.5%,5%, 5.8%和0.6%, 高于之前的最佳结果。 这表明我们的模型能够更好的解释
多个句子,并处理语言歧义方面的问题。在RTE上,我们评估的一个较小的数据集
(2490个例子),我们获得了56%的准确率,低于多任务的biLSTM模型报告的61.7%。
考虑到我们的方法在较大的NLI数据集上的强大性能,我们的模型可能也会收益于多任务
训练,但我们目前没有对此进行探讨。

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

方法\数据集MNLI-mMNLI-mmSNLISciTailQNLIRTE
ESIM+ELMo(5x)-89.3---
CAFE(5x)80.279.089.3---
Stochastic Answer Network(3x)80.680.1----
--------------------------------------------------------------------------
CAFE78.777.988.583.3--
--------------------------------------------------------------------------
GenSen71.471.3--82.359.2
Multi-task BiLSTM+Attn72.272.1--82.161.7
--------------------------------------------------------------------------
Finetuned Transformer LM(ours)82.181.489.988.388.156.0
--------------------------------------------------------------------------

问答与常识推理 另一个需要单句或多句推理的任务是回答问题。我们使用了最近
发布的RACE数据集,它由英语段落和高中考试中的相关问题组成。这个语料库已经
被证明包含了更多的推理型问题,其他数据集如CNN或SQuaD,为我们的模型提供了
完美的评估,该模型经过训练可以处理长距离的上下文。此外,我们还对Story Cloze
Test进行了评估,其中包括从两个选项中选择正确的多句故事结尾。在这些任务中,
我们的模型再次显著胜过之前最佳的结果----显著差数到8.9%在Story Cloze上,5.7%在
整个RACE上。这表明我们的模型能有效的处理远程上下文。

表3:问答与常识推理的结果,将我们的模型与当前最先进的方法进行比较。9x意思是9个
模型的集成。

方法\数据集Story ClozeRACE-mRACE-hRACE
val-LS-skip76.5---
Hidden Coherence Model77.6---
--------------------------------------------------------------
Dynamic Fusion Net(9x)-55.649.451.2
BiAttention MRU(9x)-60.250.353.3
--------------------------------------------------------------
Finetuned Transformer LM(ours)86.562.957.459.0
--------------------------------------------------------------

语义相似性 语义相似性(或释义检测)任务涉及预测两个句子在语义上是否等价。挑战
在于认识概念的改写,理解否定和处理句法歧义。我们使用了三个数据集来完成这项任务
–微软释义语料库(MRPC)(从新闻来源收集),Quora 问题对儿(QQP)数据集和语义文本
相似性基准(STS-B)。我们获得了三个语义相似性任务中的两个(表4)的最新结果,STS-B
的绝对收益有一个点。QQP上的性能增量是显著的,与单任务BiLSTM+ELMo+Attn相比,绝对
提高了4.2%。

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

表4:语义相似性和分类结果,将我们的模型与当前最先进的方法进行了比较。此方法中
所有任务评估都是使用GLUE基准完成的。(mc=数学相关性,acc=准确性,pc=皮尔逊相关性)

方法\数据集CoLA(mc)SST2(acc)MRPC(F1)STSB(pc)QQP(F1)GLUE
Sparse byte mLSTM-93.2----
----------------------------------------------------------------------
TF-KLD--86.0---
----------------------------------------------------------------------
ECNU(mixed ensemble)---81.0--
----------------------------------------------------------------------
Single-task BiLSTM+ELMo+Attn35.090.280.255.566.164.8
Multi-task BiLSTM+ELMo+Attn18.991.683.572.863.368.9
----------------------------------------------------------------------
Finetuned Transformer LM(ours)45.491.382.382.070.372.8
----------------------------------------------------------------------

总的来说,我们的方法在我们评估的12个数据集中有九个数据集获得了最新的最先进的
结果,在许多情况下都优于集成。 我们的结果还表明,我们的方法在不同大小的数据集
上都能很好地工作,从较小的数据集(STS-B(≈5.7K训练样本))到最大数据集(SNLI
(≈550K训练样本))

5 分析

layers transferred 数的影响 我们观察到了从无监督预训练到监督目标任务的可变
层数的影响。图2(左图)说明了我们的方法在MultiNLI和RACE上的性能,他是
layers transferred数量的函数。我们观察到标准结果,transferring embeddings
提高了性能,并且每个transformer层在整体transfer上提供了高达9%的进一步好处。
这表明预先训练的模型中每个层都包含解决目标任务的有用功能。

图2:(左)transfering增长的层数对于在RACE和MultiNLI上预训练的模型的影响。
(右)显示不同任务零样本性能语言模型预训练更新而变化的曲线图 。每个任务的
性能在一个随机猜测基线和当前最先进的单任务模型之间进行标准化。

零样本行为 我们想要更好的理解为什么预训练的Transformers语言模型是有效的。
假设是,底层生成模型学习执行我们评估的许多任务,以提高其语言建模的能力,并且
Transformer更结构化的注意力记忆与LSTM相比,更有助于迁移。我们设计了一系列启发式
解决方案,使用底层的生成模型来执行任务,而无需进行监督微调。我们将这些启发式
解决方案在图2(右图)中生成预训练过程的效果可视化。我们观察到这些启发式方法的
性能是稳定的,并且在训练中稳步增加,这表明生成性预训练支持学习各种各样的任务
相关功能。我们还观察到LSTM在其零样本性能上表现出更高的方差,这表明Transformer架构
归纳的偏好有助于迁移。

对于CoLA (语言可接受性),用于生成模型分配和预测的平均词汇对数概率为例子打分。
对于SST-2(情感分析),我们在每个例子中都添加了符号,并且将语言模型的输出分布
限制为只包含正负两个词,并猜测它分配给更高概率的符号作为预测。
对于RACE(问答),我们选择一个答案,生成模型根据文档和问题分配最高的平均词汇
对数概率。
对于DPRD(winograd schemas)我们用两个可能的引用替换定代词,并预测生成模型在
替换后将较高的平局词汇对数概率分配给序列的其余部分的分辨率。

消融分析 我们进行了三项不同的消融研究(表5)。首先,我们在微调过程中检查
没有辅助语言模型目标的性能。我们观察到辅助目标有助于NLI任务和QQP。总的来说,
趋势表明较大的数据集受益于辅助目标,而较小的数据集则没有。其次,通过与同一
框架下的单层2048个LSTM单元的比较,分析了Transformer的作用。当使用LSTM而不是
Transformer时,我们观察到平均分下降了5.6分。LSTM 胜过Transformer的表现的数据集
只有一个–MRPC。最后我们还是比较了我们的Transformer架构,它直接监督目标任务进行
训练,并没有预训练。我们发现缺乏预训练会影响说有任务的性能,与全套模型相比降低
了14.8%。

表5:不同任务的不同模型消融分析。平均分是所有结果的未加权平均分。
(mc=数学相关性,acc=准确性,pc=皮尔逊相关性)

方法\数据集Avg.ScoreCoLA(mc)SST2(acc)MRPC(F1)STSB(pc)QQP(F1)MNLI(acc)QNLI(acc)RTE(acc)
Transformer w/ aux LM(full)74.745.491.382.382.070.381.888.156.0
-----------------------------------------------------------------------------------------------------
Transformer w/o pre-training59.918.984.079.430.965.575.771.253.8
Transformer w/o aux LM75.047.992.084.983.269.881.186.954.4
LSTM w/ aux LM69.130.390.583.271.868.173.781.154.6
-----------------------------------------------------------------------------------------------------

6 结论

我们引入了一个框架,通过生成性预训练的区分性微调,以一个未知任务模型实现强大的
自然语言理解。通过对一个长距离连续文本的多样语料库预训练。我们的模型获得了
重要的世界知识和处理长距离依赖关系的能力,然后成功地将这些知识转移到具体
任务上,如问答,语义相似性评估,鉴别蕴涵和文本分类。改进了我们研究的12个数据集
中的9个的最新技术。利用无监督(预)训练提高识别任务的性能一直是机器学习的重要
目标。我们的工作表明,实现显著的性能提升确实是可能的,并且提供了关于模型
(Transformer是)和数据集(具有长范围依赖的文本)如何最好的使用这种方法的提示。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值