Transformer模型总结

Transformer模型总结

  • Transformer模型
    • BERT
    • OpenAI GPT
    • Transformer XL
    • XLNet
    • RoBERTa
    • DistilBERT
    • ALBERT
    • 其他模型
  • 模型大小对比

Transformer模型

谷歌2017年文章《All you need is attention》提出Transformer模型,文章链接:
http://arxiv.org/abs/1706.03762
下面对几个基于Transformer的主要的模型进行简单总结。

BERT

来自文章《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》。
整个模型可以划分为embedding、transformer、output三部分。

  1. embedding部分由word embedding、position embedding、token type embedding三个模型组成,三个embedding相加形成最终的embedding输入。
  2. transformer部分使用的是标准的Transformer模型encorder部分。
  3. output部分由具体的任务决定。对于token级别的任务,可以使用最后一层Transformer层的输出;对于sentence级别的任务,可以使用最后一层Transformer层的第一位输出,即[CLS]对应的输出。

文章链接:
https://arxiv.org/abs/1810.04805

OpenAI GPT

来自文章《Improving Language Understanding by Generative Pre-Training》和《Language Models are Unsupervised Multitask Learners》。
GPT为生成式模型。如果说BERT使用了Transformer模型中的encoder部分,那GPT就相当于使用了Transformer模型中的deconder部分。

文章链接:
GPT:
https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf
GPT-2:
https://d4mucfpksywv.cloudfront.net/better-language-models/language-models.pdf

Transformer XL

来自文章《Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context》。
相比于传统的transformer模型,主要有以下两点修改:

  1. 每个transformer节点除了使用本帧上层节点的数据外,还使用了上一帧上层节点的数据;
  2. 在做position embedding的时候,使用相对位置编码代替绝对位置编码。

文章链接:
http://arxiv.org/abs/1901.02860

XLNet

来自文章《XLNet: Generalized Autoregressive Pretraining for Language Understanding》。
在对语言模型进行预训练时,常采用两类方法,一种称为AutoRegressive(OpenAI GPT),一种为AutoEncorder(BERT)。相比于AR方法,AE方法可以考虑到被预测词前后词的影响,而AR方法只考虑到了被预测词的前方词的影响。但BERT中,为了实现AE,采用了一种称为Denoising Auto-Encoding的方法,即讲原始数据中的部分token用[MASK]代替后进行训练,这种方式就使得训练语料数据与实际语料数据之间存在差别。而XLNet的目的,就是在保持BERT的AE特性同时,消除[MASK]的影响。
主要包含以下三点:
1)使用Permutation Language Modeling代替Masked Language Modeling。不在原训练数据中替换[MASK],而是同时attention mask来随机排列token之间的依赖关系。如对于句子[1, 2, 3],依赖关系包括:1->2->3,1->3->2,2->3->1,2->1->3,3->2->1,3->1->2 六种。AR方法其实就是只考虑了这六种依赖关系中的1->2->3这一种,而这种依赖关系在transformer的encorder中也是通过attention mask实现的。
2)使用Two-Stream Self-Attention。PLM中存在一个 问题,对于序列[1, 2, 3, 4],由于存在1->2->3->4和1->2->4->3两种依赖关系,使得3
4对于1->2->的依赖概率完全相等,而出现该问题的原因,就是PLM中没有考虑token的位置信息。为此,XLNet中使用了两条并行的self-attention。一条常规线,称为content stream,一条用于预训练的线,称为query stream,便可将token的位置信息包含到模型中。(个人理解:必须结合Transformer XL的相对位置编码,不能使用BERT中的绝对位置编码)
3)使用Transformer XL代替Transformer。

文章链接:
https://arxiv.org/abs/1906.08237.pdf

RoBERTa

来自文章《RoBERTa: A Robustly Optimized BERT Pretraining Approach》。
RoBERTa(Robustly Optimized BERT Approach)是Facebook对BERT的重新训练,训练过程的区别有:
1)采用更多的训练数据,更大的batch size,训练更长的时间,训练集从16G增大到160G;
2)取消了传统BERT预训练中的NSP目标函数;
3)输入序列更长;
4)动态添加[MASK],即在每个batch开始时添加[MASK],而不是传统BERT在每个epoch开始时添加。
研究表明,传统BERT远远没有被充分训练,采用合理的训练策略之后,传统的BERT模型可以超过或不逊于后台的模型(如XLNet等)。

文章链接:
https://arxiv.org/abs/1907.11692

DistilBERT

来自文章《DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter》。
DistilBERT(distilled version of BERT)是采用Knowledge Distilation技术训练得到压缩版BERT模型,DistilBERT相比于传统的BERT,保留了99%的意义理解能力,但模型大小降低了40%,运算速度提高了60%。
Knowledge Distilation是一种模型压缩技术,通过训练一个小型模型(student model)来复制一个已经训练好的大型模型(teacher model)的表现。

文章链接:
https://arxiv.org/abs/1910.01108

使用Distilation来压缩BERT的模型还有TinyBERT,来自文章《TinyBERT: Distilling BERT for Natural Language Understanding》。

文章链接:
https://arxiv.org/abs/1909.10351

ALBERT

来自文章《ALBERT: A Lite BERT for Self-supervised Learning of Language Representations》。
ALBERT(A Lite BERT)即轻量级的BERT,轻量级主要体现在减少传统BERT的参数数量,提高模型的泛化能力。相比于传统BERT有以下三点区别:
1)降低embedding层的维度,在embedding层与初始隐藏层之间增加一个全连接层,将低纬的embedding提高至高维的隐藏层纬度,相当于对原embedding层通过因式分解降维;
2)在transformer层之间进行参数共享;
3)使用SOP(sentence order prediction)代替NSP(next sentence prediction)对模型进行训练
ALBERT参数规模比BERT比传统BERT小18倍,但性能却超越了传统BERT。

文章链接:
https://openreview.net/pdf?id=H1eA7AEtvS

其他模型

CTRL,来自文章《CTRL: A Conditional Transformer Language Model for Controllable Generation》
文章链接:
https://arxiv.org/abs/1909.05858
https://blog.einstein.ai/introducing-a-conditional-transformer-language-model-for-controllable-generation/
http://www.sohu.com/a/340641517_610300

XLM,来自文章《Cross-lingual Language Model Pretraining》
文章链接:
https://arxiv.org/abs/1901.07291

模型大小对比

BERT RoBERTa DistilBERT XLNet ALBERT
Size / M Base 110 Large 340 Base 110 Large 340 66 Base 110 Large 340 Base 12 Large 18

你可能感兴趣的