Transformer

什么是Transformer

       谷歌在2017年发表了一篇论文名字叫《Attention Is All You Need》,提出了一个只基于attention的结构来处理序列模型相关的问题,比如机器翻译。传统的神经机器翻译大都是利用RNN或者CNN来作为encoder-decoder的模型基础,而谷歌最新的只基于Attention的Transformer模型摒弃了固有的定式,并没有用任何CNN或者RNN的结构。该模型可以高度并行地工作,所以在提升翻译性能的同时训练速度也特别快。

      Transformer 在机器翻译任务上的表现超过了 RNN,CNN,只用 encoder-decoder 和 attention 机制就能达到很好的效果,最大的优点是可以高效地并行化

 

Transformer模型结构

Transformer 是一种基于 encoder-decoder 结构的模型

Transformer

模型依然是分为EncoderDecoder两个部分

Transformer 的 encoder 由 6 个编码器叠加组成,decoder 也由 6 个解码器组成,

 

在 Encoder 中

  1. Input 经过 embedding 后,要做 positional encodings,
  2. 然后是 Multi-head attention,
  3. 再经过 position-wise Feed Forward,
  4. 每个子层之间有残差连接。

在 Decoder 中,

  1. 如上图所示,也有 positional encodings,Multi-head attention 和 FFN,子层之间也要做残差连接,
  2. 但比 encoder 多了一个 Masked Multi-head attention,
  3. 最后要经过 Linear 和 softmax 输出概率。