摘 要: 交通预测在智能交通中有着重要的意义和应用.由于交通数据的复杂性和高度的非线性,精确的交通预测的核心挑战在于如何对复杂的空间相关性和时间动态建立模型.在现实生活中,我们发现:1)区域间的空间依赖是动态的;2)时间依赖有日和周的模式,但由于有动态时间变化,它不具有严格周期性.为了解决这两个问题,我们提出了一个新的时空注意力网络(STAN),该模型的主要思想是区域间的动态相似性用一个门控机制学习,长期周期性时间转移现象由一个周期性注意力转移机制来学习,并考虑交通道路、天气状况等外部因素.通过与不同的方法在两个数据集上进行评估,实验结果表明,我们提出的模型有更好的准确性.
关 键 词: 交通预测;时空数据;注意力机制;神经网络
1 引 言
交通预测是典型的时空数据预测问题.随着交通运输业的发展,大量摄像头、传感器和其他信息收集设备已经部署在道路上[1].每个设备都放置在一个独特的地理空间位置,这些设备存储了大量的具有地理信息的交通时间序列数据,为交通预测提供了坚实的数据基础.由于不同类型的交通数据嵌入在连续的空间中并随时间不断变化,因而有效提取时空相关性对交通预测非常重要.许多研究者已经为此做出了很大的努力.道路区域间具有明显的时空相似性[2].在时间维度上,区域当前时刻的交通状态与前一个时间段或前几个时间段的交通状态存在相关关系,同理,该区域当前时刻的交通状态也与后一个时间段的交通状态存在相关关系.在同一周内,某一区域工作日某一时段的交通运行状态与相邻工作日同一时段的运行状态具有相似性,表现为天相似性,与上一周同一个工作日的运行状态具有相似性,表现为周相似性[3].在空间维度上,由于区域中的路段按照一定的拓扑结构彼此连通,分布在路段上的交通状态在空间维度上是有相关关系的,即为空间相关性.因此,研究区域间的时空相似性,对于交通预测等工作具有重要意义.
初期的时间序列分析模型被用于交通预测领域[4],然而,在实际应用中,它们很难处理不稳定和非线性的数据.之后,传统的机器学习方法被应用于对复杂的交通数据进行建模[5],但仍然难以同时考虑高维交通数据的时空相关性.此外,这种方法的预测性能严重依赖于特征工程,这通常需要相应领域专家的大量的实验和经验.近年来,许多研究人员使用深度学习方法来处理高维时空数据,如采用卷积神经网络(CNN)来有效地提取基于网格的数据的空间特征[6],但这些方法仍然不能同时对交通数据的时空特征和动态相关性进行建模.
现有的研究中尽管同时考虑了对时间和空间的建模[7],但这些方法仍有不足.
1)先前的区域间的空间依赖根据历史交通数据学到一个静态的空间依赖,但区域间的依赖强弱会随时间变化而变化.比如,在早上,居民区和商业区之间存在很强的依赖性,但在深夜,此关系就淡化了.然而,之前的研究中没有考虑此种动态的依赖关系.
2)现存的研究忽略了长期的周期依赖.交通数据本身具有很强的日和周的周期性,但又不是严格周期性.比如,工作日的高峰期通常在下午,但可能从下午4:30-下午7:00不等.
3)没有考虑外部因素(天气、道路信息).
为了解决以上问题,我们提出了时空注意力网络(STAN)用于交通预测.该网络使用局部CNN获取空间依赖,使用LSTM获取时间依赖.具体来说,利用门控局部CNN对区域间的动态相似性进行空间依赖,利用周期平移的注意力机制获取长期周期依赖.
2 相关工作
交通预测是指以历史的、现有的交通数据及相关因素为依据,预测目标区域未来的交通状态信息.交通预测是智能交通领域研究的重点课题[8],其中数据驱动的交通预测问题一直受到广泛关注.
在传统的时间序列模型中,自回归移动平均模型(ARIMA)、卡尔曼滤波及其变体在交通预测问题中得到了广泛的应用[9].但这些方法都无法对时空的复杂非线性关系建模.
深度学习模型为捕获非线性时空关系提供了一种新的有前途的方法,该方法在计算机视觉和自然语言处理方面取得了巨大的成功.由于神经网络能够从复杂的非线性的交通数据中有效地提取特征,因此大量不同类型的神经网络被提出并应用于交通预测,例如,循环神经网络(RNN)、长短期记忆网络(LSTM)[10]、卷积神经网络(CNN)、图卷积神经网络(GCN)等.
注意力机制通过对输入的数据或者提取的特征进行自适应的关注,提高模型提取特征的能力,常应用于图像处理、自然语言处理、推荐系统等领域[11].在本文的工作中,通过注意力机制实现历史交通数据的自适应关注和累积,从而实现对交通数据中的长期依赖建模.
文献[12]提出基于CNN的交通预测模型,将交通数据格式化为图像,利用局部接受域限制图像中相邻数据点之间的依赖关系,从而提取相关特征用于交通预测.文献[13]提出了一种基于深度学习的预测算法DeepTFP,以预测城市每条交通道路上的交通流量,其利用3个深度残差神经网络对交通流量的时间紧密度、周期和趋势特性进行建模.但这些方法在建模时没有同时考虑空间依赖和时间依赖,并把区域间的依赖关系视为静态的.还有些研究忽略了时间序列预测中的长期周期性影响.为了克服上述缺点,本文用一个门控机制获取区域间的动态相似性,并用一个周期性注意力转移机制解决长期周期时间平移现象.
3 整体设计
3.1 符号说明和问题定义
我们将关注的城市分割成a×b个网格,总共有n个区域(n=a×b),并用{1,2,…,n}表示这些区域.我们将整个时间周期划分为m个等长的连续时间间隔.任何一个车辆的移动,总是始于某个区域,经过一段时间到达目的地.我们将一个区域的起始交通量定义为在固定的时间间隔内从该区域出发/到达该区域的次数.和分别表示区域i在时段t内的客流产生量和吸引量.各个车辆的行程汇集在一起形成了交通流,我们把t时间从i区域出发,τ时间到达j区域的交通流表示为显然,交通流反映了区域间的连通性,也反映了每个车辆的移动状态.图1(c)给出了流量和流动的说明.
问题(交通量预测)给定t时段的数据,交通流预测问题旨在预测时段t+1的开始和结束的交通量.
3.2 时空注意力网络
时空注意力网络(STAN)的架构如图1所示,其中图1(a)是周期性注意力转移机制捕捉长期周期性依赖.对于每一天,我们还使用LSTM来捕获序列信息.图1(b)使用LSTM来捕获短期时间依赖.图1(c)描述的是门控机制通过控制空间信息传播来跟踪动态空间相似性表示.FC表示全连接层,Conv表示卷积操作.图1(d)预测结果输出.
图1 模型框架图
Fig.1 Architecture of STAN
3.2.1 局部时空网络
为了捕获空间和时间序列依赖,我们分别使用局部CNN和LSTM处理空间和短期时间依赖,把两种不同的流量(开始和结束)一起预测.下面分别介绍这两个依赖.
3.2.1.1 局部空间依赖
根据文献[14],使用卷积神经网络(CNN)捕获空间关系.将整个城市视为一幅图片,简单应用CNN不会达到最佳性能,因为图像范围太大包含了弱相关区域,会对预测的目标区域产生负效果.根据地理学第一定律,只取邻近区域作为空间表示.因此,我们使用局部CNN模型,用于捕捉邻近区域间的局部特征,从而实现对空间依赖建模.
对于每个时段t,我们将目标区域i及其周围邻居视为具有两通道Yi,t∈S×S×2的S×S图像,一个通道包含开始流量信息,另一个是结束流量信息.目标区域在图像的中间.局部CNN使用Yi,t作为输入每个卷积层的定义如式(1)所示:
(1)
其中,W(k)和b(k)是参数.堆叠K层卷积后,用一个全连接层来推测区域i的空间表示,记作yi,t.
3.2.1.2 短期时间依赖
为了解决传统递归神经网络(RNN)的梯度爆炸和消失问题,我们使用LSTM来捕获时间序列依赖.我们使用原始的LSTM版本并将其表示为式(2):
hi,t=LSTM([yi,t;ei,t],hi,t-1)
(2)
其中,yi,t为CNN的输出;hi,t是区域i在时段t的输出表示;hi,t-1是上一时刻的输出;ei,t表示外部因素(如天气信息等).
3.2.2 空间动态相似性:门控机制
如前所述,局部CNN用于捕获空间依赖.CNN通过局部连接和权值共享来处理局部结构相似性.在局部CNN中,局部空间依赖取决于历史交通流量的相似性,但提取的空间依赖性是静态的,不能完全地反映目标区域和其邻居间的关系.一个更直接的表示区域间交互关系的方式是交通流.如果两个区域间存在大量的客流,说明他们之间的关系紧密(即越相似).交通流用于控制流量信息在区域间的转移.因此,我们设计了一个门控机制,该机制以学习层次结构中的动态空间依赖关系.
类似于局部CNN,我们构建了局部空间流量图来表示流量的空间依赖.某个区域在某个时间段内的交通流量分为两类,流入和流出,相应地构造该时段该区域的两个流矩阵,即流入矩阵(t时刻各个D点出发到达O点)和流出矩阵(t时刻O点出发到达各D点).其中矩阵中的每个元素表示对应区域的流入流出流量.图1(c)给出了一个流出矩阵.
给定一个区域i,我们获得过去l个时间间隔(即从t-l+1到t).将该时间区间获得的流量矩阵进一步叠加,用Fi,t∈S×S×2l表示,其中S×S表示周围的邻居区域的大小,2l表示流量矩阵的数量.因为堆叠的流量矩阵包含了所有与区域i相关的过去的流量间的相互作用.我们使用CNN对区域间的空间流量关系建模,以Fi,t作为输入对于每层k,卷积结果用式(3)表示:
(3)
其中,和是参数.
在每一层,将式(1)和式(3)两个卷积的结果相乘,得到式(4).其中,这个乘法就是本文所说的门控机制.具体地,每一层经过门控机制调整后的空间表示为公式(4)如下所示:
(4)
其中,⊗表示张量间的按元素相乘.
在K个门控卷积层之后接flatten层和全连接层输出空间依赖关系,至此完成了对空间关系的提取.我们将公式(2)中的空间表示yi,t更新为
3.2.3 时间动态相似性:周期性注意力转移机制
在上述的局部时空网络中,仅使用前几个时间间隔(通常是几个小时)进行预测,忽略了长期依赖性(例如周期性),周期性在时空预测问题中非常重要[15].在本节,我们将考虑长期周期信息.
训练LSTM处理长期信息是一项艰巨任务,因为随着时间序列长度的增加,会显著削弱周期性的影响.为了解决这个问题,应该对预测目标的相对时段(例如,昨天的这个时候,前天的这个时候)进行建模.然而,单纯地考虑相对时段是不够的,因为忽略了周期的时间平移,即交通数据并不是严格周期性的.例如,工作日的高峰期经常发生在下午的后半段,但可能在下午4:30到下午7:00变化.由于交通事故或交通拥堵的发生,周期的平移在交通序列中是普遍存在的.周期性不是严格按日或按周的.因此,我们设计了一个周期性注意力转移机制来解决这些限制.详细的方法描述如下.
本文专注于处理不同天之间的周期性的变化.如图1(a)所示,包含了前P天对应的时段用于处理周期性依赖.对于每天,为了解决时间平移问题,我们从每天中额外的选择Q个时段.例如,如果预测的时间是上午9:00-9:30,我们选择之前的一个小时和之后的一个小时,即上午8:00-10:30,|Q|=5.这些时段q∈Q用来解决潜在的时间周期性转移.此外,我们使用LSTM来处理每天p∈P的序列信息,其公式如式(5)所示:
(5)
其中,是区域i预测时间为t在前p天中的时段q的表示.
我们采用一种注意力机制来捕获时间的变化,且获得了前几天的每一天的加权表示.形式上,前几天的每一天的表示是每个所选时段q的加权和,其定义如式(6)所示:
(6)
其中,权重衡量了在p∈P这天时段q的重要性.通过对比从LSTM得到的时空表示(见公式(2))和前一个隐状态得到的,其计算就使用了注意力机制,其计算如式(7)所示:
(7)
参考文献[16],注意力分数的定义可以视为基于内容的函数:
(8)
其中,WH,WX,bX,v是参数,vT是v的转置.对于之前的每一天p,我们得到一个周期表示然后,我们使用另一个LSTM用这些周期表示作为输入,保存序列信息,即
(9)
我们将最后一个时段的输出作为时间动态相似性的表示(即长期周期信息).对应我们的框架图,图1(a)可看作是有分支的堆叠的LSTM,每个分支求解出每天的隐层状态加权和,主LSTM利用该加权和进行预测.
3.2.4 联合训练
我们将短期依赖hi,t和长期依赖拼接得到对于预测区域和时间来说既保留了短期依赖又保留了长期依赖.对应于图1(b),即将第t天的短期依赖和t天之前的长期依赖通过图1(b)中的加号连接起来,然后我们将输入到全连接层,获得每个区域i流入和流出流量的最终预测值,分别表示为和最终预测函数定义如式(10)所示:
(10)
其中,Wfa和bfa是参数.由于我们做了归一化操作,因此模型的输出范围是(-1,1).
由于我们同时预测各个区域的出发和到达流量,本文模型的损失函数定义如式(11)所示:
(11)
其中,参数λ的作用是平衡流入和流出的影响.区域i在时间t+1实际的流入和流出流量分别表示为和
4 实验及分析
4.1 数据集
本文为了研究模型的性能,使用两个NYC的大型数据集.这两个数据集都包含各自的行程记录,详情如下:
NYC-Taxi:NYC-Taxi数据集包含2015年纽约市从2015年1月1日-2015年3月1日的22,349,490个出租车的出行记录.在实验中,我们使用2015年1月1日-2015年2月10日(40天)的数据作为训练数据,剩下的20天作为测试数据.
NYC-Bike:NYC-Taxi数据集包含2016年纽约市从2016年7月1日-2016年8月29日的2,605,648个自行车的出行记录.我们使用前40天的数据作为训练数据,剩下的20天作为测试数据.
4.2 数据处理
我们将整个城市划分为10×20个区域.每个区域的大小约为1km×1km.每个时间间隔的长度设为30min.我们使用最大-最小归一化将交通流量转换为[0:1]规模.预测后,对预测值再进行反归一化并进行评价.我们在训练和测试数据上使用滑动窗采样.在测试模型的时候,过滤掉体积值小于10的样本,这是工业界和学术界普遍使用的做法[14].由于在实际应用中,关注低流量没有太大的意义.我们选择80%的数据用于训练模型,剩下的20%用于验证.
4.3 评价指标
为了评估STAN模型的预测性能,我们使用两个常用的指标:
1)平均绝对百分比误差(MAPE)
(12)
2)均方根误差(RMSE)
(13)
其中,是预测值,yi是真实值.
4.4 baselines
1)历史平均模型(HA)
2)自回归移动平均模型(ARIMA)
3)极端梯度提升(XGBoost)
4)多层感知机(MLP)
5)Convolutional LSTM(ConvLSTM)[17]
6)DeepSD[18]
7)ST-ResNet[19]
4.5 参数设置
我们基于验证集的性能设定超参数.对于空间CNN卷积部分,我们将卷积核大小设置为3×3,64个过滤器.每个邻域的大小设置为7×7.层数K=3,对于交通流考虑的时间跨度l=2.对于时间LSTM部分,将短期LSTM长度设为为7(即前3.5个小时),长期周期信息|P|=3(即前3天),周期性注意力转移机制|Q|=3(即考虑相对于预测时间的前后半小时),LSTM的隐藏层的维数设为128.模型STAN使用Adam进行优化,batch size为64,学习率为0.001.LSTM中的dropout为0.5.λ设置为0.5.
4.6 实验结果
表1和表2展示了我们的方法与其他方法在两个不同的数据集上的对比结果,从表中可以看到我们提出的STAN在数据集上实现最低的RMSE和MAPE,显著优于其他方法.
表1 与其他方法的对比(NYC-Taxi)
Table 1 Comparison with other methods
表2 与其他方法的对比(NYC-Bike)
Table 2 Comparison with other methods
实验结果表明,传统的时间序列预测方法(HA和ARIMA)效果不佳,因为它们仅依赖于预测值的历史记录,而忽略了空间和其他上下文特征.对于基于回归的方法(XGBoost),其进一步将空间相关性视为特征,因此,与传统的时间序列方法相比,它获得了更好的性能.然而,由于其无法捕捉到复杂的非线性时间依赖和动态空间关系.因此,我们提出的方法明显优于那些基于回归的方法.
对于基于神经网络的方法,STAN优于MLP,原因是MLP没有显示地建模空间依赖和时间序列依赖.ConvLSTM通过将卷积运算集成到LSTM单元来扩展全连接的LSTM,以捕获空间和时间信息,然而,这个模型忽略了动态空间相似性和周期性的时间平移.我们提出的模型的良好性能证明了门控机制和周期性注意力转移机制在捕获动态时空相似性方面的有效性.
5 结 语
在本文中,我们提出了一种新的时空注意力网络(STAN)用于交通预测.我们的方法通过门控机制学习区域间的动态相似性,并通过周期性注意力转移机制来处理长期周期时间转移现象.在数据集上的评估结果表明,该模型优于其他方法.此外,该模型可以帮助交通管理者了解交通状况,为他们的决策提供参考.在未来,我们计划在其他时空预测问题上研究所提出的模型.