在高德吃喝玩乐!LBS信息的AI技术应用

还是先插个招聘信息: 急招推荐,搜索,语音算法,数据挖掘,工程人才,阿里P5~P9,欢迎推荐和自荐,微信扫码关注以下二维码了解详细信息

以下才是正文。。。。

从毕业步入职场到现在10年多的时间,就一直在搞两个技术领域:搜推广信息分发以及LBS。

搜推广不用说,近十年一直都是热门的领域,另一个是LBS的技术,可以说也是深入到我们生活的方方面面。过去既做LBS的信息分发,也做底层的实时路况,ETA以及RP算路,甚至更底层的地图匹配(或者叫抓路,绑路,map matching),目前,更多在做人地关系大数据,以及基于LBS的搜推广。相当于将两个领域结合到了一起。

更详细的LBS相关内容可参见:
GITC演讲-滴滴路况感知AI及应用
[LBS]地图Map-Matching流行算法及应用
[LBS]工业界ETA应用及滴滴WDR技术

《在高德如何吃喝玩乐!LBS信息分发的AI技术应用》就是团队的工作在高德技术开放日进行的介绍,感兴趣的同学可以在抖音,B站等平台观看交流。 具体B站的链接视频,参见‘阅读原文’

对于地图平台,无论是高德地图还是百度地图,腾讯地图,现阶段心智最强的功能还是出行。而在整个出行的用户交互过程当中,用户首先需要进行定位,确定自己所在的位置,然后进行POI的搜索,确定要去的目的地,之后就是怎么去的问题?包括路线规划导航ETA等相关技术。

随着地图平台的定位由出行工具逐渐转成吃喝玩乐相关的LBS本地生活平台,信息分发的范畴也在扩展:从原有的POI搜索,展到了交易的分发以及广告的分发。

同时,这个过程当中需要有非常多的内容的理解,包括文本,语音以及视频内容的建设。具体参见:ID+图像特征联合训练CTR模型

同时,分发的手段也有更多的扩展,由原来的搜索,扩展到推荐以及语音的更多的交互方式。包括搜前,搜中,搜后,语音主动提示等多种交互方式,和用户进行信息的交互。(完整的工业级搜索+推荐 用户交互机制实现参见:关键词推荐工具中的用户引导机制

同时,分发的形态,也由原来的单纯的POI list,扩展到视频,聚合榜单的更加丰富的模式。

对应的工作也包括最底层的数据建设,上层的引擎平台的建设,通用算法策略的建设,以及业务的定制。都是非常复杂的过程。

在这个过程当中,也会用到非常多机器学习相关的算法模型,当然,我们要时刻意识到,机器学习模型只是整个业务逻辑很小的一部分,虽然它起着无可替代的重要作用。

LBS的搜推广和传统的信息分发最大的区别,就是他会有很强的空间,时间的划分属性。

在LBS场景,每一个区域,或者每一个POI,都可以看成他是一个个的局域网,这些局域网之间其实是没有非常强的关系的,例如一个云南的用户,可能从来也不会去一个天津的饭馆吃饭,因为地域天然将这两个要素隔离开。 这和淘宝的信息分发是有本质的区别的,在淘宝上,一个云南的用户和一个天津的用户可能都会买同样一个商家的,同样一个商品,而且几乎代价是没有区别的。

因为地域,或者距离的差别,就会导致LBS的信息分发和传统的信息分发有本质的区别,这样就衍生出非常多的LBS信息分发独特的技术。

例如POI的别名挖掘,如何挖掘同一个地点的不同的别名。 以及反过来如何挖掘不同地点,有相同名称的POI,都是特有的结合LBS空间挖掘的技术。

同时,我们会依赖于用户的搜索,点击导航路线规划以及位置信息,去使用定制的序列模型挖掘用户的行为序列信息,去做更准确的用户个性化定向。

在地图场景,需要主动给用户展示信息的入口/场景非常多,而且不同的入口有不同的产品形态和定位,如果对每一个入口都定制一个推荐模型,那维护的成本是非常高的;同时,不同入口的信息无法共享,所以我们也是用了多任务的模型,对不同入口的推荐算法进行统一的建模。(具体ctr预估参见:推荐系统,变现系统CTR&CVR预估算法演进-模型

而且在地图场景,我们使用了丰富的LBS数据,却对用户的时间,空间,行为进行预测,例如,用户接下来会去的地点,区域和城市,并且取得了显著的效果。

这个领域的工作非常多,也非常有意思,而且LBS本地生活是非常重要,非常有前途的一个领域,也是目前各个大公司重兵投入的兵家必争之地。如果大家感兴趣,请联系我进行高德岗位的内推。

多目标广告混排机制在超级APP中的技术

先插个招聘信息: 急招推荐,搜索,语音算法,数据挖掘,工程人才,阿里P5~P9,欢迎推荐和自荐,扫码关注以下二维码了解详细信息

背景

近年大家会发现一个现象,行业中新的爆发性发展的创业公司在不断变少,最直接的原因应该是移动互联网的红利增长已经放缓,同时各个巨头也在使用不同的方式,将流量收口到自己的超级APP中,例如淘系的电商,社交的微信, 内容则为头条,线下服务则是美团。其他创业公司想通过某个领域切入,进行弯道超车,在技术缺少重大变革的情况下变得更加困难;另一方面,各个超级APP,无论是何种属性,解决用户的何种需求,也都在尝试着商业化,以便让自己的业务生态形成可造血的良性闭环。

当然各家超级APP在商业化的过程中,也都遵循着商业化一直的准则在构建良性生态,尽量避免使用吃药打兴奋剂的模式,伤害到生态中的任何一个环节。 总体上,在健康的商业生态中,都需要考虑C(Customer)端用户,B(Bussiness)端商家,以及P(Platform)端平台三方的利益平衡。其中C端重点要满足用户体验,解决用户痛点需求;B端主要是广告主的ROI,需要给他带来收益;P端在中间进行调整平衡,需要考虑生态的良性发展同时需要考虑收入。

同时目前的一个大趋势是超级APP中提供给用户的内容和服务已经多种多样,已经是多模态的内容提供,同时穿插着内容,服务和广告。 如何对这些内容进行最高效的多目标混合分发,就是需要重点解决的课题。
例如此处单独看自然结果和原生广告的混拍, 如何在保证体验不受影响(或者大的影响)的情况下提升广告收入,就是一个非常值得研究的课题。

本文会以作者在多个平台的广告经验,向大家进行目前的主流方案。原文参见semocean.com及微信公众号:semocean

混排问题分类

以出行超级APP高德为例,在高德中用户搜索后,会给用户展示匹配的POI list,该过程中,广告投放的POI会和自然结果的POI进行混排。此时就会面临自然结果和广告如何进行混排的问题。此时混排一般有两大类模式:定坑和非定坑。

  • 定坑,简单来说定坑就是具体展示广告的位置,以及数量是固定的。该方式的优点是广告的数量,收入可控,而且自然结果和广告结果可以相对独立地进行优化; 缺点是广告质量和自然结果质量不能同一拉起,可能出现自然结果质量较好但出的广告质量很差,或者反过来的情况,导致用户体验或者广告收入受损
  • 非定坑 ,非定坑则相反,逻辑会相对复杂,广告和自然结果需要统一优化,不管是工程架构上,还是算法上,要求都更高。但能够同时考虑广告和自然结果的质量,理论上收入上限会更高。 同时非顶坑也可以有多种方法,各种方法的复杂度也不尽相同。

    图:(1)为定坑3和6,(2)为动态定坑,隔2插1,(3)为加权混排广告A和B

具体方法

定坑

即广告坑位出现的位置,数量,都是事先根据业务需要,或者实验方式确定下来的。 属于计划经济类型。 类似百度凤巢说前3个坑位可以出广告, 或者某些超级APP上说放回结果list结果中第3,5,8位置上可以出广告。 当然这些位置上, 如果广告系统自己判定觉得在某些流量上广告总体放回结果较差,也可以不出,但这个判定也是广告系统自己进行的判定,主要会影响最终的PVR(出广告流量占总体流量占比)

动态定坑

动态坑位方式比定坑模式进了一部,相当于在出广告的时候,加入了一定的个性化因素,可以将问题定义为对于每次流量三个参数的优化[N,S,I],其中N:出广告的条数,S:广告开始的坑位位置,I:广告之间的间隔。 根据每个请求的个性化信息,以及召回后的广告质量,来动态确定参数三元组的具体值。该方式能够在广告质量较高的时候,多出广告,且能够将广告排的更靠前

加权混排

该方式需要对自然结果和广告结果进行综合考虑,拉通排序的标准进行混排。本质上相当于需要将自然结果和广告结果的价值进行统一度量。简单来说的建模方式如下:
$v=\beta \cdot rankscore+ecpm$
其中$v$为同一价值度量,$rankscore$为作为自然结果的质量分,$ecpm$为预期的广告收入。其中$rankscore$由LTR模型进行预估。$\beta$为自然结果rankscore的权重
所以:

  • 自然结果:相当于$ecpm=0$,仅考虑rankscore自然结果的质量分。
  • 广告结果:广告结果rankscore一般偏低,但$ecmp=Q\cdot Bid$,相当于对广告的商业价值进行加权,一般情况下按照$Q=pctr$进行计算
    使用该方式就可以将自然结果和广告的价值度量进行拉起,之后进行统一排序。

    具体操作

    加权混排,在具体操作的时候,会面临以下几个问题:

    1. rankscore和ecpm一般都不是相同分布的,具体的值不能直接线性加权计算
    2. $\beta$ 值如何确定
    3. 如何计费

调整具体分布
因为rankscore和ecpm是两套相对独立系统的打分,所以理论上二者分布肯定不一样


【图:rankscore&ecpm为不同分布】

所以在排序前,需要将二者的分布拉齐,否则仅简单调整$\beta$值并不能解决问题。所以我们需要找到一个函数$f$,使得$ecpm=f(randscore)$,具体对两个分布进行插值可以求解。

$\beta$求解
这个就比较考验超参数调整的经验了,当然目前超参数的调整有较多的方法和开箱即用的框架。 一般现在较为常用的方法是贝叶斯优化(Bayesian Optimization)。 一般具体应用场景中,广告的实效性较强(受广告供给,预算等的限定,甚至很多APP分发的场景,每天的广告变化可能超过20%),所以该超参数调整很多时候需要做到准实时化。

计费方式
业界目前最常使用的方式,还是GSP方式的二价计费。其原理是扣费并不是直接按照胜出的广告的报价进行扣费,而是按照下一位广告的报价进行扣费,该方式的好处主要是简单,以及能够让竞价者能够按照自己内心的真实性进行报价(相对来说VCG会更加复杂)
经典的$cpc=\frac{ecpm_{i+1}}{pctr_i}$ 但在自然结果和广告混排的场景中,下一位可能是自然结果, 那如何进行计费?

思路是看下一个广告, 例如下一个当前广告假设为$A$,下一个广告为$B$,则:
$v_A=\beta rankscore_A+ecpm_A$ $v_B=\beta rankscore_B+ecmp_B$,则我们设计 :
$cpc=\frac{v_B-\beta \cdot rankscore_A}{pctr_A}$
其物理含义为:大思路仍然是GSP,但在进行扣费的时候, 广告主按照下一位广告的出价进行扣费,但会扣除掉自身因为自然结果体验值带来的位置前移。 相当于当前广告为了保持当前的位置,仅需要付出将结果从下一位值,提升到当前位置的钱。

端到端多目标模型混排

理论上来说端到端的结果是最好的方式,但该方式会导致自然结果排序和广告结果完全耦合黑盒化,提升了系统不可控的风险。 所以很多商业系统中都还不是这种方式。
而且自然结果体验和商业化变现目标的平衡,最后还是一个商业上的决策,并不是一个一尘不变的优化问题,例如如果一个上市公司有财报的压力,则可能会加大商业化的粒度,提升广告占比,或者在某段时间反过来更加注重用户的体验。

总结

总结下几种模式的优缺点:

模式 效果天花板 自然&广告结果耦合 系统风险
定坑 解偶
动态定坑 解偶
加权混排 耦合
端到端混拍 较耦合