ci=∑j=1Txαijhj
- αij=∑k=1Txexp(eik)exp(eij) 是隐藏状态 hj 的权重
- 用 softmax 得到一个强度表征
- 为什么需要使用 softmax 做归一化 #card
- 避免 attention score 数值过大,导致优化不稳定(数值小的部分)
- 保证 score 非负
eij=a(si−1,hj) 是注意力打分机制
- 代表 → 解码器状态 si−1 和解码器状态 hj 之间的匹配程度
- 常用的注意力计算方式
- 加性模型 → s(xi,q)=vTtanh(Wxi+Uq)
- qkv 矩阵较大时效果超越 dot production
- 点积模型 → s(xi,q)=xiTq
- 缩放点积模型 → s(xi,q)=dxiTq
- 双线性模型 → s(xi,q)=xiTWq
聚焦式(focus)注意力:
- 自上而下的有意识的注意力,主动注意——是指有预定目的、依赖任务的、主动有意识地聚焦于某一对象的注意力。

Attention (Query, Source) =i=1∑Lx Similarity (Query, Keyi)∗Valuei
流程可视化

为什么要用 attention
- 参数少,速度快,能缓解神经网络模型复杂度。解决 RNN 不能并行计算问题
- 效果显著
按计算区域划分
- soft-attention(global attention) → query 对所有 key 求相似度权重,得到 m*n 的 attention score
- att((K,V),q)=i=1∑Nαivi=i=1∑N∑jexp(s(kj,q))exp(s(ki,q))vi
- hard-attention → 直接精准定位到某个 key,其余的 key 不管,单个样本 query 仅对单个 key 进行相似度计算,得到 m*1 的 attention score
- local-attention → hard定位单个key,以这个 key 为中心取周围区域,计算各个窗口的 soft-attention,得到 m*k 的 attention score
按所用信息
按使用模型
- CNN 是基于 N-gram 的局部编码,RNN 由于梯度消失问题也只能建立短距离依赖。
- 解决上面的问题有两种方法:利用深层神经网络来获取远距离的信息交互或者是使用全连接网络。
- [[LSTM]] 对所有 step 的 hidden state 进行加权,注意力集中到整段文本中比较重要的 hidden state 信息。
[[Attention 按 QKV 划分]]
注意力计算方式 Neural Machine Translation by Jointly Learning to Align and Translate
Ref