- 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
- 🍖 原作者:K同学啊 | 接辅导、项目定制
seq2seq是一种常见的NLP模型架构,常见的任务有机器翻译任务,文本摘要任务等。
Seq2seq是一种编码(Encoder)-解码(Decoder)的结构,输入和输出可以是不等长的序列。
Seq2seq包括三个部分:编码器,解码器,以及连接两者的固定大小的状态向量。Encoder通过学习输入,将其编码成一个固定大小的状态向量,然后将状态向量传给Decoder,Decoder再通过对状态向量的学习来进行输出。
-
-
·Encoder是一个RNN,也可以是LSTM、GRU等,接收的是每一个单词的词向量,和上一个时间点的隐藏状态。输出的是这个时间点的隐藏状态。其中激活函数可以是sigmoid、tanh、Relu、softmax等。
-
Decoder是个RNN,也可以是LSTM、GRU等,将encoder得到的语义向量作为初始状态输入到Decoder的RNN中,得到输出序列。可以看到上一时刻的输出会作为当前时刻的输入,而且其中语义向量只作为初始状态参与运算,后面的运算都与语义向量无关。
decoder处理方式还有另外一种,就是语义向量参与了序列所有时刻的运算,上一时刻的输出仍然作为当前时刻的输入,但语义向量会参与所有时刻的运算。
-
·进一步加入了attention机制的seq2seq翻译准确率大大提升,attention可使模型有区分度有重点的关注输入序列。
-
(参考链接https://blog.csdn.net/kevinjin2011/article/details/104818230)