介绍
Transformer 是一种基于 encoder-decoder 结构的模型,模型结构如下图所示,在encoder中主要有Multi-Headed Attention和前馈神经网络层组成,decoder 中主要有Multi-Headed Attention、前馈神经网络层和Masked Multi-Headed Attention组成。
在 Encoder 中,
- Input 经过 embedding 后,要做 positional encodings
- 经过Multi-head attention
- 再经过 position-wise Feed Forward
- 每个子层之间有残差连接
在 Decoder 中,
如上图所示,也有 positional encodings,Multi-head attention 和 FFN,子层之间也要做残差连接,但比 encoder 多了一个 Masked Multi-head attention,最后要经过 Linear 和 softmax 输出概率。
Positional Encoding
Positional Encoding 是一种考虑输入序列中单词顺序的方法。
encoder 为每个输入 embedding 添加了一个向量,这些向量符合一种特定模式,可以确定每个单词的位置,或者序列中不同单词之间的距离。计算方式如下:
其中 p o s pos pos为token在sequence里的位置, d m o d e l d_{model} dmodel 为Embedding的维度, 2 i 、 2 i + 1 2i 、2i+1 <