随着时代的发展,近10年来位置产业蓬勃发展,定位能力逐渐从低精度走向高精度,从部分场景走向泛在定位。设备和场景的丰富,使得定位技术和能力也不断的优化更新。定位能力包括GNSS、DR(航迹推算)、MM(地图匹配)、视觉定位和网络定位等。
其中网络定位是通过客户端扫描到的WiFi和基 站信息来进行定位的一种定位方式。 网络定位能力是GNSS定位的有力补充,在GNSS无法定位或者定位较慢的时候,网络定位都可以快速给出位置。 网络定位能力也是高德能够深植于各类手机厂商(提供系统级网络定位能力)和APP(出行、社交、O2O、P2P、旅游、新闻、天气等诸多领域)的原因之一。
要做到通过WiFi和基 站来定位,我们需要通过亿级数据来挖掘出WiFi和基 站的类型、位置、指纹等各种信息。 这些信息的挖掘,历史上是通过一系列的人工经验策略来进行的,人工规则的历史局限带来了所挖掘信息较低的准召率,为了进一步提升高德网络定位能力,我们需要卸下以往的包袱,从方法上进行改变。
如何定义“网络定位”
网络
定位
分为离线训练和在线定位两个过
程:
-
离线训练: 是 在 用户 有 GPS位置 时 采集 周边 的WiFi和基 站( 以下统称 为 AP) 信息 ,通过对 采集数据进行 聚类和关联,得到 两 类 数据产品: AP库和 指纹库;
-
在线 定位: 与离线训练的过程 正好 相反,当用户没 有GPS定位时,可以通过扫描到的周边WiFi和基 站信号,结合离线训练出的AP库和指纹库来进行 实时定位。
AP库和指纹库这 两类 数据 产品中:
-
指纹库: 以物理 坐标 位置 对应 的特征 指纹信息为 内容 , 这些特征 指纹 信息 可以 包括扫描到 的WiFi或者基 站 的 信号 强度分布,采集点 频次等统计信息 ,也可以 是通过神经网络提取出的特征信息。
-
AP库: 以WiFi的mac地址或者基 站的ID(gsm基 站为mcc_mnc_lac_cid,cdma基 站为mcc_sid _bsid_nid )为主键,以WiFi或 者基 站的物理 坐标 信息( 经纬度 或者 地理栅格坐标 信息) 为 内容 。
典型 的 AP库 数据 只 包含 挖掘出 的 物理坐标 信息 和覆盖 半径, 这种“点圆模型”是 对 AP 发射 信号的一种理想化,没有考虑任何实际场景中的信号遮挡、反射等情况,所以AP 库大多 用来进行粗略定位 。而 指纹库直接与位置相关 ,可以 刻画比 “点圆 模型 ”更 细致的 分布 信息, 所以 指纹库可以 用来 进行精细定位。
高德 的指纹库主要包括 特有 的室内指纹和 全场景 指纹 信息 两种。
“网络定位”的问题
网络 定位的 基本 思路 类似 聚类,假设 用户手机 扫描到的 AP 列表 中 的 AP的位置均 比较固定 , 则我们可以 以 这些 AP位置为 锚点, 来 确定用户位置。 现实 世界中, 锚点(即AP库 中的 AP) 的位置 通过 大数据来进行挖掘, 并 不一定完全准确 ,甚至 出现严重错误。
针 对WiFi而言,移动WiFi、克隆WiFi、搬家WiFi等都可能造成AP位置的错误。移动WiFi包含手机热点,4g移动路由器,公交车/地铁/高铁上的WiFi热点等,这些WiFi的移动属性较强,位置频繁变化,如下图所示。
如果 以 移动WiFi作为 锚点,因为这些锚点的位置不固定,极可能会 导致 用户的定位出现极大误差。克 隆WiFi指不同的WiFi设备使用了同一个mac地址,国内的腾达和斐讯等路由器厂商制造了大量这样的WiFi设备(例如大部分mac前缀为“c8:3a:35”的即为腾达的克隆WiFi),克隆WiFi导致AP库中同一个mac地址对应的锚点位置有多个。搬家WiFi指某些因为搬家而发生位置变化的WiFi,数据挖掘存在一定的滞后性,搬家后AP库中的位置未及时更新,也会造成定位错误。
因为大 误差的badcase严重损害用户体验,我们必须要将这些非固定WiFi的属性在AP库中标记出来。
历史 上, 高德 是通过一系列 简单 的 人工规则对这些WiFi的属性进行分类的。例如,通过采集点覆盖范围较大来判定移动WiFi,通过mac前缀来判定克隆WiFi等。人工规则的缺点是准召率不高,训练分类模型就成了一个自然的选择。
鉴于badcase 中最严重的 问题是移动WiFi的准召率不高,下面我们就尝试使用监督学习的方法来进行“移动WiFi识别”。
如何实现“移动Wifi识别”
样本提取
AP库 中的 WiFi数量十分庞大,如果我们在AP库中随机 抽取 样本进行人工 标注,那大部分标注的结果可能是 人工 规则判定正确 的 样本, 为了尽可能低成本 获取有效 的 标注样本 ,我们借鉴 主动学习的思路, 不断 抽取模糊样本进行标注,快速迭代使得模型 稳定 。
我们 根据人工 规则的 判定结果 提取了 一批 确定性 较高 的样本,使用 人工强特征 训练 第 一版模型,之后 将 第一版模型的预测结果与线上 人工 规则的结果进行 全量比较 ,提取出模糊样本 进行 人工标注。 在 标注样本的过程中发现问题 ,持续 特征工程,不断迭代模型。
这里 模糊样本 的 定义包含三种: 预测 结果与上一版模型的结果 不同 ,预测 概率 值在 0.5附近 , 预测 结果在 不同 训练周期内 存在 波动 (例如昨天识别是移动WiFi,今天识别是非移动)。
特征提取
移动WiFi vs 克隆/搬家WiFi:
第一版 模型中,我们使用了 一些采集 聚集程度相关的特征 。
|
名称 |
描述 |
|
rati oX |
聚 簇寻找中心点,中心点向外X米圆形范围内的定位点占总定位数的比例 |
|
areaSqare |
定位点覆盖的矩形围栏范围的面积 |
模型 迭代 过程 中,我们遇到的 第一个 问题是移动 WiFi与克隆WiFi或搬家WiFi比较容易混淆。下面几幅图分别画出了固定WiFi、移动WiFi、克隆WiFi、搬家WiFi的定 位 点 散布的 实例。
可以 看到, 如果仅仅 使用 定位 点的聚 集程度来分类,那克隆WiFi和搬家WiFi的定位点也比较分散,极易与移动WiFi混淆。所 以 我们先 使用聚簇算法,将采集点 局部 聚集的点 集合 成 不同 的簇, 在 每个簇中计算 定位 点的 散布 程度, 再将所有 簇的散布程度 求 平均 值 等, 获取 平均意义 上 的 聚集 程度。
多维度提取特征:
为了 进一步 提升 分类的准召率,我们 不仅 从 定位 点的 聚集 维度来提取特征,还增加了 信号 强度、 关联 特征 、IP特征、时 间特征等 , 以下 进行 简要介绍:
-
信号强度信息 :(和上节中的聚集特征一起,统称为采集特征)移动设备与非移动设备采集点的信号强度在去除设备差异性之后,分布存在差异性。
-
关联 特征 : 关联 信息是指 当设备 扫描 到 的一次 W iFi列表中,列表中所有WiFi两两之间就算产生了一次关联(或称邻居)关系,统计WiFi周边关联的WiFi和基 站信 息,可以描述出WiFi的移动属性。
-
IP 特征 : 固网IP和 移动网的IP存在一定隔离,移动WiFi设备的上游一般是通过基 站连接的移动网,固定WiFi设备的上游一般是通过ADSL等连接的固网。
-
时间 特征 : 固 定WiFi一般是长时间连接电源的,而移动WiFi一般是临时在某些地方和时间短暂出现的。
聚合特征:
在AP库中 , 存在 一部 分WiFi定位信息不够充分,即使是人工标注也存在着非常大的不确定性,这些定位信息不够充分的WiFi,我们称之为“弱信息WiFi”。
对于这类WiFi,我们只有通过ssid和mac前缀来进行辅助判断。因为ssid中包含了一些诸如“iPhone”、“个人热点”、“oppo”、“shouqiyueche”(首汽约车)、“往返免费”、“tp-link”等能够表明设备属性的信息。另一方面,mac前缀(mac信息的前半部分)代表了厂商信息。基于这些辅助信息,我们可以在其他信息不够充分的情况下辅助推测WiFi的类别属性。
我们将基础特征(采集特征、关联特征、IP特征、时间特征)中较为重要的TOP_N维特征按照ssid和mac前缀进行聚合,聚合函数为中位数(median)和总体标准差(stddev)。这样,聚合特征体现了一类WiFi共有的特征,针对弱信息WiFi,我们就可以通过集体的特征来推测出个体的属性。
应用场景
除了
提升
网络定位
能力,
移动WiFi的识别还有更多用武之地,例如手机热点的识别,室内外的判断,建筑物和POI级别的定位等等。其中一个例子就是判断当前设备所连接的WiFi是否为移动热点(如4g路由器,手机热点等),在视频类的APP中,可以通过判别当前用户连接的WiFi是否为移动热点,从而控制是否进行视频的自动播放或缓存,给予用户提示性信息。
小结
最终 我们使用随机森林来训练 分类模型,经过特征选择和模型参数调整之后,最终得到的模型,移动WiFi的准召率均优于99.8%。高德网络定位的精度也因此得到了较大提升,尾部大误差badcase降低了18%左右。
网络 定位 作为 一种低功耗 的定位手段 , 不仅在GNSS无法触达 的地区( 例如 地铁、 室内 等场景) 为普通 用户 带来辅助 的定位信息, 而且在某些 急救和寻人 的 场景 中 发挥了重要的作用 。未来, 随着 5G通信 技术的 开展 , 将 迎来 更加 精准的 网络 定位能力。