Spatial-Temporal Graph ODE Networks for Traffic Flow Forecasting

news2024/11/28 10:39:14

Spatial-Temporal Graph ODE Networks for Traffic Flow Forecasting

摘要

交通流量的复杂性和长范围时空相关性是难点

经典现存的工作:

1.利用浅图神经网络(shallow graph convolution networks)和 时间提取模块去分别建模空间和时间依赖

2.STGCN,DCRNN通过结合GNN和RNN,分别获得空间表示和时间表示

缺点:
  1. 浅图卷积神经网络不能获取长范围空间相关性(太浅特征学习不全面),仅仅考虑了空间上的连接,并没 有考虑语义连接(时间和空间上的关联)

    2.分别考虑空间,时间——》模型效果不佳

  2. GNN连接两层时效果最好,过深会导致过平滑问题,太浅导致特征学习不全,获取长范围依赖较难。

提出STGODE模型

1.基于张量的ODE模型 --》可以构建更深的网络,有效利用时空特征

2.添加语义邻接矩阵(更全面的获取特征)和时间空洞卷积(TCN 扩大卷积核,增大感受野)–》获取长时间依赖

STGODE组件

使用几个相关组件,解决现存问题

1.构建两种邻接矩阵spatial adjacency matrix (空间邻接矩阵)and semantic adjacency matrix(语义邻接矩阵),可以实现空间特征,语义相似的获取,准确描述时空相关性。

2.残差连接解决过平滑,残差连接的离散层被看作ODE的离散化。

带有残差连接的GNN——》避免过平滑,加深网络深度——》获得更广泛的时空依赖

利用时空张量——》同时考虑了时空交互,模型表现能力更好

使用空洞卷积——》感受野增大——》提取大范围特征

介绍

1.Traffic flow forecasting attempts to predict the future traffic flow given historical traffic conditions and underlying road networks

通过历史数据来预测未来数据

2.the complex and long-range spatial-temporal dependencies in traffic networks.

3.GNN可以高效处理图结构数据,通过聚合邻接点来更新节点表示

4.本文贡献:张量形式的GNN连续表示,加深网路,改善获取长范围时空相关

​ 利用道路节点的空间邻域和语义邻域来综合考虑时空相关性

相关工作

GNN

1.GNN有效的邻接聚合方案

2.解决了非欧几里德图结构数据

缺点:为了获得长时空相关性——》加深网络——》造成过平滑

利用重启分布缓解过平滑为本文动机 (restart distribution)
残差结构可以被看做是离散的常微分方程,现在已经存在通过ODE将残差连接的GCN表达为连续的GCN工作。作者考虑将CGNN(continous graph neural network)应用于交通预测以处理GCN过平滑的问题并同时提取时空依赖

GCN为一种简单的ODE离散化,表示节点表示的连续动态,实现更深的网络。

参数定义

N个节点,A为邻接矩阵,大小为N*N

空间邻接矩阵为 Asp 语义邻接矩阵 Ase

图信号张量X,xit大小为1*F,节点i在t时刻的观测值,F作为一个观测向量的长度

Xt=(X1t,X2t,…XNt)大小为N*F,在t时刻所有点的交通情况

X=(X1,X2,…XT)大小为T*N *F,所有节点在所有时刻的交通量

正则化邻接矩阵
在这里插入图片描述

转换之后,可以进行特征值分解,值在【0,阿尔法】

通过ODESolver实现神经网络参数化

模型

网络构成:两个ODE层(由多个STGODE block组成),一个最大值池化层,一个输出层

STGODE block 由 TCN(时间空洞卷积)+ ODESolver + TCN

TCN由空洞卷积和残差连接组成

ODESolver隐藏状态由当前状态和初始状态

邻接矩阵

在这里插入图片描述

去除一些关系较远的点,简化计算

语义相关矩阵

DTW算法——》计算两个时间序列的相似性(相较于逐点相似性,对形状相似性更加敏感)

DTW(X,Y)=D(m,n)为X和Y的最终距离

在这里插入图片描述

在这里插入图片描述

基于张量的时空图ODE

在这里插入图片描述

A 正则化矩阵

U时间变换矩阵

W特征转变矩阵

H0 GNN的初始输入

在这里插入图片描述

离散的格式如上图所示,其参数过多计算量过大。

ODESolver 可以实现时空融合,扩展网络深度,简化计算。

时间卷积模块

在这里插入图片描述

利用了空洞卷积,对每一个特征进行提取,然后再利用残差网络增强卷积性能

STGODE层

TCN+STGODESolver+TCN

优势:对时空信息敏感,卷积结构速度更快,并行性更好(空间邻接,语义邻接并行计算)

​ 三明治法堆叠,扩展了获取复杂时空关系的能力

STGODE模块+最大值池化+两个MLP+Huber损失(对异常值的敏感性低于平方误差损失)

贡献:

我们利用基于张量的ODE框架来提取长距离时空相关性;

引入语义邻居来建立局部和全面的空间关系;

具有残差连接的时间扩张卷积网络有助于捕获长期时间相关性

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

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

相关文章

【Python3安装部署的保姆级教程】

如何在Windows 10上安装Python Python是一种越来越受欢迎的编程语言,无论是对于初学者还是有经验的开发者。Python灵活多用,擅长脚本、自动化、数据分析、机器学习和后端开发。在本教程中,你将学习如何使用Windows的Python安装程序在Windows 10上安装Python。 第一步 — 下…

Python3-错误和异常

Python3 错误和异常 作为 Python 初学者,在刚学习 Python 编程时,经常会看到一些报错信息,在前面我们没有提及,这章节我们会专门介绍。 Python 有两种错误很容易辨认:语法错误和异常。 Python assert(断…

进程间通信IPC

进程间通信IPC (InterProcess Communication) 一、进程间通信的概念 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据…

MySQL事务详解与隔离级别的实现

文章目录一、四个特性二、存在问题三、隔离级别四、实现原理0、SQL语句执行流程1)buffer pool2)执行流程1、日志1)binlog2)redolog3)对比4)undolog2、MVCC原理1)隐式字段2)undo log版…

气泡式水位计的安装方法详解

气泡水位计的安装实际上就是气管的安装,气管的安装是否正确将直接影响到仪器测量数据的结果,气泡水位计它由活塞泵产生的压缩空气流经测量管和气泡室,进入被测的水体中,测量管中的静压力与气泡室上的水位高度成正比。那么接下来就…

蓝桥杯集训·每日一题Week1

前缀和(Monday) AcWing 3956. 截断数组(每日一题) 思路: 首先可以预处理出前缀和。判断数组长度如果小于 333 或者前 nnn 项不是 333 的倍数,则可以直接输出 000。 否则就枚举所有 s[i]s[n]3s[i] \cfrac…

kali双网卡

先单独开启一个网卡,配置/etc/network/interfaces 修改为如下配置 This file describes the network interfaces available on your system and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* The loopb…

JVM系列——Java与线程,介绍线程原理和操作系统的关系

并发不一定要依赖多线程(如PHP中很常见的多进程并发)。 但是在Java里面谈论并发,基本上都与线程脱不开关系。因此我们讲一下从Java线程在虚拟机中的实现。 线程的实现 线程是比进程更轻量级的调度执行单位。 线程的引入,可以把一个进程的资源分配和执行调…

【深度强化学习】(3) Policy Gradients 模型解析,附Pytorch完整代码

大家好,今天和各位分享一下基于策略的深度强化学习方法,策略梯度法是对策略进行建模,然后通过梯度上升更新策略网络的参数。我们使用了 OpenAI 的 gym 库,基于策略梯度法完成了一个小游戏。完整代码可以从我的 GitHub 中获得&…

原型模式(设计模式详解)

原型模式 描述 原型模式(Prototype Pattern)是一种创建型设计模式,它允许通过复制现有对象来创建新对象,而无需从头开始编写代码。 在原型模式中,一个原型对象作为模板,新的对象通过克隆这个原型对象而创…

MySQL OCP888题解048-letter N in slow query log(慢查询日志里的字母N)

文章目录1、原题1.1、英文原题1.2、中文翻译1.3、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3.1、知识点1:mysqldumpslow - 总结缓慢的查询日志文件4、实验4.1、实验14.1.1、实验目的4.1.2、实验前准备4.1.3、实验步骤4.1.4、实验结论5、总结1、原题 1.1…

dva01-初识

背景 React 本身只是一个 DOM 的抽象层,使用组件构建虚拟 DOM。如果开发大应用,还需要解决一个问题。 通信:React 只提供了一种传参手段,后续数据变化非常麻烦,无法适用于大应用。数据流:每次要更新数据&…

ACE C++网络通信框架深入解析ACE_Message_Block消息类

前言 我所见到最好消息包的接口设计莫过于ACE_Message_Block了。 为什么这样说呢? 对于它的API说明,我最初仅想在它的基础上提供注释说明,而不想多言其它,因为无需多言其他。 不过,后来还是补充两个图,以…

后台搭建常用方式及常用的插件

利用脚手架创建项目 create-vite 是一个快速生成主流框架基础模板的工具,安装后启动预设创建项目 使用NPM: npm create vitelatest 使用Yarn: yarn create vite 使用PNPM: pnpm create vite 开始 | Vite 官方中文文档 create-vue,是 Vue 官方的项目脚…

Flume工作原理 安装配置

目录 简介 主要功能 日志收集 数据处理 工作原理 Flume架构 安装 拷贝压缩包 解压 改名 修改配置文件 安装nc(netcat) 安装telnet协议 应用 应用一:实时监听 新建netcat-logger.conf文件 开启端口监听方式一 访问主机 开启…

flume安装与配置

目录 flume描述 flume用途 flume基本组件 配置flume 搭建环境: 解压flume安装包将其放入到opt/soft目录 在/opt/soft目录下将apache-flume-1.9.0-bin.tar.gz 改名为flume190 到/opt/soft/flume190/conf目录中将临时配置文件flume-env.sh.template拷贝为配置文…

香港酒店模拟分析项目报告--使用tableau、python、matlab

转载请标记本文出处 软件:tableau、pycharm、关系型数据库:MySQL 数据大量分析考虑电脑性能的情况。 文章目录前言一、爬虫是什么?二、使用tableau数据可视化1.引入数据1.1 制作直方图-各地区酒店数量条形图1.2 各地区酒店均价1.3 价格等级堆…

Idea+maven+spring-cloud项目搭建系列--11-3 dubbo限流和熔断

前言: dubbo 作为rpc 通信组件,在使用过程中,如何避免服务提供端被多个消费端撑爆,消费端如何避免因为服务端的故障造成结果响应超时。 1 服务提供端的限流措施: 1.1 使用 :dubbo.protocol.accepts 参数限制服务端同…

面试热点题:回溯算法之组合 组合与组合总和 III

什么是回溯算法? 回溯算法也可以叫回溯搜索算法,回溯是递归的"副产品",回溯的本质是穷举,然后选出我们需要的数据,回溯本身不是特别高效的算法,但我们可以通过"剪枝"来优化它。 理解回溯算法 回溯…

电脑游戏怎么录屏?其实很简单,只需要简单3步

电脑游戏一直是游戏爱好者最热衷的游戏之一。但是,有时候我们想分享我们在游戏中的精彩时刻,或者记录我们的游戏过程以便后续观看和学习。在这种情况下,录屏就成了必不可少的工具。但是,许多人可能不知道电脑游戏怎么录屏。在本文…