(知乎: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. 本文与历史工作的区别
- 模型重点考虑了”泛化“问题。对于训练数据集中没出现过的城市也要有预测能力。
- 模型使用了严格的特征集。很多特征都能发挥作用(如公交专用道),但并不好获取;本文模型可以通过局部和区域特征学习来推断是否存在这些特征。
- 模型使用大量数据训练。要看全球尺度的表现
- 模型从实时交通数据做推断。之前的方法通常用实时交通位置来表示交通信息,限制了泛化能力;或使用交通线圈传感器,这又太稀疏了且通常只覆盖了主要道路。
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的时长,
-
样本示例,如图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。表示整个路径的全局特征。
3.3 特征
3.3.1 全局特征:full-trip上下文特征
- 公交线路ID, d r d_r d