读完|图解Transformer,读完这篇就够了( 三 )


最后 , 由于我们处理的是矩阵 , 我们可以将步骤2到步骤6合并为一个公式来计算自注意力层的输出 。
读完|图解Transformer,读完这篇就够了
本文插图

自注意力的矩阵运算形式:
“大战多头怪”
通过增加一种叫做“多头”注意力(“multi-headed” attention)的机制 , 论文进一步完善了自注意力层 , 并在两方面提高了注意力层的性能:
1.它扩展了模型专注于不同位置的能力 。 在上面的例子中 , 虽然每个编码都在z1中有或多或少的体现 , 但是它可能被实际的单词本身所支配 。

如果我们翻译一个句子 , 比如“The animal didn’t cross the street because it was too tired” , 我们会想知道“it”指的是哪个词 , 这时模型的“多头”注意机制会起到作用 。
2.它给出了注意力层的多个“表示子空间”(representation subspaces) 。 接下来我们将看到 , 对于“多头”注意机制 , 我们有多个查询/键/值权重矩阵集(Transformer使用八个注意力头 , 因此我们对于每个编码器/解码器有八个矩阵集合) 。
这些集合中的每一个都是随机初始化的 , 在训练之后 , 每个集合都被用来将输入词嵌入(或来自较低编码器/解码器的向量)投影到不同的表示子空间中 。
读完|图解Transformer,读完这篇就够了
本文插图

在“多头”注意机制下 , 我们为每个头保持独立的查询/键/值权重矩阵 , 从而产生不同的查询/键/值矩阵 。 和之前一样 , 我们拿X乘以WQ/WK/WV矩阵来产生查询/键/值矩阵 。
如果我们做与上述相同的自注意力计算 , 只需八次不同的权重矩阵运算 , 我们就会得到八个不同的Z矩阵 。
读完|图解Transformer,读完这篇就够了
本文插图

这给我们带来了一点挑战 。 前馈层不需要8个矩阵 , 它只需要一个矩阵(由每一个单词的表示向量组成) 。 所以我们需要一种方法把这八个矩阵压缩成一个矩阵 。

那该怎么做?其实可以直接把这些矩阵拼接在一起 , 然后用一个附加的权重矩阵WO与它们相乘 。
读完|图解Transformer,读完这篇就够了
本文插图

这几乎就是多头自注意力的全部 。 这确实有好多矩阵 , 我们试着把它们集中在一个图片中 , 这样可以一眼看清 。
读完|图解Transformer,读完这篇就够了
本文插图

既然我们已经摸到了注意力机制的这么多“头” , 那么让我们重温之前的例子 , 看看我们在例句中编码“it”一词时 , 不同的注意力“头”集中在哪里:
读完|图解Transformer,读完这篇就够了
本文插图

当我们编码“it”一词时 , 一个注意力头集中在“animal”上 , 而另一个则集中在“tired”上 , 从某种意义上说 , 模型对“it”一词的表达在某种程度上是“animal”和“tired”的代表 。
然而 , 如果我们把所有的attention都加到图示里 , 事情就更难解释了:
读完|图解Transformer,读完这篇就够了
本文插图

使用位置编码表示序列的顺序:
到目前为止 , 我们对模型的描述缺少了一种理解输入单词顺序的方法 。
为了解决这个问题 , Transformer为每个输入的词嵌入添加了一个向量 。 这些向量遵循模型学习到的特定模式 , 这有助于确定每个单词的位置 , 或序列中不同单词之间的距离 。

这里的直觉是 , 将位置向量添加到词嵌入中使得它们在接下来的运算中 , 能够更好地表达的词与词之间的距离 。
读完|图解Transformer,读完这篇就够了
本文插图

为了让模型理解单词的顺序 , 我们添加了位置编码向量 , 这些向量的值遵循特定的模式 。
如果我们假设词嵌入的维数为4 , 则实际的位置编码如下:
读完|图解Transformer,读完这篇就够了
本文插图

尺寸为4的迷你词嵌入位置编码实例:
这个模式会是什么样子?
在下图中 , 每一行对应一个词向量的位置编码 , 所以第一行对应着输入序列的第一个词 。 每行包含512个值 , 每个值介于1和-1之间 。 我们已经对它们进行了颜色编码 , 所以图案是可见的 。
读完|图解Transformer,读完这篇就够了
本文插图

20字(行)的位置编码实例 , 词嵌入大小为512(列) 。 你可以看到它从中间分裂成两半 。 这是因为左半部分的值由一个函数(使用正弦)生成 , 而右半部分由另一个函数(使用余弦)生成 。 然后将它们拼在一起而得到每一个位置编码向量 。
原始论文里描述了位置编码的公式(第3.5节) 。 你可以在 get_timing_signal_1d中看到生成位置编码的代码 。 这不是唯一可能的位置编码方法 。


推荐阅读