论文简介
KDD 2020的一篇论文,作者还写过一篇Graph WaveNet。
摘要
文章旨在建模多变量时间序列预测问题,现有的方法无法充分利用变量对之间潜在的空间相关性。现有的GNN方法需要提前定义好的图结构,这不能够用于建模多元时间序列,因为这种序列的依赖关系未知。
本文提出了一个用于多元时间序列的框架,可以通过一个图学习模块自动提取变量之间的单向关系,变量属性之类的外部信息也可以容易地集成进去。使用了一个全新的mix-hop的前向传播层和扩张的起始层进一步提取时间和空间的关联。
前言
介绍了多元变量预测常用的方法,
(1)统计方法
向量自回归模型(VAR)
(2)深度学习方法
LSTNet(1D conv+decoder,rnn)
(3)图神经网络方法
spatial-temporal graph neural networks,但是存在以下的挑战
- 图结构未知,多元变量之间的关系是从数据中得到的而不是预先定义好的
- 图学习和图网络学习,现有的图网络专注于消息的传递,而忽视了图的结构可能不是最优的。如何同时学习图结构和训练图网络是一个挑战(图结构变化,网络难以收敛)
本文的贡献:
- 首次基于图神经网络以图角度建模多元时间序列数据
- 提出了一个新的图学习模块用于学习变量间的空间依赖,提出一个GNN模型用于解决没有图结构的数据
- 提出一个框架同时训练图网络和学习图结构,而不需要预先定义
- 模型的表现超过了已有的方法
问题定义
定义多元变量,历史P个时刻的观测变量X为
z
t
z_t
zt∈
R
N
R^N
RN表示时间步长t处维数为N的多元变量的值,
z
t
[
i
]
z_t[i]
zt[i]表示时间步
t
t
t处第
i
i
i个变量的值。
目标是预测
t
P
+
Q
t_{P+Q}
tP+Q的值
Y
=
{
z
t
P
+
Q
}
Y=\{z_{t_{P+Q}}\}
Y={ztP+Q}的值(单步预测),或一个序列的值,
t
P
+
1
t_{P+1}
tP+1到
t
P
+
Q
t_{P+Q}
tP+Q,
Y
=
{
z
t
P
+
1
,
z
t
P
+
2
,
.
.
.
,
z
t
P
+
Q
}
Y=\{ z_{t_{P+1}},z_{t_{P+2}},...,z_{t_{P+Q}}\}
Y={ztP+1,ztP+2,...,ztP+Q}(多步预测)。
外部信息,timeofday,dayofweek等,并把这些外部信息与原来的数据拼接起来,得到
X
=
{
S
t
1
,
S
t
2
,
.
.
.
,
S
t
P
}
X = \{S_{t_1},S_{t_2},...,S_{t_P}\}
X={St1,St2,...,StP},
S
t
i
S_{t_i}
Sti∈
R
N
×
D
R^{N×D}
RN×D,D为特征的维度。文章的目的就是学习一个映射函数f(·),将输入序列
X
X
X映射成
Y
Y
Y。
图的定义
G
=
(
V
,
E
)
G=(V,E)
G=(V,E),
V
V
V是节点集合,
E
E
E是边集合,N代表节点个数。
节点
v
v
v的边
e
=
(
v
,
u
)
e = (v,u)
e=(v,u),
u
u
u为邻居,
N
(
v
)
=
{
u
∈
v
∣
(
v
,
u
)
∈
E
}
N(v)=\{u∈v|(v,u)∈E\}
N(v)={u∈v∣(v,u)∈E}
邻接矩阵,
A
A
A属于
R
N
×
N
R^{N×N}
RN×N,
A
i
j
=
{
c
(vi,vj)
∈
E
0
(vi,vj)
∉
E
A_{ij}= \begin{cases} c& \text{(vi,vj)$\in$E}\\ 0& \text{(vi,vj)$\notin$E} \end{cases}
Aij={c0(vi,vj)∈E(vi,vj)∈/E
把多变量时间序列中的变量看作图中的节点,并用自适应的邻接矩阵描述节点之间的关系,这个矩阵是通过模型从数据中学得的。
算法框架
文章提出了一个名为MTGNN的框架,该框架由四部分组成,图学习层,m个图卷积模块,m个时间卷积模块和一个输出模块,整个算法的流程如下图所示:
图学习层计算一个邻接矩阵,用于捕获节点之间的隐含关系。图卷积模块和时间卷积模块交替,用于捕获空间和时间的关联。为了解决梯度消失的问题,时间卷积模块的输入到图形卷积模块的输出。在每个时间卷积模块之后添加跳跃连接。
图学习层,现有的方法通常建模成对称双向的图,
红色1D的卷积核作用于时间维度(红色),图卷积(蓝色)对一个时间步进行卷积。
图卷积模块(GC module)
图4(a)由层混合传播图4(b),其包括两个步骤信息传递
和信息选取部分。图卷积模块包括两个混合传播模块(Mix-hop Propagation Layer),作者 参照 ICML 2019的一篇 MixHop: Higher-Order Graph Convolutional Architectures via Sparsified Neighborhood Mixing。
Mixhop的操作包括两个步骤,第一步是信息传播(类似于RNN的隐状态传递),把上一时刻的
H
i
n
H_{in}
Hin隐状态输入,分别捕获多跳(multi-hop)的邻居结点的信息,然后再进行信息的融合,把不同跳的信息进行拼接(concatenate),这样就融合了不同范围的邻居结点的信息。信息传播的式表示为:
β
\beta
β控制保留根节点原始状态的比率,信息选取的公式为:
其中K是传播深度。
文章提到深层的GCN模型面临过平滑问题(over smooth),当节点信息传播多层时节点的特征会趋于一致,文章以两层传播为例,用线性求和代替拼接
时间卷积模块
图5(a)类似于GLU,使用了门控机制(左边的sigmod可以控制有多少信息传到下一层),不同的是作者加入了扩张卷积层,作者使用了1×2、1×3、1×6、1×7的卷积核,这,些长度的卷积可以组合成7,12,24,28,60等时间步长的窗口。作者使用多个卷积核的目的是为了增加感受域,随着网络的加深,感受域也会随之加大。
实验
文章进行了单步预测实验和多步预测实验,单步预测在预测太阳能、交通、 电力、汇率等四个数据集上进行实验,结果全面超越基线。其中多步是在METR-LA和PEMS-BAY上进行的,比对的模型有DCRNN、STGCN、Graph WaveNet、GMAN,虽然没有超越,但性能接近state of the art。
-----------------------------我是分割线---------------------
3个月后添加
文章对几种邻居矩阵做了消融实验,Predifined-A是以往论文常用的,如根据距离定义一个邻接矩阵;
Global-A把邻接矩阵当作一个可学习的参数W,维度为N×N;Undirected-A和Directed-A是作者在GraphWavelet中提出来的,用两个节点的Embedding,Undirected-A,把之前的参数分解成了M1,Nxd,
Directed-A,定向图,是DCRNN这篇文章提出来的,将图卷积看作多次随机游走的扩散过程,有向指的是
下游的节点,会受到上游的节点的影响;Dynamic-A将节点的动态特征输入作为邻接矩阵的构造元素,由ASTGCN那篇论文提出;Uni-directed-A是单向图,在本文中证明是最佳。
总结
本文的两点在于提出了图学习层以学习一个动态的邻接矩阵,其次,在时间卷积模块上设计了空洞卷积,随着层数的加深,网络的感受域随之增大。图卷积和时间卷积之间的残差连接设计可以避免梯度消失问题。
本文的最大亮点在于图学习层,如果图结构(邻接矩阵A)不是那么好建立,或者能建立但是不能反应真实的图结构,可以考虑使用文章的参数动态学习方法,通过迭代构造出一个A;文章没有给出其可解释性,只是通过实验的case说明了这种方法优于预先定义的A,我的猜想是,既然神经网络(如多层感知机)能够拟合任意函数,那么邻接矩阵A也是可以由参数学习,通过梯度下降拟合出来。