Self-Attention Mechanism(自注意力机制)

self-attention是注意力机制中的一种,也是transformer中的重要组成部分,而self-attention其本质的基础便是上一文提到了attention。本文中只讲解最简单的Self-Attention Mechanism,涉及到其他的会在transformer里面进行提及。

1.Self-Attention Mechanism模型结构

在Self-Attention的模型中,模型的输出是对整个模型的输入进行一个考虑,最终得到了相应的输出。(类似于Attention中S_i对于每个H_1.H_2,H_3的考虑)

Self-Attention Mechanism(自注意力机制)_第1张图片

 上图所展示的便是Self-Attention的一个基本的运行结构。

明白了大致的模型结构,我们来具体了解一下B_1是如何得到的。

首先,我们需要去计算a_1,对应其他a_2,a_3,a_4的一个相关性。在我这里我们使用向量点积的方式来得到两个2向量之间的相关性。

Self-Attention Mechanism(自注意力机制)_第2张图片

上图所展示的便是相关性的计算过程。

我们看到我们会将输入的两个向量分别乘上对应的矩阵,W_q和W_k,得到Q(Query)和K(Key)两个结果。然后再用两个结果做内积得到相关性。(注意这里的W_q和W_k是两个可以学习的矩阵参数)。

通过上面的方法我们便可以得到a_1和a_2的相关性。

Self-Attention Mechanism(自注意力机制)_第3张图片

 上图所展示的便是a_1和a_2相关性的计算过程。

依次类推我们也可以得到a_1和a_3,a_1和a_4甚至是a_1和a_1的一个相关性。

Self-Attention Mechanism(自注意力机制)_第4张图片

 上图所展示的便是a_1和a_1,a_2,a_3,a_4相关性的计算过程。

随后我们对得到的相关性做一个归一化的操作,这里我们用softmax。

Self-Attention Mechanism(自注意力机制)_第5张图片

  上图所展示的便是a_1和a_1,a_2,a_3,a_4相关性归一化的计算过程。

得到了相关性以后,我们又需要将a_1,a_2,a_3,a_4分别乘上W_v(这里的W_v也是学习的的参数矩阵),得到V_1,V_2,V_3,V_4。最后再讲相关性与对应的V对加权平均,得到了最后的B_1。

以此类推,我们便可以得到B_1,B_2,B_3,B_4。

Self-Attention Mechanism(自注意力机制)_第6张图片

 上图所展示的便是self-attention矩阵模块的计算过程。

你可能感兴趣的:(机器学习,深度学习)