NLP|Transformer模型

主要用于翻译,有两部份组成:encoding和decoding。
1 encoding encoding如下图所示:
NLP|Transformer模型
文章图片

1.1 self-attention
计算单词与其他单词的相关性。
输入:input embedding。
输出:每个单词之间的相关性。
包含3个向量矩阵:Query、Key、Value,计算相关性的计算方法:
Query=embeddingWq
Value=https://www.it610.com/article/embedding
Wv
Key=embeddingWk
relevance=Value
Softmax(Query*Key)
NLP|Transformer模型
文章图片

NLP|Transformer模型
文章图片

1.2 multi-attention head
1.1求self-attention的三个向量分别用了一个矩阵,论文中使用了8个矩阵,最后生成8个相关性矩阵,然后转化为使用一个矩阵生成结果的大小(num_words, num_words)
1.3 positional encoding
之前的谈论并没有考虑单词顺序的关系。假设使用jpe向量表示,有许多方法求该向量,论文中用到的公式是:
PE(pos,2i)=sin(pos/100002i/dmodel)
PE(pos,2i+1)=cos(pos/100002i/dmodel?)
pe+embedding作为最终的输入向量。
1.4 layer normalization
在每一个子模块后添加一个残差块,残差块包括layer normalization。
NLP|Transformer模型
文章图片

2 decoding decoding如下图所示:
NLP|Transformer模型
文章图片

2.1 mask multi-head attention
包括两种掩码:padding mask和sequence mask.
2.1.1 padding mask 【NLP|Transformer模型】输入序列需要对齐, 如果输入序列不足则用0填充,如果输入序列长则去掉多的部分。
2.1.1 sequence mask 屏蔽以后的信息。使用一个上三角为0的矩阵乘以输入embedding。

    推荐阅读