上一篇博文重点介绍了Transformer的核心组件MultiHeadAttention多头注意力机制,本篇继续介绍transformer的原理。下图为transformer的结构图,其主要由位置编码、多组编码器和多组解码器。以下将重点介绍三个部分。
1. 位置编码 Positional Encoding
Attention存在的一个问题是没有保留序列中各词的位置信息,或者说序列中各词间调换顺序后,对于最终输出几乎没有影响,因此必须要将位置编码作为Attention的输入部分,在Transformer中给出位置编码方法,是在原有词向量上叠加位置编码向量:
上式用于计算位置编码向量,pos表示词在序列中的位置[1,2,3,4...],i表示位置编码向量中位置,下图的纵轴表示位置从0~19下的512维位置编码向量,该位置编码向量会同输入embeding向量叠加作为attention的输入。