论文笔记--Fine-Grained Service-Level Passenger Flow Prediction for Bus Transit Systems

Fine-Grained Service-Level Passenger Flow Prediction for Bus Transit Systems Based on Multitask Deep Learning(TITS)

Research Objective

细粒公交服务级别的流量预测。也就是预测下一个短期间隔内通过每个车站的每个公交线路的每个服务的乘客总数。作者把研究目标从对站点级别对线路级别,提升到线路下不同公交服务(具体到线路上的哪一辆车)级别。

Problem Statement

细粒度服务级别预测挑战

①空间依赖性
不仅仅包含站点之间的依赖,同时还包含独特又复杂的路线之间的依赖关系。其中站点之间的依赖不仅存在相邻站点之间也存在与较远但功能接近的站点之间(例如一个旅游景点和另一个景点之间)。线路间依赖关系受线路间换乘的影响,可以反映了线路间客流的变化。
②时间依赖性
对站点内来说,站点未来的流量与自身站点历史的流量是存在一定联系的。同一线路不同公交服务之间也存在着时间依赖关系。
三内部和外部的干扰
外部因素例如天气,重大时间。内部因素,公交线路和车站的一些内部特征,站点周边功能区等。

建模问题挑战

①需要同时对到达的公交服务流进行建模,即预测在每个时间间隔内到达每个车站的公交服务数量
②线路级车载客流与线路级B/A(上车/下车)客流是相辅相成的,两者都需要明确建模。

居中内容

如图是同一线路的三辆公交服务,其中t1:(1,0),t1代表到站时间,1表示上车人数(B),0表示下车人数。线路级的B/A很容易得到,但是线路级的客流需要通过公交服务起点出开始的所有B/A流计算得到。

③实现细粒度SPFP的关键是捕获表中列出的各种复杂的时空依赖性.
第一,上车客流应该与公交服务流相关,因为更多的公交服务自然会带来更多的乘客。
第二,B/A客流直接影响车上客流,因为车上客流是根据一组B/A对得到的。
第三,换乘客流与B/A客流存在相关性,前者本质上是后者的一部分。

数据描述和初步分析

①数据集
数据集为济南大约3百万智能卡持卡人,327141公交车,再2018年11月到2019年1月数据。
数据集包含两个文件 16.6百万刷卡交易记录(包括卡号、线路号、登机站、登机时间、方位、公交车id),和相应的9.9百万公交到达时间记录(包含公交车ID,到达站及其经度和纬度,以及到达时间)。

②初步分析
a)站点间的空间相关性,从直观上看,邻近公交车站的客流应该具有很强的空间相关性。我们对同一公交线路的一对相邻站点在一定时间间隔内三个月的客流进行分析,其空间相关性较强,如图所示

b)线路间的空间相关性,不同的公交线路可以同一站交汇,为乘客提供换乘的机会。一般来说,一个公交车站包含的线路越多则更多的乘客将会被吸引到这个车站来换乘。

c)站点内的时间依赖,
分别分析了不同类型时间片段(近期)的站内时间相关性。

d)服务(车辆)之间的时间依赖,
下图为公交到达的标准差,最大标准差是137秒。

下图表示相邻两车的上车人数相关性。

e)载客流与公交服务流(汽车数)的相关性,下图表示载客流和服务流的关系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GILSxPmT-1632637345300)(6_10/2021-06-18-15-28-13.png)]
f)载客流和B/N(上下车流)的依赖性

g)B/A客流与中转客流的相关性,
绘制下车客流和从该节点下车并换乘到其他线路的乘客数量

总结起来就是

问题定义

定义一:站点V

将每一条线路来回组成一个向量存储在矩阵中,如上图。
( τ , l , s , φ ) (\tau, l, s, \varphi) (τ,l,s,φ)表示一个时空点, τ \tau τ表示时间戳, ( l , s ) (l, s) (l,s)表示站点 s s s,公交路线 l l l φ \varphi φ表示属于线路 l l l的特定公交服务。
a r = ( τ a r , l a r , s a r , φ a r ) a r=\left(\tau_{a r}, l_{a r}, s_{a r}, \varphi_{a r}\right) ar=(τar,lar,sar,φar)表示公交抵达的记录, A \mathbb{A} A表示所有公交抵达记录。 Φ \Phi Φ是所有出现在 A \mathbb{A} A的公共汽车服务, ( l , s ) ∈ r i j (l, s) \in r_{i j} (l,s)rij表示线路上的站点位于路网矩阵上点 r i j r_{i j} rij
定义二:抵达公交服务集合与流量 X X X
给定一组公交到达时间记录 A \mathbb{A} A和一个时间间隔序列 T T T。到达节点的公交服务集在路网 r i j r_{i j} rij上和时间区间 t t t可以被定义为 Φ t , i , j = φ a r ∈ Φ : ( l a r , s a r ) ∈ r i j ∧ τ a r ∈ t \Phi_{t, i, j}={\varphi_{a r} \in \Phi:\left(l_{a r}, s_{a r}\right) \in r_{i j} \wedge \tau_{a r} \in t} Φt,i,j=φarΦ:(lar,sar)rijτart

对应的总服务数量定义为 X t ( i , j ) = ∣ Φ t , i , j ∣ X_{t}(i,j)=|\Phi_{t,i,j}| Xt(i,j)=Φt,i,j
乘客的运动可以被记录为一个时间顺序的空间轨迹(一组上下车点),表示为 p b = ( τ p b , l p , s p b , φ p ) p_{b}=(\tau_{p_{b}}, l_{p}, s_{p_{b}}, \varphi_{p}) pb=(τpb,lp,spb,φp) p a = ( τ p a , l p , s p a , φ p ) p_{a}=(\tau_{p_{a}}, l_{p}, s_{p_{a}}, \varphi_{p}) pa=(τpa,lp,spa,φp),所有乘客轨迹用 P \mathbb{P} P表示。
定义三:上下车流 Y Y Y
给定一组乘客B/A组 P \mathbb{P} P和一个时间间隔 T T T。上下(B/A)车流属于路网 r i j r_{ij} rij上车辆 φ k \varphi_{k} φk在时间间隔 t t t被定义为

![](https://img-blog.csdnimg.cn/img_convert/9d23dfb36e10435b872a5624a7cb63cd.png)

进一步路线级别的B/A流可以定义为

![](https://img-blog.csdnimg.cn/img_convert/50dce79d448eb2c558a135a501f10518.png)

定义四:车上乘客流 Z Z Z
给定一组上下车对 P \mathbb{P} P和时间间隔 T T T序列,定义区间 T T T期间节点 r i j r_{ij} rij的车上客流服务为
Z t , k S ( i , j ) = ∑ t ′ = t 1 t ( Y t ′ , k S ( 1 , i , j ) − Y t ′ , k S ( 0 , i , j ) ) Z_{t, k}^{S}(i, j)=\sum_{t^{\prime}=t_{1}}^{t}\left(Y_{t^{\prime}, k}^{S}(1, i, j)-Y_{t^{\prime}, k}^{S}(0, i, j)\right) Zt,kS(i,j)=t=t1t(Yt,kS(1,i,j)Yt,kS(0,i,j))
线路级别的车上客流表示为
Z t L ( i , j ) = ∑ ∀ φ k ∈ Φ t , i , j Z t , k S ( i , j ) Z_{t}^{L}(i, j)=\sum_{\forall \varphi_{k} \in \Phi_{t, i, j}} Z_{t, k}^{S}(i, j) ZtL(i,j)=φkΦt,i,jZt,kS(i,j)
定义五:线路转车乘客流
给定一组上下车对 P \mathbb{P} P和时间间隔 T T T序列,让 ( p b , p a , p b ′ , p a ′ ) \left(p_{b}, p_{a}, p_{b}^{\prime}, p_{a}^{\prime}\right) (pb,pa,pb,pa)
表示同一乘客两个连续的B/A对。从 l i l_i li l i ′ l_i^{\prime} li在路网中 r i j r_{ij} rij中转乘客流被定义为

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wPJyquZH-1632637345303)(6_10/2021-07-02-20-54-15.png)]

定义六:服务级别客流预测
给定历史流量观测 { X t , Y t L , Z t L , M t ∣ t = t 1 , … , t T } \{X_{t}, Y_{t}^{L}, Z_{t}^{L}, M_{t} \mid t=t_{1}, \ldots, t_{T}\} { Xt,YtL,ZtL,Mtt=t1,,tT}和内部/外部特征来预测 X t T + 1 , Y t T L , Z t T L X_{tT+1}, Y_{tT}^{L}, Z_{tT}^{L} XtT+1,YtTL,ZtTL,并结合结果预测 Z t T S Z_{tT}^{S} ZtTS
符号说明

Method(s)

MDL-SPFP框架由四个主要组件组成:流建模、多任务融合、上下文融合和服务级计算,如下图

模型使用四种类型的流数据作为输入:(i)公交服务流 { X t ∣ t = t 1 , … , t T } \{X_{t} \mid t=t_{1}, \ldots, t_{T}\} { Xtt=t1,,tT}。(ii)载客流 { Z t L ∣ t = t 1 , … , t T } \{Z_{t}^{L} \mid t=t_{1}, \ldots, t_{T}\} { ZtLt=t1,,tT}。(iii)B\A乘客流, { Y t L ∣ t = t 1 , … , t T } \{Y_{t}^{L} \mid t=t_{1}, \ldots, t_{T}\} { YtLt=t1,,tT}。(iv)换乘流 { M t ∣ t = t 1 , … , t T } \{M_{t} \mid t=t_{1}, \ldots, t_{T}\} { Mtt=t1,,tT}。四组数据输入四个不同的网络,每个网络提取三种类型的时间片段,包括最近的、每日周期的和每周周期的片段,用 X t = { X t r , X t d , X t w } X_{t}=\{X_{t}^{r}, X_{t}^{d}, X_{t}^{w}\} Xt={ Xtr,Xtd,Xtw},用于建模历史数据的时间相关性。

ARM网络

ARM包括注意机制、残差网络和多尺度卷积三个模块,用于捕获复杂的时空相关性。

①注意力机制
不同时间的公交服务之间存在相关性,且在不同情况下相互影响是高度动态的。引入注意力自动学习不同程度的影响。
假设一个时间间隔 X t ∈ R I × J X_t \in \mathbb{R}^{I \times J} XtRI×J X t ( : , j ) X_t(:,j) Xt(:,j)表示站点 s j s_j sj在时间 t t t,注意力被定义为

公式10将输入数据按照站点维度进行一个平均池化操作,在通过两个非线性转换得到注意力系数 g t ∈ R I × J g_t \in \mathbb{R}^{I \times J} gtRI×J

通过上式计算得到注意力系数,在通过下式更新输入

![](https://img-blog.csdnimg.cn/img_convert/6101ac24c95056481b5dbc8c8bab3477.png)

②残差块
作者使用一维卷积,捕获空间的近依赖关系(同一条线路上相邻站点之间的依赖)。同时为了能深层使用残差,BN。
③多尺度卷积
为了进一步获取不同区域的空间相关性(即功能相似、相关性强的站点可能在空间上并不紧密),我们利用多尺度CNN模块提取更全面的空间相关性,包括全局和局部细节。对于每个时间步,将矩阵识别为具有一维特征j的一维站点I。多尺度CNN在输入张量上利用三种不同的卷积核大小,然后使用位加法来融合不同的张量。

PM融合

将最近时间步,日时间步,周时间步数据流结果进行融合,公式如下

B/A和换乘流融合

B/A和换乘流维度不同,作者在残差块中通过卷积将 M t ′ ∈ R I × J × I M'_t \in \mathbb{R}^{I\times J \times I} MtRI×J×I转换为 M t ′ ∈ R T × J × 2 M'_t \in \mathbb{R}^{T\times J\times 2} MtRT×J×2。然后通过下式融合

多任务融合

考虑到公交服务、车载乘客和B/A客流之间的相关性,可以将三部分流量输入经过ARM后的输出结合起来,提高预测性能。但 X a r m X_arm Xarm Y a r m Y_arm Yarm Z a r m Z_arm Zarm具有不同的张量大小。与基于和的融合相比,基于级联的融合通过相互强化可以更好地融合三个任务之间的相关性。所以将三者进行拼接,公式如下

同时考虑到一些公交线路和站点外部特征(可达性,连通性,功能性),这些特征不随时间变换而变换,所以作者直接通过拼接到 H H H后。
拼接后,使用三个独立的卷积层得到三个输出 X a r m ∈ R 1 × I × J , Y a r m ∈ R 2 × I × J , Z a r m ∈ R 1 × I × J \boldsymbol{X}_{a r m} \in \mathbb{R}^{1 \times I \times J}, \boldsymbol{Y}_{a r m} \in \mathbb{R}^{2 \times I \times J}, \boldsymbol{Z}_{a r m} \in \mathbb{R}^{1 \times I \times J} XarmR1×I×J,YarmR2×I×J,ZarmR1×I×J
再者就是考虑外部特征(天气,假日,温度等),通过word2vec提取到外部特征 F t e x t e r n a l ∈ R I × J \boldsymbol{F}_{t}^{external} \in \mathbb{R}^{I \times J} FtexternalRI×J。然后利用加法加入到上面的输出中。

Loss计算

服务网络部分loss计算公式如下, Q t c Q_t^c Qtc是所有非零项的指示矩阵, β 1 \beta_1 β1是一种适当的正则化,可以平滑较大的预测差异。

相同的乘客网络和B/A网络loss如下

总loss为

Evaluation

77天数据训练,15天验证。

消融实验

预测结果

创新点

细粒度研究了每个公交服务的流量情况,提出一种比较好理清复杂交通的表达方法。模型比较常规。
code

[外链图片转存中…(img-GfgiNBne-1632637345310)]

预测结果
[外链图片转存中…(img-Y2yPZCpe-1632637345311)]

创新点

细粒度研究了每个公交服务的流量情况,提出一种比较好理清复杂交通的表达方法。模型比较常规。
code

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务