序列到序列学习(Seq2Seq)是指训练模型从而把一个域的序列(比如英语语句)转化为另一个域的序列(比如法语中的对应语句):
"the cat sat on the mat" -> [Seq2Seq model] -> "le chat etait assis sur le tapis"
这是一种通用的端到端序列学习方法,它基于编码-解码(Encoder - Decoder)的架构。一般情况下,输入序列和输出序列有不同的长度(比如机器翻译)。这就需要一个更高级的设置,尤其在没有进一步语境的「序列到序列模型」时。下面是其工作原理:
- 一个 RNN 层(或其中的堆栈)作为「编码器」:它处理输入序列并反馈其内部状态。注意我们抛弃了编码器 RNN 的输出,只恢复其状态。该状态在下一步中充当解码器的「语境」。
- 另一个 RNN 层作为「解码器」:在给定目标序列先前字母的情况下,它被训练以预测目标序列的下一个字符。具体讲,它被训练把目标序列转化为相同序列,但接下来被一个时间步抵消,这一训练过程在语境中被称为「teacher forcing」。更重要的是,编码器把其状态向量用作初始状态,如此编码器获得了其将要生成的信息。实际上,在给定 targets[...t] 的情况下,解码器学习生成 targets[t+1...],前提是在输入序列上。
在推理模式中,即当要解码未知的输入序列,我们完成了一个稍微不同的处理:
- 把输入序列编码进状态向量
- 从大小为 1 的目标序列开始
- 馈送状态向量和 1 个字符的目标序列到解码器从而为下一字符生成预测
- 通过这些预测采样下一个字符(我们使用 argmax)
- 把采样的字符附加到目标序列
- 不断重复直至我们生成序列最后的字符或者达到字符的极限
相同的处理也可被用于训练没有「teacher forcing」的 Seq2Seq 网络,即把解码器的预测再注入到解码器之中。
图片及描述来源:十分钟搞定Keras序列到序列学习(附代码实现)|机器之心, https://www.jiqizhixin.com/articles/2017-10-03-2
发展历史
Seq2seq虽然是近年的研究,但其所基于的循环神经网络(RNN)和长短期记忆(LSTM)则是很久以前就被提出的。RNN的研究始于1980年前后,1982年的Hopfield网络运用循环连接的结构模拟人类的联想记忆,是早期比较知名的成果。LSTM则最早由 Sepp Hochreiter 和 Jürgen Schmidhuber 在1997 年提出, 随后在2000年被Felix Gers团队改良。
2014年,虽然DNN在大型标记训练集可用时效果很好,但不能用于将序列映射到序列的问题,Ilya Sutskever等人提出了seq2seq,对机器翻译,机器理解等领域产生了重大影响。不过很快人们就发现,seq2seq的表现会随着句子长度快速下降,并且不能区别对待重要性不同的单词。
针对以上缺陷,Dzmitry Bahdanau, Yoshua Bengio等人发表Neural machine translation by jointly learning to align and translate,提出了Attention Mechanism,推动了另一研究方向——注意力机制——的流行,在这里不过多赘述。
2017年,百度研究院发表论文提出冷聚变(Cold Fusion)方法,即在 Seq2Seq 模型训练过程中加入语言模型,实现更快地收敛、更好的泛化,以及仅需少量标注数据即可实现向新域的完全迁移。
2018年,哈尔滨工业大学社会计算与信息检索研究中心研究了面向任务的对话语义理解的序列到序列数据增强问题。相比之前的工作在生成新语句时不考虑语句间关系,他们利用训练数据中与一个语句具有相同语义的其他句子,提出了基于序列到序列生成的数据增强框架。他们将多样性等级结合到话语表示中以使模型产生多样化的语句数据,而这些多样化的新语句有助于改善语言理解模块。在航空旅行信息系统数据集(ATIS)以及一个新标注的斯坦福多轮多域对话数据集(Task-Oriented Dialogue Dataset)上的实验结果表明,当训练集仅包含数百句语句时,他们的框架在F值上分别实现了6.38和10.04的显著提升。
同年,Tao Ge, Furu Wei, Ming Zhou基于 seq2seq 框架,提出了一种针对语法纠错(GEC)的新的流畅度提升学习和推断机制。流畅度提升学习可以在训练期间生成多个纠错句对,允许纠错模型学习利用更多的实例提升句子的流畅度,同时流畅度提升推断允许模型通过多个推断步骤渐进地修改句子。结合流畅度提升学习和推断与卷积 seq2seq 模型,他们的方法取得了当前最佳的结果:分别在 CoNLL-2014 标注数据集上得到 75.02 的 F0.5 分数,在 JFLEG 测试集上得到 62.42 的 GLEU 分数,这使其成为首个在两个基准数据集上都达到人类水平(CoNLL72.58,JFLEG62.37)的 GEC 系统。
主要事件
年份 | 事件 | 相关论文/Reference |
1982 | Hopfield网络提出 | Hopfield, J. (1982). "Neural networks and physical systems with emergent collective computational abilities", Proc. NatL Acad. Sci. USA, Vol. 79 (pp. 2554-2558). |
1997 | LSTM 单元的提出 | Hochreiter, S, and J Schmidhuber. “Long Short-Term Memory.” Neural Computation 9, no. 8 (November 1997): 1735–80. doi:10.1162/neco.1997.9.8.1735 |
2001 - 2002 | Felix.A. Gers 等提出 Peephole LSTM 的结构 | Gers, F. A.; Schmidhuber, J. (2001). "LSTM Recurrent Networks Learn Simple Context Free and Context Sensitive Languages". IEEE Transactions on Neural Networks. 12 (6): 1333–1340. doi:10.1109/72.963769; Gers, F.; Schraudolph, N.; Schmidhuber, J. (2002). "Learning precise timing with LSTM recurrent networks". Journal of Machine Learning Research. 3: 115–143. |
2014 | Google研究提出基于序列到序列(seq2seq)的机器翻译模型 | Sutskever, I., Vinyals, O., & Le, Q. (2014). "Sequence to Sequence Learning with Neural Networks", arXiv preprint arXiv:1409.3215v3, 2014. |
2014 | Dzmitry Bahdanau, Yoshua Bengio等人提出了Attention Mechanism | Bahdanau, D.; Cho, K.; Bengio, Y. (2014).Neural Machine Translation by Jointly Learning to Align and Translate. arXiv:1409.0473. |
2017 | 百度研究院发表论文提出冷聚变(Cold Fusion)方法,即在 Seq2Seq 模型训练过程中加入语言模型,实现更快地收敛、更好的泛化 | Sriram, A.; Jun, H.; Satheesh, S.; Coates, A. (2017). Cold Fusion: Training Seq2Seq Models Together with Language Models. arXiv:1708.06426. |
2018 | Tao Ge, Furu Wei, Ming Zhou基于 seq2seq 框架,提出了一种针对语法纠错(GEC)的新的流畅度提升学习和推断机制 | Ge, T.; Wei, F.; Zhou, M. (2018). REACHING HUMAN-LEVEL PERFORMANCE IN AUTOMATIC GRAMMATICAL ERROR CORRECTION: AN EMPIRICAL STUDY. arXiv:1807.01270v5. |
2018 | 哈尔滨工业大学社会计算与信息检索研究中心研究了面向任务的对话语义理解的序列到序列数据增强问题 | Hou, Y.; Liu, Y.; Che, W.; Liu, T. (2018). Sequence-to-Sequence Data Augmentation for Dialogue Language Understanding. arXiv:1807.01554. |
发展分析
瓶颈
前文已经提到,seq2seq其中存在两个问题:
1)encoder 最后一个 hidden state,与句子末端词汇的关联较大,难以保留句子起始部分的信息。因此当句子过长时,模型性能下降很快。
2)句子中每个词都赋予相同的权重的做法是不合理的,这样没有足够的区分度。
未来发展方向
语音识别领域目前的端到端系统基本上基于两个框架,一个是 CTC(Connectionist Temporal Classification)框架,一个是基于注意力机制的 seq2seq 框架,因此其商业价值仍然很高。为解决seq2seq的缺陷而发展的注意力机制以及基于seq2seq对其性能进行的改进(如更好的泛化能力)都是发展方向。
Contributor: Yuanyuan Li