最近看了很对关于attention机制的文章,发现很多都讲的很抽象,有的很难理解。在这里做一次归纳性的总结,语言尽可能的精简。有讲错的地方欢迎指正。

概念

attention机制的本质是从关注全部到关注整体

举个例子,比如视线追踪,他可以实时的显示你关注的地方,比如下图,途中白色的圈表示关注的地方(忽略中国boy奇怪的关注点)
《attention机制》学习笔记

原理

下面是attention机制的工作过程,以翻译为例

《attention机制》学习笔记
它使用的是encoder-decoder架构,但并不是所有的attention机制都是这个架构的。比如在做情感分析时,很多models都用了attention机制,但是大部分都是把获得的注意力作为一个权重向量/矩阵使用。

下图是剥离encoder-decoder的attention机制
《attention机制》学习笔记
其中Q是查询向量,K={key1,key2,…,keyn}是键向量,V={value1,value2,…,valuen}是值向量。

大白话来说,就是在仓库(source)里面有很对的货物(value),每一个货物都有自己编号(key)。当我们想从仓库中找电脑(query)时,我们就可以找与电脑相关的货物(越是相关的分配的权重就越高)。

计算过程

下图是attention机制的计算过程图,主要分为三个阶段《attention机制》学习笔记 阶段一,Q和K进行相似度计算,得到权重

阶段二,将权重进行归一化处理,得到直接可用的权重

阶段三,将权重进行加权求和

attention机制的优点

  1. 参数少
  2. 运行快
  3. 效果好

相关文章: