Seq2seq

eq2seq模型是以编码(Encode)和解码(Decode)为代表的架构方式,seq2seq模型是根据输入序列X来生成输出序列Y. 相比传统RNN,可以实现N2M的变长序列输出. Seq2seq

1. Encoder

Encoder-Decoder结构先将输入数据编码成一个上下文向量c Seq2seq向量c可以有不同的形式,如(1)(2)(3).

2. Decoder

  • 将c当做之前的初始状态h0输入到Decoder中
    Seq2seq
  • 将c当做每一步的输入
    Seq2seq

3. Else

    Encoder-Decoder,其中Encoder 部分应该是非常容易理解的,就是一个RNNCell(RNN ,GRU,LSTM 等) 结构。 每个 timestep, 我们向 Encoder 中输入一个字/词(一般是表示这个字/词的一个实数向量),直到我们输入这个句子的最后一个字/词 XT ,然后输出整个句子的语义向量 c(一般情况下, c=hXT , XT 是最后一个输入)。
    因为 RNN 的特点就是把前面每一步的输入信息都考虑进来了,所以理论上这个 c 就能够把整个句子的信息都包含了,我们可以把 c 当成这个句子的一个语义表示,也就是一个句向量。
    在 Decoder 中,我们根据 Encoder 得到的句向量 c, 一步一步地把蕴含在其中的信息分析出来。