Transformer模型

主要用于翻译,有两部份组成:encoding和decoding。

1 encoding

encoding如下图所示:
Transformer模型_第1张图片

1.1 self-attention

计算单词与其他单词的相关性。
输入:input embedding。
输出:每个单词之间的相关性。
包含3个向量矩阵:Query、Key、Value,计算相关性的计算方法:
Query=embeddingWq
Value=embedding
Wv
Key=embeddingWk
relevance=Value
Softmax(Query*Key)

Transformer模型_第2张图片
Transformer模型_第3张图片

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。
Transformer模型_第4张图片

2 decoding

decoding如下图所示:
Transformer模型_第5张图片

2.1 mask multi-head attention

包括两种掩码:padding mask和sequence mask.

2.1.1 padding mask

输入序列需要对齐, 如果输入序列不足则用0填充,如果输入序列长则去掉多的部分。

2.1.1 sequence mask

屏蔽以后的信息。使用一个上三角为0的矩阵乘以输入embedding。

你可能感兴趣的:(NLP,机器学习,人工智能)