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

2023-11-07

早期的时间序列预测主要模型是诸如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关系的任务。感兴趣的同学可以进一步深入阅读。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 绿源:“老大哥”冲刺IPO,新的故事如何讲?

    又一家老牌电动两轮车企业 开 向了资本市场 11月22日 绿源集团控股 开曼 有限公司 以下简称 绿源集团 正式向港交所递交招股说明书 拟主板挂牌上市 中信建设国际担任独家保荐人 这标志着 一部车骑10年 电动车品牌绿源拉开了上市序幕 绿源
  • Android暴露组件——被忽略的组件安全

    Intent 简介 Intent 意图 负责完成Android应用 组件之间的交互与通信 常见的Activity的调用 Receiver的发送 Service的启动都需离不开Intent Intent通常包含的信息 Categpry 种类
  • springboot文件上传 MultipartFile file

    1 讲解springboot文件上传 MultipartFile file 源自SpringMVC 注意点 如果想要直接访问html页面 则需要把html放在springboot默认加载的文件夹下面 MultipartFile 对象的tra
  • Yii Framework 开发教程(28) Data Provider 简介

    这开始介绍Zii组件之前 先简要介绍一下Yii支持的数据源接口 IDataProvider IDataProvider主要功能是为UI组件如GridView ListView等提供数据源 同时也支持数据的分页和排序 下图为Yii内置的三种数
  • QQxml和json代码生成卡片的方法

    简介 最近看到qq群里总有人发一些奇怪的卡片 例如下面这个卡片 点击之后就会跳转到你自己的个人资料 是不是很神奇 其实这是依靠xml代码转成的卡片 通过一些软件对xml编译执行 可以编译xml的软件有很多 最常用的手机xml编译执行软件是华
  • Android Display架构分析

    Fence https www jianshu com p 3c61375cc15b android12 display分析 https www cnblogs com roger yu p 15641545 html hwcomper h
  • MIPS汇编语言实现选择排序算法

    MIPS汇编语言实现选择排序算法 1 流程图 2 C代码 3 MIPS代码 附注释 MIPS汇编语言实现选择排序算法 1 流程图 2 C代码 include
  • c++笔记(一)

    这里写的主要是一些c c 值得注意的地方和c primer笔记 方便以后回顾 复习c 当然会有一些错误 发现后再改正 当形参引用时 数组不能转化为指针 是连接符 当宏定义用多行时常用 1 c中不可以连续赋值 c 可以 如int a b c
  • 数据结构课程设计---------最少换车次数问题

    问题描述 设某城市有n个车站 并有m条公交线路连接这些车站 设这些公交车都是单向的 这n个车站被顺序编号为0 n 1 编号程序 输入该城市的公交线路数 车站个数 以及各公交线路上的各站编号 实现要求 求得从站0出发乘公交车至站n一1的最少换
  • ‘git‘不是内部或外部命令,也不是可运行的程序或批处理文件。

    一 出现问题 git 不是内部或外部命令 也不是可运行的程序或批处理文件 出现这个问题主要是git的环境变量没有设置 二 解决问题 首先右键我的电脑点击属性 在点击高级系统设置 点击环境变量 在下面这栏点击path设置环境变量 添加这三个环
  • mysql 获取倒数第二_如何从MySQL中的表中获取倒数第二条记录?

    要获得MySQL中最后一个记录 即倒数第二个 之前的记录 您需要使用子查询 语法如下SELECT FROM SELECT FROM yourTableName ORDER BY yourIdColumnName DESC LIMIT 2 a
  • python opencv 二值化 计算白色像素点

    贴部分代码 usr bin env python coding utf 8 import cv2 import numpy as np from PIL import Image area 0 def ostu img global are
  • Flutter audioplayers使用小结

    简介 audioplayers是一个可以支持同时播放多个音频文件的Flutter的库 用法也是相当的简单 AudioPlayer audioPlayer new AudioPlayer await audioPlayer play url
  • SqlServer的varchar最大长度

    SqlServer的varchar最大长度是8000 总会遇到这种字符串截断问题 但是在给表字段长度添加时最好还是不要添加为max 能用varchar n 的话就不必要去要求varchar max 性能问题 项目上确实出现过问题 这个博主的
  • 1115 裁判机

    1114 全素日 有一种数字游戏的规则如下 首先由裁判给定两个不同的正整数 然后参加游戏的几个人轮流给出正整数 要求给出的数字必须是前面已经出现的某两个正整数之差 且不能等于之前的任何一个数 游戏一直持续若干轮 中间有写重复或写错的人就出局
  • python数据分析:用户消费情况数据分析

    本次分析数据介绍 数据为某奶茶店2018年1月 2019年6月的销售数据 共计69 659项数据 用户共计23 570名 数据集共4个字段 user id 用户id order id 购买日期 order prodect 购买产品数 ord
  • 为什么java中类名要与文件名一致

    学习java程序过程中碰到了文件名与类名不一致问题 出现了报错 后面查了一下资料才知道为什么文件名与类名要一致 Java是被解释执行的 它在运行时并不是将所有的class文件全都放到内存中 而是在遇到import的时候才去相应的文件目录找相
  • 概率论与数理统计(3)--指数分布函数及其期望、方差

    1 什么是指数分布 设随机变量X具有如下形式的密度函数 那么则称X服从参数为 的指数分布 记为X EXP 指数分布的分布函数为 2 指数分布的期望和方差 数学期望 如果X 服从参数为 gt 0 的指数分布 那么指数分布X EXP 的数学期望
  • Conda 常用指令 (Mac)【下载 安装 环境配置 查看 创建 激活 配置cuda 拷贝环境】

    本文旨在介绍用conda配置一个新的深度学习环境的全过程 下载Anaconda 在 官网 中下载与python版本匹配的Anaconda Python与Anaconda版本匹配如下 图片源自 该博客 在本例中我下载的 Anaconda3 2
  • 12篇顶会论文,深度学习时间序列预测经典方案汇总

    早期的时间序列预测主要模型是诸如ARIMA这样的单序列线性模型 这种模型对每个序列分别进行拟合 在ARIMA的基础上 又提出了引入非线性 引入外部特征等的优化 然而 ARIMA类模型在处理大规模时间序列时效率较低 并且由于每个序列分别独立拟