序列到序列

Seq2Seq

简介

序列到序列学习(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. 把输入序列编码进状态向量
  2. 从大小为 1 的目标序列开始
  3. 馈送状态向量和 1 个字符的目标序列到解码器从而为下一字符生成预测
  4. 通过这些预测采样下一个字符(我们使用 argmax)
  5. 把采样的字符附加到目标序列
  6. 不断重复直至我们生成序列最后的字符或者达到字符的极限

相同的处理也可被用于训练没有「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
1982Hopfield网络提出Hopfield, J. (1982). "Neural networks and physical systems with emergent collective computational abilities", Proc. NatL Acad. Sci. USA, Vol. 79 (pp. 2554-2558).
1997LSTM 单元的提出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 - 2002Felix.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.
2014Google研究提出基于序列到序列(seq2seq)的机器翻译模型Sutskever, I., Vinyals, O., & Le, Q. (2014). "Sequence to Sequence Learning with Neural Networks", arXiv preprint arXiv:1409.3215v3, 2014.
2014Dzmitry Bahdanau, Yoshua Bengio等人提出了Attention MechanismBahdanau, 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.
2018Tao 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


相关机构
  • Google Brain
  • MILA(University of Montreal - Montreal Institute for Learning Algorithms)
  • Machine Learning and Artificial Neural Networks, IDSIA
  • Natural Language and Speech, Baidu Research
  • 聊天机器人(CR组),哈尔滨工业大学社会计算与信息检索研究中心
相关人物
Sepp Hochreiter
Sepp Hochreiter
Sepp Hochreiter 是一名德国计算机科学家。 1991 年,Sepp Hochreiter 发表了德语论文,探讨了循环神经网络的梯度随着序列长度增加倾向于消失或爆炸。与 Yoshua Bengio 的相关工作几乎同时,并且开发了 LSTM 的雏形。
韦福如
韦福如
韦福如是微软亚洲研究院机器阅读理解研究的主要负责人、微软亚洲研究院自然语言计算研究组主管研究员。《麻省理工科技评论》中国区35岁以下科技创新35人榜单入选者。
约书亚·本吉奥
约书亚·本吉奥
约书亚·本希奥(法语:Yoshua Bengio,1964年-)是一位加拿大计算机科学家,因人工神经网络和深度学习领域的研究而闻名。Yoshua Bengio于1991年获得加拿大麦吉尔大学计算机科学博士学位。经过两个博士后博士后,他成为蒙特利尔大学计算机科学与运算研究系教授。他是2本书和超过200篇出版物的作者,在深度学习,复现神经网络,概率学习算法,自然语言处理和多元学习领域的研究被广泛引用。他是加拿大最受欢迎的计算机科学家之一,也是或曾经是机器学习和神经网络中顶尖期刊的副主编。
奥里奥尔·温亚尔斯
奥里奥尔·温亚尔斯
Oriol Vinyals是DeepMind的研究科学家,主要研究深度学习,博士毕业于加州大学伯克利分校。
亚当·考特斯
亚当·考特斯
Adam Coats,前百度硅谷人工智能实验室主任,于2017年9月离职,现任 Khosla Ventures 机构运营合伙人。Adam Coats在斯坦福大学获得了计算机科学本科、硕士、博士学位,并致力在用于自动驾驶汽车的计算机视觉、用于语言识别的深度学习及用于直升机特技的机器学习等方面进行研究。
초큥현(曹景贤)
초큥현(曹景贤)
纽约大学CILVR组,计算机科学和数据科学组助理教授。Facebook AI研究机构(FAIR)研究科学家。
Dzmitry Bahdanau
Dzmitry Bahdanau
伊利亚·苏特斯威夫
伊利亚·苏特斯威夫
Ilya Sutskever是一名研究机器学习的计算机科学家,目前担任OpenAI的研究总监。Sutskever在多伦多大学获得了计算机科学学士、硕士和博士学位,导师是Geoffrey Hinton。博士毕业后进入斯坦福大学,成为吴恩达的博士后。后担任DNNresearch的联合创始人。2013年,Ilya Sutskever 与Hinton一起加入谷歌大脑团队。他后来离开谷歌,成为新成立的OpenAI研究院的研究总监。
Chi-Hyuck Jun
Chi-Hyuck Jun
菲利克斯亚历山大格尔斯
菲利克斯亚历山大格尔斯
于尔根·施密德胡伯
于尔根·施密德胡伯
Donald Olding Hebb
Donald Olding Hebb
简介
相关机构
相关人物