高德地理位置兴趣点现势性增强演进之路
1.导读
人们在高德地图上会看到很多地理位置兴趣点(Point of Interest,缩写为POI),例如餐厅、超市、景点、酒店、车站、停车场等。对POI数据的评价维度包括现势性、准确性、完备性和丰富性。其中,现势性就是地图所提供的地理空间信息反映当前最新情况的程度,简而言之,增强现势性就是指尽可能快速地发现已停业、搬迁、更名、拆迁的过期冗余POI数据,并将其处理成下线状态的过程。
在线的过期冗余数据会伤害用户体验,经过推算,头部在线数据的一个过期率百分点年度影响用户体验3亿次。因此,POI过期问题的解决势在必行,以增强现势性,减少用户伤害。
POI过期问题的解决分为发现和处理两个环节。发现采用挖掘线主导,采集线和舆情线补位的方式。采集的天然优势是自带核实资料,劣势也很明显,成本高、下发频率低,因而发现的时效性不高,且采集线发现过期需要经过挖掘线;互联网舆情时效性高,但覆盖少且ROI低;作为覆盖高、时效高、成本低的大数据挖掘是绝对主力。
处理环节有人工核实、自动化打标和自动化下线三种手段。人工核实存在缺少核实资料从而导致核实率低的问题,这是因为挖掘所依赖的观测资料不能提供过期的实锤证据,观测资料不等于核实资料,且过期的数据更倾向于核实不到,即能发现、难处理,从而伴随着挖掘的演进,衍生了自动化打标和自动化下线两种处理手段以及相应的风险控制机制(打标回捞、下线回捞),一方面提高了处理能力,另一方面降低了人工成本。
注:自动化打标是一种与前端搜索联动灰度处理高疑似过期数据的方式—打标数据非精搜不展现,精搜伴有话术提示。其背后的核心思路是由传统图商的实锤思维向互联网思维转变,及时触达用户,快上快下。
本篇文章将主要介绍挖掘的演进历程,作为过期发现的核心手段,挖掘在不同阶段分别面临缺资料、提准难、资料薄三大问题,站在今天回首过去,这个过程可以分为三个阶段:
- 基于自身属性的POI过期挖掘
- 基于使用行为的POI过期挖掘
- 基于人地关系的POI过期挖掘
我们利用策略、机器学习和深度学习等数据挖掘技术,从点到面、由粗到精地攻克POI过期挖掘业务,POI现势性增强的模式已经发生了深刻的变化。
2.数据挖掘手段的演进
2.1阶段一:基于自身属性的POI过期挖掘
早期的主要矛盾是缺少挖掘资料,如果同时做资料的POI挂接和基于挂接资料的挖掘策略会导致挖掘链路长、项目风险高。因此,在提升新资料的POI聚合能力的同时,以POI自身属性作为主要的挖掘资料。高德POI团队在信息聚合、融合方面有长时而丰富的积累,POI属性可大致分为三类:基础信息、深度/动态信息和关系信息。
基础信息:表征实体,包括名称、坐标、地址、行业、电话、时间、来源等。
深度/动态信息:增加POI数据丰富性,包括:图片、评分、评论、团购、报价等。
关系信息:POI间通过语义、时空建立的关联,包括:亲子、引用、共现等。
针对不同的属性,我们设计不同的策略去挖掘过期POI。根据复杂程度,我们将策略主要分为:基于单POI的挖掘和基于多POI的挖掘。二者的最大区别在于是否使用POI间的关系信息。下面介绍几个比较典型的策略:
策略特征使用表
◎代表关键特征,△表示辅助特征
评论过期语义挖掘是比较典型的基于单POI的挖掘策略。深度/动态信息中的评论是获取用户对POI反馈的有效途径之一,其中也包括对过期POI的反馈,我们通过匹配关键词很容易找到这种评论。上、下文的语境会导致关键词的语义发生变化,为此,我们利用TextCNN模型实现语义分类以达到消歧的目的,筛选出真正表达POI过期的评论。如下所示:
“原”关系挖掘使用POI间的引用关系,是一种基于多POI的挖掘策略。我们在含有“原”关键字的POI名称、别名或地址中通过实体抽取技术,得到“原”关系(新旧关系)的两个POI名称,通过聚合技术找到旧名称所对应的过期POI。
同地址策略则利用地址门牌冲突关系来挖掘。其逻辑是:相同的门牌号(包括室内水牌)上通常只有唯一的经营实体,若地址上存在两个或多个实体且不是聚集实体(商场、园区等),则应当存在过期POI。我们采用图论对问题建模,取门牌相同的POI集合,将POI视为节点,POI间关系(亲子、兄弟、共现、参考引用等)为边。利用最大连通分解算法将集合划分为K个连通子图,每个子图看作是一个实体或聚合实体。若K=2,则将更新时间较早的子图作为疑似过期集合输出。
同电话策略是为数不多能与具体过期现象对应的策略。取有相同电话的POI的集合,与同地址策略类似,通过名称语义计算、空间计算、共现关系、亲子关系等,剔除掉聚集实体、连锁店、疑似重复数据等噪音,并根据名称相似性和距离关系,分辨出更名和搬迁现象。电话实际上代表着POI背后真正的人,通过人的行为变化可以判断一个POI过期与否,甚至可以推断出该POI具体的过期现象。
伴随着POI聚合多种新数据源的能力的日渐成熟,新的挖掘资料已具备。我们的重心也逐步转移至基于使用POI行为的挖掘。
2.2阶段二:基于使用行为的POI过期挖掘
步入阶段二,缺少挖掘资料已不再是解题的主要矛盾,人工核实率低、处理能力不足的问题凸显,从而迫切需要建立自动化打标/下线能力(提准)。过期挖掘的实质是感知伴随POI过期而发生的变化,进行事后观测式挖掘,比如,过期一般都会伴随着POI活跃度(运单量等)的下降。
前文已提到,挖掘所依赖的观测资料不能提供过期的实锤证据(比如,运单消失并不是过期实锤);且过期强相关因子种类偏少、天然引入上游误差以及真实世界存在贝叶斯误差;外加随着解题推进,在线POI数据现势性增强、过期率下降,在观测资料固定的前提下,过期挖掘的产量及精确率均随过期率的下降而自然下降,上述这些都会导致精确率难提高,因此,提准难成为该阶段的主要矛盾。
特征层面我们通过去噪、精细化加以应对,受篇幅所限,本文暂不做展开介绍。而算法层面则是通过技术升级来应对。路线图:从规则到模型;从浅层模型到深度模型;从单源决策到多源信息融合;从决策层多源信息融合到特征层多源信息融合。
根据是否需要参考历史情况,我们将基于使用行为的POI过期挖掘划分为时序异常和事件异常两类。
2.2.1时序异常
POI的存活状态可以通过关联的使用行为量活跃度间接反映出来,从使用行为量的趋势角度尝试迭代解题。
趋势模型的主要思想是,统计某个时间窗口关联的使用行为量活跃度来衡量POI的存活状态,并通过分析活跃度相对于历史情况的衰减程度来判断POI是否过期,其基本假设是时序趋势下降与POI过期正相关。以已知活跃度信息的逐月统计量时间序列为特征,我们完成了RF->RNN->模型融合->Wide&Deep四个迭代阶段的研发。
鉴于RF在分类决策问题中表现出的精度高、不易过拟合、对数据集适应能力强、落地高效以及对于规则思维的天然吻合度,可成为验证解题方案可行性的首选。方案是将每种特征的每个时间节点值作为一个输入维度来构建模型。RF凭借高准确和高产出落地投产,验证了行为量趋势应用于过期挖掘的重要意义。
之后,针对RF存在的一些不足来做进一步的技术升级。首先,模型无法学到连续时间节点之间的趋势关联性,时序信息未得到充分利用;其次,对于不同种类特征缺失、长短序列融合等问题需要建立定制化模型来解决,多模型增加了维护负担。因此,要选择时序领域优势明显的RNN模型进行迭代升级。
通过构建多层LSTM深度网络实现了趋势关联信息的深度挖掘,同时针对不同热度分段的数据分布差异性,采取各自最优的缺失特征填充方式,避免了多模型式的解题方案,便于业务维护。RNN模型使发现能力,特别是自动化能力得到较大提升。
虽然RNN相对于RF提升了对于时序特征的学习能力,但信息不足依然限制了模型的自动化能力。我们进一步开发了能够实现多源信息融合决策的融合模型。思想是将RF、RNN、拆迁区域等现有各基线模型、策略以及白名单作为子分类器纳入统一框架内考虑,在此基础上构建贝叶斯网络,做决策层的多源信息融合。相较于特征层的多源信息融合,它落地快且效果明确,为过期业务提供了稳定的高准确自动化下线产出,自动化能力大幅提升。
第四个阶段是从多源信息融合的角度进一步优化。一方面,决策层融合相比特征层融合存在更多的信息损失;另一方面,一些模型/策略只在部分品类的POI上满足业务投产的准确率标准,导致不达标品类的产出结果未得到充分利用。因此,从实现特征层多源信息融合的角度出发,借鉴Wide&Deep思想搭建新业务模型。
整体思路是,将众多不可量化或比较的属性特征和状态信息特征进行编码表征,再经过一层全连接层降维后作为Wide部分;将RNN模型作为Deep部分,最后将两部分耦合。模型经过多轮迭代优化可稳定投产,自动化能力得到进一步提升,已成为过期挖掘业务中覆盖行业广、自动化解题能力突出的综合性模型。
综合以上,人机解题比大幅下降,解决了人工核实率低、处理能力不足的问题,并且大幅降低了成本。
2.2.2事件异常
现有的时序异常模型主要依赖于使用行为量的趋势特征做判断,存在挖掘资料覆盖上的天花板,以加油站、ATM、公共厕所等为例,这些类型的POI因自身属性的原因导致无挖掘资料,趋势模型无能为力。因而提出基于日志(Session)的异常事件模型,统计陌生群体到达过期POI后需求不满足引发的异常事件,补位时序异常模型的挖掘盲区,即无需参考历史情况,仅利用日志抽取POI关联的异常行为事件,累积近期异常事件衡量POI的存活状态是否正常。
日志挖掘难点
海量的日志行为。直接使用不仅消耗资源大,且有大量的冗余数据造成干扰。如何在海量行为中抽取与过期相关的特征是一个艰难的工程。
行为随机性大。例如,很多情景里快到终点前会提前结束导航从而无法判断是否到达目的地;有些情景是规划去一个目的地但从末端轨迹可以判断实际去的地点天差地别。
解题框架
针对上述问题,主要通过实地评测的过期POI case分析来构建具体的异常事件场景,例如到达后试图报错、到达后快速发起二次同质化导航等,以上统计量作为特征输入,由此可聚焦相关日志片段并降低随机行为噪音。整体解题框架如上图所示,从不同的Session源解析与POI相关的事件,按照时间顺序组合成场景1、场景2、场景…,加入外部属性如类型、城市等,以目的地POIID按照时间窗口归并生成相应的统计特征,输入LR模型,输出POI的过期得分。目前采用LR,优点是简单粗暴压住噪声。
挖掘效果
Session异常事件模型有效补充其他手段未能覆盖的解题集合,专攻汽车服务、生活服务、娱乐场所、金融保险服务等品类POI,是过期挖掘不可或缺的组成部分,且未来仍有较大的泛化提召回空间。
2.3阶段三:基于人地关系的POI过期挖掘
2.3.1 人地关系建设
趋势特征丰富(厚)的过期POI,容易被趋势模型挖出。而当趋势特征(使用行为)稀少(薄)时,模型发现能力较差。所以该阶段需要解决资料薄的问题,通过对关键群体(>2)线索的捕捉,降低对资料厚度的依赖。洞察POI的关键群体的行为,有可能找到发现甚至解释POI过期的特征。
因此,第一步我们需要建设人地关系,找出所谓的关键群体,称之为内部群体,是指:对POI有依赖的群体,这种人地关系,我们称之为内部关系,其它均为外部关系。
第二步基于内部群体的时空运动模式的变化发现过期POI,补位趋势特征稀疏时的召回问题,局限性:内部群体基本不变的POI更名等场景不可解。第一步人地关系建设基本完成,大体分为数据层、行为层和模型层三层,分别介绍如下:
在数据层,收集可能与POI相关的数据源,打通各个数据孤岛,将不同类型的数据关联到高德POI上。
在行为层,将行为特征表达在窗口为X天的二维矩阵上,如图所示。矩阵表示能够更加清楚地反映行为的周期性规律。不同行为序列可以看作是不同通道的矩阵,很好地适配行为数据的异步性,同时保持可扩展性(每多一种行为,可增加一个通道表示)。
在模型层,面向多通道的矩阵特征,采用深度卷积网络完成分类任务,其基本结构如下:
该结构一定程度地缓解由于数据不完备导致的特征稀疏,有效地学习行为的时间规律,取得符合预期的结果,验证了模型的可用性。在模型层,通过补充的召回策略,帮助将内部关系对POI的覆盖度进一步提升,完成从0->1的建设。
总结
过期挖掘已经成为增强POI现势性的绝对主力手段。这条以大数据挖掘为主导的路线还远远没有达到终局,未来的演进方向至少有以下几个:内部群体时空转移本质化通盘解题,降低对资料厚度的依赖;面向过期现象的定向挖掘能力提升;POI生命力画像构建;生态探索,从逆向解题向逆向+正向解题渗透。我们将致力于为提供给用户更美好的出行服务体验而努力。