(六)Attention 是咋回事儿?

Seq2Seq 的局限

Seq2Seq 仍有记忆问题,当待翻译的句子长度较长时,它会遗忘较早的 。

Attention

加上 attention,Seq2Seq 不会忘了原始输入,Decoder 每次生成时都回去重新看一遍 Encoder 的所有输入(计算一番),知道要额外关注哪些词,效果很好,但是带来了更多的计算。

Encoder 的最终输出的 hm\bold h_m 同时也是 Decoder的 s0\bold s_0 ,它和每一个 hi\bold h_i 计算出 mmαi\bold{\alpha_{i}} ,称为权重向量(weight),α\bold \alphah\bold h 点乘(向量相乘相加)得到 c0\bold c_0 称为上下文向量(Context Vector),即 Attention 层的输出(之一)。

权重向量 α\bold \alpha 的具体的计算过程是:

  1. 线性变换:

    ki=WKhik_i=\bold W_K \cdot \bold h_i, for i=1i = 1 to mm
    qo=WQs0q_o=\bold W_Q \cdot \bold s_0

  2. 内积

    α~i=kiTq0\tilde \alpha_i=k^T_i \bold q_0, for i=1i=1 to mm

  3. 标准化

    [α1,α2,,αm]=Softmax([α~1,α~2,,α~m])[\alpha_1,\alpha_2,\dots,\alpha_m]=Softmax([\tilde \alpha_1, \tilde \alpha_2,\dots,\tilde \alpha_m])

上下文向量 c0\bold c_0 的计算过程就简单很多,将 mmα\bold \alphah\bold h 相乘相加。

Decoder 端拿到 c0\bold c_0 之后,即可计算 s1\bold s_1 ,具体的方法是:

s1=tanh(A[x1s0c0]+b)\bold s_1 =\tanh(\bold A'\cdot \begin{bmatrix} \bold x_1'\\\bold s_0\\\bold c_0 \end{bmatrix} +\bold b )

相比 RNN,他多了一个 c0\bold c_0 向量。计算出 s1\bold s_1 之后,拿 s1\bold s_1 和 Encoder 端的 h\bold h 向量计算新的 α\bold \alphaα\bold \alphah\bold h 点乘得到 c1\bold c_1 ,重复这个过程,直到 Decoder 端输入结束。

复杂度分析

为计算一个 c\bold c,我们计算了 mm 个权重 α1,,αm\alpha_1,\dots,\alpha_m,Decoder 有 tt 个 状态,所以总共计算 mtmt 个权重。

总结

  • 标准的 Seq2Seq Decoder 只看当前状态
  • 有了 Attention 的 Seq2Seq 会看 Encoder 的所有状态
  • 有了 Attention 的 Seq2Seq Decoder 会知道不同程度的关注
  • 更高的时间复杂度,标准的 Seq2Seq:O(m+t)O(m+t),有了 Attention 的 Seq2Seq:O(mt)O(mt)

   转载规则


《(六)Attention 是咋回事儿?》 Harbor Zeng 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
(七)Self-Attention 是咋回事儿? (七)Self-Attention 是咋回事儿?
不局限于 seq2seq 模型,Self-Attention 思想可在原地计算模型应该关注的地方(Context Vector)。 SimpleRNN 是用 h0\bold h_0h0​ 和 x1\bold x_1x1​ 计算 h1\bold h_1h1​,而 Self-Attention 是使用 x1\bold x_1x1​ 和 c0\bold c_0c0​ 计算 h1\bold h_1h1​
2021-01-16
下一篇 
(五)Seq2Seq 做机器翻译 (五)Seq2Seq 做机器翻译
Seq2Seq 模型 Seq2Seq 模型,分为两个部分:Encoder 和 Decoder,每个部分都是基于 LSTM。 机器翻译的训练过程 Encoder 的最后一个单元的最终状态参数 h\bold hh 和 c\bold cc 作为 Decoder LSTM 第一个单元的起始状态参数。 h\bold hh 和 c\bold cc 里面包含了输入的英语句子 “go away” 的所有特征信
2021-01-16
  目录