TiDE时间序列模型预测(Long-term Forecasting with TiDE: Time-series Dense Encoder)

时间序列预测,广泛用于能源、金融、交通等诸多行业,传统的统计模型,例如ARIMA、GARCH等因其简单高效而被广泛使用,近年来,随着深度学习的兴起,基于神经网络的预测模型也备受关注,表现出强大的预测能力。

ARIMA(自回归积分滑动平均模型 Autoregressive integrated moving average model)特别适用于显示出明显线性趋势或季节性模式的数据序列。

结合了自回归(AR)、差分(I)和移动平均(MA)三个部分,主要用于分析和预测具有时间依赖的数据序列。

1、自回归:表明当前的时间序列值可以表示为前一期或多期的函数,即时间序列的当前值与其过去值之间存在线性关系。

2、差分:是为了使非平稳时间序列变为平稳序列的处理方法,通过对原始数据进行一次或多次差分,消除数据的季节性和趋势性,从而稳定序列的方差和均值。

3、移动平均:涉及将模型的误差项表达为观测点的线性组合,可以帮助模型更好地适应时间序列中的随机波动。

GARCH(广义自回归条件异方差模型 Generalized Autoergressive Conditional Heteroskedasticity Model)

一种用于分析时间序列数据中波动性的模型,特别是在金融时间序列中,该模型能够捕捉到时间序列的波动性的自回归和条件异方差性,从而更好地描述和预测金融资产的波动率。

协变量

协变量是指与时间序列值相关联的其他变量,它们可以提供额外的信息,帮助模型更好地进行预测。协变量可以分为两类:

1、静态协变量:这些协变量不随时间变化

例如:产品特征:零售数据中的产品类别、品牌、价格等

           地理特征:交通数据中道路类型、天气数据中的城市名称等

           其他:零售数据中的商店ID、交通数据中的路线ID等

2、动态协变量:这些协变量随时间变化

例如:天气数据中的温度、湿度、风速等

           交通数据中的交通流量、事故信息等

           零售数据中的促销信息、叫假日信息等

transformer模型因其出色的捕捉长期以来关系的能力,一度被认为是解决时间序列预测问题的利器,但是研究发现,transformer模型在处理长期预测任务中, 反而效果不如一些简单的线性模型。

TiDE:Time-series Dense encoder

摒弃了目前流行的转化器(transformer)结构,采用了编码器-解码器的框架,使用简单的多层感知器(MLP)网络来完成编码和解码的工作。

工作流程:编码器会将历史的时间序列数据和相关的学变量(如节假日、促销活动等)输入进去,学习一个紧凑的表示向量,捕捉数据内在模式,接下来,解码器会根据这个向量,结合已知的未来时间步的协变量,生成相应的预测值。

巧妙之处:在于利用MLP的非线性映射能力来提取复杂特征,同时避免了转化器的注意力计算,大幅提高了模型的训练和预测速度。

框架图:

从输入到输出的工作流程:

1、动态协变量:对时间序列的动态协变量进行特征投影,简化特征的维度

2、查回和属性输入:将过去的时间序列(直回部分)与相关属性(如日期、假日等)结合

3、编码:这些结合后的数据被送入到密集编码器,它使用多层感知机对信息进行编码,生成一个内部表示

4、解码:内部表示随后被送入到密集解码器中,再次使用多层感知机,解码预测未来的时间序列

5、时序解码:每个时间步的预测通过时序解码器进行优化,以生成最终的时间序列预测

6、残差连接:为了加强模型的预测能力并减少训练中的问题,例如,梯度消失等,一个残差连接直接将输入的查回部分连接到输出端。

整个过程就像是将时间序列的历史数据和相关信息通过一个多层处理过程,最终转化为对未来的精准预测。

模型将每个序列视为一个独立通道,每次只传递一个序列及其协变量,模型由三个主要组成成分:编码器、解码器和时序解码器,它们都依赖于残差块结构。

探索残差块:TiDE架构的基础层

是一个具有一个隐藏层和ReLU激活的MLP,然后是一个丢弃层,一个跳转连接和最后的归一化步骤,这个组件会在整个网络中重复使用,以进行编码、解码和预测。

编码器:模型会将时间序列的过去和协变因素映射到一个密集的表示中

第一步:特征投影,利用残差块将动态协变量(随时间变化的外生变量)映射到低维投影中,在进行多元预测时,需要特征的未来值,因此模型必须处理回望窗口和水平序列,这些序列可能会很长,因此,通向低维空间投影,可以保持长度可控,并允许模型处理更长的序列,包括历史窗口和预测范围。

第二步:将序列的过去与其属性以及过去和未来协变量的投影连接起来,然后将其发送给编码器,编码器就是一叠残差块。

所以,编码器负责学习输入的表示,可以看做是一种学习嵌入,完成后,嵌入将被发送到解码器。

解码器:负责接受编码器的学习表示生成预测

第一步:密集解码器,由一叠残差块做成,它获取编码信息并输出一个矩阵,然后输入时序解码器。解码输出与预测特征堆叠,以捕捉未来协变量的直接影响。例如,节假日是准时事件,会对某些事件序列产生重要影响,有了这种残差联系,模型就能捕捉并利用这些信息。

第二步:时空解码器,在此生成预测结果,在这里,它只是一个输出大小为1的残差块,这样就能得到给定时间序列的预测结果。

使用TiDE进行预测

数据:Etth1数据集

ETT(变压器温度)电力变压器温度是电力长期部署的关键指标,该数据集由中国两个独立县的2年数据组成,每个数据点由目标油温和6个电源负载特征组成。

特征:

HUFL:高有效负载

HULL:高无效负载

MUFL:中有效负载

MULL:中无效负载

LUFL:低有效负载

LULL:低无效负载

OT:油温

论文《Long-term Forecasting with TiDE: Time-series Dense Encoder》

提出一种基于多层感知器的编码器-解码器模型——时间序列密集编码器,用于长时间序列预测,具有线性模型的简单性和速度,同事能够处理协变量和非线性依赖关系。

本文的模型使用mini_batch梯度下降进行训练,每个批次包含一定数量的时间序列及其对应的回溯期和预测期数量。使用均方误差(MSE)作为训练损失函数

本文使用了7个常用的长期预测基准数据集:天气、交通、电力和4个ETT数据集。交通和电力是最大的数据集,分别有>800和>300个时间序列,每个时间序列都有数万个时间点。

look-back windows:指的是模型用于预测未来值的时间序列过去值的长度

对于每个方法,look-back windows在{24, 48, 96, 192, 336, 720}中进行了调优。训练、验证、测试的比例是7:1:2,所有实验都是在标准归一化数据集上进行的。

使用批大小为8的电力数据集,即每个批的形状为8*321*L,因为电力数据集由321个时间序列,对于每个时间序列,使用前1640个步骤进行训练,接下来740个步骤进行验证,最后740个步骤进行测试,结果是由4000个示例用于训练,400个示例用于验证,400个示例用于测试。

模型中最基本的模块叫Residual Block,其实就是加了Dropout、ReLU非线性、残差连接、LayerNorm的MLP。模型的编码器和解码器都是用多个Residual Block堆叠而成的。最左侧有个全局的残差连接,只用了一个线性层,实际上就是DLinear做的事情。

特征投影步骤:负责处理动态协变量——这些是随时间变化而变化的输入变量,如天气、节假日等,在这一步骤中,模型将这些协变量从高维空间降维到一个低维空间,有助于简化模型处理的信息量,减少计算的复杂性,并且还能帮助模型更有效地从这些协变量中提取有用的特征,以便进行准确的时间序列预测。

编码的过程:首先把过去和未来的动态协变量经过一个Residual Block(Feature Projection)再展开,和过去的序列值以及静态协变量拼接起来,一起输入到多个Residual Block堆叠而成的编码器中。

密集多层感知机编码器:作用是将时间序列的历史数据(也称为查回部分)和协变量(如日期、天气等可能影响预测的外部信息)转换成内部表示。这个编码器通过一系列层次化的网络层(即MLP层)来处理输入数据,每一层都会对数据进行转换和学习,从而捕捉时间序列的复杂模式和依赖关系。

解码的过程:首先把编码器的输入送到多个Residual Block堆叠而成的解码器中,然后将解码器输出的结果reshape,并和未来的动态协变量拼接。拼接后的结果再送入一个Residual Block(Temporal Decoder)中即可。

密集MLP解码器:接受来自编码器的内部表示,并开始构建对未来时间点的预测,使用多层感知机,这些层专门训练用于识别编码信息中的模式,并将这些模式映射到未来的协变量上,从而生成对未来时间序列的预测值。

时序解码器(temporal decoder):针对每个时间步骤进行工作,把解码器生成的预测转化为最终的时间序列输出,在每个时间点上应用特定的变换,优化了预测的时间依赖性,增强了模型对时间序列数据中时间动态的捕捉能力。

全局线性残差连接(residual):用于改善深层网络的学习效率和减少训练难度,残差连接允许从网络的早期层(查回部分)直接传递信息到后面的层,有助于模型在学习过程中保留原始输入数据的信息,这样,即使在网络很深的情况下,也可以缓解梯度消失的问题,确保网络能够有效学习和适应训练数据。

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值