2.2 MDL[21]
这项针对道路交通状态时空序列的预测问题的研究,属于多任务深度学习(Multi-Task Deep Learning,MDL),能够对网格单元的inflow和outflow,以及网格单元之间的流量(区间流)(Transition Flow)进行同步预测。
如图2-5所示,每个网格单元不仅有inflow和outflow两个交通状态特征,同时,在网格单元之间也存在着流量的传递,称为Transition Flow。对于Transition Flow的预测,相当于道路交通领域的起点(OD)预测问题,这种预测对于许多交通管理与优化调度问题都至关重要。这项研究就是针对inflow、outflow和Transition Flow的同步预测问题进行建模,以期得到一个多任务深度学习模型。
图2-5 inflow、outflow和Transition Flow示意图
2.2.1 问题提出
定义2.1 节点(node)。研究区域被划分为I×J个网格单元,令I×J=N每个网格单元代表一个节点,节点集合表示为。
定义2.2 轨迹(trajectory)。每条轨迹(由行人、机动车等移动对象产生)由一系列时序的定位点构成。轨迹上的任意一点由三元组表示,τ为时间戳,x,y为经纬度坐标。一条轨迹的起点表示为,终点表示为。所有已知轨迹数据的起点和终点对构成的集合表示为。
定义2.3 入流(inflow)和出流(outflow)。在任意一个时间间隔t内,任何一个节点ri的outflow和inflow表示为
式中,Xt(0,:)和Xt(1,:)分别表示时间间隔t内的outflow矩阵和inflow矩阵;Xt表示时间间隔t内的inflow/outflow张量(相当于2个channel的image);|·|表示集合“.”所包含元素的个数;∧表示逻辑“与”运算符号。
定义2.4 网格单元之间的流量(Transition Flow)。在任意一个时间间隔t内,任意一对网格(ri和rm)间流量表示为
定义2.5 网格单元之间的流量到tensor的转换。网格单元之间的流量反映的是任意一对网格单元之间的关系,并非类似于inflow、outflow属于网格单元自身的属性。属于网格单元自身属性的优点在于可以将其类比于image的channel,从而采用卷积等操作提取高阶特征。为此,下面对Transition Flow做了一些特别的变换,从而将网格单元之间的关系转换为等价的网格单元自身的属性,如图2-6所示。
依据图2-6(a)中的轨迹,首先提取出网格单元之间的流量拓扑图,如图2-6(b)所示,将其改造为图2-6(c)的方式,可以直观地看出每对网格单元之间的outflow和inflow,它们即反映了网格单元之间的流量关系,进一步参考图2-6(d)和图2-6(e),将每个网格单元与其他所有网格单元(含自身)之间的outflow和inflow全部视为不同的channel,这样就构造出了一张Transition Flow的image,也就是将转化为。
图2-6 Transition Flow到tensor的转换
定义2.6 预测问题。给定,预测。其中,分别表示t时段之前(含t时段自身)的个时段的inflow/outflow和Transition Flow切片序列。
2.2.2 预测模型
如图2-7所示,MDL上预测模型分为3个模块,分别是数据转换(Data Converting)模块、节点网络(NodeNet)模块和边网络(EdgeNet)模块。Data Converting模块负责从原始的移动对象轨迹中,提取每个网格单元在不同时段的inflow和outflow,以及不同网格单元之间的Transition Flow,并按照如图2-6所示的方式将其转化为tensor。NodeNet模块负责预测每个网格单元未来时段的inflow和outflow;EdgeNet模块则负责预测未来时段内,任意两个网格单元之间的Transition Flow。
模型的总体流程:首先,将移动对象的观测轨迹数据转化为inflow/outflow、Transition Flow的tensor数据。针对这两种类型的tensor数据,分别构建反映其长期(trend)、短期(period)和近期(close)趋势的交通状态切片构成各自的三股交通状态切片时间序列,即和。然后,使其分别通过一个2D图卷积为主体的深度神经网络,充分提取时空相关性表达的高阶特征,即。然后,通过一个Bridge模块,将这两个高阶特征的信息组合起来,再以一种门控机制(Gating Mechanism)结合外部信息(External Information)的特征,分别预测网格单元的inflow/outflow和网格单元之间的Transition Flow。下面进行详细的介绍。
图2-7 MDL预测模型总体架构
1. 时空特征提取模块3S-FCN
对于NodeNet模块和EdgeNet模块,都采用3S-FCN模块提取交通状态切片中的时空相关性,从而获取充分表达时空相关性的高阶特征。3S-FCN以反映长期、短期和近期的3股(3 streams)交通状态切片时间序列为输入。
对于NodeNet模块,其输入为分别反映长期、短期和近期3种趋势的网格单元inflow/outflow张量,分别表示为
式中,lq、lp、lc分别为长期、短期和近期考察的历史时段数;q、p分别为长期和短期的长度。
对于EdgeNet模块,其输入为分别反映长期、短期和近期3种趋势的网格单元Transition Flow张量,分别表示为
如图2-8所示,以NodeNet模块的Xtrend输入为例,输入的交通状态切片序列被作为一张大image,然后通过一个2D图卷积层做像素(网格单元)的特征维度转换,接下来陆续通过多个残差连接单元,充分提取时空相关性的表征,最后再根据输出的要求,将时空表征通过一个2D图卷积层,将像素特征维度转换为期望的维度。每个残差连接单元,依次由BN(Batch Normalization)模块、ReLU激活函数、2D图卷积模块3个部分串联组成。其中,残差连接单元和BN模块充分保证了深度模型的建模性能,防止深度模型的性能退化,具体内容知识请参见本书第3篇。
图2-8 时空高阶特征提取模块3S-FCN
由此,可以分别获得NodeNet模块和EdgeNet模块的多股交通状态切片序列各自的时空表征,分别为和。对于不同的网格单元,每股历史交通状态对其未来的影响程度可能是不同的,因此,接下来采用参数矩阵(Parameter Matrix)的方式分别对NodeNet模块和EdgeNet模块的多股交通序列表征进行参数化融合,即
式中,分别是可学习的参数;⊙为Hadamard积。
2. 多任务融合Bridge模块
在现实物理世界中,很显然,网格单元的inflow/outflow与网格单元之间的Transition Flow是直接相关的。例如,在某个时段内,某个网格单元的inflow恰好等于其他所有网格单元在同一个时段内与该网格单元之间的Transition Flow。因此,如果分别独立对inflow/outflow和Transition Flow进行预测,那么则忽视了这种直接相关性,为此,本研究在获得了NodeNet模块和EdgeNet模块的综合时空特征Xfcn和Mfcn之后,设计了一个Bridge模块,来融合这两个高阶特征,从而获得能够反映两种预测任务相关性的共用高阶特征表征H。此处的融合方式有以下两种。
(1)加和(sum)。将Xfcn和Mfcn对应的元素进行加和,从而形成新的tensor,用于未来的网格单元流量的预测。这种融合方式要求Xfcn和Mfcn的维度必须完全一致,否则无法完成元素级的加和。公式表达如下:
式中,C是的channel数目;。
(2)拼接(concatenate)。将Xfcn和Mfcn在特征维度上进行拼接,从而形成新的tensor。这种方式不要求Xfcn和Mfcn的channel一样。公式表达如下:
式中,是的channel数目;。
在得到了多任务融合后的综合特征表征H之后,根据NodeNet模块和EdgeNet模块各自预测任务的不同,分别将H通过各自的一个常规的2D图卷积层,从而获得各自预测任务的特征表征Hx和Hm。
3. 外部信息整合(Gating Fusion)模块
外部信息(如待预测时段所处的天是否为工作日、节假日;网格单元发生的事件、天气等)同样对于网格单元内未来交通状态的预测有着很大的影响。为此,在最终对未来时段交通状态进行预测之前,应考虑整合外部信息。该研究采用了一种门控机制(Gating Mechanism)来整合外部信息对未来时段交通状态预测的影响。下面以NodeNet模块为例,阐述外部信息的门控整合机制。
首先,因为要预测的未来时段为t+1时段,所以,需要了解t+1时段的外部信息(这里表达为为每个网格单元外部信息的特征维度)。对于t+1时段所处的天是否为周末、节假日等外部信息,很容易知道,可以采用One-Hot Encoding的方式进行编码,然后通过小型(如2层)的全连接神经网络,将其嵌入抽象的特征空间中;对于t+1时段的天气、事件等,可以根据天气预报、事件预报等获取相关信息,同样依据小型全连接神经网络进行嵌入式(embedding)编码。最终,将所有嵌入后的抽象特征拼接在一起,构成最终的维外部信息表征。然后,根据t+1时段的外部信息表征,计算每个网格单元的门控值:
式中,分别是可学习的参数;σ(·)为σ激活函数。可见,任意网格单元的门控值生成,都采用了一个不同参数的全连接层。当然,如果为了减少参数量,可以尝试所有网格单元共享一个相同参数的小型全连接网络来生成相应的门控值。
有了网格单元对应的门控值之后,重新生成用于预测的高阶特征如下:
依据相同的方式,可以获得EdgeNet模块对应的门控值和重新生成的用于预测高阶特征。
4. 最终预测模块
依据最终得到的综合高阶特征Fx和Fm,可以对未来t+1时段的inflow/outflow和Transition Flow做出预测,公式表达如下:
式中,Wx、bx、Wm、bm为所有网格单元所共享的可学习参数。
5. 损失函数(Loss Function)
MDL网络是将NodeNet模块和EdgeNet模块组合在一起进行训练,因此,它的损失函数一共由以下3个部分组成。
(1)NodeNet模块部分损失函数
式中,ψ为NodeNet模块的参数集;‖·‖2为张量的2-范数。
(2)EdgeNet模块部分损失函数
式中,Θ为EdgeNet模块的参数集。
(3)NodeNet模块和EdgeNet模块二者关系损失函数。应注意到,理论上任意时段任意网格单元的outflow,应该等于其与其他网格单元之间的Outgoing Transition Flows的和;而任意时段任意网格单元的inflow,应该等于其他网格单元与其之间的Incoming Transition Flows的和。因此,有如下约束:
(4)目标函数。依据上面3个部分的损失函数,构建最终的MDL训练目标函数如下:
式中,λnode、λedge、λrelation是3个事先指定的超参数,反映了3个部分损失函数在整体目标函数中所占的权重。
2.2.3 训练算法
算法2-2给出了算法的整体流程,主要分为两个部分:①构建训练数据集(1~10行);②从训练数据集中任意选取一个小batch的训练集,采用反向传播算法和Adam优化器,进行参数学习(11~15行)。
算法2-2 MDL训练算法