【论文笔记】BusTr,基于实时交通数据的公交旅行时间预测

(知乎:https://zhuanlan.zhihu.com/p/344821161)

BusTr,基于实时交通数据的公交旅行时间预测

BusTr: Predicting Bus Travel Times from Real-Time Traffic

https://dl.acm.org/doi/10.1145/3394486.3403376

KDD’20

1. 概述

本文提出了一个机器学习模型-BusTr,模型基于“实时交通”+“时空上下文”数据,实现对“公交旅行时间”的预测。模型期望通过尽可能易得的数据,以适应不同质量的数据来源,从而可以面向全球尺度提供服务。因此,本文尤其关注模型的泛化能力,并在样本、特征、训练细节等方面做了很多工作。最后,本文通过多组实验论证了方法的有效性和泛化能力,尤其是和SOTA方法DeepTTE做对比。

2. 本文与历史工作的区别

  1. 模型重点考虑了”泛化“问题。对于训练数据集中没出现过的城市也要有预测能力。
  2. 模型使用了严格的特征集。很多特征都能发挥作用(如公交专用道),但并不好获取;本文模型可以通过局部和区域特征学习来推断是否存在这些特征。
  3. 模型使用大量数据训练。要看全球尺度的表现
  4. 模型从实时交通数据做推断。之前的方法通常用实时交通位置来表示交通信息,限制了泛化能力;或使用交通线圈传感器,这又太稀疏了且通常只覆盖了主要道路。

3. 具体方法

3.1 数据(样本)构造

  • 在训练阶段,我们首先有高质量数据。但模型要应用于无GTFS-Realtime数据、仅仅有零散的离线观测数据,且这些数据精度、覆盖率、频率等都可能有问题的情况。
  • 因此,数据的构造方式参考了文本挖掘,通过一些启发式的约束和规则,在原始轨迹上截取我们需要的样本段,并按照瓦片结构有重叠的做采样,具体规则如下:
    • 不在站点附近打断点。这些地方难以判断是刚到站还是刚离开,这里选择在公交路径上找一个点作为端点。
    • 每个采样片段(瓦片、轨迹段)的最小长度限制在[1,5]km的均匀分布。应为太短的话噪声影响严重,可能过拟合。
    • 同一条轨迹的采样片段的开始时间间隔要>30s。以限制高密度区域的数据冗余。
    • 异常采样片段的处理,包括相邻轨迹点超过语料库限制值(5min或3km),以及超出平均速度的(0.7~140km/h)
  • 不对样本做重采样或插值,因为模型的目标是处理非均匀运动的情况,如长距离站点、红灯、交通拥堵等。
  • 数据集按照训练、验证、测试分3组,每组7天
  • “道路交通预测”取自GoogleMap,包括每个道路片段。道路片段是指每两个邻接的转弯结点的连接。并且注意离线训练时的交通预测是用当时预测系统给出的数值,而推断的时候用则可依赖于当前时间提供未来预测。

3.2 样本示例

  • 分段预测求和,每一段可以是“站点”或“路段”。其中 t q t_q tq表示路段或站点 q q q的时长,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-90oOdx8n-1610804093443)(BusTr.assets/image-20210116143842706.png)]

  • 样本示例,如图1(a),每个样本组成:

    • A trip interval。一个轨迹段,训练时是采样片段的端点之间的路径;推断时,一般是两个公交站点。
    • A sequence of quanta constituting that interval。整个路径拆分为一个路径段和站点的序列,称为“原子”。如图:蓝Stop、红Seg、黄Seg、绿Seg、白Stop、灰Seg的序列。
    • Traffic speeds and other per-quantum features。每个原子由一个特征向量表示。
    • Full-trip context features。表示整个路径的全局特征。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jmm0goBB-1610804093464)(BusTr.assets/image-20210116143923084.png)]

3.3 特征

3.3.1 全局特征:full-trip上下文特征

  1. 公交线路ID, d r d_r dr维embedding
  2. trip开始位置的时间,离散化+embedding处理, d w d_w dw维的曜日, d h d_h dh维的当日时间(半小时切片)。【考虑到当日时间是循环的,我们将embedding的前两维初始化为一个循环值(没具体说怎么做的),其他的高斯噪声初始化。】

3.3.2 原子公共特征:空间特征

  1. 用位置标示原子。用站点用位置标示,路段用端点位置标示
  2. 用不同级别的S2 Cell离散化表示原子。其中从15级开始(0.08km²),并向上取到12.5级和4.5级。对每个cell分别做embedding,得到 d s d_s ds维的空间向量,并且对3个级别做求和。这样综合了多尺度空间特征,可以使粗粒度权重更大,且在有局部特征的情况下细粒度发挥作用。

3.3.3 路段的附加特征

  1. 路段长度
  2. 路段的预估速度。有个特别处理,即系统预估时间取“估计到达该路段起点的时间”,用预估总时长换算。

3.4 模型结构

  1. 总的时间预估分为“路段通行时间”+“站点等待时间”,即 T ^ = ∑ q ∈ Q t ^ q \hat{T}=\sum_{q\in Q}\hat{t}_q T^=qQt^q
  2. 站点单元:直接把全局特征和站点位置特征过全连接层

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FraEaEPp-1610804093466)(BusTr.assets/image-20210116152848053.png)]

  1. 路段单元:预估速度特征 s s s和距离 d d d特征分别处理,并按公式 Segment duration = α d s + β d \text{Segment duration}=\alpha \frac{d}{s} +\beta d Segment duration=αsd+βd聚合,该公式表示“实时依赖”和“实时无关”的融合。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q11jzWPm-1610804093480)(BusTr.assets/image-20210116153015241.png)]

  1. 后处理:对负数用0裁切

【模型结构图】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gMudb37X-1610804093483)(BusTr.assets/image-20210116152204144.png)]

【模型超参】

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xoV4Llfn-1610804093487)(BusTr.assets/image-20210116145218926.png)](https://img-blog.csdnimg.cn/20210116213633508.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ppYW5iaW56aGVuZw==,size_16,color_FFFFFF,t_70)

4. 模型训练

4.1 Spatial input ablation

为了使模型具有泛化能力,对特征覆盖较差的数据也能有效,针对本文中的空间特征和路径特征做一个消融操作。设置一个消融级别 L L L,按照 p L p_L pL的概率剔除路径ID和S2 Cell。消融作用到整条轨迹,以避免在原子之间泄露信息;不同轨迹之间是独立的,这样使得模型更泛化和倾向于粗粒度cell的embedding,除非确实有细粒度的局部特征。

4.2 Feature selection

为了减弱空间Embedding对粗粒度Cell的偏向,我们分两次训练。

  • 第一次,在avgEmbedding部分加L1正则,按照 α b L \alpha b^L αbL加权,其中 L L L为S2的级别。L1正则是为了使大多数没用的细粒度cell的embedding值接近0,最后仅保留范数>0.1的部分
  • 第二次,重新训练模型,并忽略上一步剔除的cell。这样可以极大减少模型和词表大小,如L15的cell,平均收缩了2.2倍

4.3 其他

  1. 训练时用Adam优化器,MSE损失,10wSteps,step_siez=200
  2. 用10w样本评估,每500Steps评估一次,取MAPE最低的模型。
  3. 超参调参用的是Google的Vizier

5. 实验

  • 每个模型训练20次,并在10w个样本上评估,评估指标了MAPE

  • baseline:①直接用交通预测的结果。②线性回归:站点数、总距离、总预计时间

5.1 和DeepTTE对比

  • 和DeepTTE对比,BusTr的得到的MAPE更稳定,效果更好。而DeepTTE很多时候甚至没有收敛。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AD0VxAZp-1610804093489)(BusTr.assets/image-20210116161215235.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qcPBUBUT-1610804093497)(BusTr.assets/image-20210116161223613.png)]

5.2 特征消融实验

  • 特征消融实验分3大组,①删除实时信息;②删除空间信息;③删除时间信息。实验结果看,每个部分都是有用的。其中,如果完全去掉空间特征,模型效果极差;时间特征影响较小

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4QHWo3Kb-1610804093500)(BusTr.assets/image-20210116161306806.png)]

5.3 泛化实验

  1. 三组数据对比,最近1周的数据、9周后的数据、9周后的新地区的数据
  2. 模型对比,完整模型、不做特征筛选的、不做空间特征消融的、删除粗粒度S2cell的、不做特征消融,且删除粗粒度S2的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G2mTpHZO-1610804093505)(BusTr.assets/image-20210116162005581.png)]

6. 其他

包括GoogleMap的公共交通APP的交通数据,其中静态数据基于GTFS协议,而实时跟踪的轨迹基于GTFS-Realtime扩展实现。

评述

  • 本文提出的BusTr,基于“实时交通”+“时空上下文”,实现公交旅行时长的预估。
  • 本文是面向全球尺度的应用,对模型泛化能力尤为关注,在样本构造、特征选择、训练细节上做的比较多,可以借鉴。同时,为了广泛适配实际场景中不同质量的数据源,本文的特征选取也比较克制。
- 样本构造部分,动态的ETA预测可以参考做类似的有重叠的样本
- 时间特征Embedding,考虑了时间是循环的,前两维初始化为循环数值处理
- 多尺度的空间特征均值,用来实现尽可能的泛化,这里是不同Level的S2Cell
- 路段ETA的预测,使用了预定义的公式,来融合“实时依赖”和“非实时依赖”
- 训练时分两步,在第一部加L1正则,实现对细粒度S2Cell的清洗,减小词表大小
  • 本文的实验比较完整,包括了Baseline对比、SOTA对比、Ablation实验、泛化实验等。
- 实验对比的设计可以学习下
  • 本文的模型主体还是分段求和的ETA方法,Road-Segment的时长计算部分加入了预设的计算公式可以借鉴。
  • 个人觉得有问题的点:①虽然说特征选择很少,但是“GoogleMap的交通预估系统”作为入参,实际上还是用了很多历史统计和复杂特征,对于不同地区该系统的表现差异有多大存疑。②trip分段的部分,还是需要借助路网来做分段,对没有路网或路网不完整的区域就不适用了。③具体分段的方式上,是否应该考虑一下交叉口的时长。
  • 本文没开放代码和数据。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值