©PaperWeekly 原创 · 做者|马敏博
git
学校|西南交通大学硕士生github
研究方向|命名实体识别算法
本次分享的论文是 KDD 2020 的一篇工做,出发点是为了更好地建模多变量时间序列数据中成对变量之间的潜在空间依赖。做者提出了一种通用的图神经网络框架 MTGNN,经过图学习模块融合外部知识和变量之间的单向关系,再使用 mix-hop 传播层和膨胀 inception 捕获空间和时序依赖。微信
此外,为更好地训练模型,结合课程学习提出了一种学习算法。在四个常规多变量时序数据集以及两个图数据集上的实验代表,对比现有取得 SOTA 的模型 MTGNN 具备较强的竞争力,在多个数据集上取得最优表现。网络
论文标题:数据结构
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],虽然可以捕获非线性关系,可是没法明确地建模成对变量之间的依赖关系。
图是一种数据结构,能够描述节点之间的关系。目前,图神经网络因为排列不变性、局部链接以及组合性的特色,在处理图数据上取得较大的成功。多变量时序预测从图视角来看,变量能够看成节点,它们经过隐层依赖关系相互链接。因此,图神经网络能够建模多变量时序预测,这也是这篇论文的主要出发点。
挑战
时空图神经网络是最适合多变量时序预测任务的图神经网络类型,由于多变量时序预测问题须要考虑时间维和空间维的信息表达。一般时空图神经网络以多变量时序数据和外部图结构做为输入,预测时序数据的将来值或标签。相较于未利用结构信息的方法,可以取得较大提高。可是,该方法仍然存在两个方面的挑战:
未知的图结构 :使用图神经网络建模时序预测任务时,大多依赖于预约义的图结构。可是,大多数状况下,多变量时序预测是没有明确的图结构,须要从数据中去学习变量之间的关系(图)。
图结构与图神经网络共同窗习:现有方法大多专一于如何设计合适的图神经网络结构,却忽略了有时图结构(一般为邻接矩阵)有可能不是最优的,也须要在训练中优化。所以,对于时序问题,如何在一个 end2end 的框架下同时学习图结构和图神经网络是一个问题。
MTGNN
MTGNN 各部分之间的联系以下图所示,主要有三个模块组成图学习模块、图卷积模块、时序卷积模块。
下面根据上述两个挑战,介绍下本文的解决方案。
针对挑战1,做者提出了一个图学习层,可以自适应地从数据中抽取稀疏图邻接矩阵。此外,基于学习获得的图邻接矩阵,做者使用图卷积模块进行变量之间空间依赖学习。同时,做者对图卷积模块进行了改进,学习变量之间的单向依赖以及缓解图神经网络中的过分平滑问题。
针对挑战2,图学习层和图卷积模块都是参数化的,二者经过后向传播(梯度降低)方法共同优化。
除上述改进以外,做者还在时序卷积以及训练优化方面进行了研究。在时序卷积方面,做者提出了膨胀 inception 层,以便处理更长序列时序数据;针对大规模图学习中的非凸优化问题以及内存占用问题,做者提出了基于课程学习寻找局部最优以及切分多变量时序数据为多个子片断的学习算法。
▲ MTGNN概念图
3.1 整体框架
在介绍完大概的解决方法后,下面将系统地介绍 MTGNN 总体框架。必不可少的,先来看整体框架图(以下图所示)。主要包括了图学习层、m 个图卷积模块、m 个时序卷积模块、输出模块。除主要模块外,还包括了残差链接和跳跃链接。接下来的章节,将详细介绍每一模块。
▲ MTGNN整体框架图
3.2 图学习层
图学习层是为了学习一个邻接矩阵,从时序数据中自适应地捕获变量之间的空间关系。做者认为时序书中变量之间的关系是单向的,一个节点状态的变化会引发其余节点的变化,如交通流问题。因此须要注意的是,所提图学习层学习的邻接矩阵具备非对称的属性。经过如下计算,能够实现该方法。
▲ 计算公式
其中, 为初始化节点嵌入, 为模型参数, 为激活函数的饱和率, 返回向量中最大值下标。公式 3 为计算邻接矩阵的非对称信息,其中使用 ReLU 激活能够正则化邻接矩阵的效果,如 为正值,那么它的对角元素 将为 0(负值在 ReLU 下为 0)。
公式 5-6 起到稀疏邻接矩阵的做用,这样能够下降随后图卷积网络的计算代价。 为选择节点最近的 k 个节点,这样能够减小邻居节点的个数,下降计算复杂度。同时,论文还指出了节点嵌入能够加入更多的信息,如节点的属性信息等。
3.3 图卷积模块
图卷积模块能够整合节点以及邻居节点信息。论文所提的图卷积包含了两个 mix-hop 传播层,结构信息以下图所示。信息传播和信息选择在图中分别对应到横向和纵向。mix-hop 的思想首先是 [3] [4] 提出,其中 [3] 采用的方式为拼接不一样的 hop 信息,[4] 使用注意力机制整合不一样的 hop 信息。
▲ 图卷积模块
两个 mix-hop 分别处理单个节点的 inflow 信息和 outflow 信息,最终将两个信息相加所谓最终的模块输出信息。
具体的 mix-hop 的结构以下图所示,包含了两个子模块:信息传播和信息选择。
▲ mix-hop传播层
首先,咱们来看信息传播层在作什么样的事情,其计算公式为:
其中 为超参数,用于保持多少比例的原始节点信息。k 表示传播层的深度, 表示当前层的隐层输入(前一层的输出), 当前层的隐层输出状态, , ,其中 。
信息传播层递归地传播节点信息,在多层图卷积网络中会遇到一个问题,同一个连通图的节点表征随着网络层数的加深,趋向于一个相同的值,没法区分不一样的节点(过分平滑问题)。公式 7 缓解过分平滑的方式为加入了一个初始节点信息保持因子,这样传播过程当中节点既能够保持局部性,还能够获得更新的邻居信息。
可是这样会带来一个新的问题,一些节点信息会被丢失。如何筛选重要的信息传递到下一层?基于这个问题,论文提出了信息选择策略,经过维护一个参数矩阵,充当特征选择器。计算公式为:
为参数矩阵,能够这样理解,当给定图结构没有空间依赖时,即信息传播公式中后半部分须要为 0 时,咱们将 便可,这样仅保留了初始节点信息。
3.4 时序卷积模块
时序卷积模块是使用多个标准的一维膨胀卷积核抽取高维的时序特征。如前文介绍,时序卷积模块主要包括了两部分膨胀(空洞)卷积和 inception 层,这两种卷积结构在 CV 中已经通过有效性验证。其结构以下图所示,
▲ 时序卷积模块
关于膨胀卷积,这里就不过多介绍,其主要是经过引入“空洞”,在增大感觉野的同时,不增长模型参数。Inception 是从卷积的宽度出发,相较于 ResNet 从深度出发,其经过拼接的方式从宽度上增长感觉野。具体结构以下图所示,
▲ 膨胀inception层
最后,再提如下卷积核大小的选择。为了更好地抽取天然时序信号,文中没有选择经常使用的 一、三、5 的卷积大小,而是考虑到天然时序周期 七、十二、2四、60 等,因此文中选择的卷积核大小为 1x二、1x三、1x六、1x7。
3.5 跳跃链接层和输出层
跳跃链接层和输出层的做用较为直观,最终送入输出层的信息为多个模块的拼接,跳跃链接层起到一个规范化信息的做用,使输入到输出层的序列长度相同。输出层包括两个 1x1 的卷积层,输出指定维度值,若是单步预测维度为 1,若是多步 Q 预测,维度为 Q。
3.6 学习算法
学习算法包括了两个部分,1.子图划分(采样部分);2.课程学习训练。具体算法描述以下图所示:
▲ 学习算法流程
着重介绍下课程学习(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 的设置要合适。(感兴趣的能够去看下源码,这里不过多介绍。)
实验解读
实验总共分为两个部分,单步预测和多步预测,其中单步预测使用多变量时序预测的常规数据集,多步预测使用的含有传感器位置信息的时序数据。具体介绍以下图所示,
▲ 实验数据集
基线模型:
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 的工做,也是自适应构建邻接矩阵,可是须要结合预约图才能取得较好的效果。
▲ 多步预测对比
除此以外,还有消融实验、个例实验、参数实验。其中个例实验较为有意思,其对比了预约图和学习图获得的最近邻居节点,而后将其可视化,能够反应邻居节点在现实位置直接的关系。
我的总结
这里,笔者相对论文中涉及到的主要改进工做、对应解决的问题,进行统计。直接给出组会汇报的原文:
▲ 我的总结
参考文献
[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
更多阅读
#投 稿 通 道#
让你的论文被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许能够成为一座桥梁,促使不一样背景、不一样方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或我的,在咱们的平台上分享各种优质内容,能够是最新论文解读,也能够是学习心得或技术干货。咱们的目的只有一个,让知识真正流动起来。
???? 来稿标准:
• 稿件确系我的原创做品,来稿需注明做者我的信息(姓名+学校/工做单位+学历/职位+研究方向)
• 若是文章并不是首发,请在投稿时提醒并附上全部已发布连接
• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志
???? 投稿邮箱:
• 投稿邮箱:hr@paperweekly.site
• 全部文章配图,请单独在附件中发送
• 请留下即时联系方式(微信或手机),以便咱们在编辑发布时和做者沟通
????
如今,在「知乎」也能找到咱们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅咱们的专栏吧
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。若是你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。