【时间序列预测】Nbeats系列模型介绍

今天给大家介绍由图灵奖得主Bengio创建的独角兽公司ElementAI发表的用于时间序列预测的Nbeats系列模型。相比于RNN、transformer、CNN这三个主流时间预测模型框架,Nbeats开创了一个新的backbone,即仅使用全连接网络实现时间序列预测。

N-BEATS:  Neural basis expansion analysis for interpretable time series forecasting

  • 文献地址:https://arxiv.org/pdf/1905.10437.pdf

  • 代码地址:https://github.com/jdb78/pytorch-forecasting/blob/master/examples/nbeats.py

  • 主要思想

N-BEATS模型解决的是一元时间序列预测任务,即给定长度为T的历史序列,预测其未来H个窗口内的取值。文章作者声称N-BEATS模型框架遵循三个基本原则,首先,模型框架简单和通用的同时具有表达能力(深度)。其次,模型架构不依赖于特定的时间序列特征工程或输入缩放,从而探索深度学习模型结构对于时间序列预测的潜力。最后,模型架构是具有解释性的。话不多说,下面具体介绍N-BEATS模型结构。

ffd9486987058c15d78efc2a82236164.png

(从右➡️左为N-BEATS的基础模块)

N-BEATS模型由多个stack模块组成,每个stack又由多个block串联而成,其中第一个block的输入为原始输入序列,输出为两部分,一是对于未来窗口H的预测值,二是对于block输入的重构值。其余block的输入则皆为上一个block输入减去上一个block输出重构值的残差。一方面,下个一个block作为之前block的补充,不断地去拟合之前block没有拟合到的残差信息,另一方面,可将此过程看作是对时间序列信息的分解,不同stack中的block拟合时间序列某一部分的信息,最终Nbeats的输出为各个stack输出的加和。

输出为两部分,一是对于未来窗口H的预测值,二是对于block输入的重构值。对于每一个block,包含针对于和的两路分支,每一路分支均可看作两阶段的映射过程,第一个阶段的映射将输入序列映射为expansion coefficient (或),包含4个FC层(由全连接层与RELU激活函数构成)和一个简单的线性层,如下:

7b7bb86cd4deabb301dc323e785c95fc.png

expansion coefficient 可以理解为是block剔除了输入中的冗余信息后,保留与预测目标或密切相关信息的低维向量。第二个阶段的映射则是将上一个阶段得到的expansion coefficient经过映射函数 和 ,获得和, 示例如下

7a5e92f5e66670792bfb21bc381c180d.png

映射函数 和 可以设定为如上通用的形式,具有可学习系数,也可以设置为特定的函数形式,强制让某个stack内的block学习时间序列的特定属性,以增强N-BEATS模型的可解释性。例如,可以将设置为如下形式,让block分别学习时间序列的趋势信息、季节信息。

4983acf28216292ecfc03437dc88e4c8.png

NBEATSx :Neural basis expansion analysis with exogenous variables: Forecasting electricity prices with NBEATSx

  • 文献地址:https://arxiv.org/pdf/2104.05522.pdf

  • 代码地址:https://github.com/cchallu/nbeatsx

  • 主要思想

NBEATSx对N-BEATS进行拓展,进行了两方面的改进,1)除时间序列以外,允许外部协变量的输入,从而提取有用信息以及数据中的时间依赖信息。2)可解释的时间序列信号分解, 通过非线性转换灵活拟合时间序列中的多种季节性,以及节假日等因素与外部协变量交互。

9f5fdedeafe7ae4c5034cbeb9be29f4e.png

与N-BEATS相同,NBEATSx也由stack和block堆叠而成,主要的差别在block部分。block的输入除历史序列外,还包含了外部协变量,通过全连接层将二者转变为隐含状态,再通过两个线性层将隐含状态转变为expansion coefficient  和。此时,expansion coefficient  和中保留了外部协变量与历史序列中的信息。

4591d9db251a5da4242c90e820d1ba3d.png

获取到expansion coefficient 后,接下来就是进行映射获取对过去值与未来值的预测 和。为了提高模型可解释性,不同的stack可分别采用谐波函数、多项式趋势项及外部协变量,来分别拟合序列中与周期、趋势及外部信息相关的信息,如下:

0b796c77950756c2c31565dafe500b46.png

当然,NBEATSx也可采用通用映射函数,进一步提出了一种新的映射函数,即利用一个TCN(时间序列卷积模块)对外部特征进行编码,将该编码作为生成预测结果的映射系数,从而捕捉协变量中的长期依赖关系。

903b1bbd13398ce25032c7918d3de2cb.png

FC-GAGA: Fully Connected Gated Graph Architecture for Spatio-Temporal Traffic Forecasting

  • 文献地址:https://arxiv.org/pdf/2007.15531.pdf

  • 代码地址:https://github.com/boreshkinai/fc-gaga

  • 主要思想

N-BEATS主要面向的是一元时间序列预测问题,FC-GAGA将N-BEATS模型与graph gate mechanism进行结合,建模多元时间序列间的相互影响关系,解决多变量时间序列预测问题,与NBEATSx相似,FC-GAGA也允许外部协变量的输入。

1b1a19295afde14f06011c7a1798f45e.png

多变量时间序列可用图进行描述,每个序列可视为图中的一个节点,由未知的随机过程生成,节点间的连边则可描述序列间的影响关系,FC-GAGA的目标是预测各个节点未来H窗口内的取值,FC-GAGA的基础模块如上图所示,在Nbeats的stack模块中新增了三个步骤,分别是Graph edge weights、Time gate block,Graph gate block。

Graph edge weights:由于各变量间的关系事先未知,首先需要获取变量间连接图。将各个节点的特征向量进行编码,获取d维的节点embedding,, 通过计算两两节点embedding间的内积,可获得表示两两节点关系的邻接矩阵W:

82ad9b6ed54a8c0f87972f6681b5c948.png

ε是一个缩放系数。

Time gate block:此模块采用的是如图上紫色模块所示的multiplicative gate model。模块输入对时间相关协变量(例如星期几、时间)与历史序列进行了拼接,以拟合各个节点不同的时间相关模式。这个模块旨在消除各个节点中特有的multiplicative seasonality,并在输出时将其与各个节点预测值相乘,以恢复各个节点的模式。因为输入与输出序列对应的时间通常时不同的,通过这种方法,充分考虑了时间的影响,可以更好地建模时间相关的特征,同时考虑节点之间可能的季节性差异,并增强了模型的灵活性。

Graph gate block:此模块根据节点间连接关系的大小关系不同节点间的信息。对于输入的历史数据矩阵, 首先计算各个节点的最大值,然后计划如下运算:

bc93c5cd3bbd5a1c127c693fab0783e2.png

获得矩阵,矩阵的每一行对应一个节点。上述运算实现了节点i与节点j历史w各时刻值的交互,通过relu函数和,利用门控机制剔除了两两不关联节点之间的影响,的大小影响门控机制。不过这里为什么需要减去和除去节点最大值,作者并没有做过多的解释。

最终,矩阵作为更新后的序列值再输入到Nbeats的block中,进行历史值与未来值的预测,对于预测出来的未来值再与time  gate block的输出相乘,得到最终本层的输出值,通过多层结果累加得到最终的预测值。

总结

Nbeats系列模型以全联接层为backbone实现了一元时间序列预测和多元时间序列的时空预测,其核心思路是利用全连接层对时间序列进行分解,通过不同的函数形式建模时间序列的周期项、趋势项等,提升了模型的可解释性,模型结构也比较简单。

推荐阅读:

我的2022届互联网校招分享

我的2021总结

浅谈算法岗和开发岗的区别

互联网校招研发薪资汇总

2022届互联网求职现状,金9银10快变成铜9铁10!!

公众号:AI蜗牛车

保持谦逊、保持自律、保持进步

2ff288806f37a75484e764d290c938b0.jpeg

发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)

发送【1222】获取一份不错的leetcode刷题笔记

发送【AI四大名著】获取四本经典AI电子书

猜你喜欢

转载自blog.csdn.net/qq_33431368/article/details/132726527
今日推荐