Traffic Flow Prediction via Spatial Temporal Graph NeuralNetwork

news2024/11/22 19:54:26

 

KEYWORDS
Traffic Prediction, Graph Neural Networks, Spatial Temporal Model, Dynamic, Recurrent Neural Network, Transformer
This paper is published under the Creative Commons Attribution 4.0 International (CC-BY 4.0) license

ABSTRACT

   交通流分析、预测和管理是新时代智慧城市建设的关键。借助深度神经网络和大交通数据,我们可以更好地理解复杂交通网络中隐藏的潜在模式。一条道路上的交通流动态不仅依赖于时间维度上的顺序模式,还依赖于空间维度上的其他道路。虽然目前已有预测未来交通流量的工作,但大多数工作在空间和时间依赖性建模方面存在一定的局限性。在本文中,我们提出了一种新的用于交通流预测的时空图神经网络,它可以全面地捕捉时空模式。特别是,该框架提供了一种可学习的位置注意机制,以有效地聚集来自相邻道路的信息。同时,它提供了一个顺序组件来建模交通流动态,可以利用局部和全局的时间依赖性。在各种真实交通数据集上的实验结果证明了该框架的有效性。

本文创新点:

  1. 提出了一种新的具有位置注意机制的图神经网络层,以更好地聚合邻近道路的交通流信息;
  2. 结合了RNN和Transformer,以捕获局部和全局的时间依赖性;
  3. 提出了一个新的时空GNN框架STGNN,该框架专门用于建模具有复杂拓扑和时间依赖性的系列数据

 

问题描述

   给定交通网络g=(V, E)和历史交通信息y=(Y1,Y2,..,Yn),我们的目的是建立一个模型f,可以将一个长度为T的新序列X=(X1,…,XT)作为输入,预测未来T’个时间步的交通信息Xpred=(XT+1,…,XT+T’)。

  每一个交通流网络可以被定义为G = (V, E),其中V = {v1, . . . ,vN } ,是包含N个交通传感器节点(一段路经常会有多个传感器节点),然后E则代表连接这些节点的边。adjacency matrix定义为A R N ×N,如果不联通的话就是A[i,j] = 0 。历史交通流信息就可以被表示为:Y = (Y1, . . . , Yτ ) 。交通流预测问题就可以定义如下

模型框架:

主要包含三块:

  1. S-GNN层(空间)
    通过交通网络来捕捉道路之间的空间关系,注意,S-GNN层被用来建模节点之间的空间关系,它被应用于GRU单元的输入和隐藏表示的操作(用在俩地方)。
  2. GRU层(时间-局部)
    按顺序捕获时间关系(或局部时间依赖)
  3. transformer层(时间-全局)
    直接捕捉序列中的长期时间依赖(或全局时间依赖),GRU层和transformer层分别用于捕获每个节点的时间依赖关系,从不同的角度罢了。

本文所提出的时空图神经网络框架如图所示。它主要由三个部分组成:1)空间图神经网络(S-GNN)层,旨在捕获通过交通网络的道路之间的空间关系;2)GRU层,该GRU层是用来按顺序捕获时间关系(或局部时间相关性);3)Transformer层,其目的是直接捕获序列中的长期时间依赖性(或全局时间依性)。其中,S-GNN层用于建模节点之间的空间关系,并将其应用于GRU单元的输入和隐藏表示。需要注意的是GRU层和Transformer层都用于分别捕获每个节点的时间依赖性,但是分别是从不同角度捕获时间依赖性。

算法如下:

主要看一下S-GNN,作者的主要灵感来自于对GaAN的改进

1.S-GNN

交通网络G对道路之间的关系进行编码。交通网络中连通的道路更有可能具有相似的属性。具体到交通流预测问题中,如果两条道路相距较近,则道路上的交通状况更有可能相互影响。于是作者用了下边这个公式代表S-GNN操作。里边的 σ 是非线性操作,作者用了ReLU。 W就是要学的参数。

简化一下变成:

本文中使用了一种空间图卷积神经网络的方法去捕捉路网空间上的相关性。其中在图神经网络中引入了注意力机制以学习邻居节点对于中心节点的贡献度,但是稍微不同于图注意力神经网络GAT,在这里的注意力计算的所需参数更少。注意力计算的公式如下所示:

GaAN试图利用注意力机制对道路之间的复杂关系进行建模。然而,在计算注意力分数时,GaAN只利用了速度信息。理想情况下,我们可以使用上述因素来计算注意力得分。然而,这些因素并不总是可用的。此外,可能还有一些我们没有意识到的其他因素影响节点之间的关系。于是作者提出了一种位置表示来捕捉每个节点的这些因素、对于每一个节点 vi 我们试着学习一个潜在位置表示 pi  ,于是就能得到了任意俩路节点的相似性公式:

其中代表一种激活函数,pi和pj代表不同节点i和j的潜空间特征。Score( )是一种评分函数,在本文中没有像GAT中使用参数化的方法计算评分函数,而是直接用pi和pj的点积区去计算。在这里仍然采用了与GAT中相同的mask机制用计算得到的权重值替换原邻接矩阵中的非零元素。

作者还简化了W,采用掩膜办法降低计算量:

然后就用GCN操作,进行迭代

说白了这块就是改了一下GaNN里边相似性计算的部分,还增加了一点减少计算的小技巧。

所以整个文章主要就是采用了多种操作,把时空结合来做,这里边GRU和Transformer的结合可以借鉴。

2)GRU层

GRU的作用是捕捉每个空间节点在时间维度上的短时依赖,在这里每个GRU单元的输入Xt和隐藏层输出Ht-1都要经过S-GNN的计算:

本文中总的GRU公式与普通的GRU公式区别不大,主要需要注意的地方是输入和隐藏层都要经由S-GNN以捕捉空间的关系。

(3)Transformer层

Transformer是一种适合学习长序列的神经网络模型,弥补了RNN系列模型在误差积累,梯度爆炸,长时记忆等方面的短板,其作用是捕捉每个空间节点在时间维度上的长时依赖。这里的Transformer层与一般的Transformer基本结构别无二致,分别由位置编码机制,多头注意力层和前馈输出层组成。Transformer层的输入为GRU层中每个循环单元的输出。

Transformer中最核心的还是自注意力机制。本文中的单个自注意力计算与原始的自注意力计算公式一致,分别为查询向量Q、键向量K和值向量V组成:
 

为了提升训练的稳定性,可采用多头形式的自注意力:

本文中Transformer总体结构如下图所示:

最后在Transformer层的末端接上一个Prediction Layer, 一个普通的前馈神经网络,直接输出未来T’个时间步的交通信息。论文中用MAE作为整体模型训练的损失函数。

实验结果

  论文中使用了两个数据集,分别是METR-LA和PEMS-BAY两个道路速度传感器网络数据。分别对于时间片切分为15分钟,30分钟和60分钟的情况下做了实验,并设计移除GRU的变体STGCN w/o GRU和移除Transformer的变体STGCN w/o Transformer, 证明了同时捕捉短时时间依赖和长时时间依赖的有效性。总体试验结果表明该模型优于其他方法。
 

 

 

创新点

本文的最大亮点是引入了Transformer模型应用于交通预测领域并首次提出了在交通预测中结合时间维度的局部特征和全局特征的模型。但是运用RNN于较长序列仍然会带来误差积累,并且RNN模型的运算效率并不高,可以考虑运用一维卷积模型对于短时依赖进行捕捉。

Attention
 

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

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

相关文章

呕心沥血总结的Python自动化测试面试题

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢软件测试面试题分享: 1000道软件测试面试题及答案📢软件测试实战项目分享: 纯接口项目-完…

JavaScrip-初识JavaScript-知识点

初识JavaScript 编程基础编程计算机语言标记语言编译器&解释器 计算机基础计算机组成数据存储数据存储单位程序运行 认识JavaScript什么是JavaScriptJavaScript作用HTML&CSS&JavaScript的关系浏览器执行JavaScript过程JavaScript的组成JavaScript初体验 JavaScript…

八大在线项目实习 2024年第一期即将开班

八大项目: 某实习网站招聘信息采集与分析(Python数据采集与分析) 股票价格形态聚类与收益分析(Python金融分析) 某平台网络入侵用户自动识别(Python机器学习) 某平台广东省区采购数据分析&#…

企业微信开发:自建应用:接收消息(企业内部服务器)/回调配置

概述 在企业微信的自建应用中,用户触发了某些行为(发送消息、进行菜单操作或者外部联系人变更等),要发送相关信息给企业内部服务器。 备注:接收消息 和 回调,在本文中指代相同的行为,即企业微信…

Jmeter接口自动化测试 :Jmeter变量的使用

在使用jmeter进行接口测试时,我们难免会遇到需要从上下文中获取测试数据的情况,这个时候就需要引入变量了。 定义变量 添加->配置元件->用户自定义的变量 添加->配置元件->CSV 数据文件设置 变量的调用方式:${变量名} 变量的作…

设计模式——最全梳理,最好理解

新年献礼! 设计模式呕心梳理 创建型模式 单例模式(Singleton Pattern)https://blog.csdn.net/qq_34869143/article/details/134874044 整理中... 结构型模式 代理模式(Proxy Pattern)https://blog.csdn.net/qq_34…

期货日数据维护与使用_日数据维护_界面代码

目录 写在前面 界面图示 ​编辑 代码 执行代码 写在前面 本文默认已经创建了项目,如果不知道如何创建一个空项目的,请参看以下两篇博文 PyQt5将项目搬到一个新的虚拟环境中 https://blog.csdn.net/m0_37967652/article/details/122625280 python_P…

软件测试面试总结分享

第一轮 自我介绍。根据自己的情况扩展。你是怎么理解软件测试的?我觉得软件测试是很重要的岗位,如果一个系统开发完后不通过测试去产品质量把关,产品不能正常运行可能造成的后果,损失钱财、损失时间、损失客户等等,所…

2024苹果Mac电脑免费文件数据恢复软件EasyRecovery

EasyRecovery是一个操作安全、价格便宜、用户自主操作的非破坏性的只读应用程序,它不会往源驱上写任何东西,也不会对源驱做任何改变!EasyRecovery是一个操作安全、价格便宜、用户自主操作的非破坏性的只读应用程序,它不会往源驱上…

【SpringBoot实战专题】「开发实战系列」全方位攻克你的技术盲区之Spring定义Jackson转换Null的方法和实现案例

Spring自动定义Jackson转换Null得方法 背景MessageConverter 使用Jackson原生方式处理空字段(次重点方案)ObjectMapper的配置选项通过使用注解的方式 MappingJackson2HttpMessageConverter(重点方案)创建MappingJackson2HttpMessa…

深度学习在工地安全帽识别技术的应用与展望

当我们谈论“工地安全帽识别”时,实际上我们在探讨的是如何利用深度学习图像识别技术来提高建筑工地的安全性。这一技术的应用可以显著提高工地安全管理的效率和有效性,是现代建筑工程管理中不可或缺的一部分。以测评的北京富维图像的工地安全帽识别为例…

【管理篇 / 登录】❀ 06. macOS下使用USB配置线登录 ❀ FortiGate 防火墙

【简介】飞塔防火墙上都会配有CONSOLE接口,包装里都会配置一根USB配置线,通过这个接口和这根线,我们可以用命令的方式登录飞塔防火墙。随着苹果电脑的普及,我们来学习如何在macOS中使用USB配置线登录飞塔防火墙。 早期飞塔防火墙包…

【数据分享】2023年我国省市县三级的商务住宅数量(4类设施/Excel/Shp格式)

产业园区、住宅区、楼宇等商务住宅的数量是一个城市基础设施完善程度的重要体现,一个城市商务住宅的种类越丰富,数量越多,通常能表示这个城市的城市化水平越高! 本次我们为大家带来的是我国各省份、各地级市、各区县三个层级的商…

静态网页设计——网上书店(HTML+CSS+JavaScript)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 使用技术:HTMLCSSJS 主要内容:网上式的书店。是一种高质量,更快捷,更方便的购书方式。网上书店不仅可用于图书的在线销售…

使用 Maven 的 dependencyManagement 管理项目依赖项

使用 Maven 的 dependencyManagement 管理项目依赖项 介绍 在开发 Java 项目时&#xff0c;管理和协调依赖项的版本号是一项重要而繁琐的任务。 而 Maven 提供了 <dependencyManagement> 元素&#xff0c;用于定义项目中所有依赖项的版本。它允许您指定项目中每个依赖…

thinkadmin列表根据值判断男女显示和form选择select

{field: gs, title: 公司, align: left, minWidth: 140,templet

安全加固之weblogic屏蔽T3协议

一、前言 开放weblogic控制台的7001端口&#xff0c;默认会开启T3协议服务&#xff0c;T3协议则会触发的Weblogic Server WLS Core Components中存在反序列化漏洞&#xff0c;攻击者可以发送构造的恶意T3协议数据&#xff0c;获取目标服务器权限。 本文介绍通过控制T3协议的访问…

淘宝京东1688商品详情API接口,搜索商品列表接口

前言 在实际工作中&#xff0c;我们需要经常跟第三方平台打交道&#xff0c;可能会对接第三方平台API接口&#xff0c;或者提供API接口给第三方平台调用。 那么问题来了&#xff0c;如果设计一个优雅的API接口&#xff0c;能够满足&#xff1a;安全性、可重复调用、稳定性、好…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机掉线自动重连(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机掉线自动重连&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机的掉线自动重连的技术背景通过PnP事件函数检查Baumer工业相机是否掉线在NEOAPI SDK里实现相机掉线重连方法&#xff1a;工业相机掉线重连测试演示图…

x-cmd-mod | zuz - 压缩或解压文件

目录 简介首次用户子命令x zuz zx zuz uzx zuz uzrx zuz ls 相关链接 简介 zuz 为 x-cmd 中的必用模块之一&#xff0c;提供压缩与解压文件的功能。 x z 就是调用 x zuz z&#xff0c;可将目标文件压缩根据后缀名成指定格式&#xff0c;x uz 则可以解压任何格式的压缩包 首次…