AI技术讲座精选:NLP 模型到底选 RNN 还是 CNN?
摘 要
深度神经网络(DNNs)的出现使得自然语言处理领域(NLP)发生了翻天覆地的变化。卷积神经网络(CNN)和循环神经网络(RNN)是深度神经网路(DNN)的两种主要的架构类型,目前正在大范围的研究当中,用于处理各种各样的 NPL 任务。CNN 的特点是善于抽取位置不变特征,而 RNN 的特点是善于按序列对单元进行建模。目前很多最先进的 NLP 任务之所以不断切换模型,就是因为 CNN 和 RNN 之间特点的差异性。本文是第一篇基于各种各样典型的 NLP 任务来系统的比较 CNN 和 RNN 的文章,旨在为用户选择 DNN 架构类型的时候提供基本性的指导。
简 介
自然语言处理(Natural Language Processing,简称 NLP)的发展得益于深度神经网络(Deep Neural Networks,简称 DNN)的复苏,因为 DNN 不仅性能高且需要的设计性特征少。DNN 有两个主要的架构:卷积神经网络(Convolutional Neural Network,简称 CNN)(LeCun et al.,1998)和循环神经网络(Recurrent Neural Network,简称 RNN)(Elman, 1990)。闸门机制的进步缓解了基础 RNN 的一些限制,最终形成两种主流的 RNN 类型:长短型记忆(Long Short-Term Memory,简称 LSTM)(Hochreiter and Schmidhuber,1997)和循环门单元(Gated Recurrent Unit,简称 GRU)(Cho et al., 2014)。
一般来说,CNN 是分层架构,RNN 是连续结构。在处理语言的任务上,我们怎么去选择呢?基于它们的特性“分层(CNN) vs. 连续(RNN)”,我们倾向于为分类类型的任务选择 CNN,例如情感分类,因为情感通常是由一些关键词来决定的;对于顺序建模任务,我们会选择 RNN,例如语言建模任务,要求在了解上下文的基础上灵活建模。这一结论非常明显,但是目前的 NLP 文献中并没有支持性的文章。例如,RNN 在文本级别的情感分类表现得很好(Tang et al., 2015);而最近 Dauphin 等人(2016)则表示:尽管 LSTM 一直被视为更合适的选择,但是封闭的 CNN 在语言建模任务上同比 LSTM 更胜一筹。总之,在对特定的 NLP 问题的 DNN 选型上,大家还没有达成共识。
本文将对 CNN、GRU 和 LSTM 在很多门类的 NLP 任务上进行系统的对比,诸如:情感/关系分类、文本含义、答案选择、在 Freebase 上做问题关系匹配、 Freebase 上的答疑路径以及词性标注。
我们的实验支持两个重要的发现。(i)CNN 和 RNN 为文本分类任务提供补充信息。至于哪个架构的执行效果更好一点,取决于对整个序列的语义理解的重要程度。(ii)学习速率的变化相对平稳,而隐藏层尺寸(hidden size)和批尺寸(batch size)则会引起很大的波动。
结 论
本篇文章比较了3个使用最广泛的 DNN——CNN、GRU 和 LSTM——它们是 NLP 任务中具有代表性的样本。我们发现 RNN 表现较好并且在大范围内的任务中都较为稳健,除了以下种情况:当前的任务本质上是一项在一些情感探测和问答匹配设置中识别关键词的任务。另外,隐藏层尺寸和批尺寸会使 DNN 的性能变得非常不稳定。由此表明,如果想要获得性能良好的 CNN 和 RNN,那么对这两个参数的优化将是非常重要的。
【在 AI100 公众号后台回复关键词 “CNN与RNN” 下载原文】
本文由 AI100 编译,转载需得到本公众号同意。
编译:AI100
原文链接:https://arxiv.org/pdf/1702.01923.pdf