Attention机制
- 2017 年,Google 机器翻译团队发表的《Attention is All You Need》中,完全抛弃了RNN和CNN等网络结构,而仅仅采用Attention机制来进行机器翻译任务,并且取得了很好的效果,注意力机制也成为了大家近期的研究热点。
1. Attention机制的本质思想
- Attention用于计算“相关程度”
- 将Source中的构成元素想象成是由一系列的< Key,Value >数据对构成,此时给定Target中的某个元素Query,通过计算Query和各个Key的相似性或者相关性,得到每个Key对应Value的权重系数,然后对Value进行加权求和,即得到了最终的Attention数值。

- 本质上Attention机制是对Source中元素的Value值进行加权求和,而Query和Key用来计算对应Value的权重系数
- Attention可理解为从大量信息中有选择地筛选出少量重要信息并聚焦到这些重要信息上,忽略大多不重要的信息
- 注:在机器翻译的例子里,因为在计算Attention的过程中,Source中的Key和Value合二为一,指向的是同一个东西,也即输入句子中每个单词对应的语义编码
- 可以将Attention计算过程抽象为三个阶段:
- 阶段1:计算相似性;
- 阶段2:权重归一化;
- 阶段3:加权求和

2. Attention机制
- 目前绝大多数具体的注意力机制计算方法都符合三阶段抽象计算过程
-
阶段1:计算相似性可以引入不同的函数和计算机制,最常见的方法包括

-
阶段2:权重归一化
- 第一阶段产生的分值根据具体产生的方法不同其数值取值范围也不一样,第二阶段引入类似SoftMax的计算方式对第一阶段的得分进行数值转换、一方面可以进行归一化,将原始计算分值整理成所有元素权重之和为1的概率分布;另一方面也可以通过SoftMax的内在机制更加突出重要元素的权重。 即一般采用如下公式计算:

- 阶段3:加权求和,得到Attention数值
- 第二阶段的计算结果\(a_{i}即为Value_{i}\)对应的权重系数,然后进行加权求和即可得到Attention数值:

3. Attention 用于NLP的小结


浙公网安备 33010602011771号