首页
Preview

时间序列预测的最佳深度学习模型

前置知识

时间序列预测的领域在过去两年中发生了巨大变化。

2018年和2020年分别举办了第四届和第五届Makridakis M-competitions(更为人所知的是M4M5比赛)。对于那些不了解的人来说,这些M-competitions本质上是时间序列生态系统的现状,提供了指导预测理论和实践的经验和客观证据。

2018年M4比赛的结果表明,传统统计方法很大程度上优于纯“ML”方法。这是出乎意料的,因为深度学习已经在其他领域,如计算机视觉和自然语言处理中留下了不可磨灭的印记。然而,在两年后的M5比赛[1]中,随着一个更具创造性的数据集,排名前50的提交仅采用了“ML”方法。更确切地说,所有排名前50的方法都是基于机器学习的。这个比赛见证了多才多艺的LightGBM(用于时间序列预测)的崛起,以及AmazonDeepAR[2]和N-BEATS[3]的首次亮相。N-BEATS模型于2020年发布,比M4比赛的优胜者提高了3%!

最近的Kaggle的Ventilator Pressure Prediction比赛展示了使用深度学习方法解决实际时间序列挑战的重要性。具体而言,比赛的目标是预测机械肺内的压力时间序列,给定控制输入的时间序列。每个训练实例本质上都是一个时间序列,因此任务是多个时间序列问题。获胜团队提交了一个多级深度架构,其中包括LSTM网络和Transformer块等。

在过去几年中,许多值得注意的架构已经发布,例如_多时序分位数递归预测器(MQRNN)和深度空间状态模型(DSSM)_。所有这些模型都利用了深度学习为时间序列预测领域贡献了许多创新。除了赢得Kaggle比赛外,还有其他因素在发挥作用,例如:

  • 通用性: 模型在不同任务中的使用能力。
  • MLOps: 模型在生产中的使用能力。
  • 可解释性和可解释性: 黑盒模型不再那么受欢迎。

本文讨论了4种专门用于时间序列预测的新型深度学习架构。具体而言,它们是:

  • N-BEATS(ElementAI)
  • DeepAR(Amazon)
  • Spacetimeformer[4]
  • Temporal Fusion Transformer or TFT(Google)[5]

前两者经过了更多的实践应用。_Spacetimeformer_和_TFT_也是优秀的模型,提出了许多创新。它们能够利用超出时间序列上下文的新动态。

N-BEATS

这个模型直接来自(不幸地)短命的ElementAI,这是由Yoshua Bengio共同创立的一家公司。其主要组成部分和顶层架构如图1所示:

图1: N-BEATS架构(来源

基本上,_N-BEATS_是一个纯深度学习架构,基于一组叠加的前馈网络集成,这些网络也通过连接_backcast_和_forecast_链接来进行堆叠。

每个连续的块仅对前一个块的_backcast_重建产生的残差误差进行建模,然后基于该误差更新_forecast_。这个过程模仿了拟合ARIMA模型时的Box-Jenkins方法。

这些是该模型的主要优势:

表达能力强且易于使用: 该模型易于理解,并具有模块化结构(块和堆栈)。此外,它旨在要求最少的时间序列特征工程和无输入缩放。多元时间序列: 该模型具有泛化到许多时间序列的能力。换句话说,可以将具有略微不同分布的不同时间序列用作输入。在_N-BEATS_实现中,通过_元学习_实现此目标。具体来说,元学习过程包括两个过程:内部学习过程和外部学习过程。内部学习过程发生在块内,帮助模型捕捉局部时间特征。另一方面,外部学习过程发生在堆栈内,帮助模型学习跨所有时间序列的全局特征。

双重残差堆叠: 残差连接和堆叠的思想非常出色,几乎在所有类型的深度神经网络中都得到了应用,例如深度 ConvnetsTransformers 。在_N-BEATS_ 实现中应用了相同的原则,但进行了一些额外的修改:每个块都有两个残差分支,一个通过回溯窗口运行(称为 backcast ),另一个通过预测窗口运行(称为 forecast )。

每个连续块仅对由上一个块的_backcast_重建引起的残差误差进行建模,然后基于该误差更新 forecast 。这有助于模型更好地逼近有用的 backcast 信号,同时,最终的 stack forecast 预测被建模为所有部分预测的分层总和。有趣的是,这个过程模仿了拟合 ARIMA 模型时的 Box-Jenkins 方法。

可解释性: 该模型有两个变体,通用可解释 。在 通用 变体中,每个块的完全连接层中的最终权重由网络任意学习。在 可解释 变体中,每个块的最后一层被移除。然后,backcastforecast 分支被乘以模拟 trend(单调函数)和 seasonality(周期性循环函数)的特定矩阵。

注意: 原始的 N-BEATS 实现仅适用于单变量时间序列。

DeepAR

一种将深度学习和自回归特性相结合的新型时间序列模型。_DeepAR_的高层视图显示在图2中:

图2: DeepAR模型架构(来源

以下是该模型的主要优点:

多元时间序列: DeepAR 与多元时间序列非常匹配:使用略有不同分布的多个时间序列构建全局模型。此外,该属性在许多实际应用场景中都有应用。例如,一个电力公司可能希望为每个客户启动功率预测服务。几乎可以确定每个客户都会有不同的消费模式(这意味着不同的分布)。

丰富的输入集: 除了历史数据外,DeepAR 还允许使用已知的未来时间序列(自回归模型的特征)和序列的额外静态属性。在上述功率需求预测方案中,额外的时间变量可以是month(作为整数,取值范围为1-12)。显然,鉴于每个客户都与测量功耗的单个传感器相关联,额外的静态变量将是类似于sensor_idcustomer_id的内容。

自动缩放: 如果你熟悉使用神经网络架构(如MLP和RNN)进行时间序列预测的情况,那么关键的预处理步骤之一是使用归一化或标准化技术缩放时间序列。在_DeepAR_中,由于模型在底层缩放每个时间序列i的自回归输入z的缩放因子v_i,因此无需手动执行此操作。具体而言,在本文基准测试中使用的缩放因子方程式如下:

但是,在实践中,如果目标时间序列的数量级差异显著,则在预处理期间应用自己的缩放可能会有所帮助。例如,在能源需求预测方案中,数据集可能包含中压电力客户(例如小型工厂,耗电量为兆瓦级)和低压客户(例如家庭,耗电量为千瓦级)。

概率预测:DeepAR 进行概率预测,而不是直接输出未来值。这是以蒙特卡罗样本的形式完成的。此外,这些预测用于通过使用分位数损失函数计算分位数预测。对于那些不熟悉这种类型的损失的人来说,分位数损失用于计算不仅是一个估计值,而且还有一个围绕该值的预测区间。

Spacetimeformer

在单变量时间序列的情况下,时间依赖关系是唯一重要的。但在多元时间序列情况下,情况并不那么简单。例如,假设我们有一个天气预测任务,我们想要预测五个城市的温度。此外,让我们假设这些城市属于同一个国家。根据我们迄今所看到的,我们可以使用 DeepAR ,并将每个城市建模为外部静态协变量。

换句话说,模型将考虑时间和空间关系。这是 _Spacetimeformer_ 的核心思想。

我们还可以采取进一步措施,使用利用这些城市/位置之间的空间关系来学习额外有用的依赖关系的模型。换句话说,模型将考虑时间和空间关系。这是 Spacetimeformer 的核心思想。

深入研究时空序列

正如其名称所示,该模型在底层使用基于Transformer的结构。在使用基于Transformer的模型进行时间序列预测时,生成时间感知嵌入的一种流行技术是通过Time2Vec[6]嵌入层传递输入(作为提醒,对于NLP任务,使用位置编码向量代替_Time2vec_,该向量产生上下文感知嵌入)。虽然这种技术对于单变量时间序列非常有效,但对于多元时间输入没有任何意义。在语言建模中,句子的每个单词都由嵌入表示,并且单词本质上是概念,是词汇表的一部分。在多变量时间序列的背景下,在给定时间步长t时,输入的形式为x_1,tx_2,tx_m,t,其中x_i,t是特征i的数值,m是特征/序列的总数。如果我们通过_Time2Vec_层将输入传递,将生成一个时间嵌入向量。在这种情况下,这个嵌入实际上代表了整个输入作为单个实体(token)的表示。因此,模型将仅学习时间步之间的时间动态,但会忽略特征/变量之间的空间关系。

Spacetimeformer 通过将输入展平成一个称为时空序列的单个大向量来解决这个问题。如果输入由N个变量组成,组织为T个时间步长,则生成的时空序列将有(NxT)个token。这在图3中更好地显示:

图3: 导致时空序列的一系列变换:论文指出:“(1)包括时间信息的多变量输入格式。解码器输入的缺失(“?”)值设置为需要进行预测的零值。(2)时间序列通过Time2Vec层传递,以生成表示周期性输入模式的频率嵌入。(3)二进制嵌入指示此值是作为上下文给出还是需要预测的。(4)每个时间序列的整数索引映射到具有查找表嵌入的“空间”表示。(5)每个时间序列的Time2Vec嵌入和变量值通过前馈层进行投影。(6)Value&Time,Variable和Given嵌入求和并排列,以使MSA在时间和变量空间之间关注关系,代价是更长的输入序列。”来源

换句话说,最终序列已经编码为一个统一的嵌入,包含时间、空间和上下文信息。

然而,这种方法的一个缺点是序列可能变得太长,导致资源呈二次增长。这是因为根据注意机制,每个token/实体都要与其他token/实体进行比较。作者使用了一种更高效的架构,适用于更大的序列,称为Performer注意机制。有关更多技术细节,请查看项目在Github上的repo。

时态融合Transformer

时态融合Transformer(TFT)是由Google发布的基于Transformer的时间序列预测模型。如果你想要更全面的关于这个出色模型的分析,请查看这篇文章

TFT比以前的模型更通用。例如,DeepAR不能使用仅在当前已知的时间相关特征。

图4:TFT的顶层架构及其主要组件(来源)

**图4:**TFT的顶层架构及其主要组件(来源

_TFT_的顶层架构如图4所示。以下是该模型的主要优点:

  • 多时间序列:与前述模型一样,_TFT_支持在多个异构时间序列上构建模型。
  • 丰富的特征数:_TFT_支持3种类型的特征:i)已知未来输入的时间相关数据ii)仅在当前已知的时间相关数据和iii)分类/静态变量,也称为时间不变特征。因此,TFT 比以前的模型更通用。例如,DeepAR 不能使用仅在当前已知的时间相关特征。在上述功率需求预测场景中,我们希望使用湿度水平作为时间相关特征,这仅在当前已知。这在 TFT 中是可行的,但在 DeepAR 中不可行。

这些特征的使用示例如图5所示:

图5:外部静态变量对预测的影响(来源)- 可解释性TFT 非常注重可解释性。具体而言,通过利用变量选择组件(显示在图4中),模型可以成功地测量每个特征的影响。因此,模型学习了特征的重要性。另一方面,TFT 提出了一种新颖的可解释的多头注意力机制:这一层的注意力权重可以揭示回顾期间哪些时间步骤最重要。因此,这些权重的可视化可以揭示整个数据集中最突出的季节模式。

  • 预测区间:与 DeepAR 类似,TFT 通过使用分位数回归来输出预测值的预测区间。

结语

考虑到所有上述因素,深度学习无疑已经彻底改变了时间序列预测的格局。除了卓越的性能之外,所有上述模型都有一个共同点:它们最大限度地利用了多个多变量时间数据,同时以一种和谐的方式使用外生信息,将预测性能提升到前所未有的水平。

谢谢你的阅读!

参考文献

[1] Makridakis et al., The M5 Accuracy competition: Results, findings and conclusions, (2020)

[2] D. Salinas et al., DeepAR: Probabilistic forecasting with autoregressive recurrent networks, International Journal of Forecasting (2019).

[3] Boris N. et al., N-BEATS: Neural Basis Expansion Analysis For Interpretable Time Series Forecasting, ICLR (2020)

[4] Jake Grigsby et al., Long-Range Transformers for Dynamic Spatiotemporal Forecasting,

[5] Bryan Lim et al., Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting, International Journal of Forecasting September 2020

[6] Seyed Mehran Kazemi et al.,Time2Vec: Learning a Vector Representation of Time_, _July 2019

译自:https://towardsdatascience.com/the-best-deep-learning-models-for-time-series-forecasting-690767bc63f0

版权声明:本文内容由TeHub注册用户自发贡献,版权归原作者所有,TeHub社区不拥有其著作权,亦不承担相应法律责任。 如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

点赞(0)
收藏(0)
alivne
复杂的问题简单化

评论(0)

添加评论