参考链接:http://jalammar.github.io/illustrated-transformer/
论文链接:https://arxiv.org/abs/1706.03762
一、Transform的整体框架:
- 在机器翻译中的Tansform可以像下图一样看作一个黑盒:
- Transform由三部分组成:编码器部分,解码器部分,以及它们之间的连接;
- 编码器部分(encoding component)由6个编码器(encoder)堆叠而成,同样解码器部分(decoding component)由6个解码器(decoder)堆叠而成;
- 6个编码器在结构上都是相同的(但它们不共享参数);每一个解码器都分为两个子层:self-attention和feed forward neural network
self-attention是用来:帮助编码器在编码句子中的某个单词时查看输入句子中其他单词
feed forward neural network是一个全连接的前馈神经网络,它的计算公式如下:
- 解码器也由这两部分,但是在这两层之间有一个attention层用来帮助解码器关注输入句子的相关部分,这样decoder由三部分构成:self-attention、encoder-decoder attention和feed forward neural network,如下图所示:
二、self-attention层
1、self-attention在向量级上的计算过程:
- 第一步:需要从输入的每个词向量中创建三个向量分别是:Query、Key和Value向量,这三个向量是由词向量分别乘以三个矩阵产生的。这三个新生的向量一般比源词向量更小,过程如下:
- 我们最终在输入句子中创建每个单词的"query",