博客 基于Transformer的交通预测模型部分汇总【附源代码】

基于Transformer的交通预测模型部分汇总【附源代码】

   数栈君   发表于 2023-05-26 16:54  609  0

1. STTN(2020)
论文:[2001.02908] Spatial-Temporal Transformer Networks for Traffic Flow Forecasting

代码:GitHub - Lin956/STTNS: Spatial-Temporal Transformer Networks for Traffic Flow Forecasting

作者:Xu M, Dai W, Liu C, et al.

针对问题:

动态空间相关性:空间相关性随时间变化(实时的交通状况和交通流方向) <—— 设计了一种GNN变体,spatial transformer建模时变有向空间相关性;

长期时间相关性:长期时间相关性(短期<30min,长期>=30min)考虑得少,且过去自回归方法存在误差累积问题<—— 设计了 temporal transformer实现长期多步预测。

模型设计:

所提出的STTN(Spatial-Temporal Transformer Network)由堆叠的时空块和预测层组成。每个时空块由一个空间transformer和一个时间transformer组成,共同提取上下文动态依赖的时空特征。时空块可以进一步堆叠,形成深层时空特征的深层模型。然后,预测层利用两个1 × 1卷积层聚合这些时空特征进行交通预测。

在空间transformer中包含固定图卷积层(Fixed Graph,使用图卷积捕获平稳的空间依赖关系)、动态图卷积层(Dynamical Graph,使用多头自注意力捕获动态双向的空间依赖关系,节点特征用在前馈神经网络中)以及门控机制(融合上述固定与动态的空间特征)。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/2393ac7878324d8b708e3970047e3ee9..jpg

2. Traffic Transformer(T-ITS 2021)
论文:[2104.05163] Learning dynamic and hierarchical traffic spatiotemporal features with Transformer

代码:暂未找到

作者:Yan H, Ma X, Pu Z.

针对问题:

GNN的局限性:

难以获得完美的邻接矩阵:不能简单基于距离<——设计了全局编码器与全局-局部编码器分别提取全局空间特征和局部空间特征;
大部分邻接矩阵是固定的:交通流量会根据交通状况改变<——注意力机制实现动态捕获;
没有深度和等级:使用多个邻接矩阵的方法,大多都采用直接相加或拼接,没法学习不同层次的交通时空特征<——多个全局编码器和全局局部解码器块堆叠实现分层提取特征。
模型设计:

Traffic Transformer由两个主要部分组成。一个叫全局编码器,另一个叫全局-局部解码器。几个全局编码器和全局-局部解码器块堆叠起来,形成一个层次结构特征的深层模型。全局编码器和全局-局部解码器分别提取全局空间特征和局部空间特征。全局-局部解码器还融合了全局空间特征和局部空间特征。此外,时间嵌入块提取模型的时间特征。然后,位置编码和嵌入块帮助模型理解节点的绝对位置和相对位置。最后,一个Linear层聚合学习到的特征进行最终预测。

全局与全局-局部的区分是使用K-hop邻接矩阵定义的mask忽略非局部节点来提取局部空间特征。这种多头注意是全局和局部空间特征的融合,其表现优于通过注意机制简单地添加或串联。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/db60f3b0009236d9fb57210c72a34f1f..jpg

3. ASTGNN(TKDE 2021)
论文:Learning Dynamics and Heterogeneity of Spatial-Temporal Graph Data for Traffic Forecasting | IEEE Journals & Magazine | IEEE Xplore

代码:GitHub - guoshnBJTU/ASTGNN

作者:Guo S, Lin Y, Wan H, et al.

针对问题:

动态空间相关性<——时间趋势感知多头自注意力模块(卷积自注意力机制变体)与动态空间图卷积;
交通流数据的周期性<——输入张量拼接全局周期张量和局部周期张量;
空间异质性:静态空间特征不随时间推进而演变,但随空间的变化而变化(比如道路类型、POI之类的)<——在position embedding中附加静态特征信息。
模型设计:

该模型思想是直接在时间和空间维度用自注意力建模与相关的复杂动态性。整个架构跟经典的transformer是一样的。主要有三点不同:

1)position embedding包含时空两个维度

时间的与原Transformer的一致,空间的是首先通过无监督图嵌入技术学习节点的表示,然后将学习到的表示作为节点嵌入向量的初始化,再根据监督信号进行微调,最后应用GCN层进行拉普拉斯平滑,得到最终的空间位置嵌入矩阵。

2)多头注意力机制模块他重构成了自己的时间趋势感知多头自我注意力

使用1D卷积替代原本多头自注意力Q、K的线性投影。由于卷积运算通过将局部上下文作为输入来计算表示,因此模型可以了解隐藏在交通流数据中的局部变化趋势。

3)Feed-forward模块被替换成了动态空间图卷积

其思想是利用自注意机制动态计算节点间的空间相关性强度,即把静态邻接矩阵与前面注意力模块的输出空间相关性矩阵作点积,再GCN。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/346458cd70d2b770f7baa89b419f5385..jpg

4. MGT(Neurocomputing 2022)
论文: Meta Graph Transformer: A Novel Framework for Spatial–Temporal Traffic Prediction

代码: GitHub - lonicera-yx/MGT

作者:Ye X, Fang S, Sun F, et al.

针对问题:

时空异质性:大多数基于注意力的方法有一个缺陷,即参数在所有位置和时间间隔中是共享的,因此节点之间的相关性仅取决于它们各自的特征,但不同节点不同时间交通相关性是不同的(STSGCN、AGCRN、GMAN、ASTGNN都有针对设计)<——将元学习融入多头注意力中以捕获时空异质性;
考虑各种类型的空间相关性:不同图解释节点之间的不同关系<——将多图(简单连通图、功能相似度图、起点-目的地OD图)用于空间特征学习,稀疏空间自注意力。
模型设计:

MGT采用编码器-解码器架构。编码器和解码器都使用跳过连接堆叠多个子层。利用Temporal Self-Attention (TSA),Spatial Self-Attention (SSA)和 Temporal Encoder-Decoder Attention (TEDA)三种注意层来学习时空相关性。所有注意层都使用Spatial–Temporal Embeddings (STEs)来执行Spatial–Temporal Heterogeneity-Aware (STHA) attention操作。 Transition Matrices (TMs)被SSA用来执行稀疏空间注意。采用自回归方法逐步预测未来交通状态。

TSA:为每个head创建一个带有隐藏层的多层感知器,取消多头自注意力共享参数机制;

SSA:通过element-wise将转移矩阵中的动态注意系数和静态值联合确定相邻节点的权值;

TEDA:该模块目的是自适应地参与沿时间维度的Encoder特征。Q来自Decoder,而K和V来自Encoder。随后K、V执行STS-guide的时间注意操作。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/81bf84851dc29a1fc44756967146025b..jpg

5. ASTTN(2022)
论文: [2207.05064] Adaptive Graph Spatial-Temporal Transformer Network for Traffic Flow Forecasting

代码:GitHub - yokifly/ASTTN_pytorch

作者:Feng A, Tassiulas L.

针对问题:

分别处理空间维度和时间维度数据的方法对直接建模跨时空效应可能是无效的:车祸会在会在一定时间后影响到周围路段<——使用局部时空图进行时空建模,并将关注范围限制为1跳空间邻居;
空间建模不准确<——使用自适应图来探索隐藏的相关性;
动态建模仍是挑战<——使用自注意力机制来建模图中的动态时空相关性。
模型设计:

它由输入层、时空嵌入层、具有残余连接的堆叠的ST注意块和输出层组成。模型的输入包括特征矩阵和底层图形结构. 每个ST注意块的输入和输出具有相同的尺寸以便于残差连接。嵌入层利用图结构对结构信息进行编码,并利用ST注意块计算局部MSA(multi-head self-attention)。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/d9950852b2c8253bbf9cd26add6bae23..jpg

Local Spatial-Temporal Attention

如下图所示,在构建时空图Transformer时,可以考虑不同的注意力机制。带有颜色的项表示对应的两个节点(由行和列索引确定)将相互关注,不同的颜色对应于不同类型的attentions。本文所使用的的是Local st-attention与Adaptive st-attention。

Local st-attention

利用空间邻接性,通过将st-attention保持在空间1跳邻域内来降低注意力的复杂性,具体方法即Q、K点积缩放后得到的空间相关性矩阵再乘一个掩码矩阵。

Adaptive st-attention

使用两个可学习随机初始化的节点嵌入来计算自适应可学习邻接矩阵,随后对其应用局部注意力。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/fe3e949e7ab976d9feb388dbdf47543e..jpg





6. PDFormer(AAAI 2023)
论文:[2301.07945] PDFormer: Propagation Delay-Aware Dynamic Long-Range Transformer for Traffic Flow Prediction

代码:GitHub - BUAABIGSCity/PDFormer: [AAAI2023] A PyTorch implementation of PDFormer: Propagation Delay-aware Dynamic Long-range Transformer for Traffic Flow Prediction.

作者:Jiang J, Han C, Zhao W X, et al.

针对问题:

动态空间建模<——使用多头自注意力机制;
长距离空间依赖关系:两个距离较远的位置,可能反映了相似的交通模式<——通过不同的图掩蔽方法对局部地理邻域和全局语义邻域进行建模,使注意力更有侧重点;
交通流存在时间延迟:当一个地点发生交通事故时,需要几分钟才能影响到邻近地点的交通状况(与ASTTN的第一个问题差不多)<——设计了交通延迟感知特征转换模块,使用K-shape聚类的方式附加交通模式。
模型设计:

PDFormer模型由数据嵌入层、堆叠的 L个时空编码层和输出层组成。时空编码层包括三个核心组件:语义空间自注意力用来捕获距离远但功能相似的节点的空间相关性、带有延迟感知特征转换模块的地理空间自注意力模块用来建模距离近的节点的空间相关性并且考虑空间信息的传播延迟、时间自注意力模块用来捕捉动态和长时间模式。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/25f0c9a7b09798b9efbb60aeaa574709..jpg

语义空间自注意力

与ASTTN 的Local st-attention类似,都是在得出空间相关性矩阵后乘一个掩码矩阵,对于语义空间自注意力,掩码矩阵是使用动态时间规整(DTW) 算法计算节点之间历史交通流的相似度,每个节点选择相似度最高的K个节点作为其语义邻居,权值为1,否则为0。

地理空间自注意力模块

地理空间自注意力同样乘一个掩码矩阵,不同的是只有当两个节点之间的距离小于阈值λ时,权值为1,否则为0。

延迟感知特征转换模块

延迟感知特征转换模块的思想是使用K-shape从历史交通数据中识别出一组具有代表性的短期交通模式,然后比较每个节点的历史序列与提取的模式集,将相似模式的信息融合到每个节点的历史序列表示中。

考虑到交通流的延迟传播在远处影响很小,所以只作用在地理空间自注意力模块的Key矩阵中。


免责申明:

本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!

《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:
https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:
https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack

0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群