基于分割注意力机制残差网络的城市区域客流量预测

2022-08-19 01:33李伯涵郭茂祖赵玲玲
智能系统学报 2022年4期
关键词:客流量功能区残差

李伯涵,郭茂祖,赵玲玲

(1.北京建筑大学 电气与信息工程学院,北京 100044;2.北京建筑大学 建筑大数据智能处理方法研究北京市重点实验室,北京 100044;3.哈尔滨工业大学 计算机科学与技术学院,黑龙江 哈尔滨 150001)

流量预测是实现城市交通智能管理的基石,是构建未来智能交通系统(intelligent transportation system,ITS)的必要技术支撑,其核心是实时准确地预测城市不同尺度区域人流的分布和流向,为城市规划、交通管理、安全防护、个体化服务提供可靠依据,从而减少拥堵,提高交通效率,并为公共安全应急管理提供早期预警,优化城市交通系统的效率和城市居民的出行体验[1-2]。

在城市交通流量预测的相关研究中,乘客流量的预测实质上就是基于人流特征的预测,有些针对人流的预测,根据人流分布空间的不同可以分为主要道路上的人流量[3]预测和整个城市范围的人流量预测。其中,道路上的人流速度、人流量的研究主要面向部分路段,而不是整个城市范围,因此该类研究与交通流量预测更为相关[4]。城市范围[2]的人流量预测又根据预测范围的尺度和形状差异可以分为针对单个区域和针对整个城市的研究。针对单个区域预测的模型[5],多采用较为复杂的方法以划分出不规则的区域,并借助马尔科夫模型进行预测。针对整个城市的人群预测[6-7]往往采用多源大数据进行分析。

机器学习框架下的客流量预测方法差别在于预测对象和预测依据。有些研究[8-10]只针对短期客流进行预测,不具备迁移能力和普适性。有些研究[11-12]利用了深度学习、迁移学习等手段对不同区域客流进行预测,但没有考虑突发性活动与周期性、趋势性活动的差异。研究[13]考虑了活动的周期性,同时利用起点—终点(origin-destination,OD)客流数据的区域上下文对活动地区进行建模,但是忽略了人群活动中有很大一部分属于突发性活动,同时没有考虑外部因素的影响。

预测客流量也可以建模为时间序列的预测问题。历史平均(historical average,HA)模型[14]比较简单,该模型仅使用历史时间序列的平均值,来预测未来时间序列的平均值。然而,该模型无法对动态事件(如交通事故等突发事件)做出响应。自回归滑动平均模型(autoregressive integrated moving average model,ARIMA)假设未来时间序列的值,是历史值的线性组合与残差,因此,为了获得稳定的结果,非稳定的时间序列在分析之前需要特殊处理[15]。自回归滑动平均模型不适合处理有缺失值的时间序列,因为它依赖于非缺失时间序列数据,随着应用场景复杂度的提高,数据填补技术将不能满足需求[16]。在使用自回归滑动平均模型之前,额外的周期性差异通常应用到周期 性时间序列中以获得稳定的结果,称之为周期性自回归整体滑动平均模型(season autoregressive integrated moving average,SARIMA),其不足之处在于它具有较大的时间复杂度[17]。向量自回归模型(vector autoregressive,VAR)能够捕捉非相关时间序列的线性依赖[18],但是该模型没有考虑到预测值和残差之间的关系。

Zhang 等[19]定义了区域数据的流入量流出量概念,并且把空间依赖性分为长距离空间依赖和短距离空间依赖,将乘客人群流动的时间特性归纳为3 类:临近性、周期性和趋势性,利用不同时空特性的三模块时空残差网络和外部特征网络,从多源数据中提取与客流量变化密切相关的抽象特征表示,具有较好的预测性能。但是,该方法忽略了不同城市功能区对客流量变化的显著影响,同时,更为有效的深度学习机制也有助于模型能力的进一步提升。

针对上述问题,本文构建了基于分割注意力机制的残差网络(residual split-attention network,ResNeSt),形成深度时空分割注意力机制残差网络框架(spatio-temporal split-attention networks,STSANet),面向整个城市范围内的乘客人群进行流量预测。引入分割注意力模块,实现了跨不同特征图组的注意力机制,进而更深入地发掘城市不同时空区域间多模态数据的特征和关系[20]。同时,除了对小区域客流量的时空关联进行挖掘之外,在城市客流量时空数据中增加了“城市功能区属性”这一新特征,捕捉各区域客流量变化与所处城市功能区之间的关联关系,同时结合外部特征数据形成多模态数据集,进而提升客流量预测模型的准确性。

1 相关工作

Zhang 等[19]提出深度时空残差网络(spatiotemporal residual network,ST-ResNet)的客流量预测,首先定义了区域数据的流入量流出量概念。将每个时间间隔内的流入量和流出量转化成类似于图像的双通道矩阵,并按照时间尺度分为3 类:临近时间段、较近时间段和遥远时间段,然后将3 个时间段的人流矩阵输入到不同的模块中进行建模,从而提取客流群体活动所具备的邻近性、周期性和趋势性。

在此基础上,Zhang 等采用深度时空残差网络模型来进行特征表示学习和预测。该网络包括3 个主要的残差网络模块,共享相同网络结构。每个模块的输入都是一个矩阵X。以邻近性模块为例,一个时间间隔内的数据可以表示为

式(1)称为邻近性依赖矩阵,其中lc为时间间隔,c下标代表了卷积层,然后按照时间轴将其连接为一个矩阵:∈T2lc×I×J。其中T2lc×I×J表示维度为 2lc×I×J的矩阵的集合,随后输入到一个卷积单元:

每一个卷积操作中堆叠L个残差单元,即:

式中:F是残差方程(即两个ReLU 和卷积的组合),θ(1)包括所有第l层需要学习的参数。同样,在ReLu 之前,使用批归一化(batch normalization,BN)。在顶端的第L层残差单元输出为

将3 个模块的结果进行拼接,调用Tanh 激活函数,结合外部因素模块,最终计算Loss 值,训练得到城市区域客流量预测模型。

2 城市区域客流量预测

本文以城市区域的流入流出量、当前城市功能区域分布、天气节假日等外部特征3 类异构数据来源为基础,以Deep&Wide 网络为框架,提出包括4 个主要网络模块的多源时空客流量预测方法。

为了更好地提取与城市区域客流量相关的特征,以ST-ResNet 框架为基础,在空间依赖性、时间依赖性以及外部因素之上,引入“城市功能区属性”作为重要的特征。其原因在于不同时段的客流量变化与区域功能属性密切相关。如工作日的上班早高峰时间段,住宅区和商业区的人口密度与客流量变化会明显多于其他功能区。同时,以ST-SANet 来提取区域客流量的时空抽象特征。

2.1 基于ST-SANet 网络的区域客流量预测模块

将数据集划分为邻近时段(Xclose)、较近时段(Xperiod)、遥远时段(Xtrend)数据,采用ST-SANet 分别对活动邻近性、周期性、趋势性进行建模,动态聚合3 个网络模块的输出,为不同模态的特征分配不同的权重。采用全连接网络对节假日、天气等外部影响因子进行建模。最后将得到的特征进行拼接,利用激活函数实现对小区域客流量的预测,整体结构如图1 所示。

图1 分割注意力机制残差网络结构图Fig.1 Structure diagram of split-attention residual network

2.1.1 带有城市功能区域属性的流入流出矩阵构建

输入为表征小区域流入流出量、功能区域属性的8 维向量:Xt=(fint,foutt,Func,t)形成的矩阵,其中 fint、foutt分别代表t时刻区域流入量以及流出量,Func,t为6 位one-hot 编码向量,表征了功能区域属性。

本文根据北京市经纬度范围将整个市区划分为32 ×32 个栅格区域,参考北京市功能区分布将各区域划分为“居住区”、“商业区”、“文教区”、“行政区”、“休闲区”。每个栅格内选取比重较大的一至三类功能区属性作为划分依据,如图2 所示。

图2 城市功能区划分示意图Fig.2 Schematic diagram of urban functional area division

将包含了城市功能区特征和时空流入流出量信息的数据,绘制成流入量流出量热力图[21-22],按照时间轴分成较近时间段、临近时间段以及遥远时间段3 类,然后将3 类数据输入到对应的模块中进行建模,从而提取前述的活动邻近性、周期性以及趋势性。3 个模块共享相同的网络结构,且彼此相互独立,都采用了卷积神经网络、残差单元序列、分割注意力机制模块结构。相较于原始模型,改进后的结构能够更动态地提取影响程度较大的数据特征,更准确地捕捉数据中的潜在关联性[23]。

为前3 个主要模块的输出分配相应的权值后,融合为一个结果矩阵。然后将主要模块的结果矩阵与外部特征模块的结果矩阵进行拼接。最后用Tanh 函数将融合后的输出映射到区间[-1,1]中。在反向传播中,Tanh 函数比标准逻辑函数收敛得更快[24]。

2.1.2 ST-SANet 构架

图1 展示了ST-SANet 的架构,模型的主体为上半部分的3 个模块,分别对邻近性、周期性、趋势性进行建模,每个模块由两个主要子模块组成,分别是残差单元和分割注意力机制模块。整个城市范围内的数据量非常庞大,同时包含许多不同属性的区域,使得抽象数据中隐藏了大量多元化的特征信息,本文在残差网络算法(residual network,ResNet)的基础上引入了分割注意力机制,使模型具备了多模态数据特征提取的能力,进而深入地发掘了更多维度数据信息。通过在ResNet 结构中堆叠分割注意力机制模块,形成了新的ResNet变体ResNeSt[25]。它保留了整个ResNet 结构,以便直接用于下游任务,而不引入额外的计算成本。

分割注意力机制模块中同一层的多个卷积核相互独立,可以各自提取特征,使得模型具有提取多元化信息的特性。

残差模块输出为维度h=32、w=32、c=8 的矩阵X∈Th×w×c,并作为分割注意力机制模块的输入,ResNeSt 算法中的特征图组与ResNeXt 算法[26]相似,特征可以分为若干组,特征图组的数量由超参数K提供[27-29],以此种方式将输入的特征分成了若干基组(Cardinal 组),如图3 所示。

图3 分割注意力机制模块Fig.3 Model of split-attention

在每个相互独立的基组中,又把输入分成了多个分支,每个分支的注意力层能够提供捕捉特征相关性的网络机制,通过引入自注意力机制实现特征分支间的权重分配,如图4 所示。

图4 组群中的注意力机制分支Fig.4 Branches of Split-attention in groups

此处涉及了第二个超参数R,将特征分成了若干基组的组内分支(Radix 分支),后文简称为“组内分支”,使得模型能进一步地提取具有多元化属性的特征。

在组内分支中首先将特征求和并进行全局池化操作,然后使用卷积等操作进行权重系数的分配。第一组卷积的输出维度为4 维,作为缩放系数用于减少参数量;第二组卷积的输出维度通道数乘以组内分支数,保持了与组内分支特征层相对应的维度。为了确保组内分支间特征层的权重独立分布,使用n-Softmax 对各组内分支的权重分别计算,最后将各组对应的特征层与注意力系数相乘再求和。

上文提到的超参数R描述了基数组内的分支模块数目,因此特征组的总数为G=K×R

并应用一系列变换 {F1,F2,···,FG}得到每个单独的组,各组的中间量表示为u:

基组可以通过多个组内分支逐元素求和来获得,其中第k个基数组表示为

超参数R代表了分支数量,h、w和c分别是模块输出特征图的维度参数。可以使用全局平均池化来收集嵌入式通道(embedded channelwise)中全局上下文信息[30]。第c个分量S的计算公式为

把每个基数组的输出拼接在一起,又经过一层1×1 的卷积层,最终输出一个与输入同为h、w、c维度的特征矩阵Xw×h×c,并传递给下一模块。

2.1.3 参数矩阵融合

使用下述方法融合图1 中3 个主要模块的输出:

式中:“ °”是阿达玛乘法(即元素间相乘),参数Wc、Wp和Wq分别表征了邻近性、周期性和趋势性的影响程度。

2.2 融合外部特征的客流量预测

在外部因素模块中,本文把与时空数据时间相对应的完整外部数据(天气数据和节假日数据)输入到一个两层的全连接神经网络中,以获取天气和节假日特征对区域客流量的影响[31]。

用Et表示预测时间节点t的外部因素特征向量,包括了天气、节假日、工作日等信息。与时空数据预测方式相似,使用t-1 时刻的数据近似预测t时刻的外部因素情况。输出的Et需要经过两个全连接层,第一层可以理解为每个子因素的嵌入层,后面连接一个激活函数。第二层则可以理解为是将低维向量映射到高维空间。

最终把外部因素模块和主要的模块进行融合,如图1 框架图所示。预测得到t时间的区域客流量预测值:

式中的Tanh 为双曲线切线函数,保证了输出的范围在-1 到1 之间。

2.3 ST-SANet 模型训练过程

算法1 ST-SANet 模型

输入流入、流出量数据XRes、预测时间点真实数据XReal,外部特征数据XExt。

输出经过训练得到各项模型参数。

1) 按照距离预测时间点的时间间隔划分数据集;

2)将流入流出量数据通过预卷积层:

3) 外部特征数据经过两层全连接后得到结果Et:

4)将预卷积层结果输入到ResNeSt 模块:

邻近性模块:

5)将邻近性、周期性以及趋势性3 个模块的输出进行全连接后生成Xt;

6)拼接Xt与Et后,经过Tanh 激活函数得到预测结果;

7)按照公式计算loss 值:

反向传播更新网络参数。

本实验在16C32G 服务器环境下,平均训练时间为47 h 16 min。

3 实验设置与结果分析

3.1 数据集

本文以公开的真实数据集—北京出租车数据集(TaxiBJ)[32]以及对应的北京气象信息、节假日等数据(BJ_Meteorology)为基础对客流情况进行预测。TaxiBJ 数据集为h5 文件,包括“date”和“data”两个字段,分别表示数据集的时间、以及流入流出量数据。该数据集涵盖了4 个时间范围的数据,分别是2013 年7 月1 日~10 月30 日;2014年3 月1 日~6 月30 日;2015 年3 月1 日~6 月30 日;2015 年11 月1 日~2016 年4 月10 日。4 年的数据集的形状分别为(4888,2,32,32)、(4780,2,32,32)、(5596,2,32,32)以及(7220,2,32,32),其中数据第一位代表总数据量,第二位的二维数组分别代表了该区域的流入量和流出量,第三、四位代表了32×32 的栅格网络区域。时间戳的间隔设定以30 min 为单位。

图5 为TaxiBJ 数据集中某时间节点的流入流出量热力图,其中(a)图为流入量热力图,(b)图为流出量热力图。

图5 流入流出量数据热力图Fig.5 Heat map of inflow and outflow data

3.2 评估指标

本文选择均方根误差(RMSE)作为框架的衡量标准,从而评估算法预测结果的准确性。均方根误差的公式为

式中predicted 为预测量,actual 为真实量,分别对应了各时间段、各区域出租车客流量的流入流出量的预测值以及真实值。进而对模型的预测准确度进行评估。

3.3 实验关键参数设置及相关代码

本文提出的新模型经过多次实验的沉淀,最终获得的参数设置如表1 所示。论文中代码见文献[33]。

表1 实验参数表Table 1 Experimental parameters table

续表1

3.4 对比实验的设置与分析

3.4.1 对比实验的设置

实验过程中随机选择了数量为8 周的数据作为测试集,剩余数据为训练集。选取了ST-ResNet 和DeepST[34]两种人流量预测模型和ARIMA、SARIMA、VAR、RNN、LSTM、GRU 等主流时间序列预测模型作为对比模型。

HA计算对应时间区间的所有历史输入流和外出流的平均流量。例如:周二上午9:00~9:30,对应所有历史数据中所有周二上午的9:00~9:30。

ARIMA[35]自回归滑动平均(ARIMA),著名的预测时间序列的模型。

SARIMA[36]季节性ARIMA,在ARIMA 的基础上,SARIMA 考虑了季节特性,能够同时学习时间邻近性和周期性。

VAR向量自回归模型(VAR)能够捕捉成对乘客流量之间的关系,但由于参数规模十分庞大,致使时间复杂度较高。

ST-ANN抽取空间(周围8 个区域的值)和时间(前8 个时间区间)的特征作为模型预测的依据。

DeepST面向时空数据的深度神经网络(DNN)预测模型,在交通领域数据预测问题上展示了较好的特性。

RNN[37]递归神经网络是一种深度学习模型,能够较好捕捉时间依赖性,可用于训练不同维度的时间序列数据。本文的实验中,分别选取了长度为3、6、12、24、48、336 的输入序列作为对比实验。不同的序列长度预测效果不尽相同,例如当序列长度选取48、时间间隔为30min 时,数据的时间依赖性为24 h。因此,有6 种RNN 的变种:RNN-3、RNN-6、RNN-12、RNN-24、RNN-48 和RNN-336。

LSTM长短记忆单元网络(LSTM)[38]是一种特殊的RNN,能够学习到较长的时间依赖。与RNN 的设置相同,做了6 种LSTM 的变种实验,即LSTM-3、LSTM-6、LSTM-12、LSTM-24、LSTM-48 和LSTM-336。

GRU[39]门递归单元网络,是一种新的RNN,能够捕捉较长的时间依赖。与RNN 的设置相同,有以下6 种GRU 变种作为对比实验:GRU-3、GRU-6、GRU-12、GRU-24、GRU-48 以及GRU-336。

3.4.2 对比实验的结果与分析

与上述模型的对比实验结果如表2 所示。

表2 TaxiBJ 数据集下的各个模型RMSE 对比实验Table 2 Comparison of RMSE results of various frameworks under Taxibj dataset

从表2 可以看出,本文提出的ST-SANet 准确率明显优于所有的对比方法。含有12 个残差单元和分割注意力机制模块的ST-SANet 优于DeepST等传统算法约22%以上,优于RNN 约40%以上,优于LSTM 约31%以上,优于GRU30%以上,优于ST-ResNet 约6%。

ST-ANN 和VAR 也采用了时空数据进行模型训练,但是性能都不及ST-SANet 模型,因为它们只是考虑了较近时间段以及邻近时间段信息。对于时间序列模型而言,GRU 和LSTM 的RMSE 性能相似,且均优于RNN,但是都不及ST-SANet 模型,其原因在于GRU 和LSTM 都能够捕捉较长的时间依赖性,但不具备提取多元化特征的能力[40]。

3.5 消融实验

3.5.1 消融实验设置

为了验证分割注意力机制模块以及城市功能区划分对模型的性能影响,本文针对ST-SANet,构造了未引入城市功能区特征的消融版模型STSANetRib,未引入分割注意力机制的消融模型ST-ResNet,以及未引入分割注意力机制及城市功能区特征的消融模型ST-ResNetRib。

3.5.2 消融实验的结果与分析

4 个模型的预测结果如表3 所示。

表3 消融实验对比结果Table 3 Comparison results of ablation experiments

从消融实验对比结果表中可以看出,首先对于城市功能区划分的消融实验,无论是改进后形成的ST-SANet 模型,还是原始的ST-ResNet 模型,引入城市功能区划分后的预测效果都有显著提升,说明了城市功能区特征在很大程度上影响着客流量的预测。同时,功能区特征对传统模型ST-ResNet 的提升略小,也侧面说明针对多模态特征的数据集,ST-SANet 更具有优势。

其次,在分割注意力机制模块的消融实验中,无论是否在多模态数据集下,引入了分割注意力机制的ST-SANet 模型的预测精度均明显优于传统的ST-ResNet 模型,并且面对复杂数据集时,模型精度的提升更为明显,说明分割注意力模块能够有效提升预测的准确率,同时能够更好的从多模态数据集中提取多元化特征。

3.6 实验结论

引入城市功能区属性的数据集,包含了各时段各区域的客流量变化信息,并且在一定程度上反映了与区域相关的活动语义。不同的人群活动会发生在不同的区域,比如“上班”会发生在工作区,那么引入功能区划分这一特征,就可以提取各时段不同功能区乘客群体的活动规律,从而提升模型的预测精度。实验中相同模型下,引入了城市功能区属性的数据带来的预测结果要优于原始数据的预测结果。

面对多模态数据集,引入分割注意力机制模块能够更好地提取多样化的特征。并且人群活动的成因十分复杂,不同区域、不同类型乘客群体活动的原因和规律具有明显差异,注意力机制模块能够动态地分析各种场景的乘客群体活动,挑选影响程度较高的特征,同时能够更好地捕捉多模态数据间的潜在关系,这无疑是模型性能提升的主要原因。

4 结束语

针对城市各区域客流量预测问题,本文将城市区域的功能属性作为重要特征,采用分割注意力机制残差网络算法,提取城市中任意两个区域之间的相互关系;采用包含区域功能属性的历史时空数据,以及节假日、天气等外部特征数据进行训练,能够更好地捕捉多模态数据之间的时间依赖、空间依赖、地区属性依赖以及外部因素的影响;在真实数据集上与10 种类似算法进行对比,结果充分说明了本模型具有更高的准确性。

在未来的工作中,本文将会基于扩张卷积算法,探究空间上的近距离、远距离数据依赖对于预测的影响程度,以减轻无效数据对模型性能造成的负面影响。

猜你喜欢
客流量功能区残差
基于残差-注意力和LSTM的心律失常心拍分类方法研究
基于双向GRU与残差拟合的车辆跟驰建模
基于数据挖掘的景区客流量预测模型研究
基于残差学习的自适应无人机目标跟踪算法
山西省2017年地表水功能区水质现状评价分析
基于深度卷积的残差三生网络研究与应用
地铁开,玩起来
基于灰色预测理论在交通枢纽客流量的实际应用
基于灰色预测理论在交通枢纽客流量的实际应用
陕西省未来五年将建粮食生产功能区2700万亩