基于双向时空自适应Transformer的城市交通流预测

3af5873372e42748f3e4da86da6e3520.png

文章信息

1a3fe364e1937a7200eaebee6fbc8903.png

论文题目为《Bidirectional Spatial-Temporal Adaptive Transformer for Urban Traffic Flow Forecasting》的一篇2022年发表在IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS的基于双向时空适应Transformer的城市交通流预测文章。

3cb42ff0338e364e3cf1b4f22d4723c5.png

摘要

3dc324c9db1ab17cea6f6d189c23d63c.png

城市交通流预测是智能交通系统的基石。现有方法侧重于时空依赖建模,而忽略了交通预测问题的两个内在特性。首先,不同预测任务的复杂性在不同的空间(如郊区与市中心)和时间(如高峰时段与非高峰时段)上分布不均匀。其次,对过去交通状况的回忆有利于对未来交通状况的预测。基于以上两个特性,作者提出了一个双向时空自适应Transformer(Bi-STAT)用于准确的交通流预测。Bi-STAT采用编码器-解码器框架,其中均含有一个空间自适应和时间自适应的Transformer结构。受第一个性质的启发,每个Transformer都根据任务的复杂性动态地处理流量流,具体来说,我们通过一种新的动态停止模块(DHM)的循环机制来实现这一点。每个Transformer使用共享参数进行迭代计算,直到DHM发出停止信号。受第二个特性启发,Bi-STAT使用一个解码器实现现在-过去的学习任务,另一个解码器实现现在-未来的预测任务。学习任务提供补充信息协助预测任务,以便更好地泛化。大量实验证明了Bi-STAT每个模块的有效性以及该模型的优越预测性能。

0fa28d88dffedb865710b31931efa3b2.png

介绍

d6b42a724f2c39a5f1c51d8aa7ea3cf4.png

交通流预测旨在利用基于分布在城市道路上的大量传感器所记录的当前交通状况预测未来的交通状况(流量或速度)。由于复杂的时空依赖性,使这项任务充满挑战。空间上,附近道路的交通状况相互之间有动态的影响(或依赖);时间上,由于各种因素,如天气、高峰时间、周末和假日,交通状况呈现出难以捉摸的模式。由于这些挑战,现有模型专注于时空依赖性建模并在这方面取得进步,但他们忽略了交通预测问题的两个内在性质,这阻碍了现有方法成为更有效和准确的交通状况预测方法。

首先,不同预测任务在时间(高峰时段和平峰时段)和空间(郊区与市中心)上是不平衡的。如图1所示,1号路(市区)的交通流比3号路(郊区)的交通流值更高,模式更复杂。同时,对于特定的道路,高峰小时流量波动频繁,比非高峰时段(具有稳定和简单的模式)更难预测。任务复杂性的不平衡给精确的交通预测带来了相当大的挑战。然而,现有模型将相等的计算量分配给所有任务,而不考虑它们的时空复杂性,具体来说,对于复杂的任务,由于计算量有限而忽略了重要的细节,而对于简单的任务,则浪费了过多的计算负荷。因此,需要搭建一个动态和自适应的计算模型以解决上述问题。

286cedd9cdfa6ddce2ff6bb68dc34510.png

图1 交通预测任务在不同的空间和时间上表现出不平衡的复杂性

其次,对过去交通状况的回忆对未来交通状况的预测具有重要作用,然而现有模型仅仅专注于未来的预测任务,忽略了回忆过去交通状况的影响。由于交通预测模型通常是在一段时间内进行训练,在另一段时间内进行测试,只考虑未来的预测会导致模型在训练期间过拟合。这一问题可以通过加入学习过去任务来缓解,这将防止模型过拟合,并为连续的预测带来额外的情景信息。

受这两个特性的启发,文章提出了一个双向时空自适应Transformer(Bi-SATA)用于准确的交通流预测。具体而言,Bi-SATA针对交通流预测问题,即捕捉交通流信息的动态变化时空模式,如图1所示。Bi-SATA具有典型的编码器-解码器框架。每个编码器(解码器)利用一个空间自适应Transformer建模空间依赖性,利用一个时间自适应Transformer捕捉时间模式,并将其混合以探索时空关联性。为解决第一个问题,每个Transformer根据不同的任务复杂性动态处理交通流。具体来说,我们首先利用RNN的递归偏差进行共享参数的迭代计算。在此基础上,设计了一种新的动态停止模块(DHM)来估计每个任务所需的计算量,并在必要时终止计算。递归设计是参数高效的,而DHM则是为每个任务分配基本计算负载而灵活高效。为克服第二个问题,在训练时,作者使用两个独立的解码器分别进行现在-过去回忆任务(recollection task)和现在-未来预测任务(prediction task)。回忆任务提供了额外的情景信息,并且作为正则化器,防止预测任务过拟合。两种解码器的不同任务导致模型的架构设计不同,这使模型能够更专注于目标未来预测任务,并获得更好的性能收益。

本研究的贡献可以总结如下:

1)这是第一个根据独特的时空复杂性动态解决交通预测问题的研究,通过提出模型Bi-SATA实现。

2)作者设计了一个全新的DHM为每个任务分配必要的计算负荷。DHM动态地终止了循环变压器的迭代运行,因此具有灵活性和参数效率。

3)与现有模型相反,作者同时回忆过去的交通状况,并预测未来的交通状况,进一步提高了交通流预测性能。

4)作者在四个基准数据集上进行了综合实验,结果表明提出的Bi-SATA显著优于其他先进的模型。

7e781c47d5cf311787c371c4cbb467f4.png

模型算法

145fcd1b3e9b6c483fd58035fc3068da.png

1) 问题定义

本文针对多步交通流预测问题展开研究,即同时预测多个时间步的未来交通流状况。与时间序列预测任务不同,交通流预测是以交通网络为条件的。理论上,交通网络可以定义为一个图0431472d67951080e4a69b99e4887870.png,其中是节点的集合可以表示交通传感器,90c212e3899c2ffa5d4d5ed7ccaa2b33.png代表传感器的数量,表示边的集合,e43e93dd24ad56681d05dfe1661b9e6b.png表示邻阶矩阵用于衡量节点间的关系(例如空间关联性)。

基于交通网络,可以定义关于N个传感器的交通流预测问题。首先,作者使用历史交通流序列0bc057f317538ae42a4501348e2e8911.png和当前交通流序列0494eac9646ccfa60c379ac5a935deb0.png。此处,HP代表历史和当前时间步,d表示交通状况的特征数(交通流和车速等),该研究仅选择交通流作为特征,因此d=1。基于历史和当前交通流序列,文章的目标是训练一个参数化模型f预测未来F个时间步的交通流fcbbe6d923021bbe297ffa043d2743b1.png,具体如下:

82b05e6e794209f1ac799bf669394fb0.png

需要注意的是在模型测试阶段,仅使用当前交通流序列进行预测,而不用历史交通流序列,这是因为历史交通流序列的作用是使模型f正则化,并在训练时提供额外的上下文信息。

2) 模型框架

Bi-SATA的框架如图2所示。该模型的输入数据一共包括三个:交通网络(空间情景)、时间特征(时间情景)以及当前交通流(输入特征),经过预处理和特征嵌入后,将嵌入数据输入编码器。编码器由多个相同编码层组成,每层包括一个空间自适应Transformer,时间自适应Transformer以及一个DHM模块。编码器通过DHM循环变换计算实现任务自适应计算,动态控制计算步数。在此基础上,将空间和时间特征进行融合,以获取不同时间点交通节点之间的相互依赖关系。Bi-SATA包含两个解码器,预测解码器与编码器具有相同的结构,用于未来交通状况预测,回忆解码器的结构更为简单,不包含DHM,可以作为正则器来防止预测解码器出现过拟合现象。在编码器和解码器之间,作者设计了交叉注意力模块,它模拟了每个未来(过去)时间步长和所有当前时间步长之间的直接关系。这种设计切断不同时间步之间的联系,这对缓解交通预测问题中误差传播问题具有潜在的效果。

33075efa1d5a2c864763f374fad528c0.png

图2 Bi-SATA的框架

3)预处理和输入嵌入

在该章节中,作者描述了三种不同类型的输入,空间和时间情景信息的使用使模型可以意识到预测任务的时空环境,同时为预测任务的时空复杂性提供了重要线索,模型可以捕捉这些线索,并根据任务复杂性动态分配计算负荷。

空间情景信息:首先构建交通网络。具体来说,作者计算交通网络中所有交通传感器间的欧氏距离,根据节点间的距离构建邻阶矩阵A。为了将这些图节点(即交通传感器)转化为特征嵌入,作者使用node2vec的方法,其中图节点由空间嵌入(SE)表示。由于SE是静止的,作者将其输入到两层全连接层以获得学习的空间嵌入6e7fb0fd0d5cb2e3603d6963152f9f52.png

时间情景信息:为了构建时间情景,作者使用两个重要的时间信号,即输入数据所在的小时、输入数据所在的星期。这两个信号提供了长短时情景信息用于叫交通预测任务。例如,高峰小时和周末是影响短期和长期时间演变的强烈信号。具体而言,一天可以分为个时间步,一周可以分为七天,将他们编译为维度分别为0732136241d1415a92c76ef5a3bcdc78.png和的one-hot编码,并进行拼接然后输入到两层全连接层中。对于不同的交通流序列,分别使用不同的时间嵌入。

输入特征:表示当前的交通流序列fc1b3dc2b0fcd1364e05e805959cd98c.png,同样使用两层全连接网络使该序列的维度与空间嵌入和时间嵌入保持一致。

计算得到所有空间嵌入、时间嵌入以及输入特征后,可以获得最终的输入嵌入05ef97d21c0ab4e719cdb83cadc9814e.png

72a286932340d79d3a9bfe41fa12da0a.png

4)时空自适应Transformer

为了有效捕捉交通流序列的时空关联性和模式,作者提出一个STAT,如图3所示。具体来说,作者设计了一个空间Transformer和时间Transformer用于处理空间输入和时间输入。在空间(时间)输入被送入空间(时间)Transformer之前,位置嵌入和循环嵌入被整合在一起以提供情景信息(例如传感器密度、时间步、循环步)。具体来说,Transformer由多头注意力机制、带有残差操作的层归一化以及转移函数组成。在经过空间和时间Transformer处理后,进一步设计了一个融合模块以建模空间序列和时间序列的关系。

17a45194ba6de672f9f388ca08e4750c.png

图3 SATA架构

在描述Transformer之前,首先需要讨论动态计算的设计选择。动态计算的一个简单设计是首先扩展多个顺序的Transformer层,然后根据任务复杂性动态控制层数。然而,这种设计存在两个缺点,首先直接扩展Transformer层将使参数数量线性增长,如果需要较大的计算负荷,那么Transformer在参数数量上会效率低下,变得难以承受;其次,在动态计算的情况下,较深的层接收到的训练数据比较浅的层少,效率较低。为了解决这些问题,作者使用RNN中的循环归纳偏差,在共享参数下进行循环transformer 的更新。为实现动态计算,作者设计了一个DHM用于控制循环更新步数,该设计具有循环参数共享机制的高效性和动态计算的灵活性。

位置和循环嵌入:为了整合循环步信息到Transformer中,作者在位置嵌入的基础上加入了循环嵌入。对于位置6bace09cd8e1059377ebe16b2792d390.png和循环步58dc9d79fe14937ad4b9a4d17356fddd.png,联合嵌入计算如下:

0e28bbb1198172e8d6e0fa862d6c0372.png

上述两个式子的第一项计算位置嵌入,第二项则计算循环嵌入,表示当前循环计算步数。

时间自适应Transformer:注意力机制是Transformer核心部分,具体计算如下:

8d299f7bf2081dd38d0a85a096856961.png

在Transformer中广泛应用的一个注意力机制变体是多头注意力机制,即:

03d3f2ad0e326994aafe0e0c602a2877.png

为了将RNNs的循环归纳偏差引入到Transformer中,作者采用循环更新操作更新transformer的状态e58a9461d52a57c76314926eb7df407b.png。具体来说,在当前的循环时间步m,作者更新状态0fe1443e1a5ec885fa6b5f1b83f27a6a.png如下:

d679a0267975f3e4e5305d5b7b44c86b.png

其中,LayerNorm()表示层归一化,用于加速模型训练,Transition()表示转换函数,由两个仿射变换组成,之间有一个ReLU激活函数。

空间自适应Transformer:该模块与时间自适应Transformer拥有相近的结构,但主要存在两点差异。首先,位置编码不一致,在时间自适应Transformer中,位置嵌入表示交通流序列的时间步,所以p的范围由1到T(T=P时,表示当前时间序列df70dae0c391cebbaf1cca097c91fc18.png)。对于空间自适应Transformer来说,作者使用位置嵌入对传感器身份进行编码,即2c36be3c688107b6973be32860d57434.png。其次,Transformer的有效自注意力维数不同。对于时间自适应Transformer来说,作者将436c1b35c7441c92831a8119e0c2be9e.png的形状转换为3a1cced410e1c1ac98b5af732fc7c016.png,其中N是Batch的维数,P是用于时间关联性计算的自注意力维数;对于空间自适应Transformer来说,作者将0da71dd3c3102c6270519cb90574ef85.png的形状转换为cf0949807c981d889d411fe66e3a6d8e.png,其中P是Batch的维数,N是用于空间关联性计算的自注意力维数。

融合模块:空间和时间自适应Transformer分别用于捕捉交通流的空间依赖性和时间模式。然而,由于交通预测问题的复杂性,空间依赖性和时间模式通常融合在一起表现出复杂的时空相关性。例如,市中心道路的高峰时段将显示市中心区域在空间上和时间上的共同模式。令f832e2c453e4b0de04f76848c53203f3.png和分别表示空间Transformer和时间Transformer的输出特征。作者首先使用一个带有sigmoid激活函数的线性模型以获得融合门控:

b6d6281fa3924cfc548fcc44e3daaf94.png

接着,空间特征和时间特征融合如下:

cbe7f8eacb51b347678e470bb8d23c48.png

5)动态停止模块

作者利用Transformer层的循环更新,实现参数共享循环计算。循环机制增加了计算容量以解决复杂的预测任务,同时保持了参数的计算量不变,因此是参数高效的。但缺点是对于简单的预测任务来说,计算容量大是一种浪费。为了解决这种缺陷,作者进一步提出了一个DHM算法,根据任务的复杂度来精简分配必要的计算负荷。

为了考虑任务的时空复杂性,DHM的初始输入需要包含空间情景、时间情景以及输入特征,这与输入嵌入E相吻合。另外,由于DHM被用于控制Transformer的循环计算,所以位置嵌入和循环嵌入信息都应该包含于初始输入中,以告知DHM循环计算的当前状态。由于Transformer特定循环步的状态eaf2d76c7bd198a11206473c18464b9c.png包含了上述所有用于评估任务时空复杂性的情景信息。因此,作者直接输入7904126c3e938fb7abe8c92a71323391.png到DHM中。需要注意的是,空间和时间Transformer拥有不同的DHMs,此处以时间Transformer中的DHM为例。具体来说,在每个循环步m中,给定8b332d49e34a8db9ff98a6d612a0a860.png,首先计算暂停概率:

4403e6649db1bbc4a18dc548b6cda2d8.png

其中,e3c4be323c28ca9785f39551783b8d4c.png表示所有P个当前序列的停止单元,令a3c512de109dd2aafe4a587e0e8b3e5c.png表示第i个序列。为了决定第i个序列的计算是否可以停止以节省计算资源,作者计算了过去个循环时间步的累计停止概率,停止依据定义如下:

c48cf32fdba7173de2a108059582105e.png

其中M是用于严格限制计算成本的最大循环步数,是概率系数。根据该停止依据,可以定义每个序列i的实际计算步长,以及剩余值2aeb6f3f812daa57ca4a773462ed54d2.png如下:

947aa2ef4eb4dc075bc18d73eb395ce4.png

由此可以看出,期待的循环步长会大概率小于M。为了充分利用停止概率,作者使用权重状态特征表示6fcd67b39505bd5083dbfd2b2992553d.png

c45a43c34116260289a0a2cd7a1aba94.png

根据加权状态表示,停止概率不仅可以控制动态计算,而且对特征学习过程进行重新加权。

6)交互注意力模块

在时间序列预测任务中,一个通用的策略是按顺序逐步预测时间序列,并将前一步的预测结果作为下一步预测的输入。然而,这种方式在长期预测中会导致不同预测步之间的误差传播效应。为了解决该问题,作者提出一个未来-现在的交互注意力模块以及一个过去-现在交互注意力模块,分别放于编码器和预测解码器之间以及编码器和回忆解码器之间。交互注意力模块直接建模每一个未来(过去)时间步和所有当前时间步的关系。以未来-现在的交互注意力模块为例,给定当前时间步,未来时间步以及一个传感器,其时空情景信息分别是e7f3ace926d8a6e22189848a8155b4c5.png8b256fcd5b8b9a5be18e2ea7f40402a8.png,接着未来时间步和当前时间步的关系建模如下:

bfe2eaa5d755d98d13445f1ee0d5def2.png

根据相关性,可以计算解码器的输入80cfd1d9c2fc3a4cd24a4b10ed5bcd47.png,如下:

8304eff9361e1c0ac7a651ae5857c423.png

7)解码器和损失函数

预测解码器:如图2所示,预测解码器与编码器的结构相同,其输入是来自未来-当前交互注意力模块的未来编码表示,其中未来时间步的相关性被隔离,且每个未来时间步独立地与当前所有时间步相关,这样可以使误差累积传播得到缓解。

回忆解码器:过往交通预测模型训练时仅仅使用预测解码器。由于交通流预测问题的特殊性质,只能使用历史和当前持续时间的数据进行模型训练,并使用时间不重叠的未来交通流数据进行测试,这种训练和测试的不一致性使得预测解码器容易在训练时出现过拟合,难以泛化。另外,根据近期关于神经科学的研究,过往的重要信息在未来预测中起着重要作用。

根据上述分析,作者提出一个回忆解码器使模型使具有同时预测未来和重建过去的能力。在模型框架设计方面,为了缓解预测解码器的过拟合问题,并且避免干扰预测解码器的预测任务,作者设计了一个更为简单的框架:不带有DHM的空间和时间Transformer。

损失函数:在训练过程中,所有损失包括历史重构损失8bbe11ec60eb4c856005820650517534.png,未来预测损失以及来自DHM的惩罚损失c3a683c8fbd77b14662934cb5237921e.png。对于历史重构损失和未来预测损失,作者使用平均绝对误差(MAE):

6afa620de508ab4ddf3d292ffc1f643e.png

对于惩罚损失,利用它来平衡所需的计算量和模型效率:

cf1c455f1c4fca567eae19cf8bd0a05b.png

由于2a59d39753820c7b01d49deafa5f25d3.png1~M的整数值,所以是不可微的。在实际中,作者将dac579923f462238c6ba12a28cae728c.png视为常数,从而最小化89b1cb691e53dea7321671359375ad7e.png。最终,总体损失函数如下:

84dca5a3f28cbe05989c6a507328226a.png

0efe36c459f9f85d38bb49e51eb74169.png

实验

2a3c52d566b127a2926a374796077769.png

本文使用四个真实的城市交通流数据集进行了实验验证。实验结果表明,相比于其他现有方法,BST-AT模型在平均绝对误差和均方根误差等常见交通流预测指标上,具有更好的性能和精度。此外,作者还对模型进行了可视化分析,证明了其有效性和可解释性。感兴趣的读者可以阅读原文实验部分。

ddb65e50ee6c38e3ecf0a749d88fae77.png

结论

af65b4607e706398cda4ca672ddee321.png

本研究提出了一个深度学习模型Bi-STAT来处理城市交通预测问题。具体来说,模型设计是由问题的两个内在性质所驱动的,而这两个内在性质是现有方法所忽视的。首先,不同预测问题的不平衡复杂性需要一个自适应计算模型。因此,文章采用循环机制和一种新的DHM来为每个任务分配基本计算负荷。其次,对过去交通状况的回忆对未来交通状况的预测具有重要作用。因此,作者设计了一种回忆解码器来重构过去的流量流,它可以为未来预测任务提供额外的上下文信息,并作为正则器来防止未来预测任务的过度拟合。实验证明了每个模型组件的有效性,并且Bi-STAT模型在很大程度上优于所有的基线模型。

然而,复杂的时空相关性建模严重依赖于任务特定神经网络的精细设计,需要大量的领域知识和大量的专家努力。最近热门的自动神经架构搜索可以为城市交通预测任务的应用提供一个有前途的替代方案,它可以自动搜索一个最优的架构来捕获交通网络中的时空表示。研究重点包括考虑时空相关性的搜索空间定义,以及制定学习交通图相关网络参数的策略,这是未来城市交通自动预测的发展方向。感兴趣的读者可以阅读相关文献了解。

推荐阅读:

我的2022届互联网校招分享

我的2021总结

浅谈算法岗和开发岗的区别

互联网校招研发薪资汇总
2022届互联网求职现状,金9银10快变成铜9铁10!!

公众号:AI蜗牛车

保持谦逊、保持自律、保持进步

发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)
发送【1222】获取一份不错的leetcode刷题笔记

发送【AI四大名著】获取四本经典AI电子书

猜你喜欢

转载自blog.csdn.net/qq_33431368/article/details/130479204