Original url:
https://blog.youkuaiyun.com/ccbrid/article/details/79730645
以下内容摘自(比较详细的叙述):https://zhuanlan.zhihu.com/p/31547842
1.attention的提出:
把输入X编码成一个固定的长度,对于句子中每个词都赋予相同的权重,这样是不合理的,没有区分度往往使模型性能下降。因此提出Attention Mechanism(注意力机制),用于对输入X的不同部分赋予不同的权重,进而实现软区分的目的。
Kelvin Xu等人与2015年发表论文《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》,在Image Caption中引入了Attention,当生成第i个关于图片内容描述的词时,用Attention来关联与i个词相关的图片的区域。
2. Soft Attention:
传统的Attention Mechanism就是Soft Attention,即通过确定性的得分计算来得到attended之后的编码隐状态。Soft Attention是参数化的(Parameterization),因此可导,可以被嵌入到模型中去,直接训练。梯度可以经过Attention Mechanism模块,反向传播到模型其他部分。
也有称作TOP-down Attention。
3. Hard Attention:
相反,Hard Attention是一个随机的过程。Hard Attention不会选择整个encoder的隐层输出做为其输入,Hard Attention会依概率Si来采样输入端的隐状态一部分来进行计算,而不是整个encoder的隐状态。为了实现梯度的反向传播,需要采用蒙特卡洛采样的方法来估计模块的梯度。
两种Attention Mechanism都有各自的优势,但目前更多的研究和应用还是更倾向于使用Soft Attention,因为其可以直接求导,进行梯度反向传播。
有一篇CVPR2018的论文《Bottom-up and Top-down attention for image captioning and visual question answering》,将Hard Attention应用到image caption上,也称作Bottom-up Attention。
更多关于attention
2.2 local / global attention
2.3 Self Attention
还有一篇相对来说理论性较强的https://www.cnblogs.com/taojake-ML/p/6113459.html