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

news2024/9/25 5:23:08

(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://www.coloradmin.cn/o/1931859.html

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

相关文章

揭秘“循环乐购”:消费赠礼,每日返利

大家好,我是吴军,今天作为您的电商策略顾问,将带您深入探索一种前所未有的商业模式——“循环乐购”。在这个模式中,消费不再是单向支出,而是成为了开启财富增值的钥匙。您是否好奇,为何有人能在享受购物乐…

ESP32部署TensorFlow Lite

本来是想找一篇中文教程,不过只看到一个英文官方的,也行吧,虽然效率会慢丢丢。 GitHub - espressif/esp-tflite-micro: TensorFlow Lite Micro for Espressif Chipsets 看了一圈,有个中文的: esp-dl/README_cn.md a…

C语言之大小端理解

目录 1前言2 大小端理解与区分3 大小端的识别和基本切换操作4 总结 1前言 在汽车CAN通讯报文中往往会接触到Intel类型和motorola类型,实际项目中涉及到多机通讯也会接触到大小端问题 2 大小端理解与区分 大端(Big_Endian) :低字节放在高地址小端(Little_Endian):…

STM32 BootLoader 刷新项目 (三) 程序框架搭建及刷新演示

STM32 Customer BootLoader 刷新项目 (三) 程序框架搭建 文章目录 STM32 Customer BootLoader 刷新项目 (三) 程序框架搭建典型工作流程 1. 硬件原理图介绍1.1 USART硬件介绍1.2 LED和按键介绍 2. STM32 CubeMX工程搭建2.1 创建工程2.2 系统配置2.3 USART串口配置2.4 配置按键G…

SSE(Server Sent Event)实战(2)- Spring MVC 实现

一、服务端实现 使用 RestController 注解创建一个控制器类(Controller) 创建一个方法来创建一个客户端连接,它返回一个 SseEmitter,处理 GET 请求并产生(produces)文本/事件流 (text/event-stream) 创建…

QT小细节

QT小细节 1 QTextToSpeech1.1 cmake1.2 qmake QT6 6.7.2 1 QTextToSpeech 从下图可以看到,分别使用qmake或者cmake编译情况下的,QTextToSpeech的使用方法 QTextToSpeech官方链接,也可以直接在QT Creator的帮助中搜索 1.1 cmake 将上图中的…

无人机之机型区别与应用领域

一、多旋翼无人机 特点:多旋翼无人机依靠产生升力以平衡飞行器的重力,通过改变每个旋翼的转速来控制飞行姿态,能够悬停和垂直起降。他们具备体积小、重量轻、噪音小、隐蔽性好的特点,操作灵活且易于维护。 应用:多旋…

django踩坑(四):终端输入脚本可正常执行,而加入crontab中无任何输出

使用crontab执行python脚本时,有时会遇到脚本无法执行的问题。这是因为crontab在执行任务时使用的环境变量与我们在终端中使用的环境变量不同。具体来说,crontab使用的环境变量是非交互式(non-interactive)环境变量,而终端则使用交互式(inter…

补充.IDEA的使用

首先我们要了解在idea中Java工程由项目(project)、模块(module)包(package)、类(class)组成。 他们之间的关系是project包含module包含package包含class。 所以我们要按照先建一个pr…

启智畅想火车类集装箱号码识别技术,软硬件解决方案

集装箱号码识别需求: 实时检测车皮号、火车底盘号码、集装箱号码,根据火车类型分为以下三种情况: 1、纯车皮,只检测车皮号; 2、火车拉货箱(半车皮),检测车皮号集装箱号码&#xff1b…

巧用通义灵码助力护网面试

前言 前几年护网还算是一个比较敏感的话题,但是随着近段时间的常态化开始,护网行动也是逐渐走进了大众的视野,成为了社会各界共同关注的安全盛事。本篇也是受通义灵码备战求职季活动的启发,结合近期要开始的护网行动&#xff0c…

监控系统怎样做?

监控类型自底向上分为资源监控、服务监控和业务监控。希望打造公司级的监控系统最好的时机是系统规划时,如果把监控设计往后放,将会面临一个巨大的难题:推行和现有不兼容的规范。 三种监控类型 资源监控 这个相对简单,随着k8s的兴…

Python 如何使用列表推导式(list comprehensions)?

列表推导式(List Comprehensions)是 Python 中一种简洁且强大的创建列表的方式。通过使用列表推导式,可以用一行代码来生成列表,而不是通过多行代码的循环或其他方法。 一、列表推导式的基本语法 列表推导式的基本语法如下&…

QT开发笔记:信号和槽

乱码问题: 出现乱码问题原因只有一个:就是编码方式不匹配!!! 中文常见汉字4K,算上各种生僻字差不多六万字 仍然使用一个大表格,给每个汉字,分配一个整数即可。 字符集~~表示汉字的字符集&#…

基于若依的ruoyi-nbcio流程管理系统修正自定义业务表单的回写bug

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: h…

差异分析的结果各种热图,火山图,箱式图可视化作图教程

1. 基因表达的热图绘制 1.1 根据所有差异基因绘制基因表达的聚类热图 视频教程: https://www.bilibili.com/video/BV13m421g7wv/ 1.2 绘制top差异基因表达的聚类热图 视频教程: https://www.bilibili.com/video/BV1jZ42147KP/ 1.3 绘制感兴趣基因的聚类热图 视频教程: http…

一招教你选出独立站爆品

独立站选品其实是让很多卖家感到头大的问题,明明选了一个在其他平台是爆款的品,放到独立站上就是卖不起量,有自己想卖的产品却找不到好的供应商。对于这些问题,主要还是因为在选品时照搬电商平台的选品思路,没有认清自…

2024年中级消防设施操作员(考前冲刺)证考试题库及中级消防设施操作员(考前冲刺)试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2024年中级消防设施操作员(考前冲刺)证考试题库及中级消防设施操作员(考前冲刺)试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作…

5个超牛的Java开源OA项目(强烈推荐)

1. O2OA ——开源地址:https://gitee.com/o2oa/O2OA 概述: O2OA 是一款真正全代码(包含服务器、安卓以及IOS客户端)开源的企业应用定制化开发平台,适用于企业OA、协同办公类信息化系统的建设和开发。技术:…

HarmonyOS 开发者联盟高级认证最新题库

本篇文章包含 Next 版本更新后高级认证题库中95%的题目。 答案正确率 50-60%,答案仅做参考。 请在考试前重点看一遍题目,勿要盲目抄答案。 欢迎在评论留言正确答案和未整理的题目。 1、下面关于方舟字节码格式PREF_IMM16_v8_v8描述正确的是 16位前缀操作…