【深度学习】【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

相关文章

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Redis 内存淘汰策略深度解析(最新推荐)

《Redis内存淘汰策略深度解析(最新推荐)》本文详细探讨了Redis的内存淘汰策略、实现原理、适用场景及最佳实践,介绍了八种内存淘汰策略,包括noeviction、LRU、LFU、TTL、Rand... 目录一、 内存淘汰策略概述二、内存淘汰策略详解2.1 ​noeviction(不淘汰)​2.2 ​LR

Python与DeepSeek的深度融合实战

《Python与DeepSeek的深度融合实战》Python作为最受欢迎的编程语言之一,以其简洁易读的语法、丰富的库和广泛的应用场景,成为了无数开发者的首选,而DeepSeek,作为人工智能领域的新星... 目录一、python与DeepSeek的结合优势二、模型训练1. 数据准备2. 模型架构与参数设置3

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操