输出分数矩阵的自我关注解释性

时间:2019-09-04 17:54:00

标签: tensorflow machine-learning matrix neural-network attention-model

我正在学习注意力模型,并跟随Jay Alammar关于Illustrated Transformer的精彩博客教程。他提供了很好的演练,说明了如何计算注意力得分,但我在某一点上有些茫然,并且看不到他解释的注意力得分Z矩阵如何用于解释不同单词之间的联想强度在输入序列中。

他提到给定某些输入矩阵X,形状为N x D,其中N是输入序列中元素的数量,D是输入维数,我们将X与形状为D x d的三个单独的权重矩阵相乘,其中d是一些较低的维数,表示查询,键和值矩阵的投影空间: enter image description here

将查询矩阵和关键矩阵加点,然后除以比例因子(通常是投影维数的平方根),然后通过softmax函数运行。这将生成一个大小为N x N的权重矩阵,将其与值矩阵相乘即可​​得到形状为Z的输出N x d,Jay说

  

到此结束自我注意力的计算。所得向量为   我们可以将其发送到前馈神经网络。

他的博客中用于此计算的屏幕截图如下: enter image description here 但是,这是我感到困惑的地方。 ZN x d。但是,从可解释性的角度,据我所知,对于特定的序列元素(即序列{{中的词cats 1}}),当与该词嵌入相关或强烈相关时,自我注意力应该在该序列的其他部分得分较高。但是,我希望I love pets, especially catsZ,所以我可以说我可以选择N x N并为序列中的Z[i,j]单词说{ {1}}这个词与这个词有或多或少相关。

实际上,仅使用权重的softmax输出(不将其乘以值矩阵)是否更有意义,因为它已经是i-th了?本质上,周杰伦如何确定这些特定顺序中与单词j-th的关联强度? enter image description here

这是他所显示的N x Nit的关系-有N个值对应于与单词1的关联强度。

0 个答案:

没有答案