1.Abstract
[作者是基于机器翻译的任务提出了该模型,现在该模型在语言处理、图像处理等领域广泛应用。]作者提出了一个新的简单的网络架构,叫做Transformer。这个架构只需要运用注意力机制,而不需要用RNN和CNN,通过减少模型参数简化了模型。作者通过实验同时说明了该架构的适应性较好。
2.Conclusion
①在本文的工作中,transformer是第一个只运用注意力机制,而不采用RNN和CNN的机器翻译模型。
②同时,为了替代RNN中的循环层,本文采用了多头注意力机制。
③对于翻译工作,Transformer要比基于RNN和CNN的模型训练快。
3.Instoduction
RNN的两个约束:①RNN的顺序性质使得它不能够很好的并行化。②为了将最开始的信息传到中间某个结点,需要较长的序列长度。
CNN的约束:将最开始的信息和最后的信息结合,需要中间多次提取操作。
4.Model Architecture
对于机器翻译的基础模型:有一个编码器,一个解码器。编码器负责把输入序列映射为,解码器负责根据生成输出序列。在每翻译的每一个步骤中,都应该是自回归的。自回归的大概意思是,如果将中文翻译为英文,在翻译到第个词时,机器看不到第词,只能从前个词的翻译过程和第个词的中文来将第个词翻译成英文。
Encoder and Decoder Stacks
编码器:
左半边是编码器,作者采用了N=6,就是把左面这个大方框(含有两个子层)的部分重复六次。第一个小层是多头注意力机制层(下面的子层),第二个小层是MLP层(上面的子层)。两个子层使用残差连接(add),并且用LayerNorm进行归一化(norm)。也就是说,每个子层的输出是LayerNorm(x +子层(x))。为了方便,模型中的所有子层以及嵌入层的输出规模。
(注:图片中左下角的红色箭头指向Multi-Head的应该有三个,分别是key、value、query)
解码器:
右边是解码器,作者也采取了N=6,与编码器类似,解码器拥有三个子层,一进入编码器,就有Masked Multi-Head Attention层,masked可以理解为遮掩的意思,这里使用掩码进行遮掩,遮掩的目的是:因为在开篇说过,该模型采用自回归,但是采用注意力机制是可以知道全部信息的,即同时知道,那么就需要将后面这些信息与一个负无穷大的数相乘,再通过LayerNorm归一化为0。接下来进入第二个子层,分别将编码器的结果作为key和value,再将解码器上一轮的信息mask后作为query。第三个子层也是MLP层。
简单说明BatchNorm和LayerNorm的区别,具体可以看沐神视频。Transformer论文逐段精读【论文精读】_哔哩哔哩_bilibili
考虑到在时序模型中,样本长度会发生变化,那么根据每一个batch来进行处理,效果会更好些。