文章来源于微信公众号:夕小瑶的卖萌屋

原文链接:请点击

文章仅用于学习交流,如有侵权请联系删除

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

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

ConSTGAT框架

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

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

  • 上下文信息模块 (Contextual Information):以路段序列作为输入,用于提取路段在路线中的上下文信息;
  • 路况预测模块 (Traffic Prediction):以上下文信息,背景信息,和历史路况信息作为输入,使用三维时空图注意力网络建模对历史路况建模,预估未来的路况;
  • 预估整合模块 (Integration):使用多目标同时学习路段时长与路线时长。

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

路况预测 (Traffic Prediction)

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

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

上下文信息 (Contextual Information)

上下文信息模块和预估整合模块负责利用路线的上下文信息,结构如图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都低于其他通行时长预估方法,表现最佳。

模型分析

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

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

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

总结

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


「华来知识」成立于2017年,孵化于清华大学智能技术与系统国家重点实验室,是一家技术领先的人工智能企业。公司专注于提供新一代人工智能人机交互解决方案,利用自身技术为企业打造由人工智能驱动的知识体系,借此改善人类生活。「华来知识」将持续为企业客户提供优质服务,助力企业在专业领域的人工智能应用,提供完善可靠高效的产品解决方案。

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

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

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

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

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

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

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

  4. 百度信息流是什么?哪些行业适合投放百度信息流?

    目前使用手机的人越来越多,甚至有人说信息流得优势早就超过大搜了.足以可见信息流的发展很快,已经渗透到了用户的日常生活中.面对这块市场红利大的蛋糕,很多新媒体都是信息流广告,百度作为国内最大的搜索引擎, ...

  5. 后端根据百度地图真实路径距离_百度地图开放平台介绍--路线规划

    百度地图开放平台路线规划服务是结合实时交通,为用户提供覆盖国内外的路线规划服务.路线规划也是我们用户最常用到的功能之一,比如旅行时需要到达另外一个地方,通过百度地图可以快速规划距离最短路线或耗时最短路 ...

  6. Android 调用百度地图sdk 实现路线规划导航

    Android 调用百度地图sdk 实现路线规划导航 功能: 实现实时/需求定位 卫星地图查看 路况 周边poi检索 地点输入提示检索 驾驶 步行 公交 骑行路线规划 注:以上为实现的大概功能 ,接下 ...

  7. Python调用百度地图api获取起点终点路线规划距离和预估时长

    现有起点和终点坐标值(经纬度lng.lat),目的是通过百度地图开发者平台的路线规划功能获取起点终点路线规划距离和预估时长,百度地图开发者平台路线规划使用说明网址为:http://lbsyun.bai ...

  8. android 通过scheme唤起百度、高德、腾讯地图路线规划功能,唤起滴滴出行打车功能

    import android.content.Context; import android.content.Intent; import android.net.Uri;import java.ut ...

  9. 百度地图开发(五)之公交信息检索 + 路线规划

    转载请注明出处:http://blog.csdn.net/crazy1235/article/details/44069267 在上一篇blog中介绍过POI检索的使用,本篇blog主要介绍公交信息检 ...

最新文章

  1. 好记性不如烂笔杆-android学习笔记二 Acitvity lifecycle 生命周期
  2. 牛客java面试题总结版(四)
  3. Java【前端动态添加一条记】【后端使用JDK1.8实现map对象根据key的部分值进行分组】(并将map对象封装成指定entity对象)
  4. matlab crf 工具包,python调用CRF++工具包
  5. php suse 安装mysql_SUSE Linux apache,Mysql,php,svn的安装
  6. oracle1-100,Oracle 批量给某一列循环加数例如从1加到100
  7. 一年前端的迷惑,深度还是广度
  8. javaweb框架和其他知识点总结
  9. 图片标签及以图搜图场景应用
  10. android 开机自动启动服务,Android实现开机自动启动Service或app的方法
  11. IDEA取消重复代码提示功能
  12. 羊吃草-区间端点问题
  13. myBatis中通过map集合传入数据查询结果为空
  14. pcb入门之原理图生成PCB
  15. python 基于itchat详解微信防撤回程序
  16. PyCharm敲代码光标变黑框
  17. phpwind携手区域网站深度合作 欲建中小网站电子商务数据平台
  18. systemctl和service区别
  19. 【笔记】微信开发者工具自定义编译模式(编译时,携带 指定参数 直接跳转 指定页面)
  20. 世界著名音乐家-按出生年月排序

热门文章

  1. ue4 开发动作游戏_《隐龙传》:首款UE4打造的国产动作游戏
  2. 查询各个班级男生女生个数(case)
  3. 算法实践:林克的背包 (动态规划)
  4. 每日一刷经验分享:745困难. 前缀和后缀搜索
  5. Win11任务栏太宽了怎么变窄?
  6. Java编程哪些书值得推荐及计算机语言java中得List[图]
  7. 使命召唤mod工具下载地址
  8. focal loss 调参(保存)
  9. 会python的人工作都不会太差什么梗_再不学Python 你就被同龄人甩开了吗?
  10. 聊下双胞胎的一些故事