时间序列-预测-模型-2021:SCINet

【1. 概要】

论文针对的是时序预测问题(Time series forecasting,TSF),根据时间序列的特点创新性地提出了一个多层的神经网络框架sample convolution and interaction network(SCINet)用于时序预测。模型在多个数据集上都展示了其准确率上的优越性,且时间成本相对其他模型(如时序卷积网络TCN)也更低。本篇论文工作包含以下几点:

  • 说明了TCN不适合解决TSF问题,尤其是其中的因果卷积对模型准确率反而有负面影响
  • 基于时间序列的独特性提出了一个多层TSF框架SCINet,通过计算permutation entropy(PE)可以证明新的模型有更强的预测能力
  • 构造了SCINet的基本块SCI-Block,它将输入的数据/特征下采样为两个子序列,然后使用不同的卷积滤波器提取每个子序列特征以保留不同特征的信息。同时为了减少下采样过程中信息丢失造成的影响,在每个SCI-Block中加入了两个序列间卷积特征的学习。

【2. 知识梳理】

【2.1. 模型梳理】

目前用于时间序列预测的主要有三类深度神经网络:

  • RNNs及其变种(如LSTMs和GRUs)
  • Transformer及其变种(如Reformer和Informer)
  • TCNs

目前来看,TCN模型效果更好,并且可以与GNNs进行结合解决TSF(Time series forecasting)问题

【2.1.1. TCN-时序卷积网络】

TCN这一网络结构起源于 “An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling” 这一论文,TCN在时间和效果上都普遍优于RNN,因此引起了巨大反响。

TCN中涉及到了最简单的CNN和RNN,除此之外还涉及到了扩张/空洞卷积(Dilated Convolution),因果卷积(Causal Convolution),残差卷积的跳层连接(Residual Connections)

  • 因果卷积
    要求对时刻t 的预测yt只能通过t时刻之前的输入x1到xt-1来判别,有一点类似于马尔科夫链
  • 膨胀卷积
    对于普通的一维卷积操作,为了在输出侧获取足够的“感受野”,网络的层数需要跟追溯的历史信息长度成线性关系。为了降低网络复杂度,减少网络层数,TCN在卷积里注入空洞来增加感受野,可以将网络的层数下降到跟追溯的历史信息长度成指数关系
  • 残差卷积的跳层连接
    也称为残差卷积的跳层连接,在每层特征图中添加上一层的特征信息,使网络更深,加快反馈与收敛。

下图是TCN的整体网络结构:
在这里插入图片描述

  • 图(a)展示了空洞系数 d=1, 2, 4、卷积核大小 k=3 的扩张卷积,感受野能覆盖输入序列中的所有值;
  • 图(b)展示了TCN的残差模块,当残差输入和输出有不同的维度,会往其中添加一个 1x1 的卷积,每个模块内有两层扩张卷积和 ReLU 非线性函数,卷积核的权重都经过了权重归一化,且每个空洞卷积后都添加了 Dropout 以实现正则化;
  • 图(c)展示了残差卷积的跳层连接,蓝线为残差函数中的卷积核,绿线为恒等映射。

TCNs具有两个原则:

  1. 输入输出长度相等;
  2. t 时刻后的数据不可以泄露到t时刻前。但TSF问题并不需要满足以上两个原则,并且时间序列本身是一个非常特殊的序列数据,不应该使用针对普通序列的TCN模型一概而论

【2.1.2. Informer】

Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting这一论文是AAAI 2021的Best Paper(但是在实际测试中,部分数据集上的表现非常糟糕)。Informer主要是对于Transformer模型的一个改进,Transformer结构有几个问题需要解决:

  • self-attention的时间和空间复杂度都是O(L^2) ,L为序列长度
  • encoder-decoder结构在解码时step-by-step,预测序列越长,预测时间也就越长
    在这里插入图片描述

针对上面两个问题,Informer在Transformer基础上提出了三点改进:

  • 提出了ProbSparse self-attention机制,时间复杂度降为O(LlogL)
  • 提出了self-attention蒸馏机制来缩短每一层的输入序列长度,序列长度变短计算量和存储量自然也会下降
  • 提出了生成式的decoder机制,在预测序列时一步得到结果,而不是step-by-step,直接将预测时间复杂度由O(N)降到了O(1)

【2.2. 知识整理】

【2.2.1. PE(排列熵)】

permutation entropy(PE)是度量时间序列复杂性的一种方法,直观地来说,时间序列复杂性越低,序列的可预测性就越强,SCINet可以将时间序列的PE值降低,从而使序列“更容易预测”,其计算过程如下:

设有一维时间序列

X={x(1), x(2), x(3)…x(n)}

采用相空间重构延迟坐标法对 X 中任一元素 X_i 进行相空间重构,对每个采样点取其连续的 m 个样点,得到点 X_i 的 m 纬空间的重构向量(其实就是依次取出来长度为 m 的时间片)

X_i={x(i),x(i+\mathfrak{r}),…,x(i+(m-1)*\mathfrak{r})}

则序列 X 的相空间矩阵为

X=\left{ \begin{array}{c} X_1\ X_2\ .\ .\ .\ X_{n-\left( m-1 \right) \mathfrak{r}}\ \end{array} \right}X=\left{ \begin{array}{c} X_1\ X_2\ .\ .\ .\ X_{n-\left( m-1 \right) \mathfrak{r}}\ \end{array} \right}

其中 m 和 \mathfrak{r} 分别为重构维数和延迟时间

对每行 X_i 的元素编号0~m-1,进而进行升序排列,排列完成后对整个 X 统计每一行排列的概率 p_i

p_i=\frac{每一行的下标顺序出现的次数}{m!}

进而计算时间序列里所有行的信息熵之和:

H(m)=-\sum_{i=1}^{n-\left( m-1 \right)}{\left( p_i*\log p_i \right)}

由于m对H(m)有影响,进一步进行归一化,得到排列熵h_m(除m-1的原因是对比开始于第二个值)

h_m=\frac{H(m)}{m-1}

【2.2.2. Multi-resolution analysis(多分辨率分析)】

这是信号分析中的一个传统方法,并被应用到了时间序列分类问题中

大概浏览了一下Multi-Scale Convolutional Neural Networks for Time Series Classification这篇论文(下图为模型),我理解这样一种方法就是类似于不断降采样,投入模型训练的过程,可能是不断二分,也可能是简单地进行一次二分就投入模型,总之是不同“分辨率”下对数据的处理训练

【2.2.3. Intermediate Supervision(中继监督)】

中继监督也称为深度监督(deep supervision),其目的是为了浅层能够得到更加充分的训练,避免梯度消失和收敛速度过慢。

中继监督最早在2014年的Deeply-Supervised Nets论文中提出,但DSN的一个缺点在于使用的网络结构不够深,且辅助的分类器为传统的SVM模型。

2015年Training Deeper Convolutional Networks with Deep Supervision论文尝试了在更深层结构的网络中使用中继监督。这篇论文中给出了一个带有中继监督的8层深度卷积网络结构, 可以看到,图中在第四个卷积块之后添加了一个监督分类器作为分支。Conv4输出的特征图除了随着主网络进入Conv5之外,也作为输入进入了分支分类器

一个带有中继监督的8层深度卷积网络结构
后续中继监督作为一个优化模型训练的手段被广泛应用于各种深度学习网络中,如ECCV2016的Stacked Hourglass Networks,本论文中给出的Trellis networks for sequence modeling等等

【3. SCINet: Sample Convolution and Interaction Networks】

在这里插入图片描述
SCINet的整体结构如上图所示

  • 图(a)是基本块SCI-Block,将输入数据/特征进行下采样后输入两个分立的子序列中( F_{odd} 和 F_{even} ),然后分别输入不同的卷积滤波器,同时为了减少下采样过程中信息丢失造成的影响,在每个SCI-Block中加入了两个序列间卷积特征的学习(中间的Interactive Learning部分)
  • 图(b)是一个SCINet,它使用了二叉树将SCI-Block组合起来,在经过了所有SCI-Block中的操作后,在Concat&Realign层将信息组合并添加到原始时间序列进行预测
  • 图©展示了SCINet堆叠起来形成的更大的网络Stacked SCINet,这样的网络可以用来预测更复杂的时间序列

【3.1. SCI-Block】

这一部分将时间序列分为 F_{even} 和 F_{odd} 两个子序列进行分别的特征提取,两个子序列之间的交互学习通过下面的策略完成

  • 使用两个不同的一维模块 \phi 和 \psi 将 F_{even} 和 F_{odd} 分别映射到两个隐藏状态,随后将其转换为exp的形式,进而进行元素层面的乘积操作(即Hadamard product,对应元素相乘)

F o d d s = F o d d ⊙ e x p ( ϕ ( F e v e n ) ) , F e v e n s = F e v e n ⊙ e x p ( ψ ( F o l d ) ) F_{odd}^{s}=F_{odd}\odot exp(\phi (F_{even})), F_{even}^{s}=F_{even}\odot exp(\psi (F_{old})) Fodds=Foddexp(ϕ(Feven)),Fevens=Fevenexp(ψ(Fold))

  • 使用两个不同的一维模块 \rho 和 \eta 继续将 F^{s}{even} 和 F^{s}{odd} 分别映射到两个隐藏状态,进而进行加或减操作,得到最终的子特征 F^{'}{even} 和 F^{'}{odd}

F o d d ′ = F o d d s ± ρ ( F e v e n s ) , F e v e n ′ = F e v e n s ± η ( F o l d s ) F_{odd}^{'}=F_{odd}^{s}\pm \rho \left( F_{even}^{s} \right) ,F_{even}^{'}=F_{even}^{s}\pm \eta \left( F_{old}^{s} \right) Fodd=Fodds±ρ(Fevens),Feven=Fevens±η(Folds)

其中, \phi、\psi、\rho、\eta 的结构如图所示,首先会通过repication padding来减少卷积运算的边界效应,然后采用大小为k的一维卷积将长度由C扩展到h*C,进而进行LeakyRelu和Dropout,然后再使用一个一维卷积曾将长度恢复到C,最后使用Tanh激活函数防止负值丢失
在这里插入图片描述

【3.2. SCINet】

整个SCINet的结构是一个二叉树,在每个SCI-Block中时间序列被分为两个部分,随着二叉树深度的增加,时间序列的“时间分辨率”不断降低,更精细的时序信息也会被提取出来,通过这样的方式,TSF序列中短期和长期的依赖关系都会被提取出来

在经过L层的SCI-Block后,重新组装时序序列生成一个新的序列,最后通过残差链接将其加入到原序列中,以便进行预测

最后进行全连接层,得出预测结果或特征(根据SCINet在Stacked SCINet所处的层次)(这里也保证了输入与输出的长度不一定一致)

SCINet相比TCN的时间成本大大降低,TCN所需的卷积操作数为 Tlog_{2}T ,而SCINet需要的卷积操作数仅为 L2T (L为层数,T为look-back window大小)

【3.3. 使用中继监督的Sacked SCINet】

在每个SCINet的输出处使用了中继监督(使用ground-truth进行计算,见下个部分“损失函数”),第k层的输出 \hat{X}^k 与部分的输入 X_{t-(T-\tau)+1:t} 进行连接( \tau 为待预测长度, T 为look-back窗口长),然后投入到第k+1层网络中,最后一层(第K层)的输出就是最终的预测值。

【3.4. 损失函数】

一个具有K个SCINets的stacked SCINet,其第k个中间层的损失函数如下,其中 x_i 为ground-truth

\mathcal{L}k=\frac{1}{\tau}\sum{i=0}^{\tau}{\left| \hat{x}_{i}^{k}-x_i \right|},k\ne K

最后一层的损失函数分多步预测和单步预测两种情况讨论,多步预测最后一层的损失函数同中间层(上面的公式),单步预测最后一层的损失函数加入了一个平衡参数 \lambda

\mathcal{L}K=\frac{1}{\tau -1}\sum{i=0}^{\tau -1}{\left| \hat{x}{i}^{K}-x_i \right|}+\lambda \left| \hat{x}{\tau}^{K}-x_{\tau} \right|

总的损失函数为

\mathcal{L}=\sum_{k=1}^K{\mathcal{L}_k}

【4. SCINet性能】

【4.1. 数据集上的表现】

实验部分作者使用了11个数据集进行模型训练和测试,分为三组,分别是

  • Electricity Transformer Temperature (ETTh1, ETTh2 and ETTm1)
    Multi-Step,使用MAE和MSE作为指标
  • Traffic, Solar-Energy, Electricity and Exchange-Rate
    Single-Step,使用RSE和CORR作为指标
  • PeMS (PEMS03, PEMS04, PEMS07 and PEMS08)
    Multi-Step,时空时间序列,使用MAE、RMSE和MAPE作为指标

其中对于单步预测的评估使用的是最后一次的预测值,对于多步预测的评估使用的是平均值

EET数据集上的表现如图所示,可以看出SCINet>TCNs>Transformer>RNNs
在这里插入图片描述
而在第二组数据集上的表现,除了Electricity数据集上略逊外,其他数据集的效果均表现最优
在这里插入图片描述
在PeMS这种时空数据集上,SCINet可以在没有复杂的空间依赖模型的情况下仍取得很好的效果
在这里插入图片描述

【4.2. PE值的降低】

论文进一步利用置换熵(PE)来对比原始输入和SCINet学习的增强表示的可预测性。PE值较低的时间序列理论上更容易预测。从下图可以观察到,与原始输入相比,SCINet学习的增强表示具有较低的PE值。
在这里插入图片描述

【4.3. 模型结构研究】

为了进一步评估模型每个组件的有效性,在数据集上对模型结构变化进行了实验,包括去除SCI-Block中的交互学习、去除残差卷积的跳层连接等,去除后性能的下降表明了SCINet-Block中两个子序列间进行学习、给予 \phi、\psi、\rho、\eta 独立权重等结构的必要性。

另外,作者还对L和K值进行了测试,并说明 L\leqslant 5 , K\leqslant 3 的参数就可以预测大多数网络




参考资料:
【论文阅读笔记】Time Series is a Special Sequence: Forecasting with Sample Convolution and Interaction
从两篇高影响力文章谈起

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值