Transformer模型由Encoder和Decoder两部分组成。
Encoder的输入即是原始的word embedding。
Transformer模型中没有递归也没有卷积,所有以序列中每个标记的绝对(或相对)位置的信息用位置编码来表示。
第一个子层是Multi-Head Attention层,该子层利用多头注意力机制,利用线性变换将Q、K、V映射到不同的子空间(论文中num_heads = 8),从而希望可以学习到单词的不同表示。
Transformer模型使用了多层注意力机制来代替了single self-attention,以此来提升模型的效果。Multi-Head Attention的效果体现在以下两个方面:
(1)扩展了模型关注不同位置的能力。在不同的context中,使得单词"it"关注到不同的target word。
(2)增强了Attention机制对关注句子内部单词之间作用的表达能力。相比于single self-attention, Multi-Head Attention中的each head都维持了一个自己的Q、K、V矩阵,实现不同的线性转换,这样每个head也就有了自己特殊的表达信息。
背后的原理即是,当翻译一个单词的时候,会基于所问的问题的类型来对每个单词给予不同的关注程度。
Multi-Head Attention层后跟了一个Layer Normalizaiton用来对Attention输出的新的word representation进行标准化处理,以及一个Residual Network。
采用了Residual Network的作用是利用了残差网络可以当层数加深