【论文阅读】(StemGNN)多元时间序列预测的谱时间图神经网络

(StemGNN)Spectral Temporal Graph Neural Network for Multivariate Time-series Forecasting

引用: Cao D , Wang Y , Duan J ,et al.Spectral Temporal Graph Neural Network for Multivariate Time-series Forecasting[J]. 2021.DOI:10.48550/arXiv.2103.07719.

论文链接: [2103.07719] Spectral Temporal Graph Neural Network for Multivariate Time-series Forecasting

作者: Defu Cao, Yujing Wang, Juanyong Duan, Ce Zhang, Xia Zhu, Conguri Huang, Yunhai Tong, Bixiong Xu, Jing Bai, Jie Tong, Qi Zhang

机构: 北京大学、微软和苏黎世联邦理工学院

文章目录

  • (StemGNN)Spectral Temporal Graph Neural Network for Multivariate Time-series Forecasting
    • 摘要
    • 引言
    • 主要贡献
    • 问题定义
      • StemGNN架构
      • 实验
      • 案例研究
      • 结论
      • 社会影响
      • 代码

摘要

  • 论文提出了一种新型的深度学习模型StemGNN,用于提高多变量时间序列预测的准确性。
  • 论文将多变量时间序列预测问题定义为基于多变量时间图(multivariate temporal graph)的数据结构。
  • StemGNN在频谱域中同时捕获时间序列内部和序列间的相关性。
  • 模型结合了图傅里叶变换(GFT)和离散傅里叶变换(DFT),并在端到端框架中使用卷积和序列学习模块进行有效预测。
  • 实验在十个真实世界的数据集上进行,证明了StemGNN的有效性。

引言

  • 时间序列预测在交通预测、供应链管理和金融投资等多个领域中非常重要。
  • 准确预测需要同时考虑时间序列内部的时序模式和多个时间序列间的相关性。

主要贡献

  1. StemGNN是首个在频谱域中同时表示时间序列内部和序列间相关性的工作。
  2. 模型能够从数据中自动学习时间序列间的相关性,无需预定义的拓扑结构。
  3. 在多个公共基准测试中,StemGNN实现了最先进的性能,平均优于最佳基线8.1%的MAE和13.3%的RMSE。

问题定义

在这篇论文中,多变量时间序列预测问题被定义为基于一个称为多变量时间图(multivariate temporal graph)的数据结构进行的预测任务。具体定义如下:

  • 多变量时间图:表示为 $ G = (X, W) $,其中:

    • X = { x i t } ∈ R N × T X = \{x_{it}\} \in \mathbb{R}^{N \times T} X={xit}RN×T 代表多变量时间序列输入,这里 N N N 是时间序列的特征数量(即节点数), T T T 是时间戳的数量。
    • $ W \in \mathbb{R}^{N \times N}$ 是邻接矩阵,如果 w i j > 0 w_{ij} > 0 wij>0 则表示节点 i i i j j j 之间存在边, w i j w_{ij} wij 表示这条边的强度。
  • 预测任务:给定过去 K K K 个时间戳的观测值 X t − K , … , X t − 1 X_{t-K}, \ldots, X_{t-1} XtK,,Xt1 ,多变量时间序列预测的目标是预测多变量时间图 G = ( X , W ) G = (X, W) G=(X,W) 中下一个 H H H 个时间戳的节点值 X ^ t , X ^ t + 1 , … , X ^ t + H − 1 \hat{X}_t, \hat{X}_{t+1}, \ldots, \hat{X}_{t+H-1} X^t,X^t+1,,X^t+H1 。这些值可以通过预测模型 F F F 与参数 Φ \Phi Φ 以及图结构 G G G 来推断,其中 G G G 可以作为先验输入或从数据中自动推断。

  • 预测模型:可以表示为 X ^ t , X ^ t + 1 , … , X ^ t + H − 1 = F ( X t − K , … , X t − 1 ; G ; Φ ) \hat{X}_t, \hat{X}_{t+1}, \ldots, \hat{X}_{t+H-1} = F(X_{t-K}, \ldots, X_{t-1}; G; \Phi) X^t,X^t+1,,X^t+H1=F(XtK,,Xt1;G;Φ)

这个定义强调了在多变量时间序列预测中同时考虑时间序列内部的时序模式和不同时间序列之间的相关性的重要性。StemGNN 模型正是为了捕捉这些复杂的结构和时序依赖性而设计的。

StemGNN架构

在这里插入图片描述

  • StemGNN由多个StemGNN块组成,每个块设计用于在频谱域中同时建模多变量时间序列的结构和时序依赖性。
  • 包括图傅里叶变换(GFT)、离散傅里叶变换(DFT)、1D卷积和GLU子层。
  1. 输入层:多变量时间序列数据 X X X 作为输入,其中 X ∈ R N × T X∈R^{N \times T} XRN×T N N N 是时间序列的特征数量, T T T 是时间步的数量。

  2. 潜在相关性层(Latent Correlation Layer)

    潜在相关性层(Latent Correlation Layer)是StemGNN模型中用于自动学习多变量时间序列之间潜在相关性的组件,这层的目的是在没有预定义的拓扑结构的情况下,从数据中自动推断出时间序列之间的相互关系。以下是潜在相关性层的详细描述:

    1. 自注意力机制(Self-Attention Mechanism)

      • 利用自注意力机制来计算时间序列之间的相关性权重,无需依赖于预先定义的图结构。
    2. 输入

      • 将多变量时间序列数据 X ∈ R N × T X \in \mathbb{R}^{N \times T} XRN×T 输入到这一层。
    3. GRU层(Gated Recurrent Unit Layer)

      • 首先,时间序列数据 X X X 通过一个GRU层来计算每个时间戳 t t t 对应的隐藏状态。
    4. 权重矩阵计算

      • 使用GRU层的最后一个隐藏状态 R R R 作为整个时间序列的表示,然后通过自注意力机制计算权重矩阵 W W W 。计算公式如下:

        Q = R W Q , K = R W K , W = Softmax ( Q K T d ) Q = R W^Q, \quad K = R W^K, \quad W = \text{Softmax}\left(\frac{QK^T}{\sqrt{d}}\right) Q=RWQ,K=RWK,W=Softmax(d QKT)

        其中, Q Q Q K K K 分别表示查询(query)和键(key)的表示, W Q W^Q WQ W K W^K WK 是可学习的参数, d d d Q Q Q K K K 的隐藏维度大小。

    5. 邻接矩阵

      • 输出的权重矩阵 W ∈ R N × N W \in \mathbb{R}^{N \times N} WRN×N 用作图 G G G 的邻接权重矩阵,表示时间序列之间的相关性
  3. StemGNN 层

    • 由多个 StemGNN 块组成,每个块包含以下操作:

    • 图傅里叶变换(Graph Fourier Transform, GFT):将图 G G G 转换为频谱矩阵表示,使得每个节点的单变量时间序列在线性上独立,以便于分析和处理数据中的周期性和趋势性特征。首先计算图拉普拉斯矩阵 L L L 的特征值和特征向量.然后,使用这些特征向量构造变换矩阵,将原始的时间序列数据投影到这些特征向量上,实现从图域到频域的转换,具体如下:

      1. 图拉普拉斯矩阵

        • GFT 的基础是图拉普拉斯矩阵 L L L ,通常定义为 L = D − W L = D - W L=DW,其中 D D D 是图的度矩阵(对角矩阵,包含每个节点的度), W W W 是图的邻接矩阵。
      2. 特征值分解

        • 对拉普拉斯矩阵 L L L 进行特征值分解,得到 L = U Λ U T L = U \Lambda U^T L=UΛUT ,其中 U U U 是由特征向量组成的矩阵, Λ \Lambda Λ 是对角矩阵,包含对应的特征值。
      3. 变换过程

        • GFT 将图上的信号 f f f 从图域转换到频域,表示为 f ^ = U T f \hat{f} = U^T f f^=UTf 。这里, f f f 是图上的原始信号, f ^ \hat{f} f^ 是频域上的信号表示。
      4. 频域表示

        • 在频域上,信号 f ^ \hat{f} f^ 的每个分量与图的一个特定频率或模式相对应,这些频率或模式由拉普拉斯矩阵的特征向量定义。
      5. 逆变换

        • 从频域回到图域可以通过 f = U f ^ f = U \hat{f} f=Uf^ 实现,这是 GFT 的逆过程。
    • 离散傅里叶变换(Discrete Fourier Transform, DFT):将每个单变量时间序列转换到频域。

    • 卷积和门控线性单元(Convolution and Gated Linear Unit, GLU):在频域中捕获特征模式。

    • 逆图傅里叶变换(Inverse Graph Fourier Transform, IGFT):将频谱表示转换回原始域。

  4. Spectral Sequential Cell(Spe-Seq Cell)

    • 用于在频域中分解每个单变量时间序列,并学习其上的表示。
    • 包括 DFT、1D 卷积、GLU 和逆离散傅里叶变换(Inverse Discrete Fourier Transform, IDFT)。
  5. 输出层

    • 由 GLU 和全连接(Fully-Connected, FC)子层组成。
    • 有两种类型的输出:预测输出(用于生成未来值的最佳估计)和回溯输出(用于增强多变量时间序列的表示能力)。
  6. 损失函数

    • 结合预测损失和回溯损失,用于训练模型。
  7. 推理策略

    • 在多步预测中采用滚动策略,使用预测值更新输入并连续预测下一个时间步。
  8. 残差连接和堆叠 StemGNN 块

    • 使用残差连接来构建更深层次的模型,通过第二块来近似真实值和第一块重建值之间的残差。
  9. 基于图卷积的输出

    • 使用图卷积操作来进一步处理频谱矩阵表示,以生成最终的预测。

实验

在这里插入图片描述
在这里插入图片描述

  • 在包括交通、能源、心电图和COVID-19数据的十个公共数据集上评估了StemGNN的性能。
  • 与其他最新技术模型相比,StemGNN在大多数数据集上都建立了新的最先进水平。

案例研究

  • 论文对COVID-19数据进行了案例研究,展示了StemGNN在实际问题中的可行性和解释性。

结论

  • StemGNN通过在频谱域中联合建模序列间相关性和时序依赖性,一致性地超越了现有的方法。
  • 未来的工作将探索减少StemGNN时间复杂度的近似方法,并将其应用于更多的实际场景。

社会影响

  • 论文讨论了多变量时间序列预测对社会的潜在影响,包括供应链管理、洪水风险分析和COVID-19趋势预测。

代码

  • 论文提供了StemGNN的代码:https://github.com/microsoft/StemGNN/

这篇论文在深度学习领域提供了一种新的多变量时间序列预测方法,通过频谱域的建模提高了预测的准确性,并通过实验验证了其有效性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3246726.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

DockerHub无法拉取镜像怎么办

快速构建企业级AIGC项目 LangChat是Java生态下企业级AIGC项目解决方案,在RBAC权限体系的基础上,集成AIGC大模型功能,帮助企业快速定制知识库、企业机器人。 网站文档:Index – LangChat 后台地址:LangChain Chat 前台…

【深度学习入门篇 ⑧】关于卷积神经网络

【🍊易编橙:一个帮助编程小伙伴少走弯路的终身成长社群🍊】 大家好,我是小森( ﹡ˆoˆ﹡ ) ! 易编橙终身成长社群创始团队嘉宾,橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官…

昇思25天学习打卡营第13天|CycleGAN 图像风格迁移互换全流程解析

目录 数据集下载和加载 可视化 构建生成器 构建判别器 优化器和损失函数 前向计算 计算梯度和反向传播 模型训练 模型推理 数据集下载和加载 使用 download 接口下载数据集,并将下载后的数据集自动解压到当前目录下。数据下载之前需要使用 pip install dow…

el-table表格操作列错行处理

解决方法&#xff1a; <style>::v-deep .el-table th.el-table__cell > .cell {white-space: nowrap !important;} </style>

Template execution failed: ReferenceError: name is not defined

问题 我们使用了html-webpack-plugin&#xff08;webpack&#xff09;进行编译html&#xff0c;导致的错误。 排查结果 连接地址 html-webpack-plugin版本低(2.30.1)&#xff0c;html模板里面不能有符号&#xff0c;注释都不行 // var reg new RegExp((^|&)${name}([^&…

测试——基础篇

内容纲要: 软件测试的生命周期 如何描述一个bug 如何定义bug的级别 bug的生命周期 如何开始第一次测试 测试的执行和bug管理 产生争执怎么办 1. 软件测试的生命周期 需求分析→测试计划→ 测试设计、测试开发→ 测试执行→ 测试评估 需求分析:需求是否正确,是否可行测试计划:…

Qt基础 | Qt全局定义 | qglobal头文件中的数据类型、函数、宏定义

文章目录 一、数据类型定义二、函数三、宏定义 QtGlobal头文件包含了 Qt 类库的一些全局定义 &#xff0c;包括基本数据类型、函数和宏&#xff0c;一般的Qt类的头文件都会包含该文件。 详细内容可参考&#xff1a;https://doc.qt.io/qt-5/qtglobal.html 一、数据类型定义 为了…

《Python机器学习项目实战》书籍介绍

文章目录 书籍介绍主要内容书籍目录 书籍介绍 《Python机器学习项目实战》带领大家在构建实际项目的过程中&#xff0c;掌握关键的机器学习概念&#xff01;使用机器学习&#xff0c;我们可完成客户行为分析、价格趋势预测、风险评估等任务。要想掌握机器学习&#xff0c;需要…

2024年大数据高频面试题(中篇)

文章目录 Kafka为什么要用消息队列为什么选择了kafkakafka的组件与作用(架构)kafka为什么要分区Kafka生产者分区策略kafka的数据可靠性怎么保证ack应答机制(可问:造成数据重复和丢失的相关问题)副本数据同步策略ISRkafka的副本机制kafka的消费分区分配策略Range分区分配策略…

网络准入控制设备是什么?有哪些?网络准入设备臻品优选

小李&#xff1a;“小张&#xff0c;最近公司网络频繁遭遇外部攻击&#xff0c;我们得加强一下网络安全了。” 小张&#xff1a;“是啊&#xff0c;我听说实施网络准入控制是个不错的选择。但具体什么是网络准入控制设备&#xff1f;我们有哪些选择呢&#xff1f;” 小李微笑…

数据结构历年考研真题对应知识点(哈夫曼树和哈夫曼编码)

目录 5.5.1哈夫曼树和哈夫曼编码 1.哈夫曼树的定义 2.哈夫曼树的构造 【分析哈夫曼树的路径上权值序列的合法性&#xff08;2010&#xff09;】 【哈夫曼树的性质&#xff08;2010、2019&#xff09;】 3.哈夫曼编码 【根据哈夫曼编码对编码序列进行译码&#xff08;201…

乘积量化pq:将高维向量压缩 97%

向量相似性搜索在处理大规模数据集时&#xff0c;往往面临着内存消耗的挑战。例如&#xff0c;即使是一个包含100万个密集向量的小数据集&#xff0c;其索引也可能需要数GB的内存。随着数据集规模的增长&#xff0c;尤其是高维数据&#xff0c;内存使用量会迅速增加&#xff0c…

达梦 ./disql SYSDBA/SYSDBA报错[-70028]:创建SOCKET连接失败. 解决方法

原因 达梦命令./disql SYSDBA/SYSDBA默认访问端口5236&#xff0c;如果初始化实例的时候修改了端口&#xff0c;需要指定端口访问 解决 ./disql SYSDBA/SYSDBA192.168.10.123:5237

数据结构(5.2_1)——二叉树的基本定义和术语

二叉树的基本概念 二叉树是n(n>0)个结点的有限集合: 或者为空二叉树&#xff0c;即n0&#xff1b;或者由一个根结点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树又分别是一颗二叉树。 特点:每个结点至多只有两颗字数&#xff1b;左子树不能颠倒(二叉树…

09 深度推荐模型演化中的“平衡与不平衡“规律

你好&#xff0c;我是大壮。08 讲我们介绍了深度推荐算法中的范式方法&#xff0c;并简单讲解了组合范式推荐方法&#xff0c;其中还提到了多层感知器&#xff08;MLP&#xff09;。因此&#xff0c;这一讲我们就以 MLP 组件为基础&#xff0c;讲解深度学习范式的其他组合推荐方…

pico+unity3d手部动画

在 Unity 开发中&#xff0c;输入系统的选择和运用对于实现丰富的交互体验至关重要。本文将深入探讨 Unity 中的 Input System 和 XR Input Subsystem 这两种不同的输入系统&#xff0c;并详细介绍它们在控制手部动画方面的应用。 一、Input System 和 XR Input Subsystem 的区…

每日练习,不要放弃

目录 题目1.下面叙述错误的是 ( )2.java如何返回request范围内存在的对象&#xff1f;3.以下代码将打印出4.下列类定义中哪些是合法的抽象类的定义&#xff1f;&#xff08;&#xff09;5.以下代码段执行后的输出结果为6.以下代码运行输出的是总结 题目 选自牛客网 1.下面叙述…

【node-RED 4.0.2】连接操作 Oracle 数据库实现 增 删 改 查【新版,使用新插件:@hylink/node-red-oracle】

总览 上节课&#xff0c;我们说到&#xff0c;在 node-red 上链接 oracle 数据库 我们使用的插件是 node-red-contrib-agur-connector。 其实后来我发现&#xff0c;有一个插件更简便&#xff0c;并且也更好用&#xff1a;hylink/node-red-oracle &#xff01;&#xff01;&am…

Linux--网络基础

计算机网络背景 计算机网络背景是一个复杂而丰富的领域&#xff0c;涵盖了从计算机单机模式到网络互联的演变过程&#xff0c;以及网络技术的不断发展和创新。 计算机单机模式和独立发展 在早期&#xff0c;计算机主要以单机模式存在&#xff0c;即每台计算机都是独立的&…