历史注记
20 世纪 80 年代,加州大学圣迭戈分校并行分布式处理(Parallel Distributed Processing,PDP)小组开展了具有影响力的 RNN 研究。其中许多工作面向人类认知建模,而非实用的 NLP 应用(Rumelhart and McClelland, 1986c;McClelland and Rumelhart, 1986)。Elman(1990)引入了前馈网络中在隐藏层进行循环的模型(Elman 网络)。Jordan(1986)研究了类似架构,只是在输出层加入循环;Mathis and Mozer(1995)则在隐藏层之前加入循环上下文层。把循环网络展开为等价前馈网络的可能性在 Rumelhart and McClelland(1986c)中有所讨论。
与认知建模研究并行,RNN 也在信号处理和语音领域的连续域中得到广泛研究(Giles et al., 1994;Robinson et al., 1996)。Schuster and Paliwal(1997)引入了双向 RNN,并报告了其在 TIMIT 音素转写任务上的结果。
从理论上看,RNN 很有趣,但训练 RNN 以及管理长序列上下文的困难阻碍了实用应用的发展。Hochreiter and Schmidhuber(1997)以及 Gers et al.(2000)引入 LSTM 后,情况发生了变化。在信号处理与语言处理交界的任务上,研究者展示了令人印象深刻的性能提升,包括音素识别(Graves and Schmidhuber, 2005)、手写识别(Graves et al., 2007),尤其是语音识别(Graves et al., 2013)。
随着 Collobert and Weston(2008)及 Collobert et al.(2011)的工作,神经网络在实际 NLP 问题中的应用迅速升温。这些工作使用了学习得到的词嵌入、卷积网络和端到端训练,在词性标注、分块、命名实体识别和语义角色标注等多个标准共享任务上取得了接近当时最先进的性能,而且不依赖人工设计的特征。
将 LSTM 与基于 word2vec(Mikolov et al., 2013a)和 GloVe(Pennington et al., 2014)预训练词嵌入集合的方法,很快在许多常见任务中占据主导地位:词性标注(Ling et al., 2015)、句法分块(Søgaard and Goldberg, 2016)、命名实体识别(Chiu and Nichols, 2016;Ma and Hovy, 2016)、观点挖掘(Irsoy and Cardie, 2014)、语义角色标注(Zhou and Xu, 2015a)以及 AMR 解析(Foland and Martin, 2016)。与统计机器学习早期的进展浪潮一样,这些进步得益于 CONLL、SemEval 等共享任务提供的训练数据,以及 Ontonotes(Pradhan et al., 2007b)和 PropBank(Palmer et al., 2005)等共享资源。
现代神经编码器—解码器方法由 Kalchbrenner and Blunsom(2013)率先提出,他们使用 CNN 编码器和 RNN 解码器。Cho et al.(2014)(他们创造了“编码器—解码器”这一名称)和 Sutskever et al.(2014)随后展示了如何在编码器和解码器中都使用扩展的 RNN。生成式解码器接收输入的软加权作为输入这一思想,也就是注意力的核心思想,最早由 Graves(2013)在手写识别背景下提出。Bahdanau et al.(2015)扩展了这一思想,将其命名为“注意力”,并将其应用于机器翻译。