查看此一文看懂 Attention(本质原理+3大优点+5大类型) - 知乎
attention的原理:
- attention原理
quary是最终目标,每个value是对应一个key值的(key值代表了value)
针对上图,我们可以这样来看待Attention机制:将Source中的构成元素想象成是由一系列的<Key,Value>数据对构成,此时给定Target中的某个元素Query,通过计算Query和各个Key的相似性或者相关性,得到每个Key对应Value的权重系数,然后对Value进行加权求和,即得到了最终的Attention数值。所以本质上Attention机制是对Source中元素的Value值进行加权求和,而Query和Key用来计算对应Value的权重系数。即可以将其本质思想改写为如下公式:
- attention计算过程
第一步(score function): query 和 key 进行相似度计算,得到权值
第二步(alignment function):将权值进行归一化,得到直接可用的权重
第三步(generate context vector function):将权重和 value 进行加权求和
第一步:可以引入不同的函数和计算机制,根据query和某个keyi,计算两者的相似性或者相关性,最常见的方法包括:求两者的向量点积、求两者的向量Cosine相似性或者通过再引入额外的神经网络来求值,即如下方式:
第二步:第一阶段产生的分值根据具体产生的方法不同其数值取值范围也不一样,第二阶段引入类似SoftMax的计算方式对第一阶段的得分进行数值转换,一方面可以进行归一化,将原始计算分值整理成所有元素权重之和为1的概率分布;另一方面也可以通过SoftMax的内在机制更加突出重要元素的权重。即一般采用如下公式计算: