【深度学习】【STWave】时空图预测,车流量预测,Efficient Spectral Graph Attention Network

本文主要是介绍【深度学习】【STWave】时空图预测,车流量预测,Efficient Spectral Graph Attention Network,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Spatio-Temporal meets Wavelet: Disentangled Traffic Flow Forecasting via Efficient Spectral Graph Attention Network

代码:https://github.com/LMissher/STWave
论文:https://arxiv.org/abs/2112.02740

帮助:
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2

模型结构:

在这里插入图片描述

一、数据

在这里插入图片描述

二、环境

conda create -n MAE python=3.9 -y
conda activate MAE
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia -ypip install -r requirements.txt

requirements.txt:

easy_torch==1.2.12
easydict==1.10
numpy==1.21.5
positional_encodings==6.0.1
scikit_learn==1.0.2
scipy==1.13.1
setproctitle==1.3.2
sympy==1.10.1
timm==0.6.11
torch==1.13.1
torch_summary==1.4.5
tvm==1.0.0

pip install fastdtw PyWavelets  -i https://pypi.tuna.tsinghua.edu.cn/simple

三、训练


mkdir -p ./cpt/PeMSD8
mkdir -p ./log/PeMSD8
python main.py --config config/PeMSD8.conf

在这里插入图片描述

在这里插入图片描述

四、论文

摘要

交通流量预测对于公共安全和资源优化至关重要,但面临三大挑战:1) 当前工作大多在一个模型中利用复杂的时序模式(如短期雷阵雨和长期日常趋势),无法在不同模式下准确捕捉时空依赖性;2) 图位置编码的探索不足限制了全图注意力网络中空间信息的提取;3) 全图注意力的二次复杂度引入了沉重的计算需求。为实现有效的交通流量预测,我们提出了一种高效的谱图注意力网络,该网络包含解耦的交通序列。

具体而言,利用离散小波变换从交通序列中获得低频和高频成分,这些成分能反映长短期模式的时序特征。精心设计的双通道时空编码器准确捕捉了不同尺度时序模式下的时空依赖性。此外,我们还提出了一种融合注意力来聚合双尺度时序模式的潜在表示,并实施多监督以预测未来低频成分序列,这与交通流量预测并行进行。在空间维度上,为了提升全GAT在交通流量预测中的性能,我们提出了一个高效谱图注意力网络,它是自注意力的一种变体,具有O(NlogN)的复杂度。新颖的基于小波的图位置编码和查询抽样策略被引入到我们的注意力机制中,用以指导信息传递并稀疏化自注意力查询中的节点。

本论文的核心技术贡献是精心设计了一个名为STWave的模型,它同时在时空维度上利用图和离散小波。在四个真实世界数据集上的实验结果显示,STWave在交通流量预测方面显著优于当前最优方法。

Introduction

根据观测到的交通状况和底层道路网络,交通流量预测旨在预测未来一段时间的交通流量,这对日常出行和交通管理都有很大的好处。尽管其重要性显而易见,交通预测却极具挑战性,因为它涉及复杂的时空依赖性。近年来,数据驱动算法在这一领域受到了广泛关注。其中,循环神经网络(RNN)、时间卷积网络(TCN)和基于Transformer的方法被广泛采用来单独捕捉每条道路的时间依赖性【Zhou等,2021;Xu等,2021;Sutskever等,2014;Lv等,2018;Elmi,2020】。尽管上述方法通过单变量模型进行交通流量预测,它们在单个模型中利用了纠缠的时间模式(例如,使用序列模型来提取车祸和流行病中流量增加和减少的相反影响),但未能准确提取不同模式下的时空信息。

最近,图卷积网络(GCNs)的采用解决了交通预测中捕捉空间相关性的问题。DCRNN【Li等,2018】和STGCN【Yu等,2018】使用GCN来建模相邻道路的相互作用。后续工作如Graph WaveNet、AGCRN、STFGNN和STGODE【Wu等,2019;Bai等,2020;Li和Zhu,2021;Fang等,2021】提出了多种GCN变体,通过扩展空间感受野来提高性能。然而,基于GCN的方法忽略了道路网络图中边的权重随时间不断变化的事实。ST-CGA【Zhang等,2020】和LSGCN【Huang等,2020】使用图注意力网络(GAT)及其变体来学习每个时间步相邻道路之间的权重。ST-GRAT【Park等,2020】和GMAN【Zheng等,2020】进一步利用完全GAT进行交通速度预测,取消了原始GAT中的输入图以减轻硬归纳偏差的影响并捕捉全局空间依赖性。尽管完全基于GAT的工作在其他交通预测任务中表现出了良好的性能,但它们大多存在两个局限性:1)忽略了完全注意力的学习效率,即著名的自注意力的时间和空间复杂度为O(N²),这引入了巨大的计算需求;2)原始GAT的中心问题在于输入图将空间感受野限制在邻居中,而完全GAT缺乏结构信息来有效指导信息传递。

为了解决上述限制,我们提出了一种新的高效光谱图注意力网络,用于具有解耦交通序列的交通流量预测。在时间维度上,为了单独建模复杂的时间模式,我们首先利用离散小波变换从交通序列中获得低频和高频成分,其中低频和高频成分可以反映长期和短期模式的时间特征。然后我们精心设计了一个双通道时空编码器来表示不同的双尺度时间模式。此外,我们提出了一种融合注意力来聚合双尺度时间模式的潜在表示,并执行多重监督以预测一系列未来的低频成分,这与交通流量预测并行。在空间维度上,为了提高完全GAT在交通流量预测中的性能,我们提出了一种高效的光谱图注意力网络,这是自注意力的一种变体,复杂度仅为O(NlogN)。我们在注意力机制中引入了新颖的小波基图位置编码和查询采样策略,以指导信息传递并稀疏自注意力查询中的节点。本文的关键技术贡献是一个精心设计的模型,名为STWave,该模型同时利用图和离散小波在时空维度上的特性。四个真实数据集上的实验结果表明,STWave在交通流量预测方面显著优于现有的最先进方法。

五、效果

PeMSD8 交通流预测数据集,介绍。这里还有中文论文介绍这个数据集:https://image.hanspub.org/Html/20-1542336_46800.htm。

在这里插入图片描述

在这里插入图片描述

这篇关于【深度学习】【STWave】时空图预测,车流量预测,Efficient Spectral Graph Attention Network的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1022155

相关文章

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security