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

文章目录

  • BusTr,基于实时交通数据的公交旅行时间预测
    • 1. 概述
    • 2. 本文与历史工作的区别
    • 3. 具体方法
      • 3.1 数据(样本)构造
    • 3.2 样本示例
    • 3.3 特征
      • 3.3.1 全局特征:full-trip上下文特征
      • 3.3.2 原子公共特征:空间特征
      • 3.3.3 路段的附加特征
    • 3.4 模型结构
    • 4. 模型训练
      • 4.1 Spatial input ablation
      • 4.2 Feature selection
      • 4.3 其他
    • 5. 实验
      • 5.1 和DeepTTE对比
      • 5.2 特征消融实验
      • 5.3 泛化实验
    • 6. 其他
    • 评述

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 样本示例

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

  • 样本示例,如图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上下文特征

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

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

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

3.3.3 路段的附加特征

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

3.4 模型结构

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

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

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

【模型结构图】

【模型超参】

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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

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

4.2 Feature selection

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

  • 第一次,在avgEmbedding部分加L1正则,按照αbL\alpha b^LαbL加权,其中LLL为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很多时候甚至没有收敛。

5.2 特征消融实验

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

5.3 泛化实验

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

6. 其他

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

评述

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

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

  1. 多元经验模态分解_【Applied Energy最新原创论文】一个基于多元搜索引擎数据的多尺度油价预测方法...

    原文信息: A multi-scale method for forecasting oil price with multi-factor search engine data 原文链接: http ...

  2. 实时交通数据来源及使用说明

    1.概述 常用的百度/ 高德实时交通数据,分为两种, 一种为实时交通切片图,以栅格图层叠加到地图上 一种为 通过Web服务API请求实时交通数据后以渲染,以矢量图层叠加到地图上 2.栅格切片实时交通数 ...

  3. 论文阅读:基于用户上网数据的电影个性化推荐系统研究

    基于用户上网数据的电影个性化推荐系统研究 赵鹏程,黄韬* *(北京邮电大学信 工程学院,北京 100876) 摘要:本文讲述了如何构建出完整电影知识图谱的方法,同时提出了一套发掘电影系列的实现算法.基 ...

  4. 论文浅尝 | 基于多模态关联数据嵌入的知识库补全

    链接:https://arxiv.org/pdf/1809.01341.pdf 动机(摘要) 当前的知识库补全的方法主要是将实体和关系嵌入到一个低维的向量空间,但是却只利用了知识库中的三元组结构 (& ...

  5. 论文笔记:基于深度学习的遥感影像变化检测综述

    论文主要信息 本篇博文主要是对该论文进行总结和翻译,如有错漏,欢迎指出.(目前仅对有监督学习部分进行了整理) 标题:Deep learning for change detection in remo ...

  6. 【论文精读】基于网络立体数据监督的单目相对深度感知

    基于网络立体数据监督的单目相对深度感知 Paper Information Abstract 1 Introduction 2 Related Work 3 Proposed method 3.1 O ...

  7. 极光笔记 | 极光基于元数据驱动数据治理浅谈

    作者:极光数据平台部  计算平台组经理 --蔡祖光 前言 极光大数据平台目前支撑着公司开发者.广告.金融风控.行业洞察.公共安全在内的核心业务的数据生产活动,随着公司业务体量的增长,数据平台的规模也在 ...

  8. 【论文笔记】RSE//结合遥感数据和气象数据改进关中平原小麦产量估算的LSTM神经网络

    1.材料与方法 计算植被温度条件指数(VTCI)和叶面积指数(LAI)两个遥感指标: 主要采用:1km空间分辨率的LST产品.1km空间分辨率的表面反射率数据产品.空间分辨率为500m的4天MODIS ...

  9. 高德地图实时路况数据-拥堵持续时长预测

    一.Request爬取数据 1.获取AK 进入[高德地图开放平台]→注册认证成为开发者→[应用管理]→[我的应用]→[创建新应用]→获得AK 2.所需爬取数据 研究所需数据主要由两部分构成, ①高德地 ...

最新文章

  1. Django从理论到实战(part13)--include函数
  2. 将CSV文件存为HTML文件形式
  3. 移动硬盘坏点测试软件,移动硬盘坏道检测修复工具(硬盘坏道检测助手)V1.1 正式版...
  4. 多媒体计算机辅助英语教学,多媒体计算机辅助英语教学
  5. ARM GCC浮点相关总结
  6. STM32单片机初学2-从Keil工程创建开始
  7. php机器人聊天对话框,基于AIML的PHP聊天机器人
  8. 2006年35大BT种子网站
  9. linux tcp repair及tcp热迁移
  10. android launcher3,Android Launcher3 基本功能分析
  11. 如何在自己的网站引入百度搜索引擎
  12. 希尔伯特空间、拓扑空间概念理解
  13. 100阶乘后面有几个0
  14. Word中增加仿宋GB-2312字体
  15. EVIEWS中导入EXCEL表格
  16. 菜鸟获取CSDN积分技巧
  17. C语言for循环打印各种字符三角形+菱形的方法
  18. 简述以上结构化方法和面向对象方法的特点和优缺点
  19. 记一次基于mybatis的Springboot项目数据库从Mysql迁移至Oracle的全过程(超详细)
  20. 流氓APP是如何潜伏进手机的

热门文章

  1. 【Matlab编程】新手入门第五天
  2. java语言 三国杀张昌蒲严教计算器
  3. c#文件名去掉后缀_C#如何从文件路径中分离出文件名以及文件扩展名
  4. GA002-186-11
  5. STL迭代器(iterator)用法详解
  6. python 身份证号码有效性验证
  7. php怎么接入微支付宝支付,php开发中app怎么接入支付宝
  8. 关于Unity中天空盒的使用
  9. 【Unity3D 灵巧小知识点】☀️ | Unity 中 怎样切换 天空盒 背景
  10. 微x怎么设置主题_苹果x前置呼吸灯怎么设置