seq2seq attention

Posted callyblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了seq2seq attention相关的知识,希望对你有一定的参考价值。

1.seq2seq:分为encoder和decoder

  a.在decoder中,第一时刻输入的是上encoder最后一时刻的状态,如果用了双向的rnn,那么一般使用逆序的最后一个时刻的输出(网上说实验结果比较好) 

  b.每一时刻都有一个输出,即:[batch_size,  decoder_output_size],经过一个MLP后,都跟词汇表中的每一个词都对应了一个概率,即: [batch_size, vocab_size]。

  c.将每一个时刻的输出拼接起来,那么就是[batch_size, decoder_timestep, vocab_size],然后用beam search去寻找最优的解。

 

2.seq2seq attention: 在decoder的时候加入了attention机制

  a.在decoder中,第一时刻输入的是上encoder最后一时刻的状态,如果用了双向的rnn,那么一般使用逆序的最后一个时刻的输出c0(网上说实验结果比较好)

  b.attention:

    1).用c0去跟encoder的所有时间步骤中的输入,进行match,即:用c0去和所有的输入求一个相似度,那么这个就是一个权值(attention的权值),含义就是当前时刻的输入是有encoder中的哪几个时刻来决定的,就是神经网络翻译中的那张经典的图。

    2).decoder第一个时间步骤c1,会输出一个向量,那么再重复1)中的步骤用c1替换c0

  c.将每一个时刻的输出拼接起来,那么就是[batch_size, decoder_timestep, vocab_size],然后用beam search去寻找最优的解。

 


以上是关于seq2seq attention的主要内容,如果未能解决你的问题,请参考以下文章

对seq2seq的粗浅认识

seq2seq 入门

多标签文本分类代码详解Seq2Seq模型

文本生成seq2seq框架

文本生成seq2seq框架

闲聊机器人seq2seq模型的原理