读完|图解Transformer,读完这篇就够了( 二 )
The animal didn’t cross the street because it was too tired
这个“it”在这个句子是指什么呢?它指的是street还是这个animal呢?这对于人类来说是一个简单的问题 , 但是对于算法则不是 。
当模型处理这个单词“it”的时候 , 自注意力机制会允许“it”与“animal”建立联系 。
随着模型处理输入序列的每个单词 , 自注意力会关注整个输入序列的所有单词 , 帮助模型对本单词更好地进行编码 。
如果你熟悉RNN(循环神经网络) , 回忆一下它是如何维持隐藏层的 。 RNN会将它已经处理过的前面的所有单词/向量的表示与它正在处理的当前单词/向量结合起来 。 而自注意力机制会将所有相关单词的理解融入到我们正在处理的单词中 。
本文插图
当我们在编码器#5(栈中最上层编码器)中编码“it”这个单词的时 , 注意力机制的部分会去关注“The Animal” , 将它的表示的一部分编入“it”的编码中 。
请务必检查Tensor2Tensor notebook, 在里面你可以下载一个Transformer模型 , 并用交互式可视化的方式来检验 。
从微观视角看自注意力机制:
首先我们了解一下如何使用向量来计算自注意力 , 然后来看它实怎样用矩阵来实现 。
计算自注意力的第一步就是从每个编码器的输入向量(每个单词的词向量)中生成三个向量 。 也就是说对于每个单词 , 我们创造一个查询向量、一个键向量和一个值向量 。 这三个向量是通过词嵌入与三个权重矩阵后相乘创建的 。
可以发现这些新向量在维度上比词嵌入向量更低 。 他们的维度是64 , 而词嵌入和编码器的输入/输出向量的维度是512. 但实际上不强求维度更小 , 这只是一种基于架构上的选择 , 它可以使多头注意力(multiheaded attention)的大部分计算保持不变 。
本文插图
X1与WQ权重矩阵相乘得到q1, 就是与这个单词相关的查询向量 。 最终使得输入序列的每个单词的创建一个查询向量、一个键向量和一个值向量 。
什么是查询向量、键向量和值向量向量?
它们都是有助于计算和理解注意力机制的抽象概念 。 请继续阅读下文的内容 , 你就会知道每个向量在计算注意力机制中到底扮演什么样的角色 。
计算自注意力的第二步是计算得分 。 假设我们在为这个例子中的第一个词“Thinking”计算自注意力向量 , 我们需要拿输入句子中的每个单词对“Thinking”打分 。 这些分数决定了在编码单词“Thinking”的过程中有多重视句子的其它部分 。
这些分数是通过打分单词(所有输入句子的单词)的键向量与“Thinking”的查询向量相点积来计算的 。 所以如果我们是处理位置最靠前的词的自注意力的话 , 第一个分数是q1和k1的点积 , 第二个分数是q1和k2的点积 。
本文插图
第三步和第四步是将分数除以8(8是论文中使用的键向量的维数64的平方根 , 这会让梯度更稳定 。 这里也可以使用其它值 , 8只是默认值) , 然后通过softmax传递结果 。
softmax的作用是使所有单词的分数归一化 , 得到的分数都是正值且和为1 。
本文插图
这个softmax分数决定了每个单词对编码当下位置(“Thinking”)的贡献 。 显然 , 已经在这个位置上的单词将获得最高的softmax分数 , 但有时关注另一个与当前单词相关的单词也会有帮助 。
第五步是将每个值向量乘以softmax分数(这是为了准备之后将它们求和) 。 这里的直觉是希望关注语义上相关的单词 , 并弱化不相关的单词(例如 , 让它们乘以0.001这样的小数) 。
第六步是对加权值向量求和(译注:自注意力的另一种解释就是在编码某个单词时 , 就是将所有单词的表示(值向量)进行加权求和 , 而权重是通过该词的表示(键向量)与被编码词表示(查询向量)的点积并通过softmax得到 。 ) , 然后即得到自注意力层在该位置的输出(在我们的例子中是对于第一个单词) 。
本文插图
这样自注意力的计算就完成了 。 得到的向量就可以传给前馈神经网络 。 然而实际中 , 这些计算是以矩阵形式完成的 , 以便算得更快 。 那我们接下来就看看如何用矩阵实现的 。
通过矩阵运算实现自注意力机制:
第一步是计算查询矩阵、键矩阵和值矩阵 。 为此 , 我们将将输入句子的词嵌入装进矩阵X中 , 将其乘以我们训练的权重矩阵(WQ , WK , WV) 。
本文插图
x矩阵中的每一行对应于输入句子中的一个单词 。 我们再次看到词嵌入向量 (512 , 或图中的4个格子)和q/k/v向量(64 , 或图中的3个格子)的大小差异 。
推荐阅读
- 人民论坛图解|人民论坛图解 | 中国市场吸引外资的魅力不减
- 人民论坛图解 | 中国市场吸引外资的魅力不减
- 开学|开学防疫系列图解:中小学生返校防疫攻略
- 同比|新氧季报图解:营收3.3亿同比增15% 运营亏损近千万
- 同比|B站季报图解:营收26亿同比增70% 日均活跃用户5100万
- 选项|iPhone 12 Pro终极爆料图解:加入高刷选项 边框变窄刘海变小
- 防疫|开学防疫 系列图解之一:大学生返校防疫攻略
- Apple|iPhone 12 Pro 终极爆料图解:影像能力大提升/加入高刷选项
- 北京日报客户端|图解 | 涉水入主险,地震也管赔!车险改革加量不加价
- 约合|社交电商云集季报图解:营收同比降51% 净亏1750万
