人才市场网站建设论文,怎么让公司建设网站,网站建设和考核工作通知,个人网站导航模版自然语言处理四-从矩阵操作角度看 自注意self attention 从矩阵角度看self attention获取Q K V矩阵注意力分数softmax注意力的输出再来分析整体的attention的矩阵操作过程从矩阵操作角度看#xff0c;self attention如何解决问题的#xff1f;W^q^ W^k^ W^v^这三个矩阵怎么获… 自然语言处理四-从矩阵操作角度看 自注意self attention 从矩阵角度看self attention获取Q K V矩阵注意力分数softmax注意力的输出再来分析整体的attention的矩阵操作过程从矩阵操作角度看self attention如何解决问题的W^q^ W^k^ W^v^这三个矩阵怎么获得 从矩阵角度看self attention
上一篇文章【自然语言处理三-自注意self attention】介绍了如何实现selft attention但没有介绍为何自注意力就能解决参数扩张、无法并行等问题仅仅用语言描述太过干涩从矩阵操作的角度则可以清晰的了解self attention的运作机制以及它如何解决这些问题的。
首先还是先给出self attention的整体流程图 中间这个attention层从输入到attention层的输出就是我们是实现的目标下面是一个简单的图示
下面我们就从矩阵操作的角度来描述具体如何实现中间这个self attention层。
获取Q K V矩阵
首先是根据输入乘上矩阵,获取qi,ki,vi 当我们将(ai,…an)整合成一个矩阵的时候实际上这个操作是这样的 这样我们的Q K V矩阵就是针对整个输入的了。
注意力分数
a1对于ai的注意力分数是q1和ki的点乘当然这个点乘操作在上文介绍过可以有别的方法。
这个过程同样可以合并成一个矩阵操作如下图A矩阵中的每一列就是ai对于其他输入的注意力分数
softmax
上述获取的A矩阵执行softmax操作
注意力的输出 softmax后的注意力分数与其他输入的vi做乘法操作获取最终注意力层的一个输出。 这个过程同样可以合并矩阵操作如下 最终的的这个O矩阵就是注意力的输出。
再来分析整体的attention的矩阵操作过程
这个总体的过程可以用下面更简略的图来表示
从矩阵操作角度看self attention如何解决问题的
1.解决参数可能急剧扩张的问题 我们从上面整体的矩阵操作过程来看实际上只有三个矩阵Wq Wk Wv的参数需要学习其他都是经过矩阵运算。 参数不会出现剧增 2.解决无法并行的问题 矩阵对于每个输入的操作是并行的不再像seq2seq架构一样是按照时间步一步步操作。 3.解决记忆能力的问题 attention的分数是基于全体输入的且没有经过时间步的传播因此记忆是基于全句子的且信息没有丢失
Wq Wk Wv这三个矩阵怎么获得
从整体流程来看要实现attention最关键的就是找到合适的Wq Wk Wv矩阵那么这三个矩阵是怎么获得的呢 它们是靠学习获得的初始化后经过模型输出然后经过反向传播通过调整误差一步步的精确化了这三个矩阵