一、GPT论文阅读核心简记

1、论文:Improving Language Understanding by Generative Pre-Training

2、官方介绍:openai.com/blog/languag

3、核心分析

GPT训练任务使用的是单向语言模型,特征提取器使用的是Transformer,GPT预训练模型取自Transformer的decoder阶段,使用了Masked Multi-Head Attention,GPT在预训练阶段是无监督学习,通过大量预料进行训练,Fine-tuning阶段是有监督学习,GPT无监督预训练过程,单向语言模型通过上文预测当前词:

模型主体使用的是Multi-layer Transformer decoder的语言模型,输入是wordembedding和position embedding的拼接,然后经过多层transformer_block,最后softmax输出

下图左边部分展示了GPT中使用的Transformer的结构,右边部分展示了GPT在特定的任务中不同的输入数据格式,输入数据经过预训练模型处理,最后接一层linear+softmax

二、GPT-2论文阅读核心简记

1、论文:Language Models are Unsupervised Multitask Learners

2、官方模型代码:github.com/openai/gpt-2

3、非官方训练代码:github.com/ConnorJL/GPT

4、GPT2用无监督的预训练模型在Fine-tuning阶段去做有监督的的任务,GPT2在模型上和GPT模型差别不大,只做了细微的调整,微调部分如下:

(1) Layer normalization被移到了sub-block之前

(2) 缩放残差层的权重

(3) 词表被扩大到50257、context size从512扩大到1024、batchsize使用512

(4) transformer层数使用的是48层

5、GPT2数据:称为WebText,45 Million Links,大约40G文本数据

6、GPT2输入表示Input Representation:word-levels容易出现OOV问题,byte-levels没有word-levels效果好,论文中采用一种折中方式Byte Pair Encoding,对频繁词和非频繁词做不同处理,将词拆分成子词

7、GPT2预训练核心方法

首先预训练阶段是单向无监督的语言模型,语言模型相当于在给序列的条件概率建模,GPT2思想通过大量无监督的语料训练语言模型,预训练语料大涵盖面广,提供模型跨任务能力,论文中提到Multitask learners,这个如何理解,举两个简单的的例子,如预料是Thetranslation of word Deep learning in Chinese is 深度学习,这样无监督语言模型就相当于把翻译模型的输入和输出学到了,又或者美国的总统是特朗普,这通过无监督语言模型又相当于问答系统

三、BERT论文阅读核心简记

Bert模型主要两个特点

1、特征提取器使用的是transformer

2、预训练使用的是双向语言模型

Bert还有突出的地方在于它的预训练任务上,Bert采用了两个预训练任务:Masked语言模型(本质上是CBOW)、Next Sentence Prediction

(1) Masked语言模型:随机选择语料中15%的单词,把它抠掉,也就是用[Mask]掩码代替原始单词,然后要求模型去正确预测被抠掉的单词,但15%词中只有80%会被替换成mask,10%被替换成另一个词,10%的词不发生改变

(2) Next Sentence Prediction:指语言模型训练的时候,分两种情况选择句子,一种是正确拼接两个顺序句子,一种是从语料库中随机选择一个句子拼接到句子后面,做mask任务时顺带做句子关系预测,因此BERT的预训练是一个多任务过程,NextSentence Prediction可以让bert在跨句子的任务中表现的更好如句子相似度计算,而Masked LM则是让bert更好学到上下文信息

因为Bert预训练预料丰富模型庞大,Bert的可适用的下游任务也很多,Bert可以对于上述四大任务改造下游任务,应用广泛:

1、序列标注:分词、POS Tag、NER、语义标注

2、分类任务:文本分类、情感计算

3、句子关系判断:Entailment、QA、自然语言推断

4、生成式任务:机器翻译、文本摘要等

Bert在训练和使用过程中注意的一些小细节:

1、Bert训练的词向量不是完整的,而是WordPiece Embedding,因此要通过Bert模型得到英文Word Embedding要将WrodPiece Embeddings转化为Word Embedding

2、Bert预训练模型的输入向量是Token Embeddings + Segment Embeddings + Position Embeddings

3、在对Bert模型微调进行下游任务时,需要知道Bert模型输出什么传入下游任务模型,即是开头[CLS]出的向量Special Classification Embeddings

四、Transform-XL论文阅读核心简记

Transformer网路具有学习文本更长依赖的能力,但是存在缺陷,transformer模型是在固定长度的segment使用attention学习,因此无法捕获任何超过segment长度的长期依赖性,没有任何跨segment的信息流。且segment的划分是不考虑上下文信息的,会导致上下文碎片化。为了解决上下文固定长度的限制,提出了transformer-xl,transformer-xl学习到的依赖比RNN学习到的长80%,比transformer学习到的长450%,transformer-xl两个重要特性:

(1) 在segment之间引入循环机制,缓存之前segment计算的隐藏状态,在模型处理后面segment时作为扩展上下文重复使用

(2) 相对位置编码,segment-level循环机制的引入使得绝对位置编码失效,于是提出相对位置编码表征位置信息

上图是transformer的训练和测试阶段,可以看到segment之间是没有任何关联的,仅在segment内部学习依赖关系

上图是transformer-xl的训练和测试阶段,可以看到segment之间是相互传递信息的,会缓存上一个segment的隐层信息传递到下一个segment使用,这样便可以学习到segment之间的依赖关系,并且在测试的使用可以使用之前的segment缓存,不用重复计算,因此transformer-xl评估速度比transformer快1800倍

下面从公式角度认识一下segment-level循环机制和相对位置编码的实现

1、Segment-level recurrence with state reuse

2、Relative Positional Encoding

Transformer-xl的整个计算流程如下图公式所示:

五、XLNet论文阅读核心简记

在介绍XLNet之前,首先介绍一下论文中提到的两个重要的概念Autoregression LM自回归语言模型、Autoencoder LM自编码语言模型

(1) 自回归语言模型AutoregressionLM:上文预测下文或下文预测上文,缺点是只能利用上文信息或下文信息,不能同时对深层的上下文信息同时建模,无法同时联系上下文信息

(2) 自编码语言模型AutoencoderLM:经典例子即Bert,Mask掉部分单词,预测Mask的单词,类似于噪音自编码Denosing Autoencoder,这样便可以同时利用上下文信息预测masked的词,缺点是引入mask标记使得预训练阶段和Fine-tuning阶段不一致,因为预训练阶段模型学习到了mask掩码之间的依赖关系,但是在Fine-tuning无mask因此会有影响

XLNet方案:仍采用的是第一阶段语言模型预训练,第二阶段任务数据Fine-tuning阶段,相对于上面介绍的AR模型和AE模型,XLNet有以下几个优点:

(1) XLNet模型完全基于AutoRegression,但XLNet为了预测时能够看到上下文信息,引入了Permutation Language Model即相当于对输入序列做全排列,在不用masked词破坏序列的情况下看到上下文,XLNet预训练和微调一致,且消除了BERT词独立性假设

(2) 引入了Transformer-xl中的recurrence machanism和relative encoding,处理更长文本依赖关系

下面给出在做XLNet汇报时的ppt,上详细展示了XLNet的细节,供学习

如需,可关注公众号回复XLNet获得完整ppt,原创不易,欢迎在看!


推荐阅读:
相关文章