Connecting the Dots: 基于图神经网络的多元时间序列预测
1.文章概述
多元时间序列预测背后的一个基本假设是,它的变量相互依赖。但现有方法未能充分利用变量对之间潜在的空间依赖性。近年来,图神经网络在处理关系依赖方面表现出了很高的能力。但是GNNs需要定义良好的图结构来进行信息传播,这意味着它们不能直接应用于依赖关系事先未知的多元时间序列。基于上述原因,本文作者提出了一个通用的图神经网络框架,专门为多元时间序列数据设计。
1.1 相关工作
统计学方法:VAR、GP等方法基于变量是线性相关的假设,且模型复杂度随着变量的数量呈二次增长。
深度学习方法:LSTNet、TPA-LSTM,能很好的捕捉非线性关系,不显式建模变量之间的成对依赖关系,这会削弱模型的可解释性。
时空图神经网络将多元时间序列和外部图结构作为输入,它们旨在预测多元时间序列的未来值或标签。虽然时空图神经网络在性能上有较大提升但是还面临以下问题:
-
Challenge 1 :未知的图形结构:现有的GNN方法严重依赖于预定义的图结构来执行时间序列预测。在大多数情况下,多变量时间序列没有明确的图结构。变量之间的关系必须从数据中发现,而不是作为基础知识提供。
-
Challenge 2:图形学习和GNN学习:尽管图结构是可用的,但大多数GNN方法只关注消息传递(GNN学习),而忽略了图结构不是最优的这一事实,应该在训练期间更新。那么问题是如何在端到端的框架中同时学习时间序列的图结构和GNN
对于Challenge 1,本文提出了一种新的图学习层,它根据数据自适应地提取稀疏图邻接矩阵。并提出一种图卷积用于处理变量的空间依赖。使用时间卷积模块捕捉时间模式
对于Challenge 2,由于所有参数都可以通过梯度下降来学习,因此所提出的框架能够以端到端的方式对多元时间序列数据建模并同时学习内部图结构
1.2 主要贡献
- 第一次使用图神经网络从基于图的角度研究多元时间序列数据
- 我们提出了一种新的图学习模块来学习变量之间隐藏的空间依赖关系
- 提出了一个联合框架来建模多元时间序列数据和学习图结构。本文框架比任何现有的时空图神经网络更通用,因为它可以处理具有或不具有预定义图结构的多变量时间序列。
1.3 问题定义
变量定义:
变量 | 定义 |
---|---|
z t ∈ R N z_t\in R^N zt∈RN | t时刻N维单个变量的值 |
X = { z t 1 , z t 2 , … , z t p } X=\lbrace z_{t1},z_{t2},\dots,z_{tp} \rbrace X={zt1,zt2,…,ztp} | 单个变量历史观察值的输入 |
s t ∈ R N × D s_t\in R^{N\times D} st∈RN×D | 多个N维变量 |
X = { S t 1 , S t 2 , … , S t p } X=\lbrace S_{t1},S_{t2},\dots,S_{tp} \rbrace X={St1,St2,…,Stp} | 多个变量历史观察值 |
对输入 X = { S t 1 , S t 2 , … , S t p } X=\lbrace S_{t1},S_{t2},\dots,S_{tp} \rbrace X={St1,St2,…,Stp}寻找一个从 X X X到 Y = { S t p + 1 , S t p + 2 , … , S t p + Q } Y=\lbrace S_{tp+1},S_{tp+2},\dots,S_{tp+Q} \rbrace Y={Stp+1,Stp+2,…,Stp+Q}的映射 f ( ⋅ ) f(\cdot) f(⋅)。
2. 模型框架
MTGNN由图学习层、m个图卷积模块、m个时间卷积模块和一个输出模块组成。图学习层计算图邻接矩阵,并作为后续所有图卷积模块的输入,图形卷积模块与时间卷积模块交错,以分别捕获空间和时间相关性。
2.1 Graph Learning Layer(图学习模块)
图学习层自适应地学习图邻接矩阵,以捕获时间序列数据之间的隐藏关系。当前的图学习方法存在两个问题:1)基于距离的相似度计算方法时间复杂度太高,当图太大时不适用。2)当前大部分方法将图当作对称图或者双向图处理,但是实际中图应该是单向关系。具体公式如下:
M
1
=
t
a
n
h
(
α
E
1
Θ
1
)
M
2
=
t
a
n
h
(
α
E
2
Θ
2
)
A
=
R
e
L
U
(
t
a
n
h
(
α
(
M
1
M
2
T
−
M
2
M
1
T
)
)
)
for
i
=
1
,
2
,
⋯
,
N
i
d
x
=
a
r
g
t
o
p
k
(
A
[
i
,
:
]
)
A
[
i
,
−
i
d
x
]
=
0
\begin{aligned} &\mathbf{M}_{1}=tanh \left(\alpha \mathbf{E}_{1} \boldsymbol{\Theta}_{1}\right) \\ &\mathbf{M}_{2}=tanh \left(\alpha \mathbf{E}_{2} \boldsymbol{\Theta}_{2}\right) \\ &\mathbf{A}=ReLU\left(tanh \left(\alpha\left(\mathbf{M}_{1} \mathbf{M}_{2}^{T}-\mathbf{M}_{2} \mathbf{M}_{1}^{T}\right)\right)\right) \\ &\text { for } i=1,2, \cdots, N \\ &\qquad \begin{aligned} &\mathbf{idx} =argtopk(\mathbf{A}[i,:]) \\ &\mathbf{A}[i,-\mathbf{i d x}]=0 \end{aligned} \end{aligned}
M1=tanh(αE1Θ1)M2=tanh(αE2Θ2)A=ReLU(tanh(α(M1M2T−M2M1T))) for i=1,2,⋯,Nidx=argtopk(A[i,:])A[i,−idx]=0
其中
E
1
,
E
2
E_1,E_2
E1,E2维随机初始化的节点嵌入,
a
r
g
t
o
k
(
⋅
)
argtok(\cdot)
argtok(⋅)返回最大一个向量中最大的k个值。其中图学习的输入不一定要是节点嵌入,可以是图的节点特征矩阵。
2.2 Graph Convolution Module
图卷积模块旨在将节点信息与其邻居信息融合,以处理图中的空间相关性。图形卷积模块由两个混合传播层组成,分别处理通过每个节点的流入和流出信息。输出信息为两个混合传播层的和。
Mix-hop Propagation Layer
Mix-hop Propagation Layer由两部分组成分别是:信息传播步和信息选择步
信息传播步骤定义如下:
H
(
k
)
=
β
H
i
n
+
(
1
−
β
)
A
~
H
(
k
−
1
)
,
\mathbf{H}^{(k)}=\beta \mathbf{H}_{i n}+(1-\beta) \tilde{\mathbf{A}} \mathbf{H}^{(k-1)},
H(k)=βHin+(1−β)A~H(k−1),
设计思路:图卷积存在严重缺陷,多层图卷积网络都达到了随机游走的极限分布,这会导致随着图形卷积层数趋于无穷大,节点隐藏状态收敛到一个点。为了解决这个问题本文在传播过程中保留了一部分节点的原始状态,这样传播的节点状态既能保持局部性,又能探索深层邻域。
信息选择步骤定义如下:
H
o
u
t
=
∑
i
=
0
K
H
(
k
)
W
(
k
)
\mathbf{H}_{o u t}=\sum_{i=0}^{K} \mathbf{H}^{(k)} \mathbf{W}^{(k)}
Hout=i=0∑KH(k)W(k)
其中
H
i
n
H_{in}
Hin表示前一层输出的输入隐藏状态,
H
o
u
t
H_{out}
Hout表示当前层的输出,
A
~
=
D
~
−
1
(
A
+
I
)
\tilde{A}=\tilde{D}^{-1}(A+I)
A~=D~−1(A+I),
设计思路:
如果只使用信息传播步,一些节点信息将会丢失。且在不存在空间依赖性的极端情况下,聚集邻域信息只会给每个节点增加无用的噪声。所以本文作者引入信息选择步骤来过滤掉在每一跳产生的重要信息。
2.3 Temporal Convolution Module
时间卷积模块应用一组标准的扩张1D卷积滤波器来提取高级时间特征。该模块由两个Dilated inception layer组成,分别经过 t a n h tanh tanh和 s i g m o i d sigmoid sigmoid函数,经过 s i g m i d i sigmidi sigmidi
函数的作为门控机制控制传递给下一模块的信息量。文中使用
1
×
2
,
1
×
3
,
1
×
6
,
1
×
7
1\times2,1\times3,1\times6,1\times7
1×2,1×3,1×6,1×7大小的卷积核,配合扩张卷积进行时间卷积。公式如下:
z
=
concat
(
z
⋆
f
1
×
2
,
z
⋆
f
1
×
3
,
z
⋆
f
1
×
6
,
z
⋆
f
1
×
7
)
\mathrm{z}=\operatorname{concat}\left(\mathrm{z} \star \mathrm{f}_{1 \times 2}, \mathrm{z} \star \mathrm{f}_{1 \times 3}, \mathrm{z} \star \mathbf{f}_{1 \times 6}, \mathrm{z} \star \mathrm{f}_{1 \times 7}\right)
z=concat(z⋆f1×2,z⋆f1×3,z⋆f1×6,z⋆f1×7)
其中四个滤波器的输出根据最大的滤波器被截断为相同的长度,并且在信道维度上被连接
2.4 Skip Connection Layer & Output Module
跳跃连接层本质上是1 ×Li标准卷积,其中Li是第I个跳跃连接层的输入序列长度。它将跳转到输出模块的信息标准化,使其具有相同的序列长度1。输出层将输入的通道尺寸转换为所需的输出尺寸。
2.5 Proposed Learning Algorithm
- 策略一:本文将节点随机分成几个组,让算法根据采样的节点学习一个子图结构。经过训练后,由于所有节点嵌入都经过良好的训练,因此可以构建一个全局图来充分利用空间关系。
- 策略二:作者观察观察到,就模型性能而言,长期预测通常比短期预测获得更大的改善。作者认为原因是长期预测比短期预测产生更高的损失。所以该算法从只预测下一步开始,随着迭代次数的增加,我们逐渐增加模型的预测长度。
3.实验结果
在交通数据集上的结果可以看论文:Dynamic Graph Convolutional Recurrent Network for T raffic Prediction: Benchmark and Solution中的实验结果
各种构图方法性能的比较: