找回密码
 立即注册
查看: 389|回复: 0

12篇顶会论文,深度学习时间序列预测经典方案汇总

[复制链接]
发表于 2022-4-11 12:32 | 显示全部楼层 |阅读模式
作者Fareise,来自圆圆的算法笔记
欢迎关注 @机器学习社区 ,专注学术论文、机器学习、人工智能、Python技术
早期的时间序列预测主要模型是诸如ARIMA这样的单序列线性模型。这种模型对每个序列分别进行拟合。在ARIMA的基础上,又提出了引入非线性、引入外部特征等的优化。然而,ARIMA类模型在处理大规模时间序列时效率较低,并且由于每个序列分别独立拟合,无法共享不同序列存在的相似规律。深度学习模型在NLP、CV等领域取得了成功应用后,也被逐渐引入到解决时间序列预测问题中。通过不同序列共享一个深度学习模型,让模型能从多个序列中学到知识,并且提升了在大规模数据上的求解效率。
本文介绍了深度学习模型在时间序列预测问题中的应用,主要包括RNN、CNN、Transformer、Nbeats等4种类型模型,以及12篇相关顶会论文,全面掌握深度学习时间序列预测方法。喜欢本文记得收藏、关注、点赞。
【注】文末提供技术交流群
RNN时序预测模型

DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks(2017)首先采用深度学习模型解决时间序列预测问题。该方法采用经典的RNN模型进行时间序列预测,在训练阶段,每个时刻传入上一时刻的真实值、外部特征,经过RNN单元后,预测下一个时刻的值。在预测阶段,将模型在上一个时刻的预测值作为输入,替代训练过程中上一个时刻真实值的输入。模型结构如下图。


由于预测阶段和训练阶段,模型在下一个时刻输入的值一个是预测采样的,一个是真实的,会导致训练和预测阶段不一致的问题,NLP中有一些方法缓解该问题,但是不能从根本解决这个问题。
Deep State Space Models for Time Series Forecasting(NIPS 2018)提出了以RNN为基础的Deep State Space模型。该模型建立在state space思路基础上,认为当前时刻的观测值只和当前状态有关,而当前状态只和上一个时刻的状态有关。因此整个预估模型分为两个部分:建模连续两个隐状态的关系,以及从当前时刻隐状态到当前时刻预估结果的关系。在模型实现上,相比DeepAR,模型在训练或预测阶段,每个时刻都不需要输入上一个时刻的真实值或预测值了,完全由隐状态建立连续两个时刻的联系。这样解决了DeepAR中训练和预测不一致的问题。
DeepAR和Deep State Space Model都是one-horizon forecast model,即每次只能预测未来一个时刻的值。
A Multi-Horizon Quantile Recurrent Forecaster(NIPS 2017)提出一种multi-horizon forecast model MQRNN,同时预测未来多个时间步的值。MQRNN采用的是Encoder-Decoder结构,在NLP中经典的Encoder-Deocder结构基础上进行了优化。下图左侧为基础的Encoder-Decoder结构,右侧为MQRNN结构。MQRNN将Decoder部分由RNN改成多个全连接。MQRNN直接将Encoder最后一个时刻的context,以及未来的所有feature拼接到一起,通过一个全连接,生成每个时刻的context和一个全局整体的context。即该全连接输出为T个时刻每个时刻的context向量,以及一个额外的全局向量。


除了上述的模型结构外,一些在NLP中常用的如LSTM+Attention的模型结构也可以用于时间序列预测任务中,由于NLP和时间序列都是序列类型的数据,很多经典模型结构可以复用,这里不再赘述NLP中的经典RNN模型。
CNN时序预测模型

CNN被广泛用于CV和NLP领域,在时间序列预测领域,An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling(2019)采用空洞卷积结合因果卷积的网络结构,该结构也称为基于CNN的时间序列预估模型的基础结构。因果卷积表示在t时刻的输出,是由t时刻及t时刻之前的输入进行卷积得到的(而一般的卷积是t时刻前后一个窗口内的输入进行卷积)。这样,t时刻的输出避免了对t时刻之后信息的依赖而导致的数据泄漏问题。
空洞卷积解决了原来CNN只能看到历史线性大小窗口内数据的问题,当历史序列较长时,普通的卷积需要增大卷积尺寸才能看到更久远的历史信息,导致训练效率较低。空洞卷积跳跃的对历史序列进行卷积,例如当空洞卷积尺寸为2时,t时刻会根据t、t-2、t-4等时刻的输入进行卷积。通过多层卷积的堆叠,层数越多对应的空洞尺寸也越大,这样实现了在时间复杂度不变的情况下引入更长历史信息,提升预测效果。


Transformer时序预测模型

在上文介绍的基于对抗学习DA方法的基础上,学术界针对该方法的不同问题提出了不同的优化方法,主要包括生成任务相关的一致性表示、学习Domain-specific表示辅助Domain-invariant表示两个方面。
Transformer模型首先在NLP领域中取得显著效果,由于NLP和时间序列都为序列数据,因此Transformer也被逐渐应用到时间序列预测任务中。Deep Transformer Models for Time Series Forecasting: The Influenza Prevalence Case(2020)采用了和GPT相似的Transformer结构尝试了时间序列预测任务,取得较好效果。
然而,在时间序列预测任务中,样本点的序列位置关系非常重要,Transformer虽然通过Attention机制实现了超长周期的特征对齐,位置信息只能依赖于position emedding,影响了Transformer在时间序列预测中的应用。针对这个问题,业内主要采用CNN+Transformer或LSTM+Transformer相结合的方式,使序列模型的序列建模能力和Attention模型的超长周期信息提取能力互补。
Enhancing the Locality and Breaking the Memory Bottleneck of Transformer on Time Series Forecasting(NIPS 2019)提出使用CNN和Transformer结合的方法。模型结构如下图所示,CNN模型增强了上下文信息的提取能力,左图中CNN尺寸为1,即无卷积的情况下,每个时刻的特征单独进入Transformer,当两个时刻的特征相似时,由于上下文环境(即前后时刻的值)不同,因此这两个时刻表达的信息不同,而左侧模型无法提取这个信息。右侧模型使用了尺寸为3的卷积,刻画了上下文信息不同的时刻不同的信息,能够更好发掘具有相似规律的序列片段。


Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting(2019)提出了LSTM和Transformer结合的方法。模型体层采用LSTM结构,利用LSTM的序列建模能力,先对输入序列进行预处理,这样不同时刻生成了考虑上下文和时序信息的表示。接下来底层表示输入到上层Transformer中,利用Attention的超长周期信息提取能力弥补序列模型信息遗忘的问题,模型结构如下图:


Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting(AAAI 2020)提出了一种针对长周期预估的Transformer的升级版。为了让Transformer在长周期预估中提升运行效率,提出了ProbSparse self-attention,通过让key只和关键query形成稀疏的attention减少大量运算量。


Nbeats

N-BEATS: NEURAL BASIS EXPANSION ANALYSIS FOR INTERPRETABLE TIME SERIES FORECASTING(ICLR 2020)提出Nbeats模型,该模型内部结构中没有RNN、CNN或Attention,网络全部为全连接组成,在一些开源数据集上取得较好效果。
Nbeats的核心思路是,多个Block串联,每个Block学习序列的一部分信息,在下一个Block的输入会去掉之前Block已经学到的信息,只拟合之前Block未学到的信息,类似于GBDT的思路。最后再把各个Block的预估结果加和得到最终预估结果。
模型整体结构如下图,主要包含两个模块。第一个模块用于输入输入,通过多层全连接+Relu生成Forecast和Backcast的basis,公式形式可以表示为:


模型的第二个模块用于将Forecast和Backcast的basis转换成前向和过去的预测结果:


其中,Forecast的basis用于进行未来的预测,Backcast的Basis用于进行过去的预测。Backcast部分相当于当前Block对输入序列的分析,下一层的输入会减去当前Block中Backcast的输出,相当于从输入中去掉当前Block已经能较好预测的部分,让后续Block只关注那些前面层无法预测的部分。
整个Nbeats模型都是全连接这种简单结构,通过多层Block串联的形式构造而成,类似于GBDT中多个弱分类器集成的思路。Meta-learning framework with applications to zero-shot time-series forecasting(AAAI 2020)从meta-learning的视角揭示了Nbeats为什么有效。


最初版本的Nbeats无法输入外部特征,后续的论文Neural basis expansion analysis with exogenous variables: Forecasting electricity prices with NBEATSx(2022)在初版Nbeats基础上增加了引入外部特征的能力。在FC-GAGA: Fully Connected Gated Graph Architecture for Spatio-Temporal Traffic Forecasting(AAAI 2021)中,又提出了Nbeats结合图学习的模型,让Nbeats能够应用于交通预测等这种存在Spatial-Temporal关系的任务。感兴趣的同学可以进一步深入阅读。
总结

本文介绍了4大类时间序列预测任务的模型结构,包括RNN、CNN、Transformer和Nbeats,简要介绍了4大类时间序列预测深度学习模型的近年来代表工作。
技术交流群

建了机器学习算法技术交流群!想要进交流群、获取资料的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+知乎,即可。然后就可以拉你进群了。
强烈推荐大家关注 机器学习社区 知乎账号和 机器学习社区 微信公众号,可以快速了解到最新优质文章。
算法交流、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~
推荐文章

CVPR22 最新132篇论文分方向整理|包含目标检测、图像处理、医学影像等28个方向
李宏毅《机器学习》国语课程(2022)来了!
CVPR 2022 最新 65 篇论文分方向整理,方向包含:目标检测、动作识别、人群计数等方向
CVPR 2022 | CNN自监督预训练新SOTA:上交、Mila、字节联合提出具有层级结构的图像表征自学习新框架
NAM: 一种新的注意力计算方式,无需额外的参数!
关于机器学习模型可解释性算法的汇总
谷歌提出新模型 FLASH,让 Transformer 模型的效率倍增!训练成本暴减!
阿里、SFU提出通用QuadTree Attention,复杂度变线性,性能还更强!ICLR 2022已接收
学习视觉和语言的多粒度对齐?字节提出新多模态预训练方法 X-VLM:代码已开源!
超越ConvNeXt,VAN用普通卷积,登顶Backbone性能巅峰!
北大《深度强化学习中文版》.pdf 开放下载!
吴恩达:告别,大数据
AAAI 2022 | 时间序列相关论文一览(附原文源码)
我删掉了Transformer中的这几层,性能反而变好了
深度学习中的 Attention 机制总结与代码实现(2017-2021年)
一文全览机器学习建模流程(Python代码)
吴恩达:28张图全解深度学习知识
PyTorch优化神经网络的17种方法
深度梳理:机器学习算法模型自动超参数优化方法汇总
赶快收藏,PyTorch 常用代码段合集真香
聊聊恺明大神MAE的成功之处
何凯明团队又出新论文!北大、上交校友教你用ViT做迁移学习
大道至简,何恺明新论文火了:Masked Autoencoders让计算机视觉通向大模型
有了这个机器学习画图神器,论文、博客都可以事半功倍了!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-25 03:35 , Processed in 0.093006 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表