AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

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

  • 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:003884

评论

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

开放原子超级链动态内核上线,十分钟可搭建一条区块链

百度开发者中心

5G 和云原生时代的技术下半场,视频化是最大最新的确定性

阿里巴巴云原生

人工智能 云原生 5G 存储 调度

大数据作业的工作流调度详解

大数据技术指南

大数据 4月日更

跨专业?拿到阿里offer?我是如何一步一步做到的?

Java架构师迁哥

架构可视化支撑系统演进探索

华为云开发者联盟

架构 软件系统 架构可视化 辅助系统 架构可视化辅助系统

San介绍以及在百度APP的实践

百度开发者中心

Linux后台开发面试总结

赖猫

mysql事务隔离的研究

这就是编程

一不小心,它成为了 GitHub Alibaba Group 下 Star 最多的开源项目

阿里巴巴云原生

Java 微服务 云原生 dubbo Arthas

软件测试面试题【2021模拟面试整理版(含答案)】

程序员阿沐

面试 软件测试

用AI实践继续探索2050全面数字乡村建设

百度大脑

AI

三次给你讲清楚Redis之Redis是个啥

华为云开发者联盟

数据库 nosql redis hash 字符串

​专科出身,2年进入苏宁,5年跳槽阿里,论我是怎么快速晋升的?

码农之家

Java 程序员 互联网 面试 阿里

AI开发降本提效之道:云智一体AI开发全栈模式

百度大脑

百度 AI 飞桨

一位阿里P8技术大牛的Java面试题总结,在GitHub上仅一天就获赞上万!

Java架构之路

Java 程序员 架构 面试 编程语言

Canalys发布2020 Q4中国云市场报告

百度大脑

百度 AI

低代码平台想要实现复杂的业务流程,这4个条件不能少!

优秀

低代码

HugeGraph图数据库获Apache TinkerPop官方认证

百度开发者中心

「开源」首次被列入“十四五”规划,未来大有可为

百度开发者中心

大牛荐书 | 百度技术大牛都在读的7本书!

百度开发者中心

CMS垃圾收集器

张sir

Java JVM 垃圾收集

月薪30K以上的C/C++Linux后台服务器开发学习路线是怎样的?

赖猫

c++ Linux 后台开发 后端

工作中的设计模式 —— 策略模式

程序员小航

Java 设计模式

三年Java程序员成功跳槽涨薪,这份《阿里巴巴金三银四Java高级面试题》给了我很大的帮助。

Java架构之路

Java 程序员 架构 面试 编程语言

2021年金三银四最新美团、字节、阿里、腾讯Java面经,已拿offer!

Java架构之路

Java 程序员 架构 面试 编程语言

面试阿里P6,却被MySQL难倒,二战阿里,挤进天猫团队(Java岗)

Java 程序员 架构 面试

第14期师资培训火热招生中尽享国赛智能车一手资料

百度大脑

人工智能

终于有腾讯架构师把困扰我多年的《计算机网络原理》全部讲明白了

Java 程序员 架构 网络 计算机

学会 Java 数据结构,想不飘都难

学Java关注我

Java 编程 架构 程序人生 计算机

Impala简介以及与Hive的异同

五分钟学大数据

4月日更 impala

Apache-Flume的安装及简单应用

慢慢de

win10 flume 日志采集

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