点击上方“AI遇见机器学习”,选择“星标”公众号
重磅干货,第一时间送达
来自:机器之心

如果说「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 所示,其中编码器的顶部向量使用注意力分数加权。换句话说,每个时间步骤中的每个单词都有一个可学习的分数,以最小化错误。要了解更多信息,请查看资料:

  • 博客地址:https://smerity.com/articles/2016/google_nmt_arch.html

  • 论文地址:https://arxiv.org/abs/1609.08144

然而,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 的标准位置编码层来替换它,得出了以下两个结论:

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

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

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

LSTM的隐藏优势:条件输出

条件输出是 LSTM 最被忽视的优势之一,许多数据科学从业者仍然没有意识到这一点。如果你一直在用原始循环网络,就会发现这种类型的网络只能处理被表示为具有各种依赖关系的序列的时序数据。但是,它们不能直接对静态元数据或非时变数据进行建模。

在 NLP 中,静态元数据是不相关的。相反,NLP 模型专注于单词词汇表,其中每个单词都由嵌入表示,这是整个模型的统一概念。每个单词所来自文档的类型并不重要,只要 NLP 模型可以学习每个单词的正确上下文感知表示即可。但要记住:一个特定的单词可以有不同的嵌入,这取决于它的含义和它在句子中的位置。

但是,在时间序列模型中,非时变数据的影响要大得多。例如,假设我们有一个涉及商店产品的销售预测场景,产品的销量可以建模为时间序列,但也会受到假期等外部因素的影响。因此,一个好的预测模型也应该考虑这些变量。这就是TFT所做的,参见下图 5。

图5:外部静态变量对预测的影响。

但是,TFT是如何实现的呢?TFT 专为集成静态元数据而设计,它使用了各种技术,最重要的一个与 LSTM有关。

LSTM 使用 [11] 中首次介绍的技巧无缝地执行此任务:没有将 LSTM 的初始 h_0 隐藏状态和单元状态 c_0 设置为 0(或随机),而是使用指定向量或嵌入来初始化它们。或者正如 TFT 所做的一样,在拟合期间使这些向量可训练。通过这种方式,LSTM 单元的输出可以适当地在外部变量上发挥作用,而不会影响其时间依赖性。

LSTM vs TCN

在注意力和Transformer出现之前,有另一种有望改变现状的模型,即时间卷积网络(Temporal Convolutional Networks, TCN)。

TCN 在 2016年首次提出并在2018年规范化,它利用卷积网络对基于序列的数据进行建模。自然地,它们也是时间序列预测任务的理想方案。

扩张卷积示意图,其中过滤器大小k = 3,扩张因子d = 1, 2, 4。感受野可以覆盖来自输入序列的所有数据点x_0...x_T。图源:https://arxiv.org/pdf/1803.01271.pdf

TCN 的「秘密武器」是扩张卷积,如上图6所示。标准CNN 使用固定大小的内核/过滤器,因此它们只能覆盖邻近的数据元素。TCN使用扩张卷积,它们在不同长度的输入序列上使用填充(padding),从而能够检测彼此邻近但位置完全不同的item之间的依赖关系。

此外,TCN 中还使用了其他技术,例如残差连接,它现在已经成为深度网络的标准。这里主要关注 LSTM与TCN之间的差异:

  • 速度:一般来说,TCN 比 LSTM 快,因为它们使用卷积,可以并行完成。但在实践中,通过使用大量扩张,并考虑到残差连接,TCN 最终可能会变慢;

  • 输入长度:TCN 和 LSTM 都能够接受可变长度输入;

  • 内存:平均而言,TCN 比 LSTM 需要更多内存,因为每个序列都由多个扩张层处理。同样,这取决于定义每个模型变得有多复杂的超参数;

  • 性能:最初的论文表明 TCN 优于LSTM。然而,在实践中,情况并非总是如此。[13] 中的一项更详尽的研究表明,在某些任务中,TCN 更好,而在其他任务中,LSTM 更有效。

TCN和LSTM都有各自的优缺点。最好的方法是对它们进行评估,找到最适合自己的方案。但要注意,除非你的用例非常小,否则无法通过单个TCN或LSTM模型实现 SOTA 性能。现代用例会考虑更多外部参数,这就需要更具挑战性的方法。反过来,这也就意味着必须使用多个组件或模型。

Kaggle中的深度学习和时间序列

到目前为止,我们一直在从学术角度评估单个模型。然而,如果我们要制定一个更详细的观点,就不能忽略实际应用。

Kaggle提供了一个很好的评估基准,我们以 Kaggle 比赛为例:呼吸机压力预测。该比赛任务是根据控制输入的序列预测机械肺内的压力序列。

这场比赛之所以具有挑战性,有三个原因:

  • 比赛需要同时解决回归和分类任务;

  • 数据集为创造性特征工程打开了大门;

  • 由于每个主题/数据点都用不同的序列表示,因此使用统计模型是不可行的。

现在,有两个比较有趣的地方介绍一下:第一个是排名前三的团队以及其他许多团队在他们的最终解决方案中至少使用了一个基于LSTM的组件(例如stacked LSTMS,双向LSTMS)。

获胜团队提交了一个多层次深度架构,其中包括一个 LSTM 网络和一个 Transformer 块。此架构如图 7 所示:


图7:第一名解决方案架构。

卷积神经网络的命运

我希望这篇文章对LSTM的价值作出了很好的论证。但是毫无疑问Transformer是机器学习领域一个惊人突破。这种突破性的成功将会促进未来更高级别的研究。

2020年,Transformer被改编为计算机视觉版,诞生了vision Transformer (ViT),论文《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》中提出。这篇论文引发了进一步的研究,最终经过不断的升级,ViT模型能够在图像分类任务中优于CNN。

因此,这个阶段,我希望我们不要再说「CNN已经死亡」或者「CNN正在衰落」这样的评价。

总结来讲,本文可以总结为以下几点:

  • 要正确评估机器学习领域的突破所带来的影响几乎是不可能的;

  • Transformer的出现重塑了这一局面:LSTM,尤其是NLP中的LSTM不再是人们关注的焦点;

  • 对于时间序列,LSTM更有用;

  • 数据科学涉及多个领域,例如音频、文本、图形等。这反过来又需要各种方法/模型的结合来应对这些挑战。

原文链接:https://towardsdatascience.com/deep-learning-no-lstms-are-not-dead-20217553b87a

干货/资源微信群

△长按添加小助手

扫描二维码添加小助手微信

请备注:姓名-学校/公司-研究方向-城市

(如:小明-浙大-对话系统-北京)

即可申请加入AI算法干货/资源等交流群

AI算法应用与研究社群(知识星球) 是一个面向全体学生和算法工程师/研究员的学习交流平台。旨在分享AI论文解读,资源,求职技巧和个人成长等内容。

目前我们的社群更加专注于NLP和数据挖掘领域,具体来说涉及:NLP中的信息抽取、对话问答、query理解、情感分析、知识图谱等等;数据挖掘中的异常检测、分类回归、时序挖掘、图计算、图神经网络、AI可解释等等等等

LSTM还没「死」!相关推荐

  1. 营收下滑,腾讯游戏还能保持「王者」地位吗?

    作者 | 曾响铃 文 | 响铃说 国内游戏市场,面临发展瓶颈.腾讯游戏这个「行业巨头」也未能幸免. 最新财报数据显示,二季度腾讯游戏本土与海外市场总营收约为425亿,相比去年同期(营收430亿)和今年 ...

  2. 地图挖掘还剩「最后一公里」

    最近我所在的城市新开了一家奥莱城,周末就和家人去了一趟,"大"是真的"大","谜"也是真的"谜",根据介绍建筑面积36. ...

  3. LSTM终获「正名」,IEEE 2021神经网络先驱奖授予LSTM提出者Sepp Hochreiter

    机器之心报道 参与:杜伟.小舟 或许 Jürgen Schmidhuber 无休止的论战可以告一段落了! 自 2018 年图灵奖授予 Yoshua Bengio.Geoffrey Hinton 和 Y ...

  4. 这年头,谁还在「贩卖」生活方式?

    [潮汐商业评论/原创] "我已经很久没有追寻过品牌购物了"Anna如是说. 如今的Anna对商品的选择往往会考虑性价比以及简洁的外观,去品牌化.简单已经成为其新的生活方式. 日本作 ...

  5. 现有模型还「不懂」自然语言:20多位研究者谈NLP四大开放性问题

    https://www.toutiao.com/a6649234323549454856/ 2019-01-22 16:25:07 在由 DeepMind 主办的 Deep Learning Inda ...

  6. 技术宅整大活,把ChatGPT「调教」成二次元老婆,惹现女友暴走,含泪删库

    源|新智元 技术宅小哥创造出AI老婆「ChatGPT酱」,花了1000美元只为和她说话.他的沉迷惹得女友直接暴走,最终,只能含泪将自己的「二次元老婆」安乐死! ChatGPT爆火之后,充分证明了自己是 ...

  7. IEEE Fellow杨铮:打破「视觉」垄断,无线信号为 AI 开启「新感官」

    来源:AI科技评论 作者:陈彩娴 编辑:岑峰 2020年年初疫情刚开始时,清华大学的官方号曾祭出一篇题为<清华教师升级「十大神器」,上课力满格>的推文,讲述了软件学院某老师如何居家办公.探 ...

  8. 专访清华AIR院长张亚勤:AI在疫情中很重要,但却很「表面」

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要10分钟 Follow小博主,每天更新前沿干货 编辑:LQ 转载自:新智元 [导读]AI在疫情中的表现能打几分?AI行业有多大泡沫?第四次工业 ...

  9. 微软旷视人脸识别100%失灵!照片「隐身衣」,帮你保护照片隐私数据

    本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处. 左图,右图,你能看出区别吗? 其实,算法已经悄悄给右边的照片加上了微小的修改. 但就是这样肉眼根本看不出来的扰动,就能10 ...

最新文章

  1. Qt学习之路(29): 绘图设备
  2. window.addeventlistener 不能调用方法_方法入门(基础篇五)
  3. 【推荐系统】基于物品的协同过滤算法
  4. 使用反射把用户控件(ASCX)传至网页(ASPX)
  5. Native snappy library not available: this version of libhadoop was built without snappy support
  6. Android实践 -- 对apk进行系统签名
  7. dotnet 新项目格式与对应框架预定义的宏
  8. vue router 参数_Vue.js项目开发技术解析
  9. openGauss 正式开源并成立开源社区
  10. mysql c3p0 释放连接_mysql重启后,防止c3p0丢掉连接数_mysql
  11. 推荐10个高效好用的办公软件,极大提升效率
  12. 缓存着色技术(Cache Coloring)
  13. 如何解决ie 浏览器下png图片加滤镜透明背景呈黑色
  14. 滑窗口统计基因组GC含量的分布
  15. 计算apk包的安装之后占用空间以及运行时占用内存
  16. python处理excel多重筛选
  17. Linux 系列(一) - 基本命令
  18. CreateJS奥运五环动画
  19. 陳三甲网络笔记:几条赚钱感悟!
  20. 中断系统的相关知识(五)(外部中断)

热门文章

  1. 微软 WPC 2014 合作伙伴keynote
  2. 设计模式之原型模式prototype
  3. 多学一点(八)——LNMP环境搭建
  4. 大学毕业后,我将何去何从?
  5. java编写数字金字塔_用JAVA写数字金字塔
  6. win 2008 控制共享文件夹大小_Windows转Mac Win10局域网文件共享设置
  7. python数据科学手册_小白入门Python数据科学
  8. LightGBM和XGBoost使用scale_pos_weight处理不平衡数据源码分析
  9. Python map() 函数
  10. Sklearn的train_test_split用法