关于序列建模:为什么RNN和LSTM面临被抛弃!

2018 年 4 月 19 日 全球人工智能 Eugenio

高薪招聘兼职AI讲师和AI助教!


在 2014 年,RNN 和 LSTM 起死回生。我们曾经读过 Colah 的博客《Understanding LSTM Networks》和 Karpathy 的对 RNN 的颂歌《The Unreasonable Effectiveness of Recurrent Neural Networks》。不过,当时我们都「too young too simple」。现在,序列变换(seq2seq)才是求解序列学习的真正答案,序列变换还在语音到文本理解的任务中取得了优越的成果,并提升了 Siri、Cortana、谷歌语音助理和 Alexa 的性能。另外,还有机器翻译,现在机器翻译已经能将文本翻译为多种语言。在图像到文本、文本到图像的变换以及视频文字说明的应用中,序列变换也是卓有成效。

在 2015-2016 年间,出现了 ResNet 和 Attention 模型。从而我们知道,LSTM 不过是一项巧妙的「搭桥术」。并且注意力模型表明 MLP 网络可以被「通过上下文向量对网络影响求平均」替换。下文中会继续讨论这一点。


经过两年多的时间,我们终于可以说:放弃你的 RNN 和 LSTM 路线吧!我们能看到基于注意力的模型已越来越多地被用于谷歌、Facebook 和 Salesforce 的 AI 研究。它们都经历了将 RNN 模型和其变体用基于注意力的模型替换的过程,而这才刚刚开始。RNN 模型曾经是很多应用的构建基础,但相比基于注意力的模型,它们需要更多的资源来训练和运行。https://towardsdatascience.com/memory-attention-sequences-37456d271992


为什么?


RNN、LSTM 和其变体主要对时序数据进行序列处理。如下图中的水平箭头部分:


RNN 中的序列处理过程


这些箭头表明,在长期信息访问当前处理单元之前,需要按顺序地通过所有之前的单元。这意味着它很容易遭遇梯度消失问题。


为此,人们开发了 LSTM 模型,LSTM 可以视为多个转换门的合并。ResNet 也借鉴于这种结构,它可以绕过某些单元从而记忆更长时间步的信息。因此,LSTM 在某种程度上可以克服梯度消失问题。

LSTM 中的序列处理过程


但这并不能完全解决该问题,如上图所示。LSTM 中仍然存在按顺序地从过去单元到当前单元的序列路径。实际上,现在这些路径甚至变得更加复杂,因为路径上还连接了加如记忆的分支和遗忘记忆的分支。毫无疑问,LSTM、GRU 和其变体能学习大量的长期信息(参见《The Unreasonable Effectiveness of Recurrent Neural Networks》),但它们最多只能记住约 100s 的长期信息,而不是 1000s 或 10000s 等。


并且,RNN 的一大问题是它们非常消耗计算资源。即如果需要快速训练 RNN,需要大量的硬件资源。在云端上运行这些模型的成本也很高,随着语音到文本的应用需求快速增长,云计算资源目前甚至赶不上它的需求。


解决方案是什么?


如果序列处理无可避免,那么我们最好能找到可向前预测和向后回顾的计算单元,因为我们处理的大多数实时因果数据只知道过去的状态并期望影响未来的决策。这和在翻译语句或分析录制视频时并不一样,因为我们会利用所有数据并在输入上推理多次。这种向前预测和后向回顾的单元就是神经注意力模块,下面将简要介绍这一点。


为了结合多个神经注意力模块,我们可以使用下图所示的层级神经注意力编码器:


层级神经注意力编码器


观察过去信息的更好方式是使用注意力模块将过去编码向量汇总到上下文向量 C_t。请注意上面有一个层级注意力模块,它和层级神经网络非常相似。


在层级神经注意力编码器中,多层注意力可查看过去信息的一小部分,例如 100 个向量,而上面层级的注意力模块能查看到 100 个下层的注意力模块,也就是 100×100 个向量。即利用层级模块可极大地扩展注意力机制观察的范围。


这就是一种能回顾更多的历史信息并预测未来的方法。


这种架构类似于神经图灵机,但令神经网络通过注意力决定从记忆中需要读取什么。这意味着一个实际的神经网络将决定过去的哪个向量对未来的决策更重要。


但记忆的储存呢?与神经图灵机不同,上面的架构将会把所有的历史表征储存在记忆中。这可能是不高效的,若储存视频中每一帧的表征,而大多数情况下表征向量并不会一帧帧地改变,所以这导致储存了太多的相同信息。我们确实可以添加另一个单元来防止储存相关数据,例如不储存与之前太相似的向量。但这只是一种技巧,更好的方法可能是让架构自己判断哪些向量需要储存,而哪些不需要。这一问题也是当前研究领域的重点,我们可以期待更多有意思的发现。


总结来说:忘了 RNN 和它的变体吧,你仅需要的是注意力机制模块。


目前我们发现很多公司仍然使用 RNN/LSTM 作为自然语言处理和语音识别等架构,他们仍没有意识到这些网络是如此低效和不可扩展。例如在 RNN 的训练中,它们因为需要很大的内存带宽而很难训练,这对于硬件设计很不友好。本质上来说,递归是不可并行的,因此也限制了 GPU 等对并行计算的加速。


简单来说,每个 LSTM 单元需要四个仿射变换,且每一个时间步都需要运行一次,这样的仿射变换会要求非常多的内存带宽,因此实际上我们不能用很多计算单元的原因,就是因为系统没有足够的内存带宽来传输计算。这对于模型的训练,尤其是系统调参是非常大的限制,因此现在很多工业界应用都转向了 CNN 或注意力机制。

相关论文:Attention Is All You Need

论文地址:https://arxiv.org/abs/1706.03762

原文:https://towardsdatascience.com/the-fall-of-rnn-lstm-2d1594c74ce0

-今晚直播预告-

点击“阅读原文”查看直播

登录查看更多
2

相关内容

长短期记忆网络(LSTM)是一种用于深度学习领域的人工回归神经网络(RNN)结构。与标准的前馈神经网络不同,LSTM具有反馈连接。它不仅可以处理单个数据点(如图像),还可以处理整个数据序列(如语音或视频)。例如,LSTM适用于未分段、连接的手写识别、语音识别、网络流量或IDSs(入侵检测系统)中的异常检测等任务。
【ICML2020-西电】用于语言生成的递归层次主题引导RNN
专知会员服务
21+阅读 · 2020年6月30日
【ICML2020-华为港科大】RNN和LSTM有长期记忆吗?
专知会员服务
74+阅读 · 2020年6月25日
一份循环神经网络RNNs简明教程,37页ppt
专知会员服务
172+阅读 · 2020年5月6日
【MIT深度学习课程】深度序列建模,Deep Sequence Modeling
专知会员服务
77+阅读 · 2020年2月3日
模型压缩究竟在做什么?我们真的需要模型压缩么?
专知会员服务
27+阅读 · 2020年1月16日
金融时序预测中的深度学习方法:2005到2019
专知会员服务
166+阅读 · 2019年12月4日
多图带你读懂 Transformers 的工作原理
AI研习社
10+阅读 · 2019年3月18日
前沿 | CNN取代RNN?当序列建模不再需要循环网络
一文详解LSTM网络
论智
18+阅读 · 2018年5月2日
放弃 RNN/LSTM 吧,因为真的不好用!望周知~
人工智能头条
19+阅读 · 2018年4月24日
关于序列建模,是时候抛弃RNN和LSTM了
数盟
7+阅读 · 2018年4月20日
深度学习基础之LSTM
全球人工智能
28+阅读 · 2017年12月18日
如何用 RNN 实现语音识别?| 分享总结
AI研习社
3+阅读 · 2017年12月15日
深入理解LSTM网络
深度学习
17+阅读 · 2017年6月7日
Do RNN and LSTM have Long Memory?
Arxiv
19+阅读 · 2020年6月10日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Symbolic Priors for RNN-based Semantic Parsing
Arxiv
3+阅读 · 2018年9月20日
Arxiv
14+阅读 · 2018年5月15日
Arxiv
27+阅读 · 2017年12月6日
VIP会员
相关VIP内容
相关资讯
多图带你读懂 Transformers 的工作原理
AI研习社
10+阅读 · 2019年3月18日
前沿 | CNN取代RNN?当序列建模不再需要循环网络
一文详解LSTM网络
论智
18+阅读 · 2018年5月2日
放弃 RNN/LSTM 吧,因为真的不好用!望周知~
人工智能头条
19+阅读 · 2018年4月24日
关于序列建模,是时候抛弃RNN和LSTM了
数盟
7+阅读 · 2018年4月20日
深度学习基础之LSTM
全球人工智能
28+阅读 · 2017年12月18日
如何用 RNN 实现语音识别?| 分享总结
AI研习社
3+阅读 · 2017年12月15日
深入理解LSTM网络
深度学习
17+阅读 · 2017年6月7日
相关论文
Do RNN and LSTM have Long Memory?
Arxiv
19+阅读 · 2020年6月10日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Symbolic Priors for RNN-based Semantic Parsing
Arxiv
3+阅读 · 2018年9月20日
Arxiv
14+阅读 · 2018年5月15日
Arxiv
27+阅读 · 2017年12月6日
Top
微信扫码咨询专知VIP会员