文章信息
本周阅读的论文是一篇2021年发表在《Transactions on Intelligent Transportation Systems》上利用Transformer进行交通流预测的文章,题目为《Learning Dynamic and Hierarchical Traffic Spatiotemporal Features With Transformer》。
摘要
近年来,交通预测因其在交通控制和管理中的重要作用引起了学者们的广泛关注。学者和工程师们在提高交通预测算法的准确性、可靠性和效率方面付出了相当大的努力。交通流的空间特征表示是影响交通流预测性能的一个核心部分。先前的研究中,交通流的几个空间属性由于以下原因被忽视:1)交通流传播不符合路网要求;2)交通流的空间特征随时间不断变化;3)单一的邻接矩阵无法反映复杂的、层次化的城市交通流。为了解决上述提到的问题,该文章提出了一种新的交通预测算法——traffic transformer,transformer框架在自然语言处理中取得了巨大成功。多头注意力机制和堆叠层的应用使transformer能够学习时间序列数据中的动态层次特征。该模型由两个部分组成,全局编码器(global encoder)和全局-局部解码器(global-local decoder)以实现局部和全局空间模式的提取和融合。实验结果显示,文章提出的traffic transformer的预测效果比目前最先进的方法的预测效果要好。学习到的交通流的动态层次特征有助于更好理解交通流的空间依赖性从而制定有效的交通控制和管理策略。
介绍
近年来,交通预测由于在城市交通控制和管理的重要作用引起了广泛关注。城市交通流时空特性的有效表征是交通预测成功的关键因素。在所有已知的模型中,基于深度学习的方法由于其捕捉全网络交通流的长期时间序列特征和长期空间依赖性特征的原因取得了良好的预测性能。图论与深度神经网络(DNNs)的集成进一步增强了空间特征表征的有效性,将交通预测的准确性提高到一个更高的水平。基于图结构的深度学习交通预测模型,例如基于图卷积神经网络(GCN)预测模型,路网的空间架构被表示为一个预先定义的邻接矩阵。假设交通流在同一路网结构上的传播始终保持一个固定速率,考虑到城市交通流的复杂动态性特征,预先定义的邻接矩阵必然会限制模型学习城市交通动态时空特征。
具体而言,基于预定义的邻接矩阵在表示路网结构空间特征方面主要存在以下三个主要问题。如图1(b)所示,交通拥堵的传播模式与路网的结构不一致,红线表示了交通传播的方向。例如,一起发生在高速公路的交通事故可能会影响城市地区的动脉交通,尽管高速公路段在拓扑结构上并没有与城市路网相连接。如果没有对交通流动力学的深刻理解,很难定义一个合理的邻接矩阵来表示不同路段交通流的相关性。图1(c)中,交通拥堵的空间分布随着时间的推移而演变。例如,工作日/周末以及高峰时段/平峰时段的交通存在显著差别。这些想象都说明无法通过固定的邻接矩阵表示交通流。图1(d)中,一个单一的邻接矩阵无法解决复杂多层次的城市交通流,因此高速公路和当地街道的交通模式预计是不同的。大多数现有的模型试图通过简单地将一组邻接矩阵相加或拼接起来表示交通流的空间拓扑信息,对全网络交通流的时空表征效果较差。
深度学习模型Transformer利用编码器(encoder)和解码器(decoder)对序列数据进行建模。多头注意力机制和堆叠层使Transformer能够学习序列数据中的动态多层次特征,这种方法是一种解决上述提到的由预定义邻接矩阵造成的问题的潜在可行方案。近年来,transformer在自然语言处理方面取得巨大成功,解决了序列数据集的长期相关性和多维动态依赖性等一系列挑战。
该文章旨在提出一个新的预测模型traffic transformer以解决目前基于图结构的深度学习交通预测算法存在的问题。主要的贡献总结如下:
1)文章提出了一种新的交通预测算法traffic transformer通过学习动态多层次的城市交通流结构提高预测精度。模型的两个组成成分,全局编码器(global encoder)和全局-局部解码器(global-local decoder)用以提取和融合交通流的空间模式。一些编码和嵌入(embedding)技术被提出以增强交通流数据的时空可预测性。
2)该模型的预测性能在三个真实世界的交通数据集上进行验证,这些数据集来自不同尺度和不同等级的道路网络。实验结果表明与现有方法相比,所提出的traffic transformer显著提高了交通预测的准确性,尤其是在长期预测方面。
3)提出的模型可以根据消融研究数据的内在属性学习道路网络结构。实验结果表明交通流传播的动态性和层次性具有可解释性。
图1 交通拥堵传播的时空特性
模型
Transformer最初是针对自然语言处理(NLP)所设计的。然而,由于交通流数据与自然语言数据相比,具有更高维度的特征,因此需要对初始的Transformer进行优化调整,提出编码(encoding)和嵌入(embedding)技术以更好处理交通流数据。
(1)Problem Statement
交通网络的流量动态可以表示为时空网络图,如下所示。
其中,表示N个传感器节点的集合;表示连接这些节点的边的集合;表示邻接矩阵,通常根据节点之间的距离和连接关系预先构造。交通状态在时间段内T个离散时间步的演化由特征张量X表示。节点i在时间步t的特征向量表示为,由C个交通状态组成,例如速度、一天内观察的时段、一周内观察的天数等。交通预测问题是一个经典的时空预测问题,模型的输入是过去m个时间步的特征张量,输出则是未来n个时间步的预测特征张量。因此,网络级的交通预测问题可以被定义为如下:
其中,表示预测模型。文章使用traffic transformer学习多层级的交通时空特征实现全网交通预测。
(2)Traffic Transformer Architecture
Transformer结构不能直接应用于交通预测由于以下原因:(a)交通流数据与典型序列数据在数据维度和结构上存在差异;(b)由seq2seq结构造成的错误累积;(c)transformer对邻接矩阵的不太兼容性。文章提出Traffic transformer以解决上述问题,其框架如图2所示。文章设计的编码块(encoding)和嵌入块(embedding)用以解决问题(a)。为了解决问题(b)和问题(c),对初始的encoder-decoder框架进行优化得到全局编码(global encoder)模块和全局-局部解码(globa-local decoder)模块。将多个全局编码器和全局-局部解码器进行堆叠,形成具有多层特征的深度模型以提取全局和局部的空间特征。全局-局部解码器还可以将提取到的全局和局部空间特征进行融合。邻接矩阵经过数次转换后输入到全局-局部解码块作为掩码矩阵。
Traffic transformer的关键是多头注意力模块。多头注意力是一个自注意力机制并且可以有效提取“外部”特征,该机制可以发现路网中任意两个节点之间的关系并计算出它们的权值。多头注意的输出依赖于节点的值和权重,其注意力权重可以形成一个类似于邻接矩阵的注意力权重矩阵,因此多头注意力机制可以被认为是一个基于GNN的模型。从使用的数据中学习邻接矩阵,并根据数据输入动态更新邻接矩阵。全局编码器(global encoder)中的多头注意力机制用以提取全局依赖性,全局-局部解码器(global-local decoder)中的带有掩码的多头注意力机制是一种多头注意力的改进形式,使用掩码忽略非局部节点便于提取局部节点特征。全局-局部解码器(global-local decoder)中的多头注意机制融合了每个节点的全局和局部特征。
图2 traffic transformer架构
(3) Global Encoder
本节重点讨论全局空间特征,即每个节点与所有节点之间的权值。每个全局编码器(global encoder)模块包含两个子模型,第一个是多头注意力模块,第二个是全连接网络层。每个子层都添加了残差连接,然后进行层归一化,以避免梯度消失或梯度爆炸,便于更好训练模型。
1)Multi-head Attention
注意力函数可以将查询向量(query)和一组键-值向量(key-value)对映射到输出,它们均具有相同的维度。函数的输出为query、key和value的加权求和,其中分配给每个值的权重由查询向量(query)和对应的键值向量(key)的兼容性函数计算所得,具体表示为:
在全局编码器(global encoder)中,矩阵Q、K和V表示相同的输入特征。利用不同的可学习的前馈神经网络将输入特征映射到不同的潜在子空间,可以表示为(4)。
文章还定义了注意力权重矩阵,公式如下:
如图3所示,不同颜色的节点在查询向量(query)和键值向量(key)中以一定顺序放置。注意力权值矩阵由两个向量相乘得到,它将每对节点之间的依赖关系表示为相邻矩阵。然而,注意力权重矩阵是根据输入数据动态计算的。多头注意机制使用不同的可学习前馈神经网络对Q、K和V进行h次线性投影。模型可以在不同位置关注来自不同表示子空间的信息,表示为如下公式:
2)Fully Connected Feedforward Layer
全连接层可以在每个位置分别或相同地提高模型。一个全连接层由两个线性投影组成的层,两个线性投影之间具有校正的线性激活单元,如下公式所示:
总之,全局编码器(global encoder)中的多头注意力机制将输入节点投影到三个不同的子空间中。通过scaled dot-product学习每对节点之间的关系。无论节点的距离远近,都以相同方式计算节点间的关系,因此可以提取遥远节点之间的隐藏空间特征。提取的空间特征根据不同的输入全局动态地变化。
(4)Global-Local Decoder
提取局部空间特征并与全局特征融合。每个全局-局部解码器(global-local decoder)包含一个带有掩码的多头注意力、一个常规多头注意力和一个前馈神经网络。每个子层都添加了残差连接,然后进行层归一化,避免梯度消失或梯度爆炸,以便获得更好的训练性能。
带有掩码的多头注意力机制是多头注意力的一种变体,使用掩码将目标节点的非邻接节点信息掩盖以更好提取局部空间特征。文章使用K阶邻接矩阵作为掩码定义局部和非局部节点,具体过程可以表示如下:
式中,M表示K阶邻接矩阵,在注意力权值中加入掩码。
全局-局部解码器(global-local decoder)中的多头注意力机制与全局编码器(global encoder)中的多头注意力机制相似。但全局编码器(global encoder)的输出视为K和V,而带有掩码的多头注意力机制的输出则视为Q。这种多头注意力机制将全局和局部空间特征进行融合,相比简单地添加或串联注意力机制具有更好的表现。
总的来说,全局-局部解码器(global-local decoder)侧重于局部特征。文章添加了一个手动定义的“局部”掩码以增强局部特征学习能力。基于注意力机制的全局和局部特征融合使模型可以学习特征的权值以更好提高预测性能。
(5)Encodings and Embeddings
上述提到的traffic transformer只有前馈结构,并没有卷积或循环操作。这些结构无法利用时间序列的位置顺序,然而产生时间序列数据的交通传感器的绝对或相对位置对于交通预测非常重要。时间序列的顺序表示节点的分布和图的结构。因此,文章加入“位置编码(positional encoding)”和“位置嵌入(positional embedding)”。
位置编码使用不同频率的正弦和余弦函数,并对每个节点特征求和,如以下公式所示:
式中,pos表示位置,i表示维度。这种“位置编码”是固定的,对序列数据的绝对位置信息进行编码。文章采用了可学习的空间位置嵌入,使模型能够学习到比相对位置信息更多的空间信息。具体来说,每个节点对一个可学习的张量求和。
上述架构和模型忽视了时间特征,因此文章在模型开头加入了一个单独的时间块。时间特征在实际中通常很短,大约仅有10个时间步。文章使用LSTM捕捉时间特性。选择LSTM是因为它被视为一个分解过程,将输入由投影到,显著提高了模型的效率并降低内存成本。LSTM具体实现如下:
式中,表示遗忘门,和表示记忆门,表示单元的状态,表示输出门,表示隐藏状态,表示激活函数Sigmoid函数。每个时间步按顺序投影,不同的隐藏状态返回为,仅最后一个隐藏状态被用于后续预测。
实验研究
(1)Experiment Design
文章通过实验验证模型在真实交通数据集上的预测性能,通过消融实验分析traffic transformer各部分的功能。同时还定义了一个公式来计算道路网络中每个节点的重要性,以演示交通流的动态多层次特性。另外,使用网格搜索调整模型超参数。
1)Data Description
文章在三个数据集上验证模型的预测性能,分别是METR-LA,Urban-BJ以及Ring-BJ。其中,METR-LA数据集收集了2012年3月至6月洛杉矶高速公路上207个环路检测器的交通数据;Urban-BJ和Ring-BJ数据集是从北京的GPS数据中所提取,分别收集了由2015年6月至8月一万多辆出租车的数据,其中Urban-BJ数据集包含了278个节点,Ring-BJ包含了236个节点。三个数据集中的传感器位置和节点如图4所示,每个数据集的基本信息总结表1。
表1 三个数据集的比较
图4 三种类型的交通网络(红点表示道路传感器的位置)(a)METR-LA;(b)Urban-BJ;(c)Ring-BJ
对于这些数据集,数据以5分钟的时间间隔聚合,观察窗口为60分钟(即12个历史时间步),最大预测窗口为60分钟。交通流数据使用Z-score进行标准化。前70%的数据用于训练,接下来10%的数据用于验证,最后20%的数据用于测试模型预测效果。文章使用MAE、MAPE和RMSE评估预测模型的准确性。
2)Model Comparisons
文章提出的traffic transformer与六个基准模型进行比较,分别是ARIMA、FC-LSTM、DCRNN、STGCN、GWN以及GMAN。文章还设计了消融实验,使用三种模型的变体与traffic transformer进行比较,验证模型中不同成分的有效性。三种主要的模型变体分别如下:
Traffic transformer encoder:仅使用全局编码器(global encoder),全局-局部解码器(global-local decoder)被完全移除。因此,该模型的训练不需要预定义邻接矩阵。
Traffic transformer decoder:仅使用全局-局部解码器(global-local decoder),全局编码器(global encoder)被完全移除。由于缺少全局编码器,因此删除了全局-局部解码器(global-local decoder)的第二个多头注意力层。该模型可以看作一个带掩码的全局编码器。
Traffic transformer without temporal embedding:该模型删除了模型开头的时间嵌入。不同时间步下的交通流速度在一维内展平,并通过线性神经网络将其投影到初始维度。
表二至表四列出了traffic transformer在三个不同数据集上与其他基准模型在多个方面的预测效果比较。结果表明traffic transformer和traffic transformer encoder在三个数据集上实现了不同预测范围的最优预测性能,尤其是在长时(60min)预测方面。这可能是因为traffic transformer可以从提取的隐藏长距离空间关系中获益,从而提高预测精度。
通过进一步的分析可以得到一些观察结果和现象。首先,深度学习模型更加适合长时交通预测。与传统模型相比,基于GCN的深度学习模型预测精度显著提高,这种情况表明空间特征在交通预测中是不可替代的。换句话说,时空预测模型比时间预测模型具有更好的性能。其次,GWN、traffic transformer和traffic transformer encoder取得了比DCRNN和STGCN更好的预测效果。这是因为GWN可以在每次迭代中学习自适应邻接矩阵,而traffic transformer和traffic transformer encoder可以通过注意力机制确保每对节点的邻接关系,这也表明存在的隐藏空间特征可以提高模型预测效果,尤其是长期性能。与GWN相比,traffic transformer和traffic transformer encoder所学习到的空间关系来自于多头注意力机制,这也表明可学习的空间关系是动态的,依赖于输入数据。Traffic transformer和traffic transformer encoder的深层结构可以提取分层时空特征,而不是单一邻接矩阵。因此文章提出的模型在长时预测方面要优于GWN。
根据消融实验的结果,即使没有加入时间嵌入(temporal embedding),traffic transformer的预测效果也是可以接受的,这表明隐藏在数据中的时间特征较为简单,仅在开始时进行一次时间嵌入即可,可以显著减少分解后的训练成本。在路网结构最为复杂的Urban-BJ数据集上,traffic transformer encoder展示了良好的预测性能,这种情况表明人工预定义的复杂网络的邻接矩阵存在局限,让模型以数据驱动的方式学习邻接矩阵效果更好。
我们在Urban-BJ数据集上比较了traffic transformer与其他基准模型的计算成本。如表格五,DCRNN和GMAN要比其他模型计算时间更长。文章提出的模型训练速度要快于DCRNN但比STGCN和GWN慢。测试阶段,单步预测模型非常有效,traffic transformer比DCRNN和GMAN快,但比STGCN和GWN慢。
表2 METR-LA预测性能比较
表3 Urban-BJ 预测性能比较
表4 Ring-BJ 预测性能比较
表5 Urban-BJ 计算费用比较
3)Model Interpretation
实验结果表明,该模型能够更好地捕捉空间关系,尤其是对于长期预测。Traffic transformer通过全局编码器(global encoder)和全局-局部解码器(global-local decoder)中的多头注意学习空间关系。每个多头注意力的动态多层次注意权重矩阵与邻接矩阵相似,这种相似性揭示了隐藏的空间关系。
为更好可视化traffic transformer学习的动态多层次时空特征,文章预测了不同时间段的交通数据,并输出每个多头注意力层的注意力权值,以生成注意力权重矩阵。测试集中的三个batches在METR-LA数据集上进行实验,分别取0点、8点以及16点的交通流数据进行实验。每个注意力权重矩阵中,第i行第j列的权重代表传感器i对传感器j的影响。实验将每个多头注意层的注意力权重矩阵进行归一化并绘制了相关性矩阵如图5所示,其中全局编码器(global encoder)中的注意力权重矩阵,称为“source weight”,简单记为“src”;全局-局部解码器(global-local decoder)中第一个注意力权重矩阵,称为“target weight”,简单记为“tgt”;全局-局部解码器中第二个注意力权重矩阵,称为“memory weight”,简单记为“mem”。每个相关性矩阵都显示了一种网格形态,尤其是“source weight”和“memory weight”矩阵,这意味着某些传感器会持续影响整个网络中的其余传感器。该模式在不同的时间段和层次上有所不同,表明traffic transformer可以根据输入数据动态分层地提取全局空间特征。“source weight”表示每个传感器的全局重要性,图5(a)中的相关矩阵相互交织和平行,意味着空间相关性是非局部的。“target weight”看起来非常相似,其原因是使用了预定义的k-hop邻接矩阵关注局部特征。“memory weight”融合了全局和局部的权重,因此表现出与“source weight”相似的特征。因此,就可预测性而言,某些传感器起着更重要的作用。
图5 不同时间段内注意力权重矩阵的可视化;(a)0点的注意力权重矩阵;(b)8点的注意力权重矩阵;(c)16点的注意力权重矩阵
结论
该研究提出了一种新的交通流预测算法,称为traffic transformer,通过将交通流视为动态多层次的图结构进行学习以提高预测精度。通过与基准模型比较,证明该模型优于所有选定模型中最优的方法。实验结果表明,提出的traffic transformer可以帮助识别潜在的交通时空特征,包括交通流的结构、动态性和多层次性。
在未来的研究中,所提出的模型可以拓展考虑更多外部信息,例如道路特征、多变的天气状况以及大型事件的影响以提高预测精度。由于数据源的限制,该实验仅涉及道路网中的速度预测,未来可以尝试将模型推广到不同交通系统的参数预测中,例如地铁或铁路系统中。
Attention
欢迎关注微信公众号《当交通遇上机器学习》!如果你和我一样是轨道交通、道路交通、城市规划相关领域的,也可以加微信:Dr_JinleiZhang,备注“进群”,加入交通大数据交流群!希望我们共同进步!