如果说「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所示:
图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所示:
图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。
_TFT。图源:_https://arxiv.org/pdf/1912.09363.pdf
_图源:DeepAR模型架构。图源:_https://arxiv.org/pdf/1704.04110.pdf
这两个模型有很多有趣的地方,但与本文主题产生共鸣的最重要一点是:
它们都使用了LSTM!怎么做到的呢?
TFT 是一种用于时间序列的多层纯深度学习模型,该模型具有LSTM 编码器-解码器以及提供有可解释预测的全新注意力机制。
DeepAR 是一个复杂的时间序列模型,它结合了自回归和深度学习的特征。上图 4 中的 h_i,t 向量实际上是 LSTM 单元的隐藏状态,它们被用来计算高斯分布的 μ 和 σ 参数。从这个分布中,选择n个样本,其中位数代表预测值。
结果表明,这两种深度学习模型都优于传统的统计方法。此外,这两种模型都更加通用,因为它们可以处理多个时间序列并接受更丰富的功能集,其中TFT 略胜一筹。
循环与注意力如何关联起来
为了学习不同尺度的时序关系,TFT 使用循环层进行局部处理,使用可解释的自注意力层进行长期依赖。考虑到我们目前所知道的以及上文所述,可以得出以下结论:循环网络非常擅长捕捉序列的局部时间特征,而注意力则更擅长学习长期动态。
这不是一个武断的结论。TFT论文的作者通过执行消融分析证明了这一点。他们在其他组件中测试了LSTM编码器-解码器层:在消融实验中使用原始 Transformer 的标准位置编码层来替换它,得出了以下两个结论:
- 序列到序列层的使用对模型性能产生增益;
- 在执行基准测试的5个数据集中的4个 ,LSTM 层实现了更佳的性能。
因此,我们可以有把握地得出结论:LSTM 层仍然是时间序列深度学习模型中的一个非常有用的组件。此外,它们不会对抗注意力机制,相反可以与基于注意力的组件相结合,进一步提高模型的效率。