序列到序列(seq2seq)是一种神经网络架构,于2014年提出,通过一对耦合网络将输入序列映射到可能长度不同的输出序列:一个编码器将输入压缩为固定长度的表示,一个解码器从该表示中逐元素生成输出序列。Seq2seq确立了编码器-解码器模式,这一模式成为神经机器翻译的基础,并直接推动了注意力机制及后来的Transformer架构的发展。
架构
在最初的表述中,编码器和解码器均实现为循环神经网络,通常使用LSTM单元以缓解简单循环设计中梯度消失的问题。编码器逐词处理输入序列(例如源语言中的句子),更新内部隐藏状态,并将其最终隐藏状态作为整个输入的摘要传递给解码器。随后,解码器以自回归模型的方式逐词生成输出标记,使用自身先前的输出作为输入来预测下一个标记,直到生成指定的序列结束标记为止。
起源
该架构在2014年由伊利亚·苏茨克维与Oriol Vinyals和Quoc Le在谷歌发表的论文《用神经网络进行序列到序列学习》中提出,展示了在多语言LSTM编码器-解码器上英法机器翻译的显著成果。大约同一时间,Kyunghyun Cho及其同事发表了一种密切相关的表述,并在同一编码器-解码器框架内引入了门控循环单元,作为LSTM的简化替代方案。
注意力机制集成
原始seq2seq设计的一个关键局限是其依赖单个固定长度向量来总结整个输入序列,这导致较长句子的性能下降,因为信息被压缩和丢失。这一瓶颈促使Dzmitry Bahdanau及其同事在2015年引入注意力机制,允许解码器回顾所有编码器隐藏状态,并在生成每个输出标记时动态加权输入中最相关的部分,显著提高了长序列的翻译质量,并将注意力确立为序列模型的标准组件。
遗产
带有注意力的Seq2seq成为神经机器翻译系统的主导架构,包括谷歌翻译在2016年转向全神经系统的举措,之后循环组件在2017年的Transformer架构中被完全移除,其标题“注意力就是你所需要的一切”直接引用了seq2seq研究所展示的该机制的有效性。Seq2seq确立的通用编码器-解码器框架,即将一个序列映射到另一个序列,在概念上仍对现代自然语言处理至关重要,支撑着从摘要生成到代码生成等任务,尽管原始架构中的循环构建块几乎已被基于注意力的深度学习设计完全取代。