论文笔记--Connecting the Dots: Multivariate Time Series Forecasting with Graph Neural Networks

作者提出了一个针对多元时间序列数据设计的通用图神经网络框架。通过图形学习模块自动提取变量之间的单向关系。进一步对空间上图卷积层和时间上空洞卷积层进行改进来捕获时间序列中的空间和时间依赖性。

Problem Definition

Challenge: ①在时间序列预测的问题上,目前的GNN方法都依赖于预先定义的图结构。但大多数情况下,多元时间序列没有明确的图结构。变量之间的关系应该从数据种获得。

②即使给定空间上的图结构,给定的图结构未必是最优的,在图学习的过程中,应该在训练过程种不断更新。

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

针对②图学习层和图卷积模块参数都是可学习的,意味着图结构也是在训练过程中不断优化的。

所以作者提出模型框架图如下。时序数据首先经过图结构学习层,根据学到的图结构做图卷积,再通过改进的一维卷积来捕获时间上的相关性,得到预测结果。

Method

接下来就是作者提出模型的具体结构。一个图学习层,m个图卷积模块,m个时间卷积模块和一个输出模块。图学习层计算一个得到图邻接矩阵,然后将其作为所有图卷积模块的输入。然后图卷积模块与时间卷积模块交叉使用,分别捕捉空间和时间依赖性。输出模块将隐藏的特性投影到所需的输出维度。其中还包含一些残差连接用于避免梯度消失的问题。

然后对各个模块的具体介绍

Graph Learning Layer

如果使用现存的度量节点之间相似性来构建图,例如欧式距离,计算复杂度就是O(n^2),计算和存储成本随图大小的增加呈二次增长,在大图中将无法使用。

另一个问题是,现有的距离度量通常是双向的,作者认为节点之间的关系应该是单向的,例如交通问题中,一个节点流量变化会使其他的变化,而不是相互影响的关系(我理解就是流量的单向流动的)。所以作者向构建有向的图结构。图学习层是专门为提取单向关系而设计的。具体结构如下

其中E1和E2表示随机初始化的节点嵌入结果,Θ1, Θ2 are model parameters,α为激活函数的饱和率,argtopk(·)返回最大几个值得下标。可以看到公式(3)就是用来实现邻接矩阵得非对称性,通过relu来去除矩阵中得负值,最后达到如果Avu为正数,则对应得对称位置Avu则为0. 公式(4)(5)(6)则是用来减少图卷积时得运算量, 只取其中前K大得值作为邻居, 其他值为0. 同时如果有节点的属性信息可以,使用节点的属性来获得E1和E2.

Graph Convolution Module

图卷积模块的目的是将节点的信息与相邻节点的信息融合,以获得空间依赖关系。图卷积模块由两个mix-hop传播层组成,分别处理通过每个节点的流入和流出信息(例如交通流量中的流入流量,流出流量)。最终将两个信息相加所谓最终的模块输出信息。具体结构如图(a)

然后下面再介绍Mix-hop的具体结构如果(b),包含了两个子模块:信息传播信息选择

信息传播也就是下面一层,计算公式如下

其中β时超参数,用来控制保持原输入的比率.   , 就是一般进行卷积的对邻接矩阵的变换,  Hin输入的状态.

信息选择就是上面一层, 主要是MLP, 公式如下

K是消息传播的深度, Hout输出的隐藏状态.

在信息传播层,层数增加会使最后网络节点的表征趋于一致, 公式(7)中则是通过加入初始节点信息保持因子来缓解, 而在一些节点信息会被丢失的问题上使用公式(8)中维护一个的参数矩阵 ,充当特征选择器来选择有用的信息。如果信息传播公式进行k步传播后没有空间依赖, 则可以通过挑战K大于该值时的 为0即可.

Temporal Convolution Module

时间卷积部分包含两部分膨胀(空洞)inception卷积组成,两部分使用不同的激活函数。如下图(a)

而膨胀inception卷积具体结构如右图,

首先是卷积核的选择问题,不同于常规的选择,作者根据时间上7, 12, 24, 28, 和60这几个时间周期数字,选择使用 1 × 2, 1 × 3, 1 × 6和 1 × 7作为卷积核。

在结合几种卷积结果上,作者使用在图像上广泛使用的直接拼接(即inception),没有用一般上使用的残差连接的深度模型。

Skip Connection Layer & Output Module

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

学习算法

大图上的预测

在每次迭代中,我们随机地将节点分成若干组,并让算法学习基于采样节点的子图结构。这样,每个节点都有可能被分配到同一组中的另一个节点上,从而可以计算和更新这两个节点之间的相似度评分。这样可以把图学习层的时间复杂度由变为

②多步时间预测

  在多个时间步预测时,长期预测产生的损失比短期预测高得多。为了使总体损失最小化,模型更注重提高长期预测的准确性。所以作者提出一种课程学习策略。算法在开始时只进行一步的预测,让模型有一个好的开始;随着迭代次数的增加,我们逐渐增加模型的预测长度,使模型能够逐步学习困难的任务。

Experiments

数据集

单步预测

可以看到在交通领域数据集上提升非常明显。

多步预测

作者的方法不是最好的,但作者认为MTGNN的意义在于,它不使用预定义图,只使用最先进的时空图神经网络,而DCRNNSTGCNMRA-BGCN则完全依赖于预定义图。

消融实验

关于图学习层的实验

图(c)中红色的标记代表中心节点,黄色节点代表的是根据给定的图得到的三个邻居,绿色的点则是通过学习到的三个邻居。应为黄色点离得是比较近的,所以如图a流量情况表现出很强的相关性,而学习到的邻居时间序列更能提前提示中心节点的极端交通状况。

创新点

提出图学习层通过学习得到图的结构。

混合跳数的图卷积模块。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
引用\[1\]:在你提供的引用中,出现了一个关于MongoDB连接报错的问题。报错信息显示无法连接到127.0.0.1:27017,原因是连接被拒绝。为了解决这个问题,你可以尝试以下两种方法: 1. 在MongoDB的bin文件夹下手动创建data文件夹,并在data文件夹下创建db文件夹。然后,在bin文件夹下打开git bash窗口,输入命令"./mongod --dbpath /data/db"。这样可以指定MongoDB的数据存储路径为创建的db文件夹。\[1\] 2. 在MongoDB的bin目录下,输入命令"mongod.exe --dbpath D:\data\db",其中D:\data\db是你需要存放数据的位置。在执行这个命令之前,你需要先创建该文件夹。\[2\] 希望以上方法能够帮助你解决连接被拒绝的问题。如果问题仍然存在,请检查你的网络连接和MongoDB的配置是否正确。 #### 引用[.reference_title] - *1* [mongo连接报错MongoDB shell version v3.4.0 connecting to: mongodb://127.0.0.1:27017 2018-09-27T21:11:...](https://blog.csdn.net/weixin_44029605/article/details/104631974)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [关于MongoDB报错:connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=...](https://blog.csdn.net/s_sos0/article/details/125459059)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenxino

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值