论文阅读--《FourierGNN:从纯图的角度重新思考多元时间序列预测》

Yi K, Zhang Q, Fan W, et al. FourierGNN: Rethinking multivariate time series forecasting from a pure graph perspective[J]. Advances in Neural Information Processing Systems, 2024, 36.

本次介绍的文章来自NeurIPS 2023,关于多变量时间序列的预测

摘要

痛点问题:当前最先进的基于图神经网络(GNN)的预测方法通常需要图网络(如GCN)和时间网络(如LSTM)来分别捕获序列间(空间)动态和序列内(时间)依赖关系。然而,两种网络的不确定兼容性给手工制作的模型设计带来了额外的负担。此外,分离的时空建模自然违背了现实世界中统一的时空相互依赖关系,这在很大程度上影响了预测效果。

解决方案:从纯图角度重新思考MTS预测

主要内容:首先定义了一种新的数据结构,hypervariate graph,它将每个序列值(无论变量或时间戳)视为一个图节点,并将滑动窗口表示为时空全连接图。该视角统一考虑时空动态,将经典的MTS预测重新表述为对超变量图的预测。然后,我们提出了一种新的傅立叶图神经网络(FourierGNN)架构,通过堆叠我们提出的傅立叶图算子(FGO)在傅立叶空间中执行矩阵乘法。FourierGNN具有较强的表达能力和较低的复杂度,能够有效地完成预测。此外,我们的理论分析揭示了FGO在时域上与图卷积的等价性,进一步验证了FourierGNN的有效性。在七个数据集上进行的大量实验表明,与最先进的方法相比,我们的性能更优,效率更高,参数更少。

一、介绍

多变量时间序列的预测:交通系统中的交通流量预测,天气预报中的温度估计,能源市场中的电力消耗规划等

传统方法:RNN、CNN、Informer ,但没有捕获序列的空间关系

基于GNN预测的方法(如STGCNTAMPS2GCNets)严重依赖于预定义的图结构来指定;

后来的高级方法(如StemGNN[10]、MTGNN[13]、AGCRN[2])可以在没有预定义先验的情况下自动学习序列间相关性并相应地建模空间动力学,但几乎所有方法都是通过堆叠图网络(如GCN和GAT)来捕获空间动力学,通过堆叠图网络(如LSTM和GRU)来捕获时间依赖性。然而,图网络与时态网络的不确定兼容性给手工模型设计带来了额外的负担,影响了预测效果。

研究问题:即使没有时间网络,纯图网络也能捕获空间动态和时间依赖性吗?

提出的解决方案:提出了一种新的方法,称为傅里叶图神经网络(FourierGNN)。考虑将时域信息转移到频域,在傅里叶空间内利用纯图方法捕获时间序列的时空关系。

 创新点

(1)时间上和空间上分别建图,破坏了时空整体性 -> 因此提出纯图网络捕获空间动态和时间依赖性

(2)纯图网络的特征挖掘开销大,计算成本高 -> 将时域上的计算转移到频域,利用傅里叶图算子(FGO)进行特征挖掘

(3)利用数学知识证明了在傅里叶空间中进行矩阵乘法等价于时间域中的图卷积

(4)实验十分丰富,数据集涵盖范围广,实验对比丰富,消融实验、可解释性实验都很丰富

 二、相关工作

三、问题定义

给定一个多变量时间序列输入:

最终的预测任务是: 

 其中F是预测函数,Y是最终的预测值

四、方法

模型整体结构:

 过程:(1)建图:构建全连通变量图 (2)节点嵌入:使用嵌入矩阵为每个节点嵌入d维向量 (3)离散傅里叶变换:将时域转到频域 (4)在傅里叶空间进行一系列递归乘法 (5)进行逆傅里叶变换:转回时域 (6)使用两层前馈网络FNN投影

1、建图

构建一个全连通变量图

 

这里的节点代表每个序列的采样点,边是全连通的,对于一个长度为T有N元的时间序列来说,超图具有NT个节点。

2、节点嵌入和离散傅里叶变换

 使用嵌入矩阵E_\phi为每个节点分配一个d维向量,即

然后进行离散傅里叶变换:离散傅里叶变换(Discrete Fourier Transform)是信号分析中的一种基本方法,将离散时序信号从时间域变换到频率域,是傅里叶变换在时域和频域都呈离散的形式

3、 傅里叶图算子(Fourier Graph Operator)

给定一个图G=(X,A) 节点特征邻接矩阵引入一个权重矩阵

有一个特定的Green Kernel: 满足关系(平移不变性)

定义为傅里叶图算子(FGO) 其中F为离散傅里叶变换 将节点特征的傅里叶变换与FGO的乘积表示为:

上述式子的原理来源于卷积定理:它表示两个信号卷积的傅里叶变换等于它们的傅里叶变换在频域中的点积

最终得到频域的卷积公式:

 

4、FourierGNN中的FGO应用

 定义k层傅立叶图神经网络为:

 其中表示第k层的FGO,σ是激活函数,bk是偏置

递归乘法在傅里叶空间中等效于时域中的多阶卷积: 

 

这种方法确保了FourierGNN在傅里叶空间中的操作与传统的时域卷积在理论上的一致性。

5、时间复杂度分析

 假设有 𝑛个节点和 𝑑维特征,FourierGNN的时间复杂度可以分为以下几个部分:

(1)离散傅里叶变换(DFT)

DFT用于将节点特征从时域转换到傅里叶空间。对 𝑛个节点进行 DFT 的时间复杂度为O(nlogn)   由于有d维特征,因此总的时间复杂度为:O(ndlogn)

(2)傅里叶空间中的矩阵乘法

在傅里叶空间中进行的矩阵乘法涉及节点特征矩阵 𝑋和傅里叶图算子 𝑆的乘法 假设 𝑋的尺寸为 𝑛×𝑑,𝑆的尺寸为 𝑑×𝑑这种矩阵乘法的时间复杂度为

(3)逆离散傅里叶变换(IDFT)

IDFT用于将傅里叶空间中的结果转换回时域。IDFT的时间复杂度与DFT相同,为 O(nlogn)由于有d维特征,因此总的时间复杂度为:O(ndlogn)

因此FGO的总时间复杂度为:

而传统卷积的时间复杂度为:

 因此,FGO的复杂度明显低于传统的图卷积操作,尤其是在处理大规模图数据时,优势更加显著

五、结果

1、数据集

Solar: 这个数据集是关于国家可再生能源实验室收集的太阳能。我们选择佛罗里达州的发电厂数据点作为数据集,该数据集包含593个点。数据采集时间为2006年1月1日至2016年12月31日,每隔1小时采样一次。

Wiki: 该数据集包含了不同维基百科文章的每日浏览量,收集时间为2015/7/1至2016/12/31。它由大约145k个时间序列组成,我们随机从中选择2k个作为我们的实验数据集。

交通: 该数据集包含963个旧金山高速公路车道的每小时交通数据。流量数据从2015/01/01开始采集,每隔1小时采样一次。

ECG: 该数据集是关于UCR时间序列分类档案中的心电图(ECG)。它包含140个节点,每个节点的长度为5000。

electry: 该数据集包含370个客户的用电量,从2011年1月1日开始收集。每隔15分钟采样一次。

COVID-19: 该数据集是关于2020年2月1日至2020年12月31日美国加利福尼亚州COVID-19住院情况的数据集,由约翰霍普金斯大学提供,采样间隔为每一天。

METR-LA: 该数据集包含2012年3月1日至2012年6月30日洛杉矶县高速公路环路探测器收集的交通信息。包含207个传感器,每5分钟采样一次。

 2、基线方法

3、实验结果

 4、敏感性分析

(1)针对预测长度不同的敏感性分析

 ECG数据集:

(2)针对节点数的敏感性分析

 (3)针对不同扩散步的敏感性分析

高阶扩散信息有利于提高预测精度,但随着阶数的增加,扩散信息的影响会逐渐减弱,甚至会给预测带来噪声

(4)针对输入窗口和嵌入维度的敏感性分析

 图7显示,随着输入回看窗口长度的增加,FourierGNN的性能(包括RMSE和MAPE)越来越好这表明FourierGNN可以从长MTS输入中学习到一个全面的超变量图,以捕获空间和时间依赖性。 图8显示,随着嵌入尺寸的增加,性能(RMSE和MAPE)先增加后降低,这是因为大的嵌入尺寸提高了FourierGNN的拟合能力,但也容易导致过拟合问题,尤其是当嵌入尺寸过大时。

5、消融实验

(1) w/o Embedding:  FourierGNN的一个变体将原始MTS输入而不是将其嵌入到傅里叶空间的图卷积中

(2) w/o Dynamic FGO: FourierGNN的一种变体对所有扩散步骤使用相同的FGO,而不是在不同的扩散步骤中应用不同的FGO它对应于一个普通的图过滤器。

(3) w/o Residual: FourierGNN的变体在求和中没有K = 0层输出,即

(4) w/o Summation: FourierGNN的一种变体采用最后一阶(层)输出作为FourierGNN的最终频率输出

 

 6、可视化

将不同变量的时间邻接矩阵可视化 从COVID-19数据集中随机选择8个县,计算每个县连续12个时间步长的关系,可视化邻接矩阵 结果表明,FourierGNN在每个县学习到不同的时间模式,这表明该超变量图可以编码丰富的、有区别的时间依赖性。 

 

将基于FourierGNN在METR-LA数据集上学习到的表示生成的邻接矩阵可视化

随机选择了20个检测器,并通过热图可视化它们对应的邻接矩阵 通过结合实际路线图检查邻接矩阵,我们观察到: (1) 探测器(7、8、9、11、13、18)在物理距离上非常接近,对应于它们在热图中相互关联的高值; (2) 探测器4、14、16距离其他探测器较远,整体相关值较小; (3) 与探测器14、16相比,探测器4与其他探测器如7、8、9的相关值略高,这是因为探测器4、7、8、9虽然相距较远,但在同一条路上 结果验证了超变量图结构可以表示高度可解释的相关性 

六、总结

总结:

1、从纯图的角度直接应用图网络进行MTS预测

2、提出傅立叶图算子(Fourier graph Operator, FGO)叠加在傅立叶空间中进行矩阵乘法的傅立叶神经网络,该网络具有足够的学习表现力,且复杂度较低

3、FourierGNN以更高的效率和更少的参数实现了最先进的性能,并且超变量图结构表现出强大的编码时空相互依赖关系的能力

思考:

1、关于论文写作:作者的写作思路很顺利,从发现问题,到一步步解决问题,想法和做法都顺理成章,有很好的创新点

2、实验的丰富性:做了大量的对比实验,工作量很大,还附带有可解释性的图

3、从时域转到频域,注重学科交叉,将其他学科的知识应用到自己的领域,产生了很好的效果 

源代码链接:

GitHub - aikunyi/FourierGNN: Official implementation of the paper "FourierGNN: Rethinking Multivariate Time Series Forecasting from a Pure Graph Perspective" 


都看到这里了~给个小心心♥呗~

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

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

相关文章

excel表格加密:电脑文件加密的5个方法介绍【新手篇】

为了防止数据泄露,编辑好表格文件后一般都会加上密码。敏感数据的泄露会导致严重的商业损失和声誉损害。Excel表格加密方法有很多,包括金舟文件夹加密大师、金舟ZIP解压缩、工作簿密码设置等方法。 下面分享5个excel表格加密方法,希望能够帮到…

canvas入门详细教程(W3C)

文章目录 一、线形1、画线形之前,最基本的方法需要知道:2、线形的样式设置:3、不同的线形路径给不同的样式设置-需要知道俩个方法:4、画线形三角5、画贝塞尔曲线6、画虚线 二、画矩形1、绘制空心矩形有三种方法2、绘制填充矩形有俩…

C++——布隆过滤器

目录 布隆过滤器的提出 布隆过滤器的概念 布隆过滤器的基本原理和特点 布隆过滤器的实现 布隆过滤器的插入 布隆过滤器的查找 布隆过滤器的删除 布隆过滤器的优点 布隆过滤器的缺陷 布隆过滤器使用场景 布隆过滤器的提出 在注册账号设置昵称的时候,为了保证…

PUBG绝地求生·阿童木透视自瞄免费辅助 v6.24

在享受电子游戏的精彩世界时,家庭用户的数据安全和系统稳定性是不容忽视的重要方面。为了确保在使用游戏辅助工具时既能获得愉悦的游戏体验,又能保障个人数据和系统的安全,这里有一些建议和操作指南需要大家注意。 对于家庭用户而言&#x…

Java HashMap 简介

HashMap 简介 HashMap 主要用来存放键值对,它基于哈希表的 Map 接口实现,是常用的 Java 集合之一,是线程不安全的。 HashMap;可以存储 null 的 key 和 value ,但 null 作为 key 只能有一个,null 作为值可以…

MAC Address

文章目录 1. 前言2. MAC Address2.1 MAC 地址格式2.2 Locally Administered MAC Address2.3 MAC 单播 和 多播 3. 参考资料 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. MAC Address 2.1 MA…

3d渲染软件有哪些(1),渲染100邀请码1a12

3D渲染是把三维模型转成2D图像的过程,领域不同常用的软件也不一样,今天我们就简单介绍几个。 在介绍前我们先推荐一个设计人员常用到的工具,就是网渲平台渲染100,通过它设计师可以把本地渲染放到云端进行,价格也不贵&a…

永洪bi里topN的设置/用法

要实现的效果:实现通过输入参数,进行图表top的排序筛选 图示: 筛选前: 输入3,看top3的值: 输入-3,看倒数3个的值: 设置步骤: 1️⃣:添加一个“文本参数组件…

二叉搜索树详解

一、二叉搜索树的概念 二叉搜索树又名二叉排序树以及二叉查找树,它是一颗空树或者是具有以下性质的二叉树 *若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 *若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 *它…

昂科烧录器支持KIOXIA铠侠的可编程只读存储器TH58NVG4S0HTAK0

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表,其中KIOXIA铠侠的电可擦除可编程只读存储器TH58NVG4S0HTAK0已经被昂科的通用烧录平台AP8000所支持。 TH58NVG4S0HTAK0是一个单一的3.3V 16Gbit(18253611008位&#xff…

智慧城市低空+AI视频智能监控:构建新时代安全防线

随着科技的飞速发展,智能监控技术已经广泛应用于各个领域,从城市治理到工业生产,从公共安全到环境监测,都发挥着越来越重要的作用。而在低空领域,AI视频智能监控方案的建设更是成为了一个热点话题。 一、低空AI视频智…

设计模式原则——迪米特法则原则

设计模式原则 设计模式示例代码库地址: https://gitee.com/Jasonpupil/designPatterns 迪米特法则原则: 意义在于降低类之间的耦合。由于每个对象尽量减少对于其他对象的了解,因此,很容易使得系统的功能模块功能独立&#xff…

[论文笔记]Mixture-of-Agents Enhances Large Language Model Capabilities

引言 今天带来一篇多智能体的论文笔记,Mixture-of-Agents Enhances Large Language Model Capabilities。 随着LLMs数量的增加,如何利用多个LLMs的集体专业知识是一个令人兴奋的开放方向。为了实现这个目标,作者提出了一种新的方法&#xf…

Erpnext安装

Erpnext安装 环境要求 Ubuntu 23.04 x86_64 Python 3.10.12 pip 23.0.1 node v18.16.0 npm 9.5.1 yarn 1.22.22 MariaDB 10.11.2 Redis 7.0.8 wkhtmltox 0.12.6.1 bench 5.22.6环境安装 Reids 安装 // 安装7.0.8 也可不指定版本 直接执行 sudo apt install redis-server s…

Spring Boot 3 搭建

1、jdk 17 2、spring boot 3.1.7 3、pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xs…

在线客服源码系统全端通用 源码完全开源可以二次开发 带完整的安装代码包以及搭建教程

系统概述 在线客服源码系统采用了先进的技术架构&#xff0c;包括前端界面、后端服务、数据库等部分。前端界面采用了响应式设计&#xff0c;能够自适应不同的设备屏幕尺寸&#xff0c;为用户提供良好的使用体验。后端服务采用了高性能的服务器架构&#xff0c;确保系统的稳定…

QT学习积累——在C++中,for循环中使用``与不使用``的区别和联系

目录 引出使用&与不使用&除法的一个坑 总结自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.进行触发 自定义信号重载带参数的按钮触发信号触发信号拓展 lambda表达式返回值mutable修饰案例 引出 QT学习积累——在C中&#xff0c;for循环中使用&与不使用&的…

PointCloudLib (多线程)快速双边滤波 C++版本

0.实现效果 原始点云 和滤波后的点云对比 1.算法原理 PCL(Point Cloud Library)快速双边滤波是一种高效的点云数据滤波方法,它基于传统双边滤波算法进行了改进,通过引入近似方法加速计算过程。以下是关于PCL快速双边滤波的详细回答: 1. 基本原理 空间滤波:在点云中,相…

Verilog的逻辑系统及数据类型(一):四值逻辑系统

目录 1. Verilog采用的四值逻辑系统2.主要数据类型2.1 net&#xff08;线网&#xff09;2.2 寄存器类 &#xff08;register)2.3 Verilog中net和register声明语法2.3.1 net声明2.3.2 寄存器声明 2.4 选择正确的数据类型2.5 选择数据类型时常犯的错误2.5.1 信号类型确定方法总结…

【嵌入式DIY实例】-Nokia 5110显示BME280传感器数据

Nokia 5110显示BME280传感器数据 文章目录 Nokia 5110显示BME280传感器数据1、硬件准备与接线2、代码实现本文将介绍如何使用 ESP8266 NodeMCU 板(ESP12-E 模块)和 BME280 气压、温度和湿度传感器构建一个简单的本地气象站。 NodeMCU 从 BME280 传感器读取温度、湿度和压力值…