Connecting the Dots: Multivariate Time Series Forecasting with Graph Neural Networks

论文简介

KDD 2020的一篇论文,作者还写过一篇Graph WaveNet。

摘要

文章旨在建模多变量时间序列预测问题,现有的方法无法充分利用变量对之间潜在的空间相关性。现有的GNN方法需要提前定义好的图结构,这不能够用于建模多元时间序列,因为这种序列的依赖关系未知。
本文提出了一个用于多元时间序列的框架,可以通过一个图学习模块自动提取变量之间的单向关系,变量属性之类的外部信息也可以容易地集成进去。使用了一个全新的mix-hop的前向传播层和扩张的起始层进一步提取时间和空间的关联。

前言

介绍了多元变量预测常用的方法,
(1)统计方法
向量自回归模型(VAR)
(2)深度学习方法
LSTNet(1D conv+decoder,rnn)
(3)图神经网络方法
spatial-temporal graph neural networks,但是存在以下的挑战

  • 图结构未知,多元变量之间的关系是从数据中得到的而不是预先定义好的
  • 图学习和图网络学习,现有的图网络专注于消息的传递,而忽视了图的结构可能不是最优的。如何同时学习图结构和训练图网络是一个挑战(图结构变化,网络难以收敛)

本文的贡献:

  1. 首次基于图神经网络以图角度建模多元时间序列数据
  2. 提出了一个新的图学习模块用于学习变量间的空间依赖,提出一个GNN模型用于解决没有图结构的数据
  3. 提出一个框架同时训练图网络和学习图结构,而不需要预先定义
  4. 模型的表现超过了已有的方法

问题定义

定义多元变量,历史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)={uv(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也是可以由参数学习,通过梯度下降拟合出来。

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值