一、背景
seq2seq模型(2014年):https://blog.csdn.net/zyk9916/article/details/118002934
Attention模型(2015年):https://blog.csdn.net/zyk9916/article/details/118498156
对于序列建模和转换问题,大量的研究都围绕以RNN为基础的encoder-decoder架构展开。
但是,RNN是一种时序模型,存在固有的顺序性。无论是在encoder还是decoder中,都需要获得上一个时刻的隐状态才能计算下一个时刻的隐状态。这严重阻碍了训练示例中的并行化。
本文提出了Transformer模型架构,它避免了递归和卷积,而是完全依赖于注意力机制来捕捉输入和输出之间的全局依赖关系。Transformer允许更大程度的并行化。
二、模型
Transformer模型遵循了之前的encoder-decoder架构。
2.1 模型总览
Encoder:Encoder由N = 6个相同层的堆叠组成。每个层包含两个子层:一是多头自注意力机制(Multi-Head self-Attention),二是前馈神经网络(Feed Forward)。每个子层后都追加一个残差连接和归一化(Add&Norm)操作。模型中的所有子层以及Embedding层均产生维度dmodel = 512的输出。
Decoder:Decoder同样由N = 6个相同层的堆叠组成。每个层包含三个字层:一是带mask操作的多头自注意力机制(Masked Multi-Head self-Attention),二是Encoder到Decoder的多头注意力机制(注意这里并不是自注意力机制)(Encoder-Decoder Multi-Head Attention),三是前馈神经网络(Feed Forward)。每个子层同样追加一个残差连接和归一化(Add&Norm)操作。
2.2 注意力机制
注意力机制是基于三种向量(或者矩阵):查询向量(Query,Q)、键向量(