当前位置:网站首页>Spatial-Temporal时间序列预测建模方法汇总
Spatial-Temporal时间序列预测建模方法汇总
2022-06-28 10:32:00 【智源社区】
时间序列预测问题是根据一个序列的历史值预测未来值。当同时预测多个时间序列,并且各个时间序列之间存在空间上的关系时,就不能只将每个时间序列单独建模,而应该考虑不同时间序列之间的关系。例如,在交通预测场景中,需要预测不同地点的车流量,不同地点的车流量之间是存在空间上的关系的,例如A点的车20%在5分钟后会开往B点。仍然用传统的时间序列预测方法,即每个序列独立的进行预测,无法捕捉这种不同地点的空间关系信息。
目前解决时间+空间预估的方法主要包括基于图的时序预估和基于矩阵分解的时序预估两种方法。本文通过6篇顶会论文介绍了这两种类型方法的发展历程。
图时序预估方法
本节介绍几个图模型中的基础概念,感兴趣的同学可以深入其他图学习相关文章继续学习。N个节点组成的图可以由一个N*N的临接矩阵和一个N*N的度数矩阵表示。临接矩阵中第(i, j)个元素表示节点i和节点j之间在图上的距离,这个距离根据具体任务和图而定;度数矩阵是一个对角矩阵,第(i, i)个元素表示节点第i个节点和几个边相连。图的拉普拉斯矩阵由临接矩阵和度数矩阵计算得到,简单来说,拉普拉斯矩阵衡量了图中两两节点之间信息传递关系(具体来说,拉普拉斯矩阵是图上的拉普拉斯算子,拉普拉斯算子是高维空间二阶导数的推广)。通过拉普拉斯矩阵,我们可以将每个图中每个节点的特征进行扩散到其他节点,得到每个节点考虑了图中信息传播后新的特征。图卷积是图模型的一种实例。在将傅立叶变换拓展到图中时,发现傅立叶变换中的基就是图的拉普拉斯矩阵的特征向量。这样解决了Spatial卷积方法中,无法比较好的选择邻居节点、无向量化表示的问题。
拉普拉斯矩阵有不同的形式,例如最基础的拉普拉斯矩阵L=D-A,还有如下正则化拉普拉斯矩阵、随机游走拉普拉斯矩阵等,不同的拉普拉斯矩阵反应了图上信息流动方式的不同先验。
RNN是最基础的时间序列预测深度学习模型,RNN天然的序列建模能力可以很好的处理时间序列数据。在RNN的基础上,DIFFUSION CONVOLUTIONAL RECURRENT NEURAL NETWORK: DATA-DRIVEN TRAFFIC FORECASTING(ICLR 2018)提出DCRNN模型,通过将图的思想引入RNN,使RNN能够同时输入空间中多个节点的时间序列,在学习时间维度依赖的同时,学习不同节点的空间关系。
GRU是RNN模型的一种,DCRNN在GRU的基础上,将原来GRU中的全连接部分修改为diffusion convolutional layer(随机游走拉普拉斯矩阵+全连接),公式可以表示为如下形式:
不论是普通的GRU还是DCRNN,都可以将整个图上的所有节点序列同时输入到模型中(相当于一个batch)。GRU在建模时,每个时间序列的表示使用共享的全连接层分别进行转换,因此不同序列之间并没有建立关系;而DCRNN中,模型根据临接矩阵拉普拉斯矩阵的形式,可以生成一个不同节点表示的融合方式(矩阵),将每个序列的表示使用这个融合矩阵进行一次转换,输出的还是每个序列的表示,只不过通过融合矩阵建立的不同序列的关系,每个序列生成的表示都是其他序列的某种加权平均。其他部分和RNN类似,是序列建模的结构,模型整体结构如下图:

另一种模型框架是Graph WaveNet for Deep Spatial-Temporal Graph Modeling(IJCAI 2019)提出的TCN+GCN的结构。TCN是一种应用于时间序列预测的CNN模型,通过空洞卷积增大感受野面积,通过因果卷积防止数据泄漏。GCN就是图卷积神经网络。Graph Wavenet采用的是一层时序模型+一层图模型嵌套的方式实现的。第一层输入图中所有节点的时间序列数据,通过TCN每个序列独立提取表示。在得到每个序列每个时刻的表示后,每个时刻内所有节点的表示使用GCN进行一次空间上的融合。假设输入的维度是[N, T, D],N表示节点数量,T表示时间长度,D表示特征维度。经过一层TCN后,维度变成[N, T', D'],这一步是每个序列独立进行的。接下来在T维度上,每一个时刻t都进行图卷积,得到[N, T', D'']。

由于在时序预估中,有一些场景并不存在明确的节点之间的图关系,因此有一些工作将图结构的学习也融入到时序预估中端到端训练。也就是说,这类方法的拉普拉斯矩阵,是网络直接学出来的,而不是根据预先定义的临接矩阵和度数矩阵计算得到的。在Graph Wavenet中就采用了这种方式。Connecting the Dots: Multivariate Time Series Forecasting with Graph Neural Networks(KDD 2020)中对这类方法不同的拉普拉斯矩阵学习方式进行了对比。下表列出了不同的拉普拉斯矩阵生成方法的效果对比,这类方法的一半思路是根据每个节点的Embedding,通过不同的计算方式得到拉普拉斯矩阵中每个元素的值,这个值直接用于后续的图学习,端到端和时序预估任务一起训练。

除了GCN外,基于Attention的图时序预估模型也是一种主流方法。GMAN: A Graph Multi-Attention Network for Traffic Prediction(AAAI 2020,GMAN)提出了基于Attention的图时序预估模型,在时间维度和空间维度都是通过Attention实现的。GMAN采用的模型框架与DCRNN、GraphWavenet都不同,GMAN在每层并行进行时间维度和空间维度的信息提取,再通过Gate进行融合。在时间维度,采用类似于Transformer的Attention模型,Encoder内部、Decoder内部、Encoder和Decoder之间进行Attention。在空间维度,利用Attention机制计算每一对节点之间的Attention score,这个attention score的作用类似于拉普拉斯矩阵,用于生成融合了其他节点信息的当前节点表示。模型整体结构如下图所示。
基于矩阵分解的时序预估方法
基于分解的多序列联合建模方法,利用矩阵分解的思路,该方法最早起源于Temporal Regularized Matrix Factorization for High-dimensional Time Series Prediction(NIPS 2016,TRMF)。整体思路如下图,将所有时间序列组成一个矩阵N*T,然后通过矩阵分解的方法,将原矩阵分解成两个子矩阵F(N*d)和T(d*T),其中d*T可以理解为d个组成当前时间序列的base序列,数据中的所有序列都是由这些base序列的线性组合得到的。同时,为了让矩阵分解得到的base序列符合时间序列的平滑特性,会对生成的每个base序列使用自回归模型进行约束。
在此基础上,Think Globally, Act Locally: A Deep Neural Network Approach to High-Dimensional Time Series Forecasting(NIPS 2019,DeepGLO)提出了使用深度学习模型对base序列正则化。模型的损失函数由两个部分组成,公式可以表示为:
第一项是矩阵分解的损失,第二项是分解得到的base序列使用深度模型进行预测的损失。模型采用两个损失迭代的方式进行训练。首先固定深度模型,最小化第一项矩阵分解损失;接下来固定矩阵分解结果,训练深度时序模型,即固定第一项优化第二项。文中采用的深度模型为TCN模型。
DeepGLO采用两阶段而非端到端的训练方式,可能得到的不是最优解。Temporal Latent Auto-Encoder: A Method for Probabilistic Multivariate Time Series Forecasting(AAAI 2021)设计了一种端到端的学习方法。原始的矩阵分解可以表示为Y=FX,进而可以表示为Y=FF'Y,该方法将原来的矩阵分解部分改为AutoEncoder,即通过Encoder隐式得到base序列,再通过Decoder还原原始序列。对于第二项时序约束,本文在Encoder和Decoder之间引入LSTM,利用LSTM对生成的base序列进行预测,以得到base序列的时序约束。整体损失仍然由两部分组成,可以表示为如下形式,模型结构如下图:
总结
本文介绍了当面临多个序列存在相关关系的时序预估问题时采用的方法。主要包括两大类方法,分别为图时序预估方法和基于分解的多序列联合建模方法。其中,图时序预估方法通过对时序模型中引入图模型实现,例如用图修改RNN的模块、图模型和时序模型交替提取信息、图模型和时序模型分别提取信息再融合等思路。图模型的使用也包括图卷积网络、基于Attention的网络等。基于分解的多序列联合建模方法建立在矩阵分解结合时序平滑性约束的基础上。从最初的TRMF演变到使用深度学习模型进行时序平滑性约束,再到端到端的矩阵分解和时序平滑性约束端到端联合学习。
边栏推荐
- DlhSoft Kanban Library for WPF
- 工控安全之勒索病毒篇
- Understanding of FTP protocol
- 增强 Jupyter Notebook 的功能,这里有四个妙招
- 建立自己的网站(11)
- MySQL (I)
- 物联网无线通信应用中6种融合定位技术
- MySQL查看数据库性能常用命令
- The R language uses the avplots function in the car package to create added variable plots. In image interaction, manually identify (add) strong influence points that have a great impact on each predi
- 【功能建议】多个工作空间启动时选择某个空间
猜你喜欢

Mysql database overview and installation process

Markdown -- basic usage syntax

I'm almost addicted to it. I can't sleep! Let a bug fuck me twice!

linux中源码安装mysql数据库(centos)

Ble Bluetooth module nrf518/nrf281/nrf528/nrf284 chip scheme comparison

Several methods of using ABAP to operate Excel

第六天 脚本与动画系统

Dotnet uses crossgen2 to readytorun DLL to improve startup performance
![[Unity][ECS]学习笔记(一)](/img/eb/1f0ad817bbc441fd8c14d046b82dd0.png)
[Unity][ECS]学习笔记(一)

满电出发加速品牌焕新,长安电动电气化产品吹响“集结号”
随机推荐
AQS understanding
Katalon当中的output使用方法
How to use K-line diagram for technical analysis
datetime与logging模块
Fastposter v2.8.4 release e-commerce poster generator
广州海关支持保障食品、农产品和中药材等民生物资稳定供港
MySQL (I)
壓縮解壓
关于FTP的协议了解
Ribbon core source code analysis
sentinel
Guangzhou Customs supports the stable supply of food, agricultural products, traditional Chinese medicine and other civilian and biological resources to Hong Kong
Realization of a springboard machine
[unity][ecs] learning notes (III)
I'm almost addicted to it. I can't sleep! Let a bug fuck me twice!
第六天 脚本与动画系统
Hystrix 部署
MySQL(二)
Several methods of using ABAP to operate Excel
[Unity]EBUSY: resource busy or locked