本文主要关注于工业界的路线时长预估的挑战!这篇工作可以说兼具前沿力与工业风,论文提出的ConSTGAT模型同时在准确率和计算速度方面较现有模型获得了显著提升。至于这个炫酷模型的线上表现如何,感兴趣的小伙伴打开百度地图试试叭!

关注TechBeat社区(www.techbeat.net),还有更多干货文章、技术Talk与你分享~

无论你是苦逼学生(公交地铁狗)、职场萌新(打车狗)还是有钱大佬(有车一族),只要站在了北上广深的土地上,就不可避免地每天要跟堵车和出行时间battle。

比如……

  • 骑车5分钟,公交半小时(说的就是后厂村

  • 公交半小时,开车一小时(好想去蹭公交专线QAQ

  • 开车一小时,打车到天亮(没车的人别去西二旗瞎逛

大城市的出行时间可以说比薛定猫的谔都要魔幻……

但是!总有黑心老板要求你务必几点之前到公司,否则嘿嘿嘿,晚一分钟罚10块钱的那种。

当然了,还有比罚钱更残酷的事情,因此,2020年的地图类软件不仅要计算出两点之间的路线,还要尽可能精准地估计出当下的路线时长,减少出行的不确定性。路线时长预估也成为了当下不仅刚需,且非常有挑战性的算法命题。

一、背景

工业界的路线时长预估的挑战主要来源于以下两方面:

  1. 路况预估的复杂性:虽然未来路况和历史路况强相关,但实际情况中,路况往往受突发事件影响。此外,不少现有的方法使用时空图网络 (spatial temporal graph neural networks, STGNNs) 分别对时间和空间建模,却忽视了其中的关联性,导致了信息有所损失。

  2. 路线的上下文信息:路段有多种组合方式,路线中某个路段在不同的上下游下的通行时长会有差异。比如说,同等距离下,车辆转弯花费的时间通常比直行长。一些现有的方法使用端到端的方式,预估路线的通行时长。可是这些方法通常都是用序列化的方式建模,性能效率较难满足线上超高并发cc要求。

二、工业前沿

今天跟大家分享一下百度在数据挖掘顶级会议 KDD2020 上发表的一篇路线时长预估的工作——《ConSTGAT: Contextual Spatial-Temporal Graph Attention Network for Travel Time Estimation at Baidu Maps》。

论文提出了一种叫做ConSTGAT的模型,实验表明可以有效提升路线时长预测的准确性,并显著减小了预测任务所需的计算量。作为工业级的解决方案,ConSTGAT已经部署到百度的通行时长预估服务中,每天成功响应数百亿次ETA请求。

图1 百度地图路线时长预估示例

总的来说,针对时空历史路况信息,ConSTGAT设计了新的三维时空图注意力网络(3D Graph Attention Network, 3DGAT),它能够在建模的同时兼顾时间与空间的历史路况的关联性;在处理路线上下文信息的方面,则使用了卷积结构提取路线上所有路段的局部上下文信息,并使用多任务学习同时学习路线和路段的通行时长。

三、ConSTGAT框架

ConSTGAT模型的输入包括三个部分:路线 (route),背景信息 (background),和历史路况 (historical traffic conditions)。其中,路线由多个路段组成,可以用路段的序列表示;背景信息指代出发时间等信息;历史路况则是路网中相关的路段的历史路况信息。

网络由三个核心模块组成,包括:

  • 上下文信息模块 (Contextual Information):以路段序列作为输入,用于提取路段在路线中的上下文信息;

  • 路况预测模块 (Traffic Prediction):以上下文信息,背景信息,和历史路况信息作为输入,使用三维时空图注意力网络建模对历史路况建模,预估未来的路况;

  • 预估整合模块 (Integration):使用多目标同时学习路段时长与路线时长。

图2 ConSTGAT框架

其中,路况预测模块用于路况预测,而上下文信息模块和预估整合模块用于路线上下文建模。

路况预测 (Traffic Prediction)

现有的许多工作利用时空图网络来解决路况预测问题。时空图网络可以看作图网络的一种特例,直接建模历史路况的时空信息。然而,现有的时空图网络通常将时间信息和空间信息分开独立看待,如先通过普通图网络建模空间信息,再通过序列结构建模时间信息,导致时空之间关联性有所损失。新的时空图网络3DGAT,可以同时建模时间和空间的联合关系

图3 3DGAT和传统时空图网络比较
(红圈为目标路段,黑圈为邻居路段。每一列表示某个历史时刻目标路段和邻居路段的路况)

假设有目标路段和它的邻居路段-,这些路段在不同时刻的历史路况、路段自身的特征信息、路段的历史时间信息可以分别用三个矩阵表示,其中矩阵的每一行对应一个路段的信息,最终这三个矩阵合并成一个矩阵,并重塑成一个三阶的时空张量。

图4 3DGAT对历史路况的时空建模过程
(为出发时刻,为历史时刻数)

和经典的注意力机制类似,ConSTGAT将时空张量中的向量同时作为注意力机制中的keys 和values ,将上下文信息和背景信息作为query 。特别地,文中提出了一种新的注意力机制3D-attention,捕捉query和keys/values之间的关系。公式如下:

上下文信息 (Contextual Information)

上下文信息模块和预估整合模块负责利用路线的上下文信息,结构如图5所示。

图5 上下文信息建模

  • 上下文信息模块:通过使用卷积层抽取路段 (link) 在路线中的局部的上下文信息。某个路段和它的上游路段、下游路段看作一个整体,也就是一条子路 (sub-path) 编码。通过这样的方式,路段之间的夹角以及主路和辅路之间的关联等上下文关系可以被利用,作为其他模块的输入。

  • 整合预测模块:使用多任务学习同时预估路段通行时长 (link travel time) 与路线通行时长 (route travel time)。预估的路段通行时长相加为预估的路线通行时长。其中,使用Huber Loss作为路段的损失函数;使用相对误差作为路线的损失函数。

相比传统的端到端的方法,ConSTGAT将实时运算的任务转成预运算任务+检索任务,极大地减轻了总体运算量,因此更容易规模化。由于ConSTGAT没有使用序列化的网络结构,可以提前并行地计算并用表存储每个路段的通行时长。当有路线时长预估请求到达时,只需在表中检索对应路段的时长并加和即可。因此,这个方案可以轻松地部署在大规模真实的导航服务中。

四、实验

实验设定

ConSTGAT使用了通过百度地图收集的三个城市(太原,合肥和惠州)从19年07月21日到19年08月31日的路线数据。其中,前面4周数据用于模型训练,最后1周数据用于评估。评估指标采用了目前通行时长预估领域最为常用的标准:平均绝对值相对误差(MAPE),平均误差(MAE)和均方根误差(RMSE)。

整体表现

ConSTGAT与五个基线方法进行了比较:AVG是均值历史路段速度;DeepTravel是一个端到端的路线通行时间预测方法;STANN, DCRNN和 GAT+Attention都基于时空图网络,但它们都将时间和空间分开考虑。如下表所示,ConSTGAT在三个数据集的MAPE,MAE和RMSE都低于其他通行时长预估方法,表现最佳。

表1 ConSTGAT和基线方法的比较

模型分析

为了观察3DGAT机制是否能有效捕捉路况的时空关联行,文中分析和对比了不同场景下的注意力机制权重的热度图和历史通行流量数和通行时间的关系。图6中,颜色越深表示注意力机制权重越大,历史记录越多,或是通行速度越慢。

图6a 3DGAT注意力机制权重的热度图
图6b 历史通行流量数
图6c 历史通行时间中位数

可以看出,3DGAT注意力机制捕捉到了一些规律,如:

  1. 下游的路段相比起其他邻居路段更重要;
  2. 历史通行记录越多的邻居路段越重要;
  3. 通行速度越慢的邻居路段越重要。

五、总结

这篇工作可以说兼具前沿力与工业风,论文提出的ConSTGAT模型同时在准确率和计算速度方面较现有模型获得了显著提升。其最大的创新点在于建立了时间建模与空间建模的关联性,并且有效地利用了路线的上下文信息。至于这个炫酷模型的线上表现如何,感兴趣的小伙伴打开百度地图试试叭!-The End-

文章在哪儿?

点击链接 www.techbeat.net 进入社区,选择【文章】,即可查看所有干货内容啦!关于TechBeat社区TechBeat(www.techbeat.net)是一个荟聚全球华人AI精英的成长社区。我们希望为AI人才打造更专业的服务和体验,加速并陪伴其学习成长。期待这里可以成为你学习AI前沿知识的高地,分享自己最新工作的沃土,在AI进阶之路上的升级打怪的根据地!更多详细介绍请点击>>TechBeat,一个荟聚全球华人AI精英的学习成长社区点击“❀在看”,让更多朋友们看到吧~

百度地图多点路线规划_精选文章 | 工业解密:百度地图背后的路线时长预估模型!...相关推荐

  1. 百度地图多点路线规划_AI行业企业头条 |百度地图背后的路线时长预估模型!...

    文章来源于微信公众号:夕小瑶的卖萌屋 原文链接:请点击 文章仅用于学习交流,如有侵权请联系删除 无论你是苦逼学生(公交地铁狗).职场萌新(打车狗)还是有钱大佬(有车一族),只要站在了北上广深的土地上, ...

  2. 工业解密:百度地图背后的路线时长预估模型!

    星标/置顶小屋,带你解锁 最萌最前沿的NLP.搜索与推荐技术 编 | YY 无论你是苦逼学生(公交地铁狗).职场萌新(打车狗)还是有钱大佬(有车一族),只要站在了北上广深的土地上,就不可避免的每天要跟 ...

  3. 人工智能的应用:工业解密:百度地图背后的路线时长预估模型!

    无论你是苦逼学生(公交地铁狗).职场萌新(打车狗)还是有钱大佬(有车一族),只要站在了北上广深的土地上,就不可避免的每天要跟堵车和出行时间battle. 比如-- 骑车5分钟,公交半小时(说的就是后厂 ...

  4. 百度地图多点路线规划_通勤出行该选谁?高德、百度地图对比,看看谁是上班最优选...

    现在导航已经成为我们生活中不可分割的一部分,无论是走路,骑行还是自驾游,我们都会开启导航.特别是在驾车时,有急转弯,测速拍照,超速等,当我们的驾驶方式出现危险行为的时候,导航都能够提醒我们.极大提升了 ...

  5. 百度地图多点路线规划_期待已久的多地点路线规划功

    对于喜欢自驾游的小伙伴们,元旦节假就快要开始啦.大家打算怎么计划自己的旅行呢? 身为一个拖延患者,我通常会拖到出发前的最后一个晚上,花上半小时,在网上搜索当地感兴趣的景点 (POI), 然后在百度地图 ...

  6. 百度地图多点路线规划_自驾游必备,多地点路线规划功能已经出炉了!!!

    对于喜欢自驾游的小伙伴们,元旦节假就快要开始啦.大家打算怎么计划自己的旅行呢? 身为一个拖延患者,我通常会拖到出发前的最后一个晚上,花上半小时,在网上搜索当地感兴趣的景点 (POI), 然后在百度地图 ...

  7. java百度地图路线规划_浅谈百度地图WEB开发中的四种路线规划

    百度地图在3.0的Javascript api中增加了四种路径规划,分别是:步行.骑行.自驾.公交. 关于路线规划的引用也相当简单,我们以步行为例://实例化地图 var map = new BMap ...

  8. java 高德地图路线规划_高德地图api之路线规划

    1.引入 2.创建并初始化实例对象 const map = new AMap.Map("container") 3.创建一个导航元素,用来承载导航路线(这里不要忘了,是个坑,用的啥 ...

  9. java 高德地图路线规划_公交出行路线规划-出行路线规划-开发指南-Android 地图SDK | 高德地图API...

    公交路径规划可以根据起终点和公交换乘的数据,使用 BusRouteOverlay 画出公交路线图层,包括起终点和换乘点.另外也可以自定义起终点和换乘点的图标. 目前支持跨城公交路线规划,提供不同城市之 ...

最新文章

  1. CFile和CStdioFile的区别以及‘\r’、‘\r\n’
  2. spring boot通过命令行配置属性
  3. 【天池赛事】零基础入门语义分割-地表建筑物识别 Task5:模型训练与验证
  4. Oracle EM 12c
  5. atitit.判断时间重叠方法总结 java c++ c#.net js php
  6. 【第七周】项目6-停车场模拟
  7. 厦门大学计算机专业录取分数线2019,【厦门大学:2019-2016山西省各专业录取分数线】...
  8. 王佩丰excel教程笔记(认识excel)
  9. Conky-colors详细教程
  10. Android查询通讯录信息
  11. CSS综合案例——淘宝轮播图/焦点图布局的制作
  12. 东北大学acm暑期夏令营第七天
  13. include,include_once,require,require_once的区别
  14. 面试:自我问题反思总结
  15. Python数据结构之二——tuple(元组)
  16. 第三天 入口文件index.php 01
  17. IMSI,TMSI,MSISDN, MSRN 和 IMEI
  18. 阳性感染者被要求带病上班?广东省人社厅:阳性感染者应居家隔离
  19. IEMOCAP数据集
  20. 关于计算机的英语名言,英语名人名言:计算机Computers/Technology

热门文章

  1. hibernate高级工具类(含分页)
  2. SpringBoot实战技能
  3. C++实现人脸识别(百度云平台)
  4. php 创造csv,从 PHP 数据创建 CSV 文件
  5. 鲍比肯迪尼是谁绿皮书_我的奶奶和小鲍比表
  6. NPOI读取xls和xlsx格式
  7. 新的开始[by tina]
  8. UI设计是什么?UI设计师的工作内容有哪些?了解一下
  9. Mac连接路由器后没有反应_腾达路由器设置完成后上不了网怎么解决【解决方法】...
  10. 飞歌G7导航安装激Poweramp(安卓)