限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

深度学习在高德 ETA 应用的探索与实践

  • 2020-06-18
  • 本文字数:1687 字

    阅读完需:约 6 分钟

深度学习在高德ETA应用的探索与实践

1.导读

驾车导航是数字地图的核心用户场景,用户在进行导航规划时,高德地图会提供给用户 3 条路线选择,由用户根据自身情况来决定按照哪条路线行驶。



同时各路线的 ETA(estimated time of arrival,预估到达时间) 会直接显示给用户,这是用户关心的核心点之一。用户给定起点和终点后,我们的任务是预测起终点的 ETA,ETA 的准确率越高,给用户带来的出行体验越好。

2.基于深度学习模型的探索和实践

2.1 模型选择

传统机器学习模型在 ETA 中,比较常用的有线性回归、RF(随机森林)、GBDT(梯度提升决策树)等回归预测类模型。线性模型表达能力较差,需要大量特征工程预先分析出有效的特征;RF 通过样本随机和特征随机的方式引入更多的随机性,解决了决策树泛化能力弱的问题;GBDT 是通过采用加法模型(即基函数的线性组合),以及不断减小训练过程产生的残差来达到回归的算法。


传统机器学习模型相对简单易懂,也能达到不错的效果,但存在两个问题:


  • 模型的表达能力跟选取的特征有关,需要人工事先分析出有效的特征。

  • 没有考虑上游对下游路段的影响,产生了如丢失上下游关联信息、下游受上游影响导致的不确定性等问题。


第一个问题很好理解,深度学习模型能很好地弥补这方面。针对第二个问题,以历史速度信息选取存在的不确定性为例来说明一下,历史速度信息是一个区分周一到周日七个工作日、10 分钟间隔的历史平均时间,可以根据该路段的预计进入时间所在 10 分钟区间来选定。如下图(历史平均速度)从 0:00-24:00 的变化曲线,可以看到一天中特别是早晚高峰,速度值存在较大波动。



而在选取历史平均时间时,依赖的是预计进入时间,这个时间依赖于上游路段的预计通行时间,因此其选取存在不确定性,进而导致 ETA 计算不准确。


考虑到以上问题的存在,我们选择利用 RNN 的时间序列思想将路线中上下游路段串联起来进行路段 ETA 的预测。


另外考虑到 RNN 存在的长依赖问题,且结合实际业务情况,我们选择使用 LSTM 模型来进行建模,LSTM 的门结构具有的选择性还能让模型自行学习选择保留哪些上游的特征信息进行预测。

2.2 网络架构


上图为整个模型的框架图,主要分为两部分,使用 LSTM 模块对路线中的路段 ETA 的预测和最终使用 N 层全连接模块对累计路段 ETA 及路线各特征进行完整路线的 ETA 预测。

2.3 路段 ETA 预测


上图为各路段 ETA 预测使用的 LSTM 结构图,Xt 为路线中第 t 个路段的特征信息,主要包含对应的实时路况信息、历史路况信息、路段的静态特征等。


LSTM 本是输入时间序列数据的模型,我们利用该思想,将路线中各路段序列依次输入模型。

2.4 完整路线 ETA 预测

在 LSTM 模块得到累计路线 ETA 预测值后,结合该路线的静态属性,使用全连接模块将其整合成最终输出的完整路线 ETA 预测值。


路线的属性特征主要指一些人工提取的特征,如该路线的长度、导航规划发起特征日、是否早晚高峰时段等,用以加强模型在不同场景下的表达能力。


损失函数选用线性回归常用的平方形式:MSE,公式如下:



其中,N 是路线数量,ETA 路线 j 为路线 ETA,即预测值;用户实走 j 为用户在该路线的实走时间,即真值。

3.模型效果

衡量模型效果,即路线上 ETA 的预测值时,主要考虑的是准确率。一般情况下,用户对 ETA 偏长和偏短的容忍度不同,对偏长容忍度更高。比如用户要去机场,ETA 给的时间偏短 10 分钟比偏长 10 分钟对用户的损害更大。因此准确度的指标设计倾向于 ETA 偏长,定义为满足用户一定容忍范围的请求比例,即准确率作为主要衡量指标。


在北京市上的实验结果显示,ETA 准确率得到提升,MSE loss 下降比例 28.2%,效果有了明显的提升。

4.小结

本文介绍了引入深度学习模型,帮助建模导航规划的预估到达时间预测,成功解决了线性模型的不足,也为后续引入更多特征、进行更多探索打开了空间,如历史速度信息的不确定度、时效性、周期性、突发事件、路网结构等。


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


原文链接


https://mp.weixin.qq.com/s?__biz=Mzg4MzIwMDM5Ng==&mid=2247485006&idx=2&sn=b837e9658599eef64acbab11409601a7&chksm=cf4a5eadf83dd7bb73e340f31ba92c1b3aa74378829793b6d7bba98272d15f42a4509ea747a9&scene=27#wechat_redirect


2020-06-18 10:002303

评论

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

docker-compose构建springcloud微服务项目

xcbeyond

Java Docker Docker-compose springboot

VSCode配置同步|VSCode高级玩家宝典之第三篇

三钻

程序员 效率工具 vscode 开发工具

国内外低/零代码的有哪些代表?

代码制造者

编程语言 低代码 零代码 信息化 开发应用

职业发展的迷茫与困境:你真的了解晋升机制吗?

伴鱼技术团队

职业规划 技术管理 技术交流 职业成长 技术人生

VSCode常用快捷键大全|VSCode高级玩家宝典之第一篇

三钻

学习 程序员 效率工具 vscode 快捷键

【FCC前端教程】28关学会HTML与HTML5基础

三钻

CSS html 大前端

憋再PS抠图了,3行代码给你安排的明明白白!

wangkx

生产力 图像识别

带你体验Vue2和Vue3开发组件有什么区别

三钻

Java Vue 大前端 Vue3 React

写给想学和在学编程的你们,学习编程的7个好处

三钻

学习 程序员 软件开发 编程之路 经验分享

Git分支管理策略及简单操作

wangkx

git git flow

【第十周作业】

Aldaron

VSCode插件大全|VSCode高级玩家之第二篇

三钻

程序员 vscode 编辑器 插件 技巧

Python中list操作之append、extend

wangkx

Python Python基础

你真的懂怎么写`服务层`吗?

三钻

php 程序员 后端 服务 架构思维

用“易于改编”原则,提升编程水平,写出更好的代码

三钻

程序员 大前端 后端 经验分享 编程风格

SpringCloud服务注册与发现(Eureka)

xcbeyond

Java SpringCloud Eureka 服务注册与发现

5大法则助你 成为更出色的开发者

三钻

学习 编程 程序员 敏捷开发 经验分享

前端必看的8个HTML+CSS技巧

三钻

Java html html5 css3 大前端

解读CDN的应用场景与产品价值

阿里云Edge Plus

CDN

Lambda架构已死,去ETL化的IOTA才是未来

易观大数据

【数据结构与算法】如何高效学习数据结构与算法

三钻

学习 数据结构与算法

CentOS7 下Docker安装、启动

xcbeyond

Docker 软件安装

IDEA直连服务器,进行项目Docker部署,实现一键部署、启动

xcbeyond

Java Docker idea插件

DSN 主流项目调研 0——IPFS&&Filecoin白皮书总结

AIbot

区块链 分布式存储 分布式文件存储 IPFS Filecoin

DSN主流项目调研1——Storj和Arweave的简介

AIbot

分布式存储 区块链+ 分布式文件存储 Storj Arweave

【第十周】学习笔记

Aldaron

更优雅的编写JavaScript

三钻

Java 程序员 大前端 经验分享 ES6

图解JavaScript——代码实现(六种异步方案,重点是Promise、Async、发布/订阅原理实现,真香)

执鸢者

原理 异步 Promise Async

【FCC前端教程】44关学习CSS与CSS3基础「一」

三钻

CSS css3 程序员 大前端

浅析Python3列表操作之*和*=

wangkx

Python Python基础

6个高效学习编程的方法

三钻

学习 程序人生 大前端 后端

深度学习在高德ETA应用的探索与实践_AI&大模型_高德技术_InfoQ精选文章