LSTM还没「死」(一)

本文涉及的产品
语种识别,语种识别 100万字符
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
简介: LSTM还没「死」(一)

如果说「LSTM」已死,它为何依然能够在Kaggle竞赛中成为赢家呢?


长短期记忆(Long Short-Term Memory,LSTM)是一种时间循环神经网络(RNN),论文首次发表于1997年。由于独特的设计结构,LSTM适合于处理和预测时间序列中间隔和延迟非常长的重要事件。


在过去几十年里,LSTM发展如何了?


密切关注机器学习的研究者,最近几年他们见证了科学领域前所未有的革命性进步。这种进步就像20世纪初,爱因斯坦的论文成为量子力学的基础一样。只是这一次,奇迹发生在AlexNet论文的推出,该论文一作为Alex Krizhevsky,是大名鼎鼎Hinton的优秀学生代表之一。AlexNet参加了2012年9月30日举行的ImageNet大规模视觉识别挑战赛,达到最低的15.3%的Top-5错误率,比第二名低10.8个百分点。这一结果重新燃起了人们对机器学习(后来转变为深度学习)的兴趣。


我们很难评估每次技术突破:在一项新技术被引入并开始普及之前,另一项技术可能变得更强大、更快或更便宜。技术的突破创造了如此多的炒作,吸引了许多新人,他们往往热情很高,但经验很少。


深度学习领域中一个被误解的突破就是循环神经网络(Recurrent neural network:RNN)家族。如果你用谷歌搜索诸如「LSTMs are dead」「RNNs have died」短语你会发现,搜索出来的结果大部分是不正确的或者结果太片面。


本文中数据科学家Nikos Kafritsas撰文《Deep Learning: No, LSTMs Are Not Dead!》,文中强调循环网络仍然是非常有用的,可应用于许多实际场景。此外,本文不只是讨论LSTM和Transformer,文中还介绍了数据科学中无偏评估这一概念。


以下是原文内容,全篇以第一人称讲述。


LSTM 曾经主导了 NLP 领域



每个大型科技公司都会采用LSTM,在NLP研究中都有LSTM的身影。


早在1997年,LSTM在论文 《LONG SHORT-TERM MEMORY 》中被提出,直到2014年才进入高速发展阶段。它们属于循环神经网络家族- RNN,以及门控循环单元GRU。


随着GPU的可访问性和第一个深度学习框架的出现,LSTM成为支配NLP领域的SOTA模型。2013 年词嵌入的出现促进了迁移学习机制的构建。事实上,当时几乎所有 NLP 任务的标准组件都是:a)预训练词嵌入,b)LSTM 和 c)序列到序列架构。


在那个时期,每个数据科学家都同意 LSTM 主导了 NLP 领域:它们被用于语音识别、文本到语音合成、语言建模和机器翻译。每家大型科技公司都接受了LSTM ;毫不夸张的说没有 LSTM 就没有 NLP。


谷歌为机器翻译创建的最佳模型之一,如下图1所示:


fd9763d1f2ccbf2b91bc86384a9659bd.png


图1:谷歌神经机器翻译- GNMT架构。


这个复杂的模型存在于谷歌翻译服务中,与之前的版本相比,GNMT减少了60%的翻译错误。正如我们看到的,GNMT大量使用了LSTM,形成了著名的编码器-解码器拓扑(包括一个双向LSTM)。


此外,GNMT还利用了Attention,这是一种允许模型在需要时关注输入序列相关部分的机制。如图1 所示,其中编码器的顶部向量使用注意力分数加权。换句话说,每个时间步骤中的每个单词都有一个可学习的分数,以最小化错误。要了解更多信息,请查看资料:




然而,LSTM有两个缺点:首先LSTM不容易在训练过程中并行化;其次由于它们具有周期性,它们可以建模的序列长度是有限制的。


打开Transformers的世界



RNN是序列模型,也就是说单词是按顺序处理的。但是,Transformer可以并行处理所有的单词。


2017年,谷歌在论文《Attention Is All You Need》中推出Transformer ,这是NLP生态系统的里程碑式的进步。这个新模型通过提出多头注意力机制来深入研究注意力,具体表现在:


充分利用自注意力优势,从而实现卓越性能;


采用模块化结构,可以并行进行矩阵运算,换句话说,Transformer运行得更快,具有更好的可扩展性。


然而,Transformer没有使用LSTM,即使在提取上下文信息很重要的第一层(LSTM可能很有用),Transformer提出了一种不同的机制,称为位置编码。这揭示了两类模型之间的主要区别:RNN 是序列模型,这意味着单词是按顺序处理的;但 Transformer 并行处理所有单词,这大大减少了训练时间。


从那以后,Transformer成为研究语言处理的基础,并产生了新的变体。变体如下图2所示:


8f2e752d5cf294880875e9636ca0cad4.png

图2:开源的Transformer系列


不能被遗忘的时间序列



LSTM 和 Transformer 都非常擅长对序列信息进行建模。因此,它们也可以应用于时间序列预测(TSF)案例。


传统统计方法赢得第一轮



然而,实验结果表明,LSTM和Transformer在准确度方面并非一定优于传统统计方法(例如 ARIMA)。另一方面,统计方法和基于RNN的方法相结合更有效。一个典型的例子是 Uber 构建的 ES-RNN 模型,该模型最终赢得了 M4竞赛。该模式是一种在扩张的 LSTM 之上使用指数平滑的混合模型。


当然,Transformer 也受到了考验。对于时间序列预测,最常用的方法是使用原始的 Transformer,并将位置编码层替换为 Time2vec 层。但是,Transformer 模型也无法超越统计方法。


此外,我还想说明以下几点:


  • 这并不意味着统计方法总是更好。在有大量数据的情况下,LSTM 的性能可以比 ARIMA 更好;


  • 统计方法需要更多的数据预处理。这可能包括时使时间序列平稳、消除季节性和波动性等。通过更简单的技术,LSTM 可以更容易地捕捉序列的自然特征;


  • 统计方法的通用性较差。例如,自回归方法无法处理未来未知的额外特征。


总之,就预测能力而言,ML 方法并不总是优于统计方法。


深度学习(DL)赢得第二轮



直到2018~2019年,深度学习模型才开始在时间序列预测任务中变得更具竞争力。


下图 3 和图 4 显示了两个SOTA模型,分别为谷歌的Temporal Fusion Transformer(TFT)和亚马逊的DeepAR。


8a75525b9b7caaec90b3ce266599943d.png


_TFT。图源:_https://arxiv.org/pdf/1912.09363.pdf


0ad41fae02e6155ec386b777908cb540.png


_图源:DeepAR模型架构。图源:_https://arxiv.org/pdf/1704.04110.pdf


这两个模型有很多有趣的地方,但与本文主题产生共鸣的最重要一点是:


它们都使用了LSTM!怎么做到的呢?


TFT 是一种用于时间序列的多层纯深度学习模型,该模型具有LSTM 编码器-解码器以及提供有可解释预测的全新注意力机制。


DeepAR 是一个复杂的时间序列模型,它结合了自回归和深度学习的特征。上图 4 中的 h_i,t 向量实际上是 LSTM 单元的隐藏状态,它们被用来计算高斯分布的 μ 和 σ 参数。从这个分布中,选择n个样本,其中位数代表预测值。


结果表明,这两种深度学习模型都优于传统的统计方法。此外,这两种模型都更加通用,因为它们可以处理多个时间序列并接受更丰富的功能集,其中TFT 略胜一筹。


循环与注意力如何关联起来



为了学习不同尺度的时序关系,TFT 使用循环层进行局部处理,使用可解释的自注意力层进行长期依赖。考虑到我们目前所知道的以及上文所述,可以得出以下结论:循环网络非常擅长捕捉序列的局部时间特征,而注意力则更擅长学习长期动态。


这不是一个武断的结论。TFT论文的作者通过执行消融分析证明了这一点。他们在其他组件中测试了LSTM编码器-解码器层:在消融实验中使用原始 Transformer 的标准位置编码层来替换它,得出了以下两个结论:


  1. 序列到序列层的使用对模型性能产生增益;


  1. 在执行基准测试的5个数据集中的4个 ,LSTM 层实现了更佳的性能。


因此,我们可以有把握地得出结论:LSTM 层仍然是时间序列深度学习模型中的一个非常有用的组件。此外,它们不会对抗注意力机制,相反可以与基于注意力的组件相结合,进一步提高模型的效率。


相关文章
|
2月前
|
机器学习/深度学习
【机器学习】面试题:LSTM长短期记忆网络的理解?LSTM是怎么解决梯度消失的问题的?还有哪些其它的解决梯度消失或梯度爆炸的方法?
长短时记忆网络(LSTM)的基本概念、解决梯度消失问题的机制,以及介绍了包括梯度裁剪、改变激活函数、残差结构和Batch Normalization在内的其他方法来解决梯度消失或梯度爆炸问题。
54 2
|
2月前
|
机器学习/深度学习 存储 自然语言处理
|
12月前
|
存储 算法 Java
【记忆集与卡表】
【记忆集与卡表】
|
12月前
|
Java 定位技术 C#
我记忆中的电脑城
我记忆中的电脑城
|
机器学习/深度学习 数据采集 自然语言处理
LSTM还没「死」!
LSTM还没「死」!
|
机器学习/深度学习 算法
LSTM最通俗的解释
LSTM最通俗的解释
|
机器学习/深度学习 自然语言处理 TensorFlow
用LSTM的模型实现自动编写古诗
用LSTM的模型实现自动编写古诗
228 0
用LSTM的模型实现自动编写古诗
|
机器学习/深度学习
神经网络中的遗忘,遗忘的作用
神经网络中的遗忘,遗忘的作用
112 0
|
机器学习/深度学习 PyTorch 算法框架/工具
Pytorch基于迁移学习的VGG卷积神经网络-手撕(可直接运行)-部分地方不懂的可以参考我上一篇手撕VGG神经网络的注释 两个基本一样 只是这个网络是迁移过来的
Pytorch基于迁移学习的VGG卷积神经网络-手撕(可直接运行)-部分地方不懂的可以参考我上一篇手撕VGG神经网络的注释 两个基本一样 只是这个网络是迁移过来的
|
机器学习/深度学习 PyTorch 算法框架/工具
Pytorch基于迁移学习的Alexnet卷积神经网络-手撕(可直接运行)-部分地方不懂的可以参考我上一篇手撕Alexnet神经网络的注释 两个基本一样 只是这个网络是迁移过来的
Pytorch基于迁移学习的Alexnet卷积神经网络-手撕(可直接运行)-部分地方不懂的可以参考我上一篇手撕Alexnet神经网络的注释 两个基本一样 只是这个网络是迁移过来的