10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

深度学习在高德驾车导航历史速度预测中的探索与实践

  • 2019-08-17
  • 本文字数:3233 字

    阅读完需:约 11 分钟

深度学习在高德驾车导航历史速度预测中的探索与实践

1. 导读

驾车导航服务是数字地图提供的核心功能。通常而言,用户在发起导航之前会对比高德前端展示的三条路线(如下图),以决定按照哪条路线行驶。



而预估到达时间是用户参考的最为重要的指标之一。给定一条路线,对应的预估到达时间的计算需要两组信息输入,分别是实时路况信息和历史速度信息(历史速度信息指的是对应的平均通行时间)。其中实时路况信息,对短时(例如 60 分钟以内)路况预测帮助较大;而历史速度信息对长时(例如 60 分钟以上)路况预测帮助较大。一般来说,对于未来 2 小时以上的路况预测而言,当前时刻的路况信息帮助十分有限,也可以理解为历史速度信息基本处于绝对主导的地位。


因此在长距离路线的预估到达时间计算中,历史速度至关重要,其预测的准确性直接影响预估到达时间,进而影响用户选择及体验。我们希望能够通过建模的方式提高历史速度的预测准确率。

2. 历史平均法的不足

以往预测历史速度的方式是历史平均值法,主要是将历史上过去某时间段同一特征日同一时间段(例如 8:00-8:10)经过同一条路段的所有车辆的用时求平均,这种方法的假设是“历史即未来”。该方法对于 3 个月内常发性震荡走势比较适合,但针对有特定趋势的走势(如上升走势),效果不会太好。


该方法不足之处有以下三点:


  • 对于异常点敏感

  • 无法利用时域序列的演化趋势(trend)信息

  • 无法利用去年同期的车辆行驶规律


下面我们用一个分析过的 badcase 来具体说明,如下图:



上图显示了北京市某路段在过去连续若干周里确定特征日(周五)及确定时间批次(12:10-12:20)上各自的平均旅行时间。如图所示,近期旅行时间已逐渐升高,且去年同期旅行时间也已经升高,但是使用历史平均值法计算的历史速度信息却显著偏小,与未来一周对应时间段的真实旅行时间偏差近三倍。


通过前期的 case 调研分析,发现部分路段的历史速度曲线呈现出时效性、年度周期性特征。



上图为某段道路从 20170501 到 20190103 期间某个时间批次的旅行时间变化,可以发现,每到暑假期间,该路段旅行时间显著增大,呈现出明显的年度周期性。


本项目旨在解决历史平均值法存在的不足,其中,由于年度周期性问题导致的恶劣 badcase 占比较大,故着重解决年度周期性问题。

3. 机器学习解题

3.1 基于 TCN 模型的历史速度问题建模

历史平均值方法简单粗暴,但也能取得相当不错的效果,对于具有年度周期性 &时效性的路段,仅仅通过统计近期的信息会损失一定的精度,这时把去年的相关信息融合进来就显得特别重要,该问题是个典型的时序建模问题,本文基于 TCN 构建历史速度周期性问题解决方案。


我们的目标是构建一个基于历史信息(某时间段 &去年同期:同一段道路、确定特征日、确定时间批次)和道路属性来预测未来一周历史速度的机器学习模型,解决历史平均值法存在的问题,从历史速度信息维度提高预估到达时间的准确率,解决恶劣 bacase。

3.2 TCN 简介

时间卷积网络(TCN)可以作为一般的序列建模架构,且拥有非常好的效果。TCN 显著的特点有如下几点:


  • 架构中的卷积存在因果关系,这意味着从未来到过去不会存在信息泄漏。

  • 卷积架构可以将任意长度的序列映射到固定长度的序列。

  • 利用残差模块和空洞卷积来构建长期依赖关系。



TCN 论文图:TCN 架构的组成元素。左图为空洞系数 d=1,2,4、卷积核大小 k=3 的空洞因果卷积,感受野能覆盖输入序列中的所有值。右图为 TCN 残差块,当残差输入和输出有不同的维度,我们会添加一个 1x1 的卷积。

3.3 网络架构


上图为整个模型的框架图,主要分为动态特征提取模块和静态特征模块,其中动态特征的提取基于 TCN 模型实现,而静态特征则直接和提取出的动态特征进行连接之后使用。具体说明见下文。

3.4 动态特征提取

该模块的主要目标是通过 TCN 模型去学习旅行时间的曲线走势特征,这里的动态特征指的是从今年和去年对应的一定数量的平均旅行时间构成的序列中提取出的走势特征。


本文将今年和去年对应的平均旅行时间序列作为一个双通道序列放进 TCN 模型中学习,旨在利用 TCN 强大的时序建模能力,同时结合今年和去年的走势特征,更加准确的预测未来一周的走势(上升、下降或震荡)。


针对该类序列建模问题,已有成熟的 RNN 技术,而且目前更新的 TCN 技术也已出现。在项目开展过程中,分别使用了 RNN、LSTM 和 TCN 来做序列建模,实验结果表明,使用 TCN 进行序列特征提取效果最好,相对于 RNN 约有 1.39%的效果收益,相对于 LSTM 约有 0.83%的效果收益,而且由于 TCN 模型是基于卷积网络实现的,训练速度更快,所以本项目中采用 TCN 进行动态特征提取。

3.5 静态特征

这里的静态特征主要指一些人工提取的特征,用以加强模型表达能力。具体如下:


道路属性特征路长、路宽、车道数、车道宽度、最大限速等
时间属性特征前三天对应时间批次旅行时间、前七天对应时间批次旅行时间均值、去年同期前后两个平均旅行时间(同一特征日&同一时间批次)


道路属性特征主要考虑不同的道路通行能力不一样,会在一定程度上影响车辆通行速度。


时间属性特征主要分三方面:


  • 前三天对应时间批次旅行时间-考虑到时效性问题,越靠近预测天则可靠性越大,例如,最近几天道路施工,车道速度受到影响;但该特征也会对基于特征日的建模产生一定影响,因为车辆出行规律大部分情况下跟周几特征日有关,而与非特征日的关联较小(除特别情况,如活动举办、连续数天施工)。案例见下图。



图中为某段道路连续 85 天某时间批次上的旅行时间变化趋势图,从图中可以看到,该曲线呈现先平稳后上升的趋势,第 85 天的旅行时间与前面的关系不大,而与近期关系较大(近期一直较拥堵),尤其是近三天。


  • 前七天对应时间批次旅行时间均值-该特征为近期旅行时间的一个统计指标,旨在反映近一周的通行状况,作用同上。

  • 去年同期前后两个平均旅行时间(同一特征日 &同一时间批次)

4. 模型效果

本文所采用的基于 TCN 建模方法,能够从动态和静态特征中提取出驾驶规律信息,包括异常点的识别过滤、旅行时间的趋势变化信息和年度周期信息,给出更符合预期的预测值,较好的解决当前历史平均值法的弊端,可以部分解决恶劣 badcase 发生的问题。具体效果说明如下:

4.1 异常值自动过滤


上图中 case,从整体上来看,旅行时间在 70s 上下浮动,而局部某些点是异常偏大的(当天可能发生了交通事故等),属于异常点,在预测未来历史速度信息走势的时候,应该忽略,TCN 模型成功的忽略了这些异常点,但历史均值法则会将其纳入计算,导致算出的平均旅行时间偏大。

4.2 趋势信息提取


上图中 case,从曲线走势来看,旅行时间近期有所上升,所以下周的平均旅行时间大概率还是会延续这种趋势,可以看出,TCN 模型比较好的学习到了这种趋势信息,预测效果较好,但历史平均值法,由于前期很长一段时间旅行时间都很小,导致算出的平均旅行时间也偏小。

4.3 年度周期性的引入


上图中 case,从图中可以看出,今年前 11 周都比较平稳,第 12 周旅行时间突然上升,但只从今年信息中我们无法得知第 12 周这天是否是异常值,从而模型无法准确给出第 13 周的预测值,但从去年对应的 13 周的数据中可以发现,去年对应的时间在第 12 和 13 周都上升了,从而模型可以确定今年第 13 周大概率还是会继续升高(根据年度周期性),但使用历史平均值法给出的平均旅行时间则明显偏小。

5. 评测结果

该项目在某一周的 case 集合上的评测效果:


  • 基线-历史平均值法的 badcase 率为 11.0‰;

  • 对照-基于 TCN 的方法的 badcase 率为 10.1‰。


可以看出,本文所采用的方法相对基线恶劣 badcase 率下降幅度较大,说明引入年度周期性可以解决部分恶劣 badcase。

6. 小结

本文将 TCN 模型进行工业化实践,帮助建模历史速度问题,并结合特征工程(提取动态、静态特征,引入年度周期性等),成功的解决了现有模型的不足,并在实际应用中取得了不错的效果,为将来的时序性问题探索了一条可行的路径。对现有 TCN 模型框架所做改动较小,后续可进一步探索,针对特定问题做一些定制化的改进。


本文转载自公众号高德技术(ID:amap_tech)


原文链接


https://mp.weixin.qq.com/s/DXMyXfuUtUGcgB33Jvn8YQ


2019-08-17 08:004175

评论

发布
暂无评论
发现更多内容

即时通讯技术文集(第43期):直播技术合集(Part3) [共13篇]

JackJiang

即时通讯;IM;网络编程

家政平台(源码+文档+部署+讲解)

深圳亥时科技

《一文讲透》第 1 期:KWDB 单点安装部署

KWDB数据库

数据库 Influxdb 开源数据库 国产数据库 容器化部署

简单聊聊快递行业需要过等保的必要性-行云管家

行云管家

堡垒机 等保测评 过等保 快递

昆仑万维推出「天工大模型4.0」4o版(Skywork 4o),实时语音对话助手Skyo上线在即

新消费日报

如何在Go语言中实现表单验证?整一个validator吧!

左诗右码

告别延迟,酣战不停!GoLink携手火山引擎打造丝滑游戏加速体验

火山引擎边缘云

边缘计算 游戏 火山引擎 加速器

服装智能制造软件平台(源码+文档+部署+讲解)

深圳亥时科技

企业人事管理系统对比:9款值得信赖的推荐

易成研发中心

《一文讲透》第2期:两种 KWDB 的快速上手连接方式

KWDB数据库

oracle 物联网 JDBC 开源数据库 数据库架构

【HarmonyOS NEXT】异步编程的神器之Promise

冉冉同学

鸿蒙 HarmonyOS 客户端 harmony HarmonyOS NEXT

位置共享可以修改自己位置吗

科技热闻

如何进行需求全周期管理

易成研发中心

需求管理

企业RAG构建中,如何用“行级别权限管控”避免数据泄露

Zilliz

权限管理 Milvus 企业数据安全

Java代码之美,从遵循样式规范开始

京东零售技术

Java 架构 后端 代码

Crossover和虚拟机能玩的游戏一样吗 CrossOver相比于虚拟机有哪些优势

阿拉灯神丁

windows 游戏 虚拟机软件 Mac电脑软件 CrossOver 24

如何安全有效的删代码?

京东科技开发者

深入了解HR人事管理系统:8大厂商的综合评估

易成研发中心

大模型在软件测试中的应用论讨

京东科技开发者

EXCEL导入—设计与思考

京东科技开发者

如何利用京东API接口在商品详情页展示全网价格数据信息

代码忍者

API 接口 pinduoduo API

不要为了找工作而考证!

老张

考试认证 求职面试

IoTDB 航空航天解决方案:从制造到试飞,助力国之重器翱翔长空

Apache IoTDB

人工智能 | 检索增强生成(RAG)

测试人

软件测试

淘宝商品详情API:实现商品属性与价格数据的动态同步

代码忍者

API 接口 pinduoduo API

【FAQ】HarmonyOS SDK 闭源开放能力 —ArkUI

HarmonyOS SDK

HarmonyOS

2024-11-20:交替子数组计数。用go语言,给定一个二进制数组 nums, 如果一个子数组中的相邻元素的值都不相同,我们称这个子数组为交替子数组。 请返回数组 nums 中交替子数组的总数。 输

福大大架构师每日一题

福大大架构师每日一题

深度学习在高德驾车导航历史速度预测中的探索与实践_AI&大模型_沐亦_InfoQ精选文章