关于seq2seq,我看过这位博主的文章,并且也去实践过,当时还将他的文章整理成博客笔记。但是,当时对seq2seq的理解确实不是很到位,所以昨天看到这位博主时是很疑惑的。原本以为encoder端的输出直接接一个decoder就行,但是这位博主还重复利用了encoder的输出向量,每次都与decoder的输出混合送入分类器预测。而一般的seq2seq只是在开始的阶段参与了计算,后续并没有。此篇博客,是我对作者的整理,仅供自己学习之用。
Seq2Seq简介
seq2seq,顾名思义就是序列对序列,一般应用与机器翻译,自动文摘,而本文正是用自动文摘举例(当时,机器翻译举例也简单)。
基本结构
假设输入为X=(a, b, c, d, e, f),需要的输出为Y=(P, Q, R, S, T),那么一个基本的seq2seq如下,encoder输出的向量参与每一次运算。图来自论文:
可能大家最常见到的是这个图,encoder输出的向量只参与一次运算的这种:
代码实现
源码部分,我还没写,先保留这三个连接
[1].https://mp.weixin.qq.com/s/IjX8ZztFdvUuHNEKxYMILw
[2]. https://blog.keras.io/a-ten-minute-introduction-to-sequence-to-sequence-learning-in-keras.html
[3]. Sam Wiseman and Alexander M Rush. Sequence-to-sequence learning as beam-search optimization. In EMNLP, 2016.