Attention

Seq2Seq瓶颈

  1. Seq2Seq编码器的所有信息都编码到一个context信息中,一个向量很难包含所有文本信息,并且Seq2Seq很难处理长序列。
  2. 基于RNN的Decoder需要依赖上一时间步的context,这给训练带来了很大难度。

Attention

Attention对上述瓶颈进行了如下改进:

  1. 编码器会把更多的信息传递给解码器,编码器将所有时间步的hidden state全部给解码器。
  2. 为解决长距离依赖问题,解码器在产生context之前,做了一个额外的attention处理。
    1. 将所有的hidden state传递给所有解码器。
    2. 对每个hidden state赋予不同权重,进行放大或缩小:首先给每个hidden state计算出一个分数(先忽略这个分数的计算过程),并将所有分数归一化
    3. 将所有hidden state根据对应分数进行加权求和,得到对应时间步的context向量。