Bootstrap

Attention注意力机制原理及在seq2seq中的应用(Bahadanau Attention)

注意力机制概述

注意力评分

1、加性注意力Additive Attention

2、缩放点积注意力Scaled Dot-Product Attention

在seq2seq中应用Attention(Bahdanau注意力)

在seq2seq中使用attention的动机:

加了attention后的区别

 具体的实现过程:

Bahdanau注意力的代码实现


注意力机制概述

心理学定义:在复杂的情况下关注值得注意的点

“是否包含自主性提示”将注意力机制与全连接层或汇聚层区别开来:

卷积、全连接、pooling都是只考虑非意志线索;

注意力机制则考虑意志线索:意志线索(自主性提示)称为查询(query)。 给定任何查询,注意力机制通过注意力汇聚(attention pooling) 将选择引导至感官输入(sensory inputs,例如中间特征表示)。 在注意力机制中,这些感官输入被称为(value)。 更通俗的解释,每个值都与一个(key)配对, 这可以想象为感官输入的非自主提示。 如 图10.1.3所示,我们可以设计注意力汇聚, 以便给定的查询(自主性提示)可以与键(非自主性提示)进行匹配, 这将引导得出最匹配的值(感官输入)。

 是注意力权重 

意志线索query就是f(x),式子中的x就是非意志线索key简单来说,query就是对key做了一个加权算术,其中的权重就是query对key的偏向性选择。


注意力评分

注意力分数是query和key的相似度(举个栗子,去公司求职的时候,猜测自己的薪水,应该是看和自己专业相仿,工作内容和时间差不多的人的薪水,这些人的注意力分数就会高),没有Normalized的alpha就是注意力分数a。

查询q和键ki的注意力权重(标量) 是通过注意力评分函数a 将两个向量映射成标量, 再经过softmax运算得到的。。选择不同的注意力评分函数a会导致不同的注意力汇聚操作。

1、加性注意力Additive Attention

给定查询q∈Rq和 键k∈Rk, 加性注意力(additive attention)的评分函数为

;