POI鲜度(有无)是高德出行和阿里POI垂类业务的基础保障,POI过期是伤害用户的绝对头部问题,一个POI过期了会给用户带来“找不到、关门”等恶劣伤害,尤其在景点、医院、政府机构等刚需品类下更恶劣。为了高时效和低成本更新海量POI质量,我们需要把阿里生态的多源异构大规模用户数据(如运单地址、饿了吗、菜鸟面单、支付交易)与高德现有POI建立关联。之前的方法是基于一种资料进行单点的挂接,或者结合了一些用户行为进行时序的建模,资料利用率较低。本文提出的图网络算法,是首次与蚂蚁AI团队的图计算小组深度合作,基于蚂蚁提供的大规模异构图算法平台,思想如下:1)多源异构融合。将淘系运单、菜鸟面单、WIFI和用户不同行为等多个不同形式的信息进行整合,地址信息、POI信息、WIFI、用户行为等都可以用节点表示,相互之间的关系用边来表示(比如POI上有对应的WIFI信息、用户使用了这个WIFI、用户下了一个地址的订单、用户和用户之间是同事等等);2)超大规模图网络。采用基于大量数据在图上训练embedding信息后,节点之间的关系(比如POI节点和一个新的地址节点之间是否可以连接)就可以用link prediction或者节点相似度这种模型进行进一步推导,从而可以大幅提升POI和地址挂接的准确度和效率。
业务效果如下:效果将淘系运单地址的POI挂接率从50%提升到78%(过去2-3年才提升到50%),TOP 2000万POI的挂接自动化率从50%提升到74%,用反下降40%,全库自动化处理量大幅降低。采用这个创新的方法,我们不仅在POI挂接这一特定问题取得了较好的突破,同时也沉淀了人地关系大数据图特征表征计算的丰富经验,可以推广到POI准聚融、个性化导航、搜索推荐等多个适合高德的场景,充分发挥高德海量用户行为轨迹和地理信息大数据的优势,在这个方向上后续大有可为。
1.背景概述
1.1.业务简介
POI过期占POI整体用反的58%,是伤害用户的绝对头部问题,过期挖掘是过期解题核心手段,具有高时效低成本特点。挖掘思路是通过POI上的流量趋势来刻画POI的状态,因此高准确和高召回的挂接用户资料到POI是基础,在我们可获取的POI所有用户行为中电商运单覆盖广、准度高,是过期挖掘的最核心资料,因此我们会以提升运单挂接POI利用率作为核心业务目标。
此外,用户行为的挂接对很多业务都有帮助,例如:POI的显示坐标业务优化中,需关联POI的海量用户定位推理POI坐标,从而和线上POI坐标进行差分更新,因此运单与POI的挂接是很多业务的基础。我们有必要系统建设和提升挂接召回。

运单挂接业务
1.2.问题描述
以前的挖掘思路:对运单地址,常规的挂接流程如下图,首先对运单地址进行18级地址切词并识别地址中的潜在poi名称,同时根据省市区/县,道路门牌号等信息锁定潜在POI的位置坐标(geocoding),然后对位置坐标附近的POI进行匹配,匹配方式是利用运单地址与候选POI名称地址的相似度。
此类方案对于地址描述清晰,没有歧义的较容易解决,但对于地址模糊、连锁店、别名等难解问题,挂接效果较差,运单资料利用率50%左右。因为仅利用了运单地址和poi的文本语义信息。

传统挂接流程
2.关键难点与挑战
用户在填写运单地址时存在不规范性,现实中某些地址描述只需要在一定精度范围内,配送员抵达后根据描述信息和周边的环境即可锁定目标,例如名称的别名、缩写、错别字,同一个目标的不同地址描述方式,地址模糊,歧义分词等问题。但在运单挂接POI业务时,核心困难是对这类地址无法精确刻画信息,按照常规的基于地理空间、文本语义的算法策略很难解决。
- 别名:名称缩写,别名,错别字等
- 运单地址: 辽宁省沈阳市辽中区蒲西街道南环路安能快递
- 实际poi:安能物流
- 别址错误:河南商丘柘城县城关镇柘城步行街北头海澜之家往北200米路西柠檬树摄影工作室
- 实际:北关大街与春水路交叉口向北200米路东盛世金街
- 地址模糊:相对位置描述、POI泛指等
- 运单地址:北京市朝阳区闽龙广场旁壳牌加油站
- 实际poi:壳牌十八里店加油站
- 运单地址:北京市宏昌路西加油站
- 实际poi:中国石化望京新城奥顺加油站
- 分词错误:交集型歧义,未登录词等
- 运单地址: 重庆市渝北区两路街道锦衣路段记西服

传统挂接流程中的问题
3.解题思路
多源信息融合:打破传统的漏斗触发和匹配模式,丰富候选集扩招手段,并融合多源资料判定。
宽进,解决输入依赖性漏斗触发
候选集扩招(运单-POI Pair):
- 搜索接口
- 搜索主要面向用户意图(POI名称或者类型为主),召回多个结果,用户交互选择
- POI的内部用户关联POI
- GC坐标检索周边POI
- 分析用户意图(Session序列)关联的POI
严出,文本地址语义相似基础+网络拓扑结构(多源用户行为)
例:北京市朝阳区望京新城链家




4.技术方案
4.1.概述
传统的运单挂接更多是基于地址运单检索触发POI模式为优化路径,由于地址信息少导致挂接率不高,因此考虑最大化使用POI上同一个人的多种行为是我们核心演进的方式,运单关联的用户行为,例如用户的wifi连接,用户与poi的先验信息,比如内部用户,比如用户 session行为。作为运单和poi的桥接,对于判断挂接的召回和准确都有较大帮助。
通过运单-用户-WIFI/Session/POI的关系,及用户行为构建多源异构图网络。利用图结构和自身的属性信息结合建模,刻画了2跳的GeniePath图表征,并引入Short-Path网络结构同时探测运单与POI节点间的强关联路径信息,基于图模型算法解决运单挂接业务问题。

4.2.图网络构建,数据初始化
PXA建图,将用户在POI上的社会关系和地理关系融合到图中进行信息提取和刻画。

- 用户发订单:User-Addr
- 用户搜索/到达/内部用户Poi:User-Poi
- Poi与Wifi关联关系:Poi-Wifi
- 用户使用Wifi情况:User-Wifi
- POi与POI的亲子关系:POI-POI
- 用户与用户的关系:User-User
4.3.算法方案
4.3.1模型设计
1.模型架构:
模型整体设计如图所示,包含图嵌入网络与分类网络两部分。图嵌入网络分别生成“运单Node”与“POI Node”基于领域节点的Graph Embedding张量,邻居选取的最大深度跳数为Hop=2。将运单与POI节点Graph Embedding的结果拼接起来,通过MLP实现运单与POI节点间,预测是否有边存在的端到端网络训练。

2.图嵌入网络
图嵌入如图所示,黑色节点为目标节点,在运单挂接任务中对应的为“运单Node”或“POI Node”,图中使用的是Hop=2的聚合深度,先将蓝色节点的特征聚到橙色节点上,再将橙色节点聚合好的特征聚到黑色节点中。

图嵌入算法选用GeniePath,在广度上使用基于Graph Attention的Breadth Function聚合邻居节点的特征,在深度上使用类LSTM的Depth Function对不同距离的邻居特征进行筛选。


广度上的特征聚合:计算邻居节点的相关系数,实现Graph Attention。
![]()
![]()
深度上的特征聚合:将上层得到的隐特征经过类LSTM的Cell模块,实现路径上特征选择。

GeniePath Layer输出:融合LSTM与GAT的结果,得到图卷积的结果。
![]()
3.分类网络
分类网络也即最常见的多层神经网络。其输入为<ADDR, POI>的Graph Embedding Pair,通过CONCAT操作合并(2x 1xn 1x2n),输入到多层神经网络中。分类网络以SoftMax作为损失函数,Label如前述为1、0。
4.4.方案实施
4.4.1.样本特征介绍
样本:
图算法网络包含4种类型的节点,分别为POI、运单地址、User、WIFI。
正样本:传统的漏斗触发和匹配模式召回的结果 + 部分人工标注的Case。
负样本:在正确POI周边找其它的运单地址 + 正确POI周边找其它的POI + 部分人工标的Case。正负样本比例为1:2.5

主要特征:
- 运单地址特征 :bert语义向量、方位词、核心name后缀描述、gc坐标、18级地址切词信息、分级粒度,poiname与括号前后位置关系,描述中的方位词、门分别于POI的位置相对关系,poiname预分类属性,等
- Poi: bert语义向量、gc坐标、category,
- Wifi:连接频次,时间分布、用户关系类型,wifi名称的语义向量
4.4.2.数据处理流程
百亿节点千亿边的数据规模很难去直接构建出一个完整的全局图进行训练,我们采用GraphFlat的方案,针对运单与POI结点先分别生成2阶邻域的子图,将完整的一张全局图拆解成多个子图,每个子图的邻居独立存储,这样就可以使用分布式的方案进行模型的训练。
GraphFlat生成子图,并通过ALPS平台进行训练,训练后的模型文件保存在OSS上,然后通过离线UDF加载模型文件实现Graph离线预测功能。

4.4.3.GraphFlat
GraphFlat将Node与Edge生成好的K : V特征通过MR任务生成对应Node的子图,主要有2大作用:
- 以空间换时间,单独存放每个节点对应的子图信息;
- 方便组成mini-batch进行分布式训练。

K:V特征

GraphFlat MR任务

Node子图存储
4.4.3.模型效果与改进
我们选用ALPS平台训练GeniePath模型,基于PS-Worker的模式进行分布式训练,5个PS节点(2核4GB),50个Worker节点(8核16GB)。
GeniePath正样本的准确率:92.3%,召回92.2%,AUC 0.98相比传统的LR方案的准确率88.5%,召回89.2%。准召均有3个百分点以上的显著提升。
针对运单挂接业务而言,从运单节点到POI节点的通路对于预测两者之间是否为挂接关系有显著的贡献。为了验证从运单节点到POI节点间有通路的有效性,我们将原始训练集拆分成2个部分,分别为有通路样本集合与无通路样本集合。针对这2个集合独立训练对应的GeniePath模型,我们发现,在无通路样本集合中,模型通过原始的节点文本相似度等其它特征,已经可以到达91%的准确率。在有通路样本集合中,模型的准确率进一步提升到了92.6%,获得了1.5%个点的显著提升效果。
为了进一步的研究路径通路对多源挂接图算法性能提升的相关性,我们分别进行了PaGNN与GeniePath with ShortPath的优化。
GeniePath为双塔的Graph Embedding模式(如下图左侧),将运单节点与POI节点单独聚合,忽略了节点间的路径关系。Path-aware的模式更多的考虑到了路径的连通性,针对需要聚合的u与v节点,将节点特征从u->v节点方向传播聚合,再从v->u节点方向传播聚合,最后将从2个方向聚合好的特征汇总起来。为此,我们挑选PaGNN模型作为运单挂接业务中的改进模型,并在测试集上取得了93.51%的准确率,相较GeniePath的准召皆有1个百分点的提升。

GeniePath with ShortPath采用Dijkstra算法去计算运单节点与POI节点间的所有通路,并基于所有查询到的通路先按相同跳数长度的路径聚合,再将不同跳数长度路径聚合结果汇总(如下图所示)。基于上述改进的模型,我们在测试集上取得了93.59%的准确率,相较GeniePath的准召皆有1个百分点的提升效果。


4.4.4 上线效果
最新批次的上线产出质检结果中,基于该应用方式并过滤掉明显的低质数据。挂接准确率提升到96%,高于线上标准1%,地址利用率从50%提升到了78%。
4.5技术创新
4.5.1.多源异构
- 多源异构数据:同行业内领先(对比百度和滴滴的同类业务,图更适用阿里的多源生态数据)
- 多源用户行为:图网络包含了在POI上发生的基本所有重要用户行为(阿里各生态),包含运单地址、饿了么、出行轨迹、WI-FI、搜索行为等6大类用户行为(支付数据待加入)
- 异构性:涵盖了用户、POI、行为数据等两两之间的异构数据关系(如用户-同事、POI归属)
- ID统一,数据对齐:依托高德中台的OneID,各来源数据统一,累计用户11亿,形成一张大图。高德首次提出基于图网络刻画用户行为,目前在业内处于领先位置(已联合蚂蚁进行技术沉淀)
4.5.2.超大图网络
- 数据规模大:在1.4亿POI上(包含删除的5千万),11亿用户累计一年发生的约800亿行为数据;
- 网络大:90亿节点,1100亿边的网络,其中节点特征800多维;(复杂度大于蚂蚁大多图网络,基本都在百亿级别规模)
- 效率高:更新时效快,增量更新机制,使得图更新时间从8小时->3小时
4.5.3.定制化的网络结构(高德LBS业务下的图网络结构)
- 性能:结合POI业务场景,Embedding刻画了2跳的Genipath图表征(性能和效果取得平衡的最优)
- 质量:同时探测多跳节点上的强关联路径,引入Short-Path网络结构进行特征加强
5.项目成果
5.1业务价值
显著成果:使得挖掘资料利用率整体提升56%;
业务产出:运单资料利用率提升,作为POI过期的基础特征,相比原策略,自动化率提升48%,全库自动化处理量达2500万,相当于285人作业1年。

6.下一步计划
- 支撑应用
- 将Graph挂接能力拓展到其他POI相关业务(如:内部用户、POI-WIFI、POI地址完善、POI新增、POI亲子挖掘等)
- 图数据资产
- 进一步扩充POI图网络的节点以及高可信Edge,完善基础图网络
- Graph技术创新优化
- 聚合函数,基于Principal Neighbourhood Aggregation for Graph Nets多种聚合函数组合的方式进行改进(同时使用max、min、std、sum等函数,并配合节点的度属性,对聚合好的特征缩放),提升图网络对特征筛选的感知能力。
- 路径加权,通过Dijkstra算法找出异质图节点间的最短路径,将相同长度的路径分组处理 ,提升异质节点间通路的挖掘能力。
- 模型融合,a.异构网络与知识抽取的模型融合,抽取POI-USER-WIFI的知识信息,作为旁路输入给LinkPrediction b.将高维抽象特征与低维结构特征通过Deep&Wide模式融合,deep部分使用graph embedding,然后接分类器;wide部分使用LR,引入较强的特征交叉,维持高精度的同时平衡模型的泛化能力。

POI资产可视化平台


389

被折叠的 条评论
为什么被折叠?



