Improving Language Understanding by Generative Pre-Training
大多数深度学习方法需要大量的手动标记数据,这限制了它们在许多缺乏注释资源的领域的适用性
利用未标记数据中的语言信息的模型为收集更多的注释提供了一种有价值的替代方案,在可以进行大量监督的情况下,以无监督的方式学习良好的表示也可以显著提高性能
在这之前最成功的是Word2vec
利用未标记文本中的挑战性?
-
目前尚不清楚哪种类型的优化目标在学习对迁移有用的文本表示方面最有效。
-
其次,对于将这些学习到的表征转移到目标任务的最有效方法,还没有达成共识
半监督学习
在这里GPT使用了半监督学习,先通过无监督学习的预训练,运用大量未标注数据增强模型的语言能力,再进行有监督的微调,与大规模数据集集成以提高模型在NLP任务中的表现,减少了模型训练对数据标注工作的依赖,使GPT-1仅需要极少微调,就能够强化其NLP任务能力
该方法将无监督预训练和有监督微调相结合
我们对未标记的数据使用语言建模目标来学习神经网络模型的初始参数。随后,我们使用相应的监督目标将这些参数调整为目标任务
模型架构,使用Transformer
第一阶段是在大量文本语料库上学习高容量的语言模型。接下来是微调阶段,我们将模型调整为具有标记数据的判别任务
Unsupervised pre-training
优化目标
一个自回归的仅依赖于前文的滑动上下文窗口建模语言模型,因此能依赖上文信息
h0 表示GPT 的输入,Wp 是单词位置的 Embedding,We 是单词的 Embedding。得到输入 h0 之后,需要将 h0 依次传入 GPT 的所有 Transformer Decoder 里,最终得到 ht。最后送到softmax得到 ht 再预测下个单词的概率。
U是将词嵌入向量 We 投影到一个新的空间,使得它可以与位置向量 Wp 相加
Supervised fine-tuning
GPT 经过预训练之后,会针对具体的下游任务对模型进行微调。微调的过程采用的是有监督学习,训练样本包括单词序列 [x1, x2, …, xm] 和 类标 y,Wy
表示预测输出时的参数
微调时需要优化
GPT
在微调的时候也考虑预训练的损失函数,所以最终需要优化的函数为:
微调阶段有两个目标函数L2,L3
Task-specific input transformations
具有结构化输入,如有序的句子对,或文档、问题和答案的三元组。由于我们的预训练模型是在连续的文本序列上训练的,因此我们需要进行一些修改才能将其应用于这些任务。将结构化输入转换为经过预训练的模型可以处理的有序序列
这些输入转换使我们能够避免跨任务对体系结构进行大量更改。
前提p和假设h令牌序列连接起来,中间有一个分隔符令牌($)
对于相似,相似是对称的,在语言模型中有先后顺序,被比较的两个句子没有固有的顺序。独立处理每个顺序,以产生两个序列表示
将文档上下文和问题与每个可能的答案连接起来,并在两者之间添加一个分隔符令牌,每一个都用我们的模型独立处理,然后通过softmax层
进行归一化,以产生可能答案的输出分布。
Experiments
transformer学到的特征更加稳定,
文章中使用的是多层Transformer的decoder的语言模型。这个多层的结构应用multi-headed self-attention(768维状态和12个attention heads)位置前馈网络,我们使用了3072维内部状态
decode因为有mask所以只会看到当前元素之前的
在预训练的部分,模型使用BooksCorpus数据
我们在512个tokens上随机取64个连续的序列,并用这些序列的minibatch对模型进行训练,迭代100次。用了GELU作为激活函数,使用了学习的位置嵌入(learned position embeddings)代替了原始工作中提出的正弦版本
监督微调
自然语言推理
评估了五个不同来源的数据集,包括图像字幕(SNLI)、转录的演讲、流行小说和政府报告(MNLI)、维基百科文章(QNLI)、科学考试(SciTail)或新闻文章(RTE)
问答和常识性推理
RACE数据集
相似度
使用三个数据集——微软释义语料库(MRPC)[14](从新闻来源收集)、Quora问题对(QQP)数据集[9]和语义文本相似性基准(STS-B)
分类
转移层数的影响
不同层数的预训练模型在目标任务上的性能差异,并通过实验观察了传输层数对模型性能的影响,每个transformer层为multinli上的完全传输提供了高达9%的提升,预训练模型中的每个层都包含解决目标任务的有用功能
为什么transformer的预训练模型在语言理解任务中非常有效
假设,即底层的生成模型通过学习执行许多与目标任务相关的任务,来提高其语言建模能力。另外,相比于LSTM,transformer的更结构化的注意力记忆有助于信息的传递。
使用底层的生成模型来执行任务,而不需要进行监督的微调。作者还观察到LSTM在其零触发性能上表现出更高的方差,这表明Transformer架构的归纳偏差( inductive bias)有助于transfer。这意味着,transformer的结构使其更有可能学习到更泛化的规律,从而提高在不同任务上的表现。
GPT预训练模型如果不经过finetune事实上也是可以呈现出不错的结果的