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

相关文章

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Spring Boot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)

《SpringBoot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)》:本文主要介绍SpringBoot拦截器Interceptor与过滤器Filter深度解析... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实

MyBatis分页插件PageHelper深度解析与实践指南

《MyBatis分页插件PageHelper深度解析与实践指南》在数据库操作中,分页查询是最常见的需求之一,传统的分页方式通常有两种内存分页和SQL分页,MyBatis作为优秀的ORM框架,本身并未提... 目录1. 为什么需要分页插件?2. PageHelper简介3. PageHelper集成与配置3.

Maven 插件配置分层架构深度解析

《Maven插件配置分层架构深度解析》:本文主要介绍Maven插件配置分层架构深度解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Maven 插件配置分层架构深度解析引言:当构建逻辑遇上复杂配置第一章 Maven插件配置的三重境界1.1 插件配置的拓扑

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

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

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