AI在出行场景的应用实践:路线规划、ETA、动态事件挖掘…

简介: 本文是#春招专栏#系列的第1篇,根据高德机器学习研发部负责人damon在AT技术讲坛所分享的《AI在出行领域的应用实践》的内容整理而成。

前言:又到春招季!作为国民级出行服务平台,高德业务快速发展,大量校招/社招名额开放,欢迎大家投递简历,详情见文末。为帮助大家更了解高德技术,我们策划了#春招专栏#的系列文章,组织各业务团队的高年级同学以科普+应用实践为主要内容为大家做相关介绍。

AT技术讲坛(Amap Technology Tribune)是高德发起的一档技术交流活动,每期围绕一个主题,我们会邀请阿里集团内外的专家以演讲、QA、开放讨论的方式,与大家做技术交流。

damon根据用户在出行前,出行中和出行后如何使用导航服务,分别选取了几个典型的业务场景来介绍AI算法在其中的应用,最后对未来做了一些展望。

 

以某位同学周末和朋友相约去“木屋烧烤”店撸串为例,假设这位同学选择驾车前往目的地,我们来看下AI算法是如何在导航过程中起到作用的。

出行前,先做路线规划,ETA(预估到达时间),不要迟到;出行中,最怕的就是遇到突发动态事件而影响到出行时间;出行后(到目的地),餐馆是否还在正常营业,也需要通过技术挖掘,帮助用户提前规避白跑一趟的风险。

下面分别介绍。

出行前-路线规划

路线规划,和网页搜索,商品搜索的推荐算法很相似,为用户推荐一条符合个人喜好的优质路线。推荐的路线要符合以下几个条件:

  • 能走:此路能通,按照路线可以到达终点。
  • 好走:路线质量在当前地点时间下确保优质。
  • 千人千面:不同用户在保证路线优质的前提下,个性化调整更符合用户偏好。

同时,在不对用户产生误导的前提下,提供更多的对比参考给用户来选择:

  • 优质:相比首路线/主路线,有一定的、用户可感受到的优势。
  • 多样:相比首路线/主路线,尽可能有自己的特长。

路线规划算法的特点

从用户产生出行需求,到需求得到满足。在用户搜索的时候,上传的Query除了有起终点和导航策略,也会像其他搜索一样,有隐含的需求,比如个性化和场景化。在导航业务里面,个性化可以拆分成熟路偏好两个维度,熟路比较容易理解,偏好是指用户对时间、距离、红绿灯、收费等不同维度上的偏好。

那么,对应的解决方案,我们引入用户ID,存储记忆了用户的起终点对应的熟路信息。对用户的偏好,类似DIN的网络结构,对用户历史导航序列进行建模,获取用户偏好信息。

在用户提交搜索需求之后,对导航引擎来说,也分为召回排序过滤几部分。

对于导航的召回,对性能要求比较高,所以目前召回的结果较少。对排序来说,同样是多目标,而且多目标之间要进行平衡的业务。类比到电商推荐领域,不仅希望用户更多地对商品进行点击浏览,还希望用户在看完商品介绍之后进行购买,提高GMV。

对于地图出行,不仅希望用户更多的使用导航且按照推荐的路线走,还希望实走时间要尽可能短,用户反馈尽量好。

而且,和其他领域类似,多个目标之间会存在冲突,比如电商CTR和GMV。在导航领域,让用户尽可能的走封闭道路,没有出口,那肯定实走覆盖率就上升了,但是这样规划的路线会绕远,时间和距离都变差。

多目标的平衡,如何在“帕累托最优”的情况下,进行多个目标之间的取舍、平衡,是大家一直在探索的问题,我们目前采用的是带约束的最优化问题来进行建模,就是保证其他指标不变差的情况下,把某个指标最优化。

最后,用户拿到导航引擎返回的路线结果,特点是信息少,用户只能看到整条路线的总时间、总距离和收费等统计信息,对于这条路好不好走,能不能走很难知道。

而且,大部分用户是在陌生场景下用导航,对导航依赖很重,很难决策走哪条路更好,这就导致排序在首条的方案选择率很高,达到90%以上,这个偏置是很严重的,在训练实走覆盖率的时候,我们设计了偏置网络,来吸收用户这种倾向。

导航还有一个特点,一旦出错,对用户伤害特别大,比如遇到小路,用户的车可能会出现刮蹭;遇到封路,用户可能就得绕路,付出相当的时间和金钱成本。这往往会比信息搜索给用户带来的影响和伤害更大。所以,我们在过滤阶段,对Badcase的过滤也是严格作为约束要求的。

路线规划召回算法

路线规划算法,经典的是教科书上的Dijkstra算法,存在的问题就是性能比较差,线上实际应用都做了优化,这里就不展开介绍了。

当起终点距离超过500公里,性能基本就不可接受了,虽然有启发式A star算法,但是A star算法有可能丢最优解,并不是完美解决性能问题的方法。

解决性能问题的思路,一个是分布式,一个是Cache,而最短路线搜索并不像网页搜索,分布式并不能很好的解决性能问题,所以目前工业界实际使用的算法都是基于Cache的方法。

Cache的方法就是提前把一些起终点对之间的最短路线计算好(Shortcuts),在用户请求过来的时候,利用好这些Shortcuts,达到加快求路的目的(简单举例子,比如从北京到广州,如果提前计算好了从北京到济南,济南到南京,南京到广州的最短路径,那就可以在计算北京到广州的时候,利用这些提前计算好的最短路线)。

其中最为经典的一个算法就是CH算法(Contraction Hierarchies),在预处理阶段,对所有节点进行了重要性排序,逐渐把不重要的点去掉,然后增加Shortcuts;Query查询阶段,从起点和终点分别开始双向求路,只找重要性高的点,来达到加速的目的。

既然是Cache,就会面临一个更新的问题,比如原始路网的路况变化了,或者原始路网某条路封路了,那么提前缓存好的Shortcuts也需要更新。

这个时候CH的算法,由于Shortcuts结构设计不够规律,更新就很慢,无法响应实时路况的变化。于是,路线规划算法推进到了下一代,CBR算法(Cell based Routing),这个算法通过分而治之的思想,在预处理阶段,把全国路网切分成n个子图,切分的要求是子图之间连接的边(边界边)尽可能的少。

在每个子图内,再继续往下切分,进而形成金字塔结构,预处理阶段就是把边界边之间的最短路径都提前算好,Cache下来求路的时候,就可以利用这些Shortcuts了。

CBR的优点是,在预处理阶段,路网的切分是分层的,每一层都足够小,在更新这一层的Shortcuts的时候,可以把数据都放到CPU的L1 Cache里去,所以计算速度特别快。

总结一下CBR和CH的区别:

  • Query查询性能,CH更快,CH是0.1ms级别,CBR是1-2ms级别。
  • Shortcuts更新性能,CH全国路网更新最快能做到10分钟,而CBR能做到15秒更新全国,可以满足实时路况变化和路网实时更新的需求。
  • CH的Shortcuts不规律,导致不同策略之间(躲避拥堵,高速优先等)不能很好的复用Shortscuts的起终点结构,所以不同策略需要单独重建Shortcuts,内存占用非常大。

 

这是我们排序的网络结构,左边是用户偏置网络,把路线排序的顺序,以及引导路线之间的相似度信息输入进去,期望尽可能消除掉偏置带来的影响。中间输入的用户历史统计信息和用户导航序列信息,用来提取用户的个性化偏好。优化的主要目标是实走覆盖率。

新一代的路线规划算法,要求提供随时间推演的能力。比如8:00从起点出发,后面要走 1 2 3 ..n条路到达目的地,假设8:10走到第2条道路,8:20走到第3条道路,那么我们在8:00计算Shortcuts的时候,就不能只用到8:00的路况,需要把后续进入某个道路的时刻考虑进来,用那个时刻的路况来计算,这就是TDR求路算法,目前是高德首创的,能真正实现躲避未来的拥堵,并利用未来的畅通来规划路径。

出行前-ETA(预估到达时间)

 

上面三幅图,选取的是北京西单金融街附近的区域,展示了在三个相邻时间点上的交通状况。其中绿色、黄色、红色代表交通路况不同的状态。

假设现在是18点整,路况预测的目标就是预估未来时刻的交通状况,需要依赖每条道路的历史信息,以及周边邻居的道路拥堵信息,对时空两个维度进行建模。

对时间序列的建模,用RNN,LSTM等SEQ2SEQ的序列,也有采用CNN,TCN等。对空间信息的建模,目前主流的方法是用GRAPH.

尽管模型在不断升级,越来越复杂,但是对于突发事件导致的拥堵,根据历史统计信息,很难预测精准,比如去年9月份在上海世博园区举行外滩大会,世博园平时很少有人去,历史路况都是畅通,而在开会期间,车很多导致很堵。

这个时候靠历史信息是很难预测准确,我们需要一个能代表未来的信号,才能预测,这就是路线规划的信息,如果想去世博园的人很多,那么规划的量就会很多,我们根据规划的量,就能知道未来有很多人想要去世博园,就会导致世博园拥堵。

 

所以,我们把规划的量,通过一个流量往时间域的转换,引入到路况预测模型,效果取得明显提升,尤其是在突发拥堵的时候,高德的这个研究成果被KDD2020收录,并且已经在业务场景中得到了应用,有兴趣的同学可以详细查看我们的论文。

行中-用文本数据挖掘动态交通事件

继续向餐馆前进,导航途中,最怕遇到拥堵,封路等事件,所以高德会想尽一切办法挖掘这些动态事件,帮助用户规避开。现在高德用到了多个维度的数据源,其中的行业和互联网情报都是文本数据,要用到NLP的技术来挖掘。

介绍一下怎么用AI算法来挖掘动态事件。

下面一段文本就是典型的来自于网络媒体的信息:

 

G0612(西和)高速南绕城路段西山隧道ZK33+844(兰州方向)应急车道停一辆故障大客车暂时封闭,行车道和超车道正常通行,请车辆注意避让、减速慢行。

这段信息是非结构化的,需要我们做预处理,要素提取,再进行事件的组织,组织成架构化的信息,才能自动化的应用。

很自然的,针对要素提取,我们用BERT模型建模,但是BERT模型太复杂,性能比较差,线上实际应用带来很大的挑战。

 

我们采取了知识蒸馏的方法,训练一个简单的Student的网络,来解决性能问题。知识蒸馏最主要的是如何捕捉潜在语义信息。高德在业界率先提出了用对比学习框架进行知识蒸馏,同时,在计算样本之间距离的时候,提出COS-距离代替欧氏距离的方法,能够让模型有效的学习到潜在语义表达信息。

 

对于Student表达的特征向量与Teacher特征向量距离靠近,而要远离负例。使用余弦距离,比如欧式距离,能够更好适应Teacher网络和Student网络,输出的特征向量长度分布不一致的问题,这个工作成果发表在了AAAI2021上。

出行后-POI数据过期(增强现势性)的问题

人们在高德地图上会看到很多地理位置兴趣点(Point of Interest,缩写为POI),例如餐厅、超市、景点、酒店、车站、停车场等。对POI数据的评价维度包括现势性、准确性、完备性和丰富性。

其中,现势性就是地图所提供的地理空间信息反映当前最新情况的程度,简而言之,增强现势性就是指尽可能快速地发现已停业、搬迁、更名、拆迁的过期冗余POI数据,并将其处理成下线状态的过程。这部分可以参考我们之前发布的文章《高德地理位置兴趣点现势性增强演进之路》。

以上仅是AI算法在出行场景应用的一些举例,更多的技术方案欢迎大家来和我们一起探讨。

出行前景-全局调度

对网页搜索来说,结果是信息,可以无限复制,互不影响;对电商搜索来说,结果是商品,可以认为商品足够多,不够再生产,所以也可以认为互不影响。

不同的是,导航搜索出来的道路资源是有限的,你用的多了,我就用的少。比如,一条路畅通,我们把人导过去,那么这条路就堵死了,所以我们要做全局调度,提高道路资源的使用率。

我们希望全局调度系统能和交通信号灯打通,在一个交通仿真的环境下,用多智能体强化学习的方法,学习到更大规模的交通系统上如何统筹协调车辆、交通灯,充分利用道路资源,进一步缓解拥堵。我们一起来探索!

作者:高德技术小哥

原文链接

本文为阿里云原创内容,未经允许不得转载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

lsof查看进程占用文件_Linux 利用lsof命令查找已经删除的文件来释放磁盘空间

测试环境一台服务器/ 根目录空间使用率达到94%,但是通过du -sh * 发现实际空间没没用用到那么多,初步怀疑,之前删除的文件,有运行中的进程一直占用,导致空间没有释放,如图通过du -sh * 发现共实际使用不到1…

AcWing 1238. 日志统计(双指针,滑动窗口)

题目&#xff1a; 1238. 日志统计 - AcWing题库 数据范围 输入样例&#xff1a; 7 10 2 0 1 0 10 10 10 10 1 9 1 100 3 100 3输出样例&#xff1a; 1 3 思路&#xff1a;双指针 代码&#xff1a; #include<iostream> #include<cstdio> #include<cmath>…

基于 Wasm 和 ORAS 简化扩展服务网格功能

简介&#xff1a; 本文将介绍如何使用 ORAS 客户端将具有允许的媒体类型的 Wasm 模块推送到 ACR 注册库&#xff08;一个 OCI 兼容的注册库&#xff09;中&#xff0c;然后通过 ASM 控制器将 Wasm Filter 部署到指定工作负载对应的 Pod 中。Wasm Filter 部署中的所有步骤都使用…

漫话:如何给女朋友解释什么是元宇宙?

作者 | 漫话编程来源 | 漫话编程Metaverse元宇宙这个词&#xff0c;第一次出现是在1992 年&#xff0c;美国著名科幻作家尼尔・斯蒂芬森&#xff08;Neal Stephenson&#xff09;的小说《雪崩&#xff08;Snow Crash&#xff09;》中。在书中&#xff0c;尼尔・斯蒂芬森描述了一…

浅谈分库分表那些事儿

简介&#xff1a; 本文主要阐述在分库分表改造过程中需要考虑的因素以及对应的解法&#xff0c;还有踩过的那些坑。 本文适合阅读群众&#xff1a;需要从单库单表改造为多库多表的新手。 本文主要阐述在分库分表改造过程中需要考虑的因素以及对应的解法&#xff0c;还有踩过的…

java上传大文件_Java超大文件上传解决办法

这里只写后端的代码&#xff0c;基本的思想就是&#xff0c;前端将文件分片&#xff0c;然后每次访问上传接口的时候&#xff0c;向后端传入参数&#xff1a;当前为第几块文件&#xff0c;和分片总数下面直接贴代码吧&#xff0c;一些难懂的我大部分都加上注释了&#xff1a;上…

剪了 20% 的刘海、120Hz 刷新率、1TB 存储,iPhone 13 来了!

作者 | 苏宓出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;2011 年 8 月 24 日&#xff0c;乔布斯表示「无法继续担任苹果首席执行官的这一天终于来临」&#xff0c;随后彼时的代理首席执行官蒂姆库克被任命为正式首席执行官&#xff0c;成为苹果公司的新任掌舵者…

阿里云AHAS Chaos:应用及业务高可用提升工具平台之故障演练

简介&#xff1a; 阿里云AHAS Chaos&#xff1a;应用及业务高可用提升工具平台之故障演练 应用高可用服务AHAS及故障演练AHAS Chaos 应用高可用服务&#xff08;Application High Availability Service&#xff09;是阿里云一款专注于提高应用及业务高可用的工具平台&#xff…

SAE助力「海底小纵队学英语」全面拥抱Serverless,节省25%以上成本

简介&#xff1a; 阿里云Serveless应用引擎SAE 具备免运维IaaS、按需使用、按量计费、低门槛服务应用上云&#xff0c;并且支持多种语言和高弹性能力等特点&#xff0c;刚好完美解决了客户长期以来运维复杂、资源利用率不高、开发迭代效率低等问题。 海底小纵队学英语隶属于成都…

低代码从技术走向产品,用友发布自动化设计工具“码前”

低代码以往只被作为技术被讨论&#xff0c;这一次&#xff0c;用友用低代码推出了自动化、一站式“需求产品设计”工具“码前”&#xff0c;帮助企业用户快速完成代码前的所有设计工作。 编辑 | 宋 慧 出品 | CSDN云计算 据《2021中国数字经济发展白皮书》统计&#xff0c;2020…

java连接access驱动_Java 连接Access

Java 连接Access第一次使用连接Access数据库&#xff0c; 记录一下遇到的坑Access驱动下载地址 http://pan.baidu.com/s/1o8ltTfc不使用WINDOW的建立数据源方法&#xff0c;直接在Java代码内部与Access数据库连接public void ConnectAccessFile() throws Exception{Class.forNa…

基于Serverless的云原生转型实践

简介&#xff1a; 新一代的技术架构是什么&#xff1f;如何变革&#xff1f;是很多互联网企业面临的问题。而云原生架构则是这个问题最好的答案&#xff0c;因为云原生架构对云计算服务方式与互联网架构进行整体性升级&#xff0c;深刻改变着整个商业世界的 IT 根基。 云原生架…

监控最佳实践--redis及业务接口

简介&#xff1a; 监控最佳实践--redis及业务接口 1. 背景 1.1 问题 2020-12-04&#xff0c;客户侧redis集群版监控DB0 CPU突增至100%&#xff0c;导致数据库无法正常服务&#xff0c;经排查客户侧业务上存在2M左右的大key导致DB0阻塞。并且客户侧使用的集群连接方式为默认pr…

汽车电气化竞争:获胜的途径

“如果您觉得一切都在掌握之中&#xff0c;那就是您的速度还不够快。”— Mario Andretti 多年来&#xff0c;汽车制造商不断面临对更大功率需求的挑战。在早期&#xff0c;汽车使用 6V 电池供电&#xff0c;直到 20 世纪 50 年代中期&#xff0c;汽车系统演变为 12V 电源&…

从MVC到云原生:CBU研发体系演进之路

简介&#xff1a; 本文对过去十年 CBU 在研发方式和技术架构上的探索做一个简要的回顾总结&#xff0c;以及对未来的展望。 前言 CBU作为集团内最早成立的几个BU之一&#xff0c;有着多年丰富的业务沉淀&#xff0c;而CBU的技术也伴随着业务一起不断地演进和成长着。从PC时代的…

你们关心十三香不香,我却关心背后的质检稳不稳

前些天&#xff0c;一年一度的科技圈春晚——苹果秋季新品发布会如约而至&#xff0c;iPhone13再度成为苹果产品发布会的绝对主角。 更强的CPU&#xff0c;更强的相机&#xff0c;更好的屏幕&#xff0c;更长的续航&#xff0c;更性感的配色&#xff0c;还有更低的价格——在全…

如何通过 Serverless 提高 Java 微服务治理效率?

简介&#xff1a; 在业务初期&#xff0c;因人手有限&#xff0c;想要快速开发并上线产品&#xff0c;很多团队使用单体的架构来开发。但是随着公司的发展&#xff0c;会不断往系统里面添加新的业务功能&#xff0c;系统越来越庞大&#xff0c;需求不断增加&#xff0c;越来越多…

每次都需要解释大量指令?使用 PolarDB-X 向量化引擎

简介&#xff1a; 向量化引擎为PolarDB-X的表达式计算带来了显著的性能提升。 介绍 PolarDB-X是阿里巴巴自研的云原生分布式数据库&#xff0c;采用了计算-存储分离的架构&#xff0c;其中计算节点承担着大量的表达式计算任务。这些表达式计算涉及到SQL执行的各个环节&#xff…

稳定性保障6步走:高可用系统大促作战指南!

简介&#xff1a; 年年有大促&#xff0c;大家对于大促稳定性保障这个词都不陌生&#xff0c;业务场景尽管各不相同&#xff0c;“套路”往往殊路同归&#xff0c;全链路压测、容量评估、限流、紧急预案等&#xff0c;来来去去总少不了那么几板斧。跳出这些“套路”&#xff0c…

观测云品牌正式亮相,携手通信院共推国内可观测性概念与技术发展!

2021年9月17日&#xff0c;由中国信息通信研究院、中国通信标准化协会联合主办的“2021 OSCAR 开源产业大会”在北京中关村拉开序幕。会上正式发布了《开源治理标准与评估结果》《开源法则》等多项重要成果&#xff0c;而由通信院主导、驻云科技参与制定的《中国可观测性标准》…