1.模型结构
Transformer模型分为左右两部分,和Seq2Seq模型的结构相似,由Encoder和Decoder构成。并且Encoder和Decoder由N=6个相同的layer组成,Nx表示这里是x6个。具体的模型结构如下图:
Transformer模型抽象化之后为下图,所有的编码器在结构上都是相同的,但它们没有共享参数。每个编码器都可以分解成自注意力(self-attention)和前馈(feed-forward)神经网络两个子层,解码器较编码器多了Encoder-Decoder Attention层。
编码器最终的输出键向量Key和值向量Value传输至解码器的每一层,Encoder-Decoder attention层自带Query矩阵。
2.Self Attention
计算自注意力的第一步就是从每个编码器的输入向量(每个单词的词向量)中生成三个向量。也就是说对于每个单词,我们分别创建一个64维的查询向量Query、键向量Key和值向量Value。这三个向量是通过词嵌入与三个权重矩阵后相乘创建的。
首先分别将 q 1 q_1 q1和 k 1 , k 2 , . . . , k n k_1,k_2,...,k_n k1,k2,...,k