写点什么

机器学习在滴滴网络定位中的探索和实践

  • 2020-09-29
  • 本文字数:2935 字

    阅读完需:约 10 分钟

机器学习在滴滴网络定位中的探索和实践


今天给大家分享的是机器学习在滴滴网络定位中的实践工作,会重点介绍三阶段的演进:无监督模型、有监督回归模型、端到端 CNN 模型。

1. 什么是网络定位

目前定位技术主要包括 GPS、网络定位、惯性航位推算、MM(地图匹配)、视觉定位等。GPS 是最为人熟知的定位技术,是依靠设备与卫星交互来获取经纬度的方式。GPS 精度高,但有冷启动耗时长、耗电大、遮挡场景不可用等缺点。在滴滴场景下,乘客和司机在有遮挡的场景下,例如室内、高架下等,GPS 通常处于不可用状态。这时就需要有其他定位技术作为 GPS 的补充,使得乘客发单、司机导航等服务依然可用。其中最主要的补充便是网络定位。


室内类场景虽然有遮挡,但设备通常可以扫描到 Cell(基站)和 Wifi 列表,而且 Cell 和 Wifi 设备位置相对稳定,连接其上的设备可以借其定位,这就产生了网络定位。网络定位包括 wifi 定位和基站定位,是指基于终端扫描到的 wifi 或基站列表进行的定位技术。Wifi 的接入设备通常称为 AP(Acess Point),方便起见,下文将 AP 和基站统称为 AP。


网络定位通常采用的是指纹定位技术,是一个根据 query 匹配指纹库信息,并计算得到坐标位置的过程。如下图所示,网络定位系统主要包括离线建库和在线定位两个阶段。



离线建库主要是基于有 GPS 时的采集数据,建指纹库的过程。指纹库中记录 AP 的各类信息在不同地理网格内的采集数据分布,如下图所示。



在线阶段,根据线上 query 匹配指纹库信息,并计算得到坐标位置。


本文介绍的主要是在线定位部分,即 query 匹配指纹库、计算坐标位置。

2. 网络定位匹配算法迭代

在线定位算法共经历了无监督概率模型、有监督回归模型、端到端 CNN 模型三次大的迭代。前两个阶段的网络定位主要包括网格召回、网格排序、网格平滑三步,如下图图一所示。端到端 CNN 模型去除了网格排序和网格平滑,基于一个召回中心点,直接回归位置坐标,如下图图二所示。



图一



图二

2.1 无监督概率模型

网络定位要完成在线 AP 与离线 AP 指纹库的匹配,是联合概率计算的过程。


以 AP 指纹库的信号强度分布为例,看下网格概率计算过程。



纵轴为采集数据中的 AP 编号,横轴为空间网格编码,相交点表示每个 AP 在对应网格中的采集信号强度分布。空值表示 AP 在对应的位置无采集数据。


以一个实时定位 query 信息:(AP1:RSSI=1,AP3:RSSI=0)为例,介绍网格召回、排序、平滑的过程。


召回阶段,基于扫描到的 AP1 和 AP3,可以召回 Grid1、Grid2、Grid4;


排序阶段,结合离线 AP 库,基于独立性假设和贝叶斯公式,计算各网格的权重:



表示观测到的 APj 的信息。以信号强度 RSSI 单一特征为例,上例中,



网格平滑阶段,基于上述的统计概率,排序获取 TopK 个网格,采用爬山法求解最优坐标:



其中, 为预测位置到 的距离。

2.2 有监督回归模型

无监督概率模型的方法,思路清晰易懂,易实现,是早期网络定位的主要方式。但有以下问题:


  • 联合概率的方式对采集信息不充分的位置不友好,例如上例

  • 难以拟合多维特征,尾部 badcase 较严重

  • 技术目标无法得到直接优化,天花板较低


出于对以上问题的思考,整体流程仍保持网格召回、排序、平滑三阶段,我们将网格排序升级为有监督回归模型,通过引入多元特征和显式的优化目标,实现对网格的更精准打分。


Label:待预测网格与真实位置的位置偏差,回归任务。


特征工程:构建近百维特征,主要包含 AP 特征,网格特征,前文信息等。


模型选择:一期上线 GBDT 模型;二期对比了 GBDT、FM、DeepFM、FM+GBDT 等,最终线上最优融合模型结构如下。



原始特征中的稠密特征和低维稀疏特征经过 GBDT 进行特征组合、交叉;GBDT 输出的叶子节点编号与高维稀疏特征经过 DeepFM 网络,最终输出网格与真值的位置偏差。


TopK 网格平滑:预测偏差距离从小到大排序,截取 TopK 网格;爬山法,梯度下降求解最优坐标。

2.3 端到端 CNN 模型

有监督模型在特征利用、模型结构、优化目标等方面提供了更大的操作空间,可以极大地打开天花板。上线后定位精度等指标取得了显著的收益。


但该方法仍有以下问题:


  • 每个网格孤立刻画,信息采集时的不均衡、有偏的问题无法有效解决

  • TopK 平滑层与排序层割裂,无法联合优化,且引入部分人工超参


对于以上问题,考虑以下解决方案:


  • CNN 网络:充分利用空间信息的局部相关性,增强特征的提取能力

  • 端到端网络:合并排序与平滑层,改为直接回归位置坐标,目标更统一,减少人工超参


最终,整体网络结构如下:



下面以基站定位为例,介绍该结构的实现细节。


首先介绍下输入特征的构建:


  • Wide 网络特征:表达 Query 信息的 Wide 特征共十几维

  • CNN 特征图的构建:

  • 召回中心:采集热度较高的 TopN 网格的经纬度中位数作为图的中心点。

  • 特征图构建:选取 C 维图特征,每一维特征为一个 channel;基于召回中心,构建 M*M 分辨率的特征图。



CNN 特征类别



网格上各个 channel 的特征计算



输入特征图的示例


网络结构:在 CNN 网络部分,采用多尺度卷积核提取特征后,经过两个卷积+池化层后,将特征图打平。Wide 部分稀疏特征经过 embedding 后,与稠密特征级联。两部分 tensor 级联后经过全连接层,最终输出与召回中心点的位置偏差。


Label 与 Loss:label 为真实位置与召回中心位置的偏移 dx 和 dy,召回中心点+预测偏移即得预测位置。loss 最初使用的是经纬度的 L2 loss:



考虑到经纬度在球面上表达距离的差异,我们改为了使用球面距离偏差作为 label,也获得了稳定的收益:



dx 和 dy 表示真实空间距离


CNN 模型在线上 AB 实验取得了显著的收益,已全量上线。


CNN 端到端模型升级了信息的表达方式,由单网格、结构化的信息表达改为了 Image 的表达方式,配合 cnn 网络结构,获取了效果的显著提升;并且将几十甚至几百个网格的预测问题改为了单次位置回归问题,虽然模型复杂度有所增加,但整体性能基本持平。

2.4 线上效果

网络定位三阶段的模型先后上线进行了 AB 对比实验。以基站定位三个主要技术指标为例,对比结果如下表所示:


3. 总结与展望

本文总结了定位策略团队在网络定位算法侧的工作,介绍了无监督概率模型、有监督回归模型、端到端 CNN 的演进及其中的思考。


无 GPS 时的定位仍面临着很多困难,未来我们将在以下方面持续探索:


  • 模型效果优化:

  • 目前 CNN 模型在基础信息利用、召回等方面仍有较大优化空间。

  • 性能问题:

  • 考虑线上性能,在基础信息和网络结构上做了很多删减。期望通过更优的召回策略、蒸馏剪枝等平衡效果与性能。

  • 5G 技术:

  • 5G 的天然优势(高频率、高密度、低延时)也必定会带来定位精度的显著提升,相关调研工作正在进行。

  • 复杂场景定位:

  • 对于室内、地下停车场等典型复杂场景,网络定位面临着真值获取难、移动 ap 等难点。细分场景也逐渐向模型化方向演进。


以上就是滴滴网络定位近期工作的实践介绍,欢迎随时交流。


作者介绍


刘磊,滴滴专家算法工程师


2017 年加入滴滴,目前从事地图定位算法方向,多年 LBS 领域算法研究工作,在滴滴先后从事猜你想去、上下车点推荐、定位算法等方向的开发工作。


尹卜一,滴滴高级算法工程师


2018 年加入滴滴,主要从事网络定位、惯导推算等方向的算法开发工作。


林宇,滴滴高级算法工程师


2018 年加入滴滴,主要从事网络定位、融合定位等方向的算法开发工作。


本文转载自公众号(ID:)。


原文链接


机器学习在滴滴网络定位中的探索和实践


2020-09-29 10:061783

评论

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

又到“乌镇时间” | VoneDAO助力企业打造高效协作新生态

旺链科技

区块链 互联网大会 分布式自治组织

2021大厂Android面试题精选,BAT面试文档

android 面试 移动开发

2021大厂Android面试题精选,鸿蒙教程来袭

android 面试 移动开发

10天拿到阿里Java岗offer,Java框架面试题整理

Java 面试 后端

2021大厂Android面试最火问题,【Android面试题】

android 面试 移动开发

2021大厂安卓面试集合,建议收藏

android 面试 移动开发

10天拿到阿里Java岗offer,准备Java面试

Java 面试 后端

2021届毕业生还没找到Android开发工作,Android小技巧

android 面试 移动开发

10年阿里开发架构师经验分享,K8S+Docker理论与实践深度集成

Java 面试 后端

2021大厂Android开发面试总结+解答,查缺补漏

android 面试 移动开发

2021大厂Android春招面试经历,Android开发必须掌握

android 面试 移动开发

2021大厂Android面试最火问题,透彻分析源码

android 面试 移动开发

2021安卓开发社招面试解答之性能优化,Android自学

android 面试 移动开发

2021年Android大厂面试,flutter音视频开发

android 面试 移动开发

TDSQL核心架构

腾讯云数据库

数据库 tdsql

2021大厂Android面试题精选,当上项目经理才知道

android 面试 移动开发

10天拿到字节跳动Java岗位offer,深入讲解Java

Java 面试 后端

1200页文档笔记,我三年开发经验,从字节跳动抖音离职后

Java 面试 后端

2021大厂Android面试经历,安卓面试宝典

android 面试 移动开发

2021大厂Android面试经验,阿里P7亲自讲解

android 面试 移动开发

10天拿到字节跳动Java岗位offer,Java编程入门自学

Java 面试 后端

10年阿里开发架构师经验分享,Java进阶之光

Java 面试 后端

计算机网络——物理层的一些常见问题

Regan Yue

计算机网络 物理层 9月日更 计网

10年阿里开发架构师经验分享,从入门到精通系列Java高级工程师路线介绍

Java 面试 后端

2021互联网大厂Android面经合集,重磅来袭

android 面试 移动开发

1-3年Java开发工程师面试经验分享,深入浅出Java开发

Java 面试 后端

2021大厂Android面试题精选,Android工程师必备知识

android 面试 移动开发

10天拿到字节跳动Java岗位offer,java高分面试指南

Java 面试 后端

TDSQL金融级特性之:数据强一致性保障

腾讯云数据库

数据库 tdsql

分布式TDSQL的实践

腾讯云数据库

数据库 tdsql

1-3年的Java开发工程师看过来,阿里P8面试官都说太详细了

Java 面试 后端

机器学习在滴滴网络定位中的探索和实践_移动_滴滴技术_InfoQ精选文章