正文
需要注意的是,不同项之间会存在互相流动的情况,例如突发的交通事故如果一直持续,可能会发展成“短周期项”,如果持续的时间更长,则可能会转移成长周期项,这种流动性就要求模型能够更加灵活,从而准确地把握每一个结构的流动情况。
3.2 结构分解
本节将介绍如何对4个模块进行分解建模以及预测:
1)
长周期项
:如前文所示,长周期反映的是序列数据在较长时间范围内的变化。因此选择构建一个较大的滑动窗口,取每个窗口内的均值与标准差作为长周期项的两个参数。
其中
表示长周期项的均值与标准差;
表示将原数据进行长周期化后的数据(提取出长周期项)。
2)
季节性项
:与长周期项的滑动窗口类似,在基于 “序列的周期长度是一致的”假设前提下,对季节性项也采取一个窗口统计的方法。
其中
表示季节性项的均值与标准差;
表示将
再进行季节性化后的数据(提取出季节性项)。
3)
短周期项
:和长周期项相同,这里取一个较短的滑动窗口来进行计算;较短的窗口能够防止一些短期内的信息平滑掉,从而能够体现出数据在短时间内的变化,提供更全面的信息。
其中
表示短周期项的均值与标准差;
表示将
进行短周期化后的数据(提取短周期项)。
4)
序列间相关性项
:相较于单元序列,多元序列需要考虑到不同变量之间的相关性,如上述的交通案例中某一道路的突发情况会对邻近道路造成影响,这一过程就体现了序列间相关性。作者认为不同序列间会共享某一个相关性值(例如道路A邻近的两条道路B和C,如果都发生了交通事故,他们对于道路A的影响程度可能是同一个相关性结构),因此我们需要识别出哪些序列间会共享同一个相关性结构,换句话说我们需要知道每一对序列之间的相关性结构。
我们可以采取通过一些先验知识计算两两序列之间的相关性权重矩阵;也可以通过让模型自己学习,SCNN模型选择了后者,采用注意力计算的方法,给每一对序列之间设置一个注意力分数并通过softmax方式进行标准化以确保注意力分数总和为1;最终每一对序列之间的分数可以表示如下:
其中
分别表示第n个变量与第
个变量在标准化后和标准化前的注意力分数;
表示将注意力分数分配到每两个变量后的的均值与标准差;
R
n,t
表示
被抽取序列间相关性之后。最终无法被分解的剩余项。
下图展示了一个多元时间序列经过4道分解的过程:先抽取长周期项;再抽取季节性项;再抽取短周期项最后抽取序列间的相关性项。在进行4道分解之后会得到4个模块各自的模型,随后会分别进行预测,最终将4个模块预测的结果经过一维卷积融合得到最终输出的预测序列。
图3-2展示SCNN模型对于4个模块分解的过程。过程中会分别计算出每个模块的均值与标准差值作为模型参数,将4个模块分别抽取之后分别进行建模、预测;最后将各模块的预测结果进行融合得到最终的序列预测结果。
3.3 结构预测
上述内容介绍了如何将序列的4个模块分别抽取并建模的过程,下面将介绍如何对这4个模块分别进行预测。
长周期和季节性项因为统一采用了滑动窗口的形式并且其周期较长、较平滑,如果预测较近的未来,这两项的趋势不会有太大的波动,因此可以直接用参数估计的方式进行预测,即直接用当前窗口的均值作为下一个窗口的估计,公示如下:
短周期项、相关性项以及残差项因为会在短时间内有较大的变动因此无法使用长周期的方法进行推测。作者认为可以对这三种模块各自建立一个自回归的模型,能够基于过去的信息来预测未来的情况。为了简便作者统一用下面的表达式来表示这三项结构的自回归模型:
其中
是模型中的权重矩阵,
b
i
表示预测偏差。
,表示囊括了短周期、序列间相关性以及残差项这三个结构,其中我们主要需要训练