Attention小结

符号说明:

  • 当前是第t
  • s_t:decoder阶段隐状态
  • h_t:encoder阶段隐状态
  • N:encoder步数

BahdanauAttention

encoder-decoder模型为例,假设当前是第t步:

LuongAttention

公式和上面基本一样,只有两点不同:

  1. BahdanauAttention在计算scores的时候用上一个隐藏状态$s_{t-1}$,而LuongAttention使用当前隐藏状态$s_t$
  2. 在计算scores的时候BahdanauAttention使用的是encoder阶段各层的状态contact后计算,而LuongAttention仅计算最上层。

scores

其实各种Attention不同点都在计算scores的时候作文章下面是几种计算scores的方式:

总结

其实所有的attention都归结为三个点:Q,K,V,所有的attention通用公式其实就是:

而且一般K=V
encoder-decoder翻译模型中,Q指的是译文,KV指的是原文.
Q=K=V的时候,其实也就是self-attention了,也就是transform模型中的关键点:

其中$\sqrt d_k$按道理应该不加根号,因为是计算余弦相似度,但其实每个单词维度都相同,除不除单词向量的模就没有什么意义了,随便除个数方式数据太大就行。