KDD 2020 开源论文 | 图神经网络多变量时序预测

©PaperWeekly 原创 · 作者|马敏博

学校|西南交通大学硕士生

研究方向|命名实体识别

本次分享的论文是 KDD 2020 的一篇工作,出发点是为了更好地建模多变量时间序列数据中成对变量之间的潜在空间依赖。作者提出了一种通用的图神经网络框架 MTGNN,通过图学习模块融合外部知识和变量之间的单向关系,再使用 mix-hop 传播层和膨胀 inception 捕获空间和时序依赖。

此外,为更好地训练模型,结合课程学习提出了一种学习算法。在四个常规多变量时序数据集以及两个图数据集上的实验表明,对比现有取得 SOTA 的模型 MTGNN 具有较强的竞争力,在多个数据集上取得最优表现。

KDD 2020 开源论文 | 图神经网络多变量时序预测_第1张图片

论文标题:

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

论文来源:

KDD 2020

论文链接:

https://arxiv.org/abs/2005.11650

代码链接:

https://github.com/nnzhan/MTGNN

本文将从以下方面对这篇工作进行介绍:

  • 背景

  • 挑战

  • MTGNN框架

  • 实验解读

  • 个人总结

背景

多变量时序预测在经济、金融、生物信息和交通等领域有广泛应用。相较于单变量时序预测,需要建模的问题更复杂,因为每个变量不仅与其历史值有关,还要考虑变量之间的依赖关系。

然而,现有的多变量时序预测方法并没有有效地探索变量之间的潜在空间依赖关系。统计方法如 VAR 和 GP 假设变量之间存在线性依赖关系,随着变量的增加,模型复杂度二次方增长,容易导致过拟合。深度学习方法如 LSTNet [1] 和 TPA-LSTM [2],虽然能够捕获非线性关系,但是无法明确地建模成对变量之间的依赖关系。

图是一种数据结构,可以描述节点之间的关系。目前,图神经网络由于排列不变性、局部连接以及组合性的特点,在处理图数据上取得较大的成功。多变量时序预测从图视角来看,变量可以当作节点,它们通过隐层依赖关系相互连接。所以,图神经网络可以建模多变量时序预测,这也是这篇论文的主要出发点。

挑战

时空图神经网络是最适合多变量时序预测任务的图神经网络类型,因为多变量时序预测问题需要考虑时间维和空间维的信息表达。通常时空图神经网络以多变量时序数据和外部图结构作为输入,预测时序数据的未来值或标签。相较于未利用结构信息的方法,能够取得较大提升。但是,该方法仍然存在两个方面的挑战:

  1. 未知的图结构 :使用图神经网络建模时序预测任务时,大多依赖于预定义的图结构。但是,大多数情况下,多变量时序预测是没有明确的图结构,需要从数据中去学习变量之间的关系(图)。

  2. 图结构与图神经网络共同学习:现有方法大多专注于如何设计合适的图神经网络结构,却忽略了有时图结构(通常为邻接矩阵)有可能不是最优的,也需要在训练中优化。因此,对于时序问题,如何在一个 end2end 的框架下同时学习图结构和图神经网络是一个问题。

MTGNN

MTGNN 各部分之间的联系如下图所示,主要有三个模块组成图学习模块图卷积模块时序卷积模块

下面根据上述两个挑战,介绍下本文的解决方案。

针对挑战1,作者提出了一个图学习层,能够自适应地从数据中抽取稀疏图邻接矩阵。此外,基于学习得到的图邻接矩阵,作者使用图卷积模块进行变量之间空间依赖学习。同时,作者对图卷积模块进行了改进,学习变量之间的单向依赖以及缓解图神经网络中的过度平滑问题

针对挑战2,图学习层和图卷积模块都是参数化的,两者通过后向传播(梯度下降)方法共同优化。

除上述改进之外,作者还在时序卷积以及训练优化方面进行了研究。在时序卷积方面,作者提出了膨胀 inception 层,以便处理更长序列时序数据;针对大规模图学习中的非凸优化问题以及内存占用问题,作者提出了基于课程学习寻找局部最优以及切分多变量时序数据为多个子片段的学习算法。

KDD 2020 开源论文 | 图神经网络多变量时序预测_第2张图片

▲ MTGNN概念图

3.1 总体框架

在介绍完大概的解决方法后,下面将系统地介绍 MTGNN 整体框架。必不可少的,先来看总体框架图(如下图所示)。主要包括了图学习层、m 个图卷积模块、m 个时序卷积模块、输出模块。除主要模块外,还包括了残差连接和跳跃连接。接下来的章节,将详细介绍每一模块。

KDD 2020 开源论文 | 图神经网络多变量时序预测_第3张图片▲ MTGNN总体框架图

3.2 图学习层

图学习层是为了学习一个邻接矩阵,从时序数据中自适应地捕获变量之间的空间关系。作者认为时序书中变量之间的关系是单向的,一个节点状态的变化会引起其他节点的变化,如交通流问题。所以需要注意的是,所提图学习层学习的邻接矩阵具有非对称的属性。通过以下计算,可以实现该方法。

KDD 2020 开源论文 | 图神经网络多变量时序预测_第4张图片

▲ 计算公式

其中, 为初始化节点嵌入, 为模型参数, 为激活函数的饱和率, 返回向量中最大值下标。公式 3 为计算邻接矩阵的非对称信息,其中使用 ReLU 激活可以正则化邻接矩阵的效果,如 为正值,那么它的对角元素 将为 0(负值在 ReLU 下为 0)。

公式 5-6 起到稀疏邻接矩阵的作用,这样可以降低随后图卷积网络的计算代价。 为选择节点最近的 k 个节点,这样可以减少邻居节点的个数,降低计算复杂度。同时,论文还指出了节点嵌入可以加入更多的信息,如节点的属性信息等。

3.3 图卷积模块

图卷积模块可以整合节点以及邻居节点信息。论文所提的图卷积包含了两个 mix-hop 传播层,结构信息如下图所示。信息传播和信息选择在图中分别对应到横向和纵向。mix-hop 的思想首先是 [3] [4] 提出,其中 [3] 采用的方式为拼接不同的 hop 信息,[4] 使用注意力机制整合不同的 hop 信息。

KDD 2020 开源论文 | 图神经网络多变量时序预测_第5张图片

▲ 图卷积模块

两个 mix-hop 分别处理单个节点的 inflow 信息和 outflow 信息,最终将两个信息相加所谓最终的模块输出信息。

具体的 mix-hop 的结构如下图所示,包含了两个子模块:信息传播信息选择

KDD 2020 开源论文 | 图神经网络多变量时序预测_第6张图片

▲ mix-hop传播层

首先,我们来看信息传播层在做什么样的事情,其计算公式为:

其中 为超参数,用于保持多少比例的原始节点信息。k 表示传播层的深度, 表示当前层的隐层输入(前一层的输出), 当前层的隐层输出状态, , ,其中 。

信息传播层递归地传播节点信息,在多层图卷积网络中会遇到一个问题,同一个连通图的节点表征随着网络层数的加深,趋向于一个相同的值,无法区分不同的节点(过度平滑问题)。公式 7 缓解过度平滑的方式为加入了一个初始节点信息保持因子,这样传播过程中节点既可以保持局部性,还可以得到更新的邻居信息。

但是这样会带来一个新的问题,一些节点信息会被丢失。如何筛选重要的信息传递到下一层?基于这个问题,论文提出了信息选择策略,通过维护一个参数矩阵,充当特征选择器。计算公式为:

为参数矩阵,可以这样理解,当给定图结构没有空间依赖时,即信息传播公式中后半部分需要为 0 时,我们将 即可,这样仅保留了初始节点信息。

3.4 时序卷积模块

时序卷积模块是使用多个标准的一维膨胀卷积核抽取高维的时序特征。如前文介绍,时序卷积模块主要包括了两部分膨胀(空洞)卷积和 inception 层,这两种卷积结构在 CV 中已经经过有效性验证。其结构如下图所示,

KDD 2020 开源论文 | 图神经网络多变量时序预测_第7张图片

▲ 时序卷积模块

关于膨胀卷积,这里就不过多介绍,其主要是通过引入“空洞”,在增大感受野的同时,不增加模型参数。Inception 是从卷积的宽度出发,相较于 ResNet 从深度出发,其通过拼接的方式从宽度上增加感受野。具体结构如下图所示,

KDD 2020 开源论文 | 图神经网络多变量时序预测_第8张图片

▲ 膨胀inception层

最后,再提以下卷积核大小的选择。为了更好地抽取自然时序信号,文中没有选择常用的 1、3、5 的卷积大小,而是考虑到自然时序周期 7、12、24、60 等,所以文中选择的卷积核大小为 1x2、1x3、1x6、1x7。

3.5 跳跃连接层和输出层

跳跃连接层和输出层的作用较为直观,最终送入输出层的信息为多个模块的拼接,跳跃连接层起到一个规范化信息的作用,使输入到输出层的序列长度相同。输出层包括两个 1x1 的卷积层,输出指定维度值,如果单步预测维度为 1,如果多步 Q 预测,维度为 Q。

3.6 学习算法

学习算法包括了两个部分,1.子图划分(采样部分);2.课程学习训练。具体算法描述如下图所示:

KDD 2020 开源论文 | 图神经网络多变量时序预测_第9张图片

▲ 学习算法流程

着重介绍下课程学习(Curriculum Learning),由 Benjio [5] 在 2009ICML 会议中提出。主要思想为:主张模型先学习“易样本”,再学习“难样本”。这样会带来两个好处:1. 加速模型训练,减少迭代次数;2. 达到更好的局部最优。在这个问题中,如何定义样本的难易是最关键的。

在本文的任务长期预测中,比较容易想到的是短期预测效果是肯定优于长期预测的,那么可以先学习短期的,再逐渐学习长期的。我这里介绍的比较口语化,原文从 loss 层面介绍,我理解的是如果长期预测,越长步数的预测值偏差越大,导致总 loss 会更大,即使取平均,相较于短期预测也会产生更大的 loss。

原文中,算法流程中参数的介绍有缺失,我统一再做次介绍。 表示 batch_size; 表示输入通道数,可以类比为图片的通道,单步预测中为 1,多步预测中为 2; 表示节点个数; 表示输入特征维度,为滑动窗口大小。

学习算法的主要部分在 9-13,分批次计算节点子集,抽样这点容易理解。课程学习主要体现在 11 损失计算,在多步计算中,迭代过程中不断计算前 步的预测值与真实值的误差,这样可以从 1 学到 12。源码中是通过维护 task_level 这样一个变量实现,但是其自增的条件与迭代次数相关。

if self.iter%self.step==0 and self.task_level<=self.seq_out_len:
    self.task_Level +=1

其中 self.step 对应超参 step_size1,所以,若想 task_level 达到 seq_out_len,对于 batch_size 和 step_size1 的设置要合适。(感兴趣的可以去看下源码,这里不过多介绍。)

实验解读

实验总共分为两个部分,单步预测和多步预测,其中单步预测使用多变量时序预测的常规数据集,多步预测使用的含有传感器位置信息的时序数据。具体介绍如下图所示,

KDD 2020 开源论文 | 图神经网络多变量时序预测_第10张图片

▲ 实验数据集

基线模型:

  • LSTNet [1]

  • TPA-LSTM [2]

  • DCRNN [6]

  • STGCN [7]

  • Graph WaveNet [8]

  • ST-MetaNet [9]

  • GMAN [10]

  • MRA-BGCN [11]

论文中做了多种实验,这里我主要介绍下与时空图神经网络相关的基线模型对比。从实验结果来看,MTGNN 可以取得 SOTA 或者与 SOTA 相差无几的效果。相较于对比的方法,其主要优势在于不需要预定的图。其中 Graph WaveNet 是本文作者在 IJCAI 2019 的工作,也是自适应构建邻接矩阵,但是需要结合预定图才能取得较好的效果。

KDD 2020 开源论文 | 图神经网络多变量时序预测_第11张图片

▲ 多步预测对比

除此之外,还有消融实验、个例实验、参数实验。其中个例实验较为有意思,其对比了预定图和学习图得到的最近邻居节点,然后将其可视化,可以反应邻居节点在现实位置直接的关系。

个人总结

这里,笔者相对论文中涉及到的主要改进工作、对应解决的问题,进行统计。直接给出组会汇报的原文:

KDD 2020 开源论文 | 图神经网络多变量时序预测_第12张图片

▲ 个人总结

参考文献

[1] Modeling long-and short-term temporal patterns with deep neural networks
[2] Temporal pattern attention for multivariate time series forecasting
[3] MixHop:Higher-Order Graph Convolutional Architectures via Sparsified Neighborhood Mixing
[4] DAGCN: Dual Attention Graph Convolutional Networks
[5] Curriculum Learning
[6] Diffusion convolutional recurrent neural network: Data-driven traffic forecasting.
[7] Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting
[8] Graph WaveNet for Deep Spatial-Temporal Graph Modeling.
[9] Urban Traffic Prediction from Spatio-Temporal Data Using Deep Meta Learning
[10] GMAN: A Graph Multi-Attention Network for Traffic Prediction
[11] Multi-Range Attentive Bicomponent Graph Convolutional Network for Traffic Forecasting 

更多阅读

KDD 2020 开源论文 | 图神经网络多变量时序预测_第13张图片

KDD 2020 开源论文 | 图神经网络多变量时序预测_第14张图片

KDD 2020 开源论文 | 图神经网络多变量时序预测_第15张图片

#投 稿 通 道#

 让你的论文被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。

???? 来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向) 

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接 

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志

???? 投稿邮箱:

• 投稿邮箱:[email protected] 

• 所有文章配图,请单独在附件中发送 

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通

????

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

你可能感兴趣的:(神经网络,算法,python,机器学习,人工智能)