Spatial-Temporal时间序列预测建模方法汇总

如果觉得我的算法分享对你有帮助,欢迎关注我的微信公众号“圆圆的算法笔记”,更多算法笔记和世间万物的学习记录~ 

时间序列预测问题是根据一个序列的历史值预测未来值。当同时预测多个时间序列,并且各个时间序列之间存在空间上的关系时,就不能只将每个时间序列单独建模,而应该考虑不同时间序列之间的关系。例如,在交通预测场景中,需要预测不同地点的车流量,不同地点的车流量之间是存在空间上的关系的,例如A点的车20%在5分钟后会开往B点。仍然用传统的时间序列预测方法,即每个序列独立地进行预测,无法捕捉这种不同地点的空间关系信息。

目前解决时间+空间预估的方法主要包括基于图的时序预估和基于矩阵分解的时序预估两种方法。本文通过6篇顶会论文介绍了这两种类型方法的发展历程。

1. 图时序预估方法

本节介绍几个图模型中的基础概念,感兴趣的同学可以深入其他图学习相关文章继续学习。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类似,是序列建模的结构,模型整体结构如下图:

Spatial-Temporal时间序列预测建模方法汇总_第1张图片

编辑搜图

另一种模型框架是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'']。

Spatial-Temporal时间序列预测建模方法汇总_第2张图片

编辑搜图

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

Spatial-Temporal时间序列预测建模方法汇总_第3张图片

编辑搜图

除了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的作用类似于拉普拉斯矩阵,用于生成融合了其他节点信息的当前节点表示。模型整体结构如下图所示。

Spatial-Temporal时间序列预测建模方法汇总_第4张图片

编辑搜图

2. 基于矩阵分解的时序预估方法

基于分解的多序列联合建模方法,利用矩阵分解的思路,该方法最早起源于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序列使用自回归模型进行约束。

Spatial-Temporal时间序列预测建模方法汇总_第5张图片

编辑搜图

在此基础上,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序列的时序约束。整体损失仍然由两部分组成,可以表示为如下形式,模型结构如下图:

Spatial-Temporal时间序列预测建模方法汇总_第6张图片

编辑搜图

Spatial-Temporal时间序列预测建模方法汇总_第7张图片

3. 总结

本文介绍了当面临多个序列存在相关关系的时序预估问题时采用的方法。主要包括两大类方法,分别为图时序预估方法和基于分解的多序列联合建模方法。其中,图时序预估方法通过对时序模型中引入图模型实现,例如用图修改RNN的模块、图模型和时序模型交替提取信息、图模型和时序模型分别提取信息再融合等思路。图模型的使用也包括图卷积网络、基于Attention的网络等。基于分解的多序列联合建模方法建立在矩阵分解结合时序平滑性约束的基础上。从最初的TRMF演变到使用深度学习模型进行时序平滑性约束,再到端到端的矩阵分解和时序平滑性约束端到端联合学习

如果觉得我的算法分享对你有帮助,欢迎关注我的微信公众号“圆圆的算法笔记”,更多算法笔记和世间万物的学习记录~

你可能感兴趣的:(深度学习,机器学习,人工智能,深度学习)