2.3 MF-STN[22]
根据2.1节和2.2节的研究,大致可以总结出采用深度学习进行道路交通状态时空序列预测时的基本框架如图2-9所示。其输入为历史的交通状态切片序列(,其中,为历史切片序列长度,N为网格单元数,F为观测特征维度),输出为未来的交通状态切片序列(,其中,为未来待预测切片序列长度。特别地,当预测为单步预测时,)。中间包括两个核心的模块,分别是时空特征学习器(ST-Feature Learner)和预测器(predictor)。例如,在2.1节ST-ResNet的研究中,trend、period及closeness模块共同组成了ST-Feature Learner,完成了时空特征的高阶表征的学习,最后的tanh层则扮演了predictor的角色。
图2-9 道路交通状态时空序列预测的基本框架
在2.1节和2.2节的研究中,所有网格单元都共享同一个predictor,也就是每个网格单元用于预测未来交通状态的tanh层的权重和偏置参数都是相同的。然而,在现实中,每个网格单元代表了不同的地理位置,往往具有不同的功能。例如,某个网格单元可能以居住区为主,更多是满足人们的居住需求;而其他一些网格单元可能主要以商业区为主,更多是人们工作、购物的场所。不同的功能决定了网格单元的交通状态特性天然的存在异质性(heterogeneity),采用相同参数的全连接层对其进行预测并不有效。
这项针对道路交通状态时空序列预测问题的研究,最大的特色是在预测模型的建立过程中,考虑了每个网格单元的异质性,即对不同网格单元未来交通状态的预测采用了不同的预测器(Region-Specific Predictor),而非所有网格单元共享同一个参数集合的预测器(Shared Predictor)。
2.3.1 问题提出
将研究区域划分为I×J个网格单元,令。每个网格单元观测的交通状态特征的维度为。预测问题定义为:已知过去个时段的交通状态序列切片,预测未来个时段内的交通状态序列切片。
2.3.2 预测模型
如图2-10所示,MF-STN预测模型[22]包括两个部分:时空特征学习器和独立网格单元预测器(Region-Specific Predictor)。前者负责提取历史交通切片序列中的时空特征,从而生成每个网格单元特征的高阶表征(维度为nf的向量),进而将每个网格单元的高阶表征输入到后者之中,独立预测每个网格单元未来的交通状态。
图2-10 MF-STN模型
1. 时空特征学习器(ST-Feature Learner)
ST-Feature Learner负责提取历史交通切片序列中的时空相关性。这里可以采用2.1节ST-ResNet模型中的常规2D图卷积与ResUnit相结合的模块,也可以采用2.2节MDL模型中的3S-FCN模块,又或者之后章节中会看到的各种对ST-Feature Learner的不同实现。ST-Feature Learner的输出表示为
2. 独立网格单元预测器(Region-Specific Predictor)
在2.1节和2.2节的研究中,在通过ST-Feature Learner得到历史交通切片序列高阶时空表征后,会将每个网格单元的高阶表征向量均输入到一个共享参数的predictor中(一般为一个或多个全连接层),从而对该网格单元未来交通状态做出预测。如前所述,这种方式没有考虑到每个网格单元的异质性,为此,这里需要针对特定的网格单元,设计独立的、特有的predictor,而非全部网格单元共享一个predictor。
为了构建网格单元独立的、特有的predictor,研究将该问题类比于推荐系统领域研究中的协同过滤问题(Collaborative Filtering),也就是将网格单元及其对应的全连接预测网络参数分别类比为用户和商品,进而参数的取值可类比为用户对商品的评分。
基于上述思想,本研究构建了基于矩阵分解的全连接预测神经网络(Matrix Factorization Based Fully Connected Network Predictor),它包含了多个基于矩阵分解的全连接层(MFDense),如图2-11所示。
图2-11 独立化网格单元交通状态预测器:(a)区域独立预测器;(b)MFDense网络
图2-11(a)展示了区域独立预测器的整体架构,由m个MFDense层和ReLU激活函数组成,以ST-Feature Learner的输出F为输入,预测每个网格单元未来的交通状态。公式表达如下:
式中,表示预测的第i个网格单元未来的交通状态;为第i个网格单元的predictor中的第l个MFDense层;为第i个网格单元的时空高阶表征。
图2-11(b)展示了MFDense层的细节。针对特定的第l个MFDense层,全部网格单元对应的参数表示为,其中分别表示第l个和l+1个MFDense层输出的特征维度。注意:这里没有设置偏置参数,当然读者可以添加相应的偏置参数,从而构建更为完整的全连接神经网络。进一步,将3D tensor reshape为2D tensor (其中,),这样矩阵中的每列都表示一个特定网格单元对应该MFDense层的参数。
如果直接在MFDense层中使用参数矩阵,会造成以下两个问题:
(1)参数量巨大。在过去研究所提出的深度交通状态时空预测模型中,所有区域predictor网络共用一组参数,那么特定的predictor层参数的规模是np,但为了实现Region-Specific的predictor,则特定的predictor层参数的规模是nr×np。通常情况下,区域的个数nr是很大的,这就导致了参数量的急剧增加,导致了训练困难的加剧,同时容易导致模型过拟合。
(2)无法体现出区域之间的相关性。区域与区域之间是有内在关联性的,功能相似的区域(如都是住宅区)可能会具有相似的参数集合,如果直接采用参数矩阵,则区域与区域之间的参数集合是完全相互独立的,无法体现这种内在关联性。
为此,本研究试图对特定MFDense层的参数矩阵进行分解,如图2-11(b)所示,将其做如下的分解:
式中,。
进行了矩阵分解之后,参数规模从原来的nr×np个变为(nr+np)×k个,发生了极大的下降,同时,这种每个网格单元的参数集合都由共享的R和P(一般被称为因子矩阵)生成,这在一定程度上就建立了不同网格单元参数之间的相关性,而非完全独立。
2.3.3 训练算法
MF-STN的损失函数定义如下:
式中,Θ为网络全部待学习的参数。
假定Region-Specific Predictor具有m个MFDense层,为第l个MFDense层的参数矩阵,将其按照如下方式进行矩阵分解:
式中,。
MF-STN的训练同样采用梯度下降结合反向传播算法。相应的梯度计算如下:
部分参数的梯度计算:,。
部分参数的梯度计算:,。
特征学习器部分的参数梯度计算:。
具体算法如算法2-3所示。
算法2-3 MF-STN训练算法