Attention 机制
注意力机制(Attention mechanism)能很好解决同一句子中不同目标的情感记性
判别问题。
从 Attention 的作用角度分析,分为 Spatial Attention 空间注意力和 Temporal
Attention 时间注意力。实际应用也可分为 soft Attention 和 Hard Attention。
Soft Attention 是将所有的数据都会注意,都会计算出相应的注意力权值,不会设置
筛选条件。
Hard Attention 会在生成注意力权重后筛选掉一部分不符合条件的注意力。让它的
注意力权值为 0,即可理解为不再注意这些不符合条件的部分。
1. Attention 机制的本质思想
将 source 中的构成元素想象成是由一些列的<key,value>数据对 构成,此时给定
Target 中的某个元素 Query,通过计算 Query 和各个 Key 的相似性或者相关性,得到每
个 Key 对应 Value 的权重系数,然后对 Value 进行加权求和,即得到了最终的 Attention
数值。所以本质上 Attention 机制是对 Source 中元素的 Value 值进行加权求和,而
Query 和 Key 用来计算对应 Value 的权重系数。即可以将其本质思想改写为如下公式:
其中 Lx =||source||代表 source 的长度,因为在计算 Attention 的过程中,Source 中的
Key 和 Value 合二为一,指向的是同一个东西,也即输入句子中每个单词对应的语义编码,
所以可能不容易看出这种能够体现本质思想的结构。
从上图可以引出另外一种理解,也可以将 Attention 机制看作一种软寻址(Soft
Addressing):Source 可以看作存储器内存储的内容,元素由地址 Key 和值 Value 组成,
当前有个 Key=Query 的查询,目的是取出存储器中对应的 Value 值,即 Attention 数值。
通过 Query 和存储器内元素 Key 的地址进行相似性比较来寻址,之所以说是软寻址,指
的不像一般寻址只从存储内容里面找出一条内容,而是可能从每个 Key 地址都会取出内容,
取出内容的重要性根据 Query 和 Key 的相似性来决定,之后对 Value 进行加权求和,这