Sequence-to-sequence(序列到序列)是一种深度学习模型,在机器翻译,文本摘要和图像标注等任务中取得了很好的效果。谷歌翻译在2016年底开始使用这种模型。两篇论文解释了这些模型(Seq2Seq,http://emnlp2014.org/papers/pdf/EMNLP2014179.pdf)
然而我发现,充分理解模型并实现它需要理解一系列相互叠加的概念。我觉得可视化模型会让人更容易理解——这就是我写这篇文章的原因。在阅读本文之前你要知道一些深度学习方面的知识。我希望这篇文章可以让你更容易理解上面两篇以及未来有关的论文。
序列到序列模型是输入一个序列(如词,段落,图片特征等等),然后输出一个序列的模型。一个训练模型工作方式如下图:
height="198" width="650" src="https://jalammar.github.io/images/seq2seq_1.mp4">一个在神经网络翻译中,序列是一系列词,模型一个词一个词的处理,输出一系列词。
height="198" width="650" src="https://jalammar.github.io/images/seq2seq_2.mp4">工作原理
模型内部是由编码器(encoder)和解码器(decoder)组成。
编码器处理每个输入的序列,它将它从序列中捕获的信息转为向量(称为上下文 context)。在处理完整个输入序列后,编码