读完|图解Transformer,读完这篇就够了( 三 )
最后 , 由于我们处理的是矩阵 , 我们可以将步骤2到步骤6合并为一个公式来计算自注意力层的输出 。
本文插图
自注意力的矩阵运算形式:
“大战多头怪”
通过增加一种叫做“多头”注意力(“multi-headed” attention)的机制 , 论文进一步完善了自注意力层 , 并在两方面提高了注意力层的性能:
1.它扩展了模型专注于不同位置的能力 。 在上面的例子中 , 虽然每个编码都在z1中有或多或少的体现 , 但是它可能被实际的单词本身所支配 。
如果我们翻译一个句子 , 比如“The animal didn’t cross the street because it was too tired” , 我们会想知道“it”指的是哪个词 , 这时模型的“多头”注意机制会起到作用 。
2.它给出了注意力层的多个“表示子空间”(representation subspaces) 。 接下来我们将看到 , 对于“多头”注意机制 , 我们有多个查询/键/值权重矩阵集(Transformer使用八个注意力头 , 因此我们对于每个编码器/解码器有八个矩阵集合) 。
这些集合中的每一个都是随机初始化的 , 在训练之后 , 每个集合都被用来将输入词嵌入(或来自较低编码器/解码器的向量)投影到不同的表示子空间中 。
本文插图
在“多头”注意机制下 , 我们为每个头保持独立的查询/键/值权重矩阵 , 从而产生不同的查询/键/值矩阵 。 和之前一样 , 我们拿X乘以WQ/WK/WV矩阵来产生查询/键/值矩阵 。
如果我们做与上述相同的自注意力计算 , 只需八次不同的权重矩阵运算 , 我们就会得到八个不同的Z矩阵 。
本文插图
这给我们带来了一点挑战 。 前馈层不需要8个矩阵 , 它只需要一个矩阵(由每一个单词的表示向量组成) 。 所以我们需要一种方法把这八个矩阵压缩成一个矩阵 。
那该怎么做?其实可以直接把这些矩阵拼接在一起 , 然后用一个附加的权重矩阵WO与它们相乘 。
本文插图
这几乎就是多头自注意力的全部 。 这确实有好多矩阵 , 我们试着把它们集中在一个图片中 , 这样可以一眼看清 。
本文插图
既然我们已经摸到了注意力机制的这么多“头” , 那么让我们重温之前的例子 , 看看我们在例句中编码“it”一词时 , 不同的注意力“头”集中在哪里:
本文插图
当我们编码“it”一词时 , 一个注意力头集中在“animal”上 , 而另一个则集中在“tired”上 , 从某种意义上说 , 模型对“it”一词的表达在某种程度上是“animal”和“tired”的代表 。
然而 , 如果我们把所有的attention都加到图示里 , 事情就更难解释了:
本文插图
使用位置编码表示序列的顺序:
到目前为止 , 我们对模型的描述缺少了一种理解输入单词顺序的方法 。
为了解决这个问题 , Transformer为每个输入的词嵌入添加了一个向量 。 这些向量遵循模型学习到的特定模式 , 这有助于确定每个单词的位置 , 或序列中不同单词之间的距离 。
这里的直觉是 , 将位置向量添加到词嵌入中使得它们在接下来的运算中 , 能够更好地表达的词与词之间的距离 。
本文插图
为了让模型理解单词的顺序 , 我们添加了位置编码向量 , 这些向量的值遵循特定的模式 。
如果我们假设词嵌入的维数为4 , 则实际的位置编码如下:
本文插图
尺寸为4的迷你词嵌入位置编码实例:
这个模式会是什么样子?
在下图中 , 每一行对应一个词向量的位置编码 , 所以第一行对应着输入序列的第一个词 。 每行包含512个值 , 每个值介于1和-1之间 。 我们已经对它们进行了颜色编码 , 所以图案是可见的 。
本文插图
20字(行)的位置编码实例 , 词嵌入大小为512(列) 。 你可以看到它从中间分裂成两半 。 这是因为左半部分的值由一个函数(使用正弦)生成 , 而右半部分由另一个函数(使用余弦)生成 。 然后将它们拼在一起而得到每一个位置编码向量 。
原始论文里描述了位置编码的公式(第3.5节) 。 你可以在 get_timing_signal_1d中看到生成位置编码的代码 。 这不是唯一可能的位置编码方法 。
推荐阅读
- 人民论坛图解|人民论坛图解 | 中国市场吸引外资的魅力不减
- 人民论坛图解 | 中国市场吸引外资的魅力不减
- 开学|开学防疫系列图解:中小学生返校防疫攻略
- 同比|新氧季报图解:营收3.3亿同比增15% 运营亏损近千万
- 同比|B站季报图解:营收26亿同比增70% 日均活跃用户5100万
- 选项|iPhone 12 Pro终极爆料图解:加入高刷选项 边框变窄刘海变小
- 防疫|开学防疫 系列图解之一:大学生返校防疫攻略
- Apple|iPhone 12 Pro 终极爆料图解:影像能力大提升/加入高刷选项
- 北京日报客户端|图解 | 涉水入主险,地震也管赔!车险改革加量不加价
- 约合|社交电商云集季报图解:营收同比降51% 净亏1750万
