关于最近的NLP模型Bert、Elmo、GPT(中)

按照计划,这一篇文章本来是应该开始详细介绍BERT,但是最近CMU和Google Brain联合推出了一个新模型XLNet,在BLEU上20项任务得分超过BERT,可以说是吊打了,所以最后一定得看看XLNet。
但是最近在看Bert的时候,发现学习之前必须讲讲Transformer,要不然根本没法看懂Google的论文,所以这篇文章主要讲Transformer。


Transformer是BERT模型中最重要的部分,Transformer中抛弃了传统的CNN和RNN,整个网络结构完全是由Attention机制组成。更准确地讲,Transformer由且仅由self-Attenion和Feed Forward Neural Network组成。一个基于Transformer的可训练的神经网络可以通过堆叠Transformer的形式进行搭建,作者的实验是通过搭建编码器和解码器各6层,总共12层的Encoder-Decoder,并在机器翻译中取得了BLEU值得新高。

transformer结构

说实话,这个结构我看了一个星期的资料,这里我把相关资料列出来:
Attention机制概念学习笔记
Attention机制详解(二)——Self-Attention与Transformer
9012年,该用bert打比赛了
《Attention is All You Need》浅读(简介+代码)
BERT中文翻译PDF版
最详细的Transformer英文版解释(内涵高清大图)
0基础看懂BERT中attention机制的套路
Attention和Transformer

其中一定一定要看

nlp中的Attention注意力机制+Transformer详解
详解Transformer (Attention Is All You Need)

我就不做复制粘贴的工作了,上面两篇文章写的非常好,我这里关于Transformer结构的几点思考。

  1. 关于attention,之前我写过attention,但是那个是在seq2seq结构中最简单的attention,还有层次attention,在transformer中是self attention。attention的结构都可以用Query,Key,Value结构来理解,最大的区别是self attention中的输入的Q、K、V都是同一个向量。而seq2seq结构中的attention,是Encoder-Decoder间的attention,Q来自之前的的Encoder层,而K和V来自Decoder的输出。在transformer中的Decoder和Encoder最大的区别也是Decoder比Encoder多了一个Encoder-Decoder-attention。
  2. Decoder中的masked multi head attention,由于在机器翻译中,解码过程是一个顺序操作的过程,也就是当解码第k个特征向量时,我们只能看到第k-1及其之前的解码结果,论文中把这种情况下的multi-head attention叫做masked multi-head attention。
  3. selt attention “动态”地生成不同连接的权重,从而处理变长的信息序列

以上是Transformer的所有内容,需要自己好好研究一下,因为Transformer一定会是以后NLP工作的主流,会有更多基于这种结构的变种模型。下次介绍BERT。

你可能感兴趣的:(关于最近的NLP模型Bert、Elmo、GPT(中))