介绍

时间序列预测是一个重要的科学和商业问题,因此最近通过使用基于深度学习 而不是经典方法的模型也涌现出诸多创新。ARIMA 等经典方法与新颖的深度学习方法之间的一个重要区别如下。

  • 关于基于深度学习进行时间序列预测的论文:
    https://dl.acm.org/doi/abs/10.1145/3533382

  • 《预测: 方法与实践》在线课本的中文版:
    https://otexts.com/fppcn/

概率预测

通常,经典方法针对数据集中的每个时间序列单独拟合。这些通常被称为“单一”或“局部”方法。然而,当处理某些应用程序的大量时间序列时,在所有可用时间序列上训练一个“全局”模型是有益的,这使模型能够从许多不同的来源学习潜在的表示。

一些经典方法是点值的 (point-valued)(意思是每个时间步只输出一个值),并且通过最小化关于基本事实数据的 L2 或 L1 类型的损失来训练模型。然而,由于预测经常用于实际决策流程中,甚至在循环中有人的干预,让模型同时也提供预测的不确定性更加有益。这也称为“概率预测”,而不是“点预测”。这需要对可以采样的概率分布进行建模。

所以简而言之,我们希望训练全局概率模型,而不是训练局部点预测模型。深度学习非常适合这一点,因为神经网络可以从几个相关的时间序列中学习表示,并对数据的不确定性进行建模。

在概率设定中学习某些选定参数分布的未来参数很常见,例如高斯分布 (Gaussian) 或 Student-T,或者学习条件分位数函数 (conditional quantile function),或使用适应时间序列设置的共型预测 (Conformal Prediction) 框架。方法的选择不会影响到建模,因此通常可以将其视为另一个超参数。通过采用经验均值或中值,人们总是可以将概率模型转变为点预测模型。

时间序列 Transformer

正如人们所想象的那样,在对本来就连续的时间序列数据建模方面,研究人员提出了使用循环神经网络 (RNN) (如 LSTM 或 GRU) 或卷积网络 (CNN) 的模型,或利用最近兴起的基于 Transformer 的训练方法,都很自然地适合时间序列预测场景。

在这篇博文中,我们将利用传统 vanilla Transformer (参考 Vaswani 等 2017 年发表的论文) 进行单变量概率预测 (univariate probabilistic forecasting) 任务 (即预测每个时间序列的一维分布) 。 由于 Encoder-Decoder Transformer 很好地封装了几个归纳偏差,所以它成为了我们预测的自然选择。

  • 传统 vanilla Transformer 论文链接:
    https://arxiv.org/abs/1706.03762

首先,使用 Encoder-Decoder 架构在推理时很有帮助。通常对于一些记录的数据,我们希望提前预知未来的一些预测步骤。可以认为这个过程类似于文本生成任务,即给定上下文,采样下一个词元 (token) 并将其传回解码器 (也称为“自回归生成”) 。类似地,我们也可以在给定某种分布类型的情况下,从中抽样以提供预测,直到我们期望的预测范围。这被称为贪婪采样 (Greedy Sampling)/搜索,此处 有一篇关于 NLP 场景预测的精彩博文。
https://hf.co/blog/how-to-generate

其次,Transformer 帮助我们训练可能包含成千上万个时间点的时间序列数据。由于注意力机制的时间和内存限制,一次性将 所有 时间序列的完整历史输入模型或许不太可行。因此,在为随机梯度下降 (SGD) 构建批次时,可以考虑适当的上下文窗口大小,并从训练数据中对该窗口和后续预测长度大小的窗口进行采样。可以将调整过大小的上下文窗口传递给编码器、预测窗口传递给 causal-masked 解码器。这样一来,解码器在学习下一个值时只能查看之前的时间步。这相当于人们训练用于机器翻译的 vanilla Transformer 的过程,称为“教师强制 (Teacher Forcing)”。

Transformers 相对于其他架构的另一个好处是,我们可以将缺失值 (这在时间序列场景中很常见) 作为编码器或解码器的额外掩蔽值 (mask),并且仍然可以在不诉诸于填充或插补的情况下进行训练。这相当于 Transformers 库中 BERT 和 GPT-2 等模型的 attention_mask,在注意力矩阵 (attention matrix) 的计算中不包括填充词元。

由于传统 vanilla Transformer 的平方运算和内存要求,Transformer 架构的一个缺点是上下文和预测窗口的大小受到限制。关于这一点,可以参阅 Tay 等人于 2020 年发表的调研报告 。此外,由于 Transformer 是一种强大的架构,与 其他方法 相比,它可能会过拟合或更容易学习虚假相关性。

  • Tay 等 2020 年发表的调研报告地址:
    https://arxiv.org/abs/2009.06732

  • 上述关于其他预测时间线方法的论文地址:
    https://openreview.net/pdf?id=D7YBmfX_VQy

上篇 | 使用 Transformers 进行概率时间序列预测相关推荐

  1. 论文阅读【时间序列预测2】TACTiS: Transformer-Attentional Copulas for Time Series

    [代码]https://github.com/ServiceNow/tactis [发表]ICML 2022 [领域]时间序列预测 TACTiS: Transformer-Attentional Co ...

  2. Transformers预测未来:关注下一帧和时间序列预测

    Transformers预测未来:关注下一帧和时间序列预测 关注人工智能学术前沿 回复 :ts35 5秒免费获取论文pdf文档,及项目源码 摘要 直到最近,递归神经网络还是捕获时序相关性的最佳方法之一 ...

  3. 【时间序列】使用 Auto-TS 自动化时间序列预测

    Auto-TS 是 AutoML 的一部分,它将自动化机器学习管道的一些组件.这自动化库有助于非专家训练基本的机器学习模型,而无需在该领域有太多知识.在本文中,小编和你一起学习如何使用 Auto-TS ...

  4. 回顾︱时间序列预测与分解有哪些模型?(一)

    本节简单回归一下时间序列任务的几种方向以及有哪些比较优秀的开源算法. 1 时序预测 时序预测从不同角度看有不同分类.从实现原理的角度,可以分为传统统计学.机器学习(又分非深度学习和深度学习). 按预测 ...

  5. 5个时间序列预测的深度学习模型对比总结:从模拟统计模型到可以预训练的无监督模型

    时间序列预测在最近两年内发生了巨大的变化,尤其是在kaiming的MAE出现以后,现在时间序列的模型也可以用类似MAE的方法进行无监督的预训练 Makridakis M-Competitions系列( ...

  6. 干货 | 时间序列预测类问题下的建模方案探索实践

    作者 | 陆春晖 责编 | Carol 出品 | AI科技大本营(ID:rgznai100) 背景 时间序列类问题是数据分析领域中一类常见的问题,人们有时需要通过观察某种现象一段时间的状态,来判断其未 ...

  7. python平稳性检验_时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python)...

    时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python) 发布时间:2019-01-10 00:02, 浏览次数:620 , 标签: Python 导读: 本文介绍了数据平稳 ...

  8. 序列每天从1开始_时间序列预测一

    什么是时间序列: 时间序列可以看作是普通的二维的无序的特征矩阵向时间空间的拓展,相对来说多了仅仅一个维度但也是非常重要的时间维度: 时间序列是按时间顺序进行的一系列观察,通常包括了连续性时间序列数据和 ...

  9. python时间序列预测报错_python如何做时间序列

    python做时间序列的方法:首先导入需要的工具包,输入"data.plot()","plt().show()"命令绘制时序图:然后由acf,pacf判断模型参 ...

最新文章

  1. 解决报错:Can't read private key和./build-aux/cksum-schema-check: Permission denied
  2. NEC Programming Contest 2021 (AtCoder Beginner Contest 229)
  3. 前端 HTML 常用标签 head标签相关内容 script标签
  4. 预告 | 4月22日,CVPR 2021论文分享会详细介绍,学术新星云集!
  5. 公司顾问岗位职责_集团公司法律顾问岗位职责
  6. 思科怎么修改dhcp服务器地址,思科交换机配置作为DHCP服务器的配置方法是怎样的?...
  7. react里 MD5加密
  8. sql语句查询执行顺序
  9. 使用梦网云通讯平台解决手机验证码问题
  10. 利用python批量创建文件夹、批量创建文件、批量复制文件到指定文件夹
  11. 使用Python一键获取百度网盘提取码
  12. SQL SERVER代理的权限设置
  13. 串口服务器调试助手使用教程,串口服务器如何配置及串口调试6大技巧
  14. 中国历史上水平最高的十首诗词,你都读过吗?
  15. 小说更新太慢怎么办_写网络小说写得太慢怎么办?
  16. 记一次hadoop namenode 启动失败问题及解决过程(启动几秒钟后又挂了)
  17. AD(Altium Designer)PCB布线中的“格式刷”,助力快速布局布线
  18. web 移动端 微信分享(nativeShare)
  19. 2010年度CSDN十大资讯 (编辑推荐)
  20. 从零学Java(2)之搭建开发环境

热门文章

  1. mac 新建窗口时出现两种风格问题(oh-my-zsh配置后)
  2. 科技品牌软文营销内容创作引起共鸣的四个要素
  3. 做短视频时如何引起用户共鸣,从三个角度出发,引起共鸣才能吸粉
  4. 布局文件输入''''大于小于号等
  5. Android项目中调起手机地图导航
  6. 魅族18 X凭什么成为年度游戏旗舰?
  7. 图片转为String传个给服务端
  8. 国家政策创业扶持资金有哪些申报技巧?
  9. Logstash-数据收集、解析和转存
  10. Opencv/C++ 去除扫描图片的白色边框