(七)Self-Attention 是咋回事儿?

不局限于 seq2seq 模型,Self-Attention 思想可在原地计算模型应该关注的地方(Context Vector)。

SimpleRNN 是用 h0\bold h_0x1\bold x_1 计算 h1\bold h_1,而 Self-Attention 是使用 x1\bold x_1c0\bold c_0 计算 h1\bold h_1

h1=tanh(A[x1c0]+b)\bold h_1 =\tanh(\bold A\cdot \begin{bmatrix} \bold x_1\\\bold c_0 \end{bmatrix} +\bold b )

当然 h0\bold h_0 此时是零向量,所以 c1=h1\bold c_1 = \bold h_1

再往下,由 c1\bold c_1x2\bold x_2 计算出 h2\bold h_2

再由 h2\bold h_2 和每一个 hi\bold h_i 计算出 αi\bold \alpha _ i 向量

再由 α\bold \alphah\bold h 向量点乘的到 c2\bold c_2

重复这个过程,直到所有输入都计算一遍。

总结:

  • 有了自注意力机制,RNN更不容易遗忘
  • 对于新的输入,会去关注相关的上下文

   转载规则


《(七)Self-Attention 是咋回事儿?》 Harbor Zeng 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
下一篇 
(六)Attention 是咋回事儿? (六)Attention 是咋回事儿?
Seq2Seq 的局限 Seq2Seq 仍有记忆问题,当待翻译的句子长度较长时,它会遗忘较早的 。 Attention 加上 attention,Seq2Seq 不会忘了原始输入,Decoder 每次生成时都回去重新看一遍 Encoder 的所有输入(计算一番),知道要额外关注哪些词,效果很好,但是带来了更多的计算。 Encoder 的最终输出的 hm\bold h_mhm​ 同时也是 D
2021-01-16
  目录