这是15年初,在高德负责数据挖掘团队所做的人地挖掘的一份报告,后续经过几版的迭代,应该是累计国内最全的家和公司位置挖掘,已经应用在多个产品线上。过一段时间分享下具体的实现方法。
1. 摘要
人地关系的家和公司挖掘,经过三轮迭代,融合了AMap和开放平台用户数据,挖掘出来3.32亿名用户的常驻地,家和公司(截至2015-05-01)。其中针对amap日活用户而言,家的总体覆盖率达到77.32%,公司的总体覆盖率达到80.17%。
我们采用了两份不同样本集来对挖掘结果校验,交通订阅样本共计5269条,家准确率为89.31%,公司准确率79.18%。公司同事反馈样本共计90条,家和公司的准确率均为94.44%。目前挖掘结果基本达到年前所设定的准确率80%,覆盖率50%的目标,可以投入使用。
通过追踪样本集,目前存在IOS平台准确率和覆盖率都偏低,公司准确率相对偏低两个问题,会通过进一步升级挖掘算法,以及推进开放平台的IOS SDK日志升级和融合,甚至未来考虑融合UC或者手淘IOS平台定位日志,来解决这些问题。
2. 数据集
2.1 挖掘数据源
人地关系挖掘数据来源包括Amap的AOS层所有日志,以及开放平台定位SDK日志。通过数据融合、预处理,每日处理日志条数约计50~60亿条。
由于开放平台REST 服务日志,缺乏包括用户标识号(idfa),定位经纬度等重要信息,未能参与挖掘计算。未来融入该部分日志,能够一定程度上补充目前iOS平台用户位置不足。五月中旬,我们会发起开放平台的日志规范讨论,希望能够推动开放平台SDK和服务端能够带回更多关键字段数据。
2.2 校验样本集
路况订阅样本为了尽量保证交通订阅的起始地和目的地与用户真实的家和公司一致,对交通订阅数据采用了以下两条规则,筛选出准确度较高的数据集,共计5269条。(采用了强筛选规则)1)只选择订阅两条路线的用户,并筛选出起点为“家”、终点为“公司”的订阅数据2)起点落在编码为3011的楼块中,终点落在非3011的其他居民地及设施中。
用户反馈样本通过提供可视化网站的形式,收集了高德地图内部员工90条家和公司的反馈信息。
3. 校验方法
3.1 坐标系
校验样本集的数据都是采用的火星坐标系(GCJ-02),挖掘结果是采用的标准GPS坐标,采用WGS84坐标系。两者均未指定椭球体。GCJ-02本质加密是超越二项式,无法反解,只能二分法逼近。在本次校验中,采用通用的二分法逼近算法,经过验证显示,GCJ02到WGS84的坐标转换的误差不超过3m。在此应用场景上使用,坐标转换所损失的精度处于容忍范围内。因此,样本集和挖掘结果的距离量测,是在WGS84坐标系下计算。
3.2 大地距离
本次校验采用大地距离(球面距离),采用Vincenty算法。通过计算挖掘结果和样本集的WGS84坐标系下的大地距离。在路况订阅样本下,由于路况订阅数据,用户在选择家或者公司操作,一般都是选小区的POI,和用户实际所在楼块本身有一定距离,我们采用计算两者距离<1000m,则判定为准确。在用户反馈样本下,公司内部用户精确地将自己的家和公司位置定位到自己所在的楼上,我们采用计算两者距离<50m,则判定为准确。
4. 校验结果与结论
4.1 路况订阅样本
总体:家 准确率为89.13%,公司 准确率为79.18%。家 覆盖率为77.32%,公司的覆盖率为80.17%。
分平台:iOS : 家 准确率 86.96%,公司 准确率 68.89%。家 覆盖率 31.39%,公司 覆盖率 27.43%。Android:家 准确率 89.96%, 公司 准确率 79.18%。家 覆盖率 80.61%, 公司 覆盖率 81.55%。
可以看到iOS平台的准确率和覆盖率都相对偏低,公司的准确率相对偏低。通过对具体Case(大约100个)追踪,总结原因如下:
一. AMap数据覆盖不足。AMap使用场景更多倾向未知地点,使用频率偏低。由于开放平台iOS相关SDK并没有带回idfa,用户经纬度等数据。改进:(1) 协调开放平台iOS SDK PM和REST 服务RD,带回目前日志所缺失参数。(2) 希望PM能够协调UC,支付宝,手淘等集团内部的头部BU,授权融合使用iOS平台用户定位数据。期望收益:iOS准确率整体提升到80%以上,覆盖率整体提升到50%以上。
二. 公司语义更广泛。我们通过跟踪具体的Case,发现大量和汽车相关的职业的用户(如出租车司机,专车司机)并不存在传统含义的公司,并没有固定的办公地址。公司的挖掘相对家的语义更加广泛,涉及到不同社会阶层,公司的意义不甚一致(学生,自由工作者等),导致了公司挖掘准确率相对较低。改进:(1) 进行新一轮算法迭代,提升公司的语义判断准确率。(2) 融合其他数据维度来增强公司语义判断准确率。期望收益: 公司准确率整体提升到和家持平,即90%左右。
4.2 用户反馈样本
总体:家和公司准确率均为94.44%。由于样本集比较小,就不分平台分析,直接针对错误的Case进行分析。一. 两个iOS用户家和公司挖掘都出错。都是属于挖掘得分较低的用户,也就是说数据覆盖不足,但是算法本身参数也需要进行一定调整。改进:调整算法参数,观察不同参数的挖掘结果。期望收益:准确率会有一定提升,但是覆盖率会相应下降。具体的比例很难预估。
二. 剩余主要是家或者公司挖掘出错。属于更新时间较早,也就是说搬家或者换公司,没被探测出来。目前采用的选择算法倾向于惰性,时间参数的衰减较慢,搬家或者换公司一般要一到两个月才能更新位置。改进: 调整目前惰性算法,加大时间衰减权重。期望收益:能更快探测到用户新家或公司,但是有可能带来准确率的下降。
5. 总结
综上所述,目前家和公司第一期的挖掘已经按时符合质量产出,下一期需要融合更多数据,进一步升级挖掘算法。从数据层面,保证挖掘的准确率和覆盖率。下一步的工作,包括提供家和公司的数据服务,进一步深化人地关系的挖掘。主要包括,用户常去区域,用户轨迹等挖掘。同时,我们会启动ID Mapping 和 用户标签体系的构建,最终都采用标准的REST 服务提供,预期ID Mapping 会在六月中旬提供服务。用户标签体系则是长期工作,会在五月底提供部分标签的数据服务。