写点什么

oCPX 简介——广告界的“无人驾驶”技术

发布于: 15 小时前

oCPX 诞生历程


互联网广告最早出现的时候会让广告主按时间长度去买断一个展示位置的广告,或者按广告展现次数去投放广告。这种方式与传统电视广告投放方式比较类似。我们现在看到的一些网站的 Banner 和大部分 App 的开屏广告都属于这种广告投放方式,而这些广告主都是以品牌推广为目的进行广告投放的。



这类广告特点是个性化差,所有用户观看这个电视节目或者打开这个网页都会看到这个广告,所以很多男士在电视上会看到化妆品广告,女士会看到耐克的广告,而实际上大部分情况下他们对这个品牌商品是不感兴趣的,广告流量浪费会比较多。而投放品牌广告的广告主也不太在意这些流量浪费,不要求用户看完广告会马上购买商品,从更长期角度来看来增强大众对该品牌的认知。


一般能够投放品牌广告的都是大广告主,比较注重长期品牌效应。但是对于众多中小广告主而言,他们更希望一分投入有一分产出。在 Google、百度等商业搜索引擎出现之后,按点击扣费的效果广告得到大规模推广应用,很长一段时间成为互联网广告的主要投放方式。图片



广告主投放广告之后,广告会出现在搜索结果页或者内容推荐页上面。广告展现本身是不收费用的,只有用户点击广告之后才会进行广告扣费。这样的广告对广告主来说广告效果会更加可控,一次广告扣费就会带来一个用户访问,而不是仅仅支付广告费用其他所有方面都没有保障。而且一般来说用户感兴趣才会点击广告链接,用户对广告内容会有一定相关性,一定程度提升广告转化和用户体验。


对广告平台放来说,可以把不同用户的曝光卖给不同广告主,比起把所有用户曝光都卖给同一个广告主来说收益更高了。另一方面也对平台技术提出了更高要求,平台需要准确预估用户对每个候选广告点击率(ctr),按照 ctr*bid 进行排序,不断优化 ctr 预估模型才能更合理地把用户和广告主配对,提升平台收益。


很长一段时间互联网广告都是以点击扣费(CPC)为主的广告投放方式,平台方更多的是一个导流的作用,把用户导给广告主,而用到广告主的页面或者 App 后怎么营销就是广告主自己的责任。这样对广告主来说,真正的转化成本其实也不是那么可控,点击广告链接后可能最终没有在广告主这里买东西。另一方面也导致部分广告主做一些标题党或者 SEO 的广告,让模型预估 pCtr 偏高,从而廉价获取用户。实际上破坏用户体验,也破坏了广告生态。


一个互联网广告的转化漏斗是很深的,以游戏 App 为例,整个广告转化流程简单包括请求、曝光、点击、下载、注册、付费 6 个阶段,我们一般在广告点击阶段就扣除广告费用了,而广告主实际上想要的是用户付费,更希望能够按一个付费用户多少钱来投放广告。



而现实当中,像房屋买卖租赁中间就是这样收费的,按房子成交金额扣除一定比例的平台佣金。这样无论中间带多少人来看房都是不收费的,只有成交了才收费。CPC 导流方式在这个场景下就是:中介带人来看房(导流),如果有人愿意来看房即导流成功,每次能把人带来收取 3~5 元的导流费用,最后是否成交看房主自身的营销手段。相对来说房主会更倾向按成交佣金的方式。


我们把按转化扣费的方式称作 CPA,而在互联网场景上运作 CPA 方式会有比较多问题。


  • 转化行为都有延迟,转化行为发生时不一定能进行扣费。

  • 准确转化数据在广告主手上,互联网场景无法像现实中介一样全程陪同。

  • 需要对接很多中小广告主,他们技术水平不高,回传转化数据流程容易出问题。


基于上面 3 点考虑 CPA 方式在互联网比较难落地,提升广告后端转化率降低转化成本一直都是大家努力方向,期间有比较长时间是让广告主选择人群定向标签来进行投放,从而提升转化率,但实际落地也有一些不尽人意的地方。


近年来有 Facebook、头条等头部公司推出 oCPC 的投放方式来保障后端转化成本。其模式还是在用户点击时进行广告扣费,但是这里扣费价格不是先前的一个固定价格,而是根据广告后端转化率计算出来的价格;bid=CPA*pCvr,这里 CPA 是用户转化出价,例如一个付费用户 100 元,pCvr 是模型预估的点击到目标转化(付费)的概率。因为还是在点击时扣费,广告主在回传转化数据上面作弊的动机就没有了,整体风险是平台和客户共担,搞乱转化数据只会让模型效果变差,转化效果不可控。同时在原理层面上是可以做到成本可控的,可以满足广告主需求,而且从平台来看流量分配更合理收益更大,广告生态更好。只是对于平台实际工程实现来说会更加复杂,技术挑战更大,实际转化成本与 CPA 存在一定偏差。


oCPC 之外,后面还有 oCPM、oCPD 等投放方式,其原理比较类似统称 oCPX。


oCPX 算法技术架构



首先需要建立实时转化数据回传归因模块,把广告主回传的转化数据分门别类的存储下来,并且正确归因(把转化数据和带来转化的点击关联起来)。数据是算法系统的基石,没有数据就没有后面整个算法系统,实时数据流程必须做到稳定可靠。


其次是我们的模型训练模块,这里会跟进广告点击和转化数据,对点击转化率进行建模,即建立模型预估条件概率 P(转化=1|点击=1)。模型特征层面复用大部分 ctr 模型特征,增加 cvr 的统计类特征以及落地页特征来表达用户与转化行为之间的关系。模型会推送到线上服务用来预估每个候选广告的点击转化率 pCvr。


为了保障广告成本可控以及纠正模型在广告维度上的预估偏差,我们还需要一个实时成本控制模块。它会实时统计每个广告当天实际成本和广告主预期成本情况,利用工业控制算法来调整每个广告的整体出价。如果某广告成本偏高,会降低该广告整体出价,让广告的转化实际成本和广告主预期成本趋于一致,反之亦然。


在线上排序服务(ranker)上面,我们需要对每个候选广告按照它的投放目标(可能是下载、激活、注册、付费……)来预估它的转化率 pCvr,结合广告主转化出价 CPA 以及控制模块计算的广告出价控制系数 k 来计算广告这次的点击智能出价 bid=pCvrCPAk。得到点击出价后,和其他 CPC 广告一起按照 score=pCtr*bid 的方式进行整体综合广告竞价。经过若干排序策略最终选择胜出广告下发到客户端进行广告展现。


整个数据和算法系统复杂的是比较高的,各个环节都可能出问题,一个 debug 和 case 分析模块是必不可少的。这里在 ranker 侧会上报一些 debug 数据进入我们的 case 分析模块,可以跟进实际观察到的和广告主反馈的问题进行跟踪和定位,及时对系统进行调整和后续优化。


CVR 建模技术简介


Cvr 预估模型是 oCPX 系统的核心,它的效果会很大程度影响最终平台收益和广告成本偏差情况。


在 Cvr 模型建模之前实际上已经有 Ctr 预估模型,只是一个是对点击转化建模,另一个是对曝光点击建模。而实际上 Cvr 建模还是有不少技术难度需要克服。


1. 预估准确性要求更高


对于 pCtr 而言,技术预估结果有一定偏差,只要偏差对最终竞价的结果不影响就没问题;而 pCvr 直接影响广告的点击出价和成本情况,即使是偏差 5%也会反应到广告主的转化成本上,对广告主来说有明显感知。pCvr 需要预估更加准确。对应预估偏差问题一般来说处理模型优化之外还需要进行 pCvr 校准,通过模型预估 pCvr 值与真实统计 Cvr 值进行对比,通过保序回归模型进行校准。



2. 样本稀疏有偏问题更加严重


我们训练模型样本都是以用户点击后是否转化行为进行训练,这些样本都是最终竞价胜出并且被用户点击的情况,证明都用户与广告配对比较好的情况。而线上预估时是对所有候选广告进行预估。这样就好像我们要做一个预估全国人民收入预估的模型,而建模训练样本只使用深圳市样本一样,样本有偏问题比较严重。


样本有偏问题可以通过联合建模进行缓解和优化,主流有 ESMM 和 MMoE 两个模型可以选择,目前实际发现 MMoE 多转化类型联合建模对模型效果有一定提升作用。而 ESMM 效果不明显。



3. 延迟转化


目前模型是增量训练方式进行更新的,深度转化行为延迟比较大,如果不做特殊处理容易一个点击行为先发生,作为负样本进入模型进行训练,过了几天用户付费了,再以正样本进入模型训练。一方面是训练不准确,另一方面对于新上线广告而言容易出现较大转化率低估的情况。这个延迟问题对于 Ctr 模型来说会更加大。



这里我们认为 7 天是转化行为回流最大窗口(能覆盖 95%+的情况),首先会增量训练一个 T-7 的模型,因为这个时候转化数据已经回流完全,因此这个模型没有延迟转化问题。


然后每天会刷新最近 7 天的正负样本数据,并且根据每天转化回流比例来调整样本权重来打平正负样本比。接着我们会 base T-7 的模型,以最近 7 天的调权样本数据进行增量训练,得到 T-0 的模型,这样 T-0 模型在样本比例上打平了延迟转化问题。


成本控制策略简介


通过针对性的手段会让 cvr 模型预估更加准确,但是难免会出现预估有偏差的情况,尤其是转化数据比较稀疏,实际转化量容易出现较大波动。因此需要一个成本控制模块来为广告主成本达成提供保障。这里引入几个概念:


实际消耗:广告主当天扣费金额广告主价值:按 CPA 计费情况下,当天应该扣费金额消耗比=实际消耗/广告主价值,控制模块让消耗比趋近 1.0,从而让实际消耗趋近广告主价值。控制策略模块会计算广告维度出价系数 k,bid=CPApCvrk,来调整广告维度的出价。


最开始我们采用比例控制方法,k=1.0/消耗比。思路比较朴素,如果实际消耗是广告主价值的 2 倍,那么每次以一半的之前价格出价就可以达成广告主预期成本。但是实际上调控过程也在影响消耗比,最终通过数学推导上面的情况只能让消耗比控制到 1.414,无法最终让消耗比趋近 1.0. 使用了比例控制整体成本情况有了一定提升,而且控制算法比较简单,控制鲁棒性比较好。


第二版控制策略我们采用了工业控制中广泛应用的 PID 控制算法。



其算法原理通过 P 项(比例)、I 项(积分)、D 项(差分)让控制误差趋近 0,能够有效解决比例控制的问题。实际上线之后 PID 算法也是取得一定成本控制效果提升,但是鲁棒性比 P 控制稍差,需要较多的规则进行限制才能稳定运行。


作者简介朱泰鹏 OPPO 机器学习观星实验室负责人 8 年互联网算法工作经历,2016 年加入 OPPO 负责信息流广告算法,2020 年负责推荐/广告机器学习基础设施建设工作。


获取更多精彩内容:关注[OPPO 互联网技术]公众号



发布于: 15 小时前阅读数: 6
用户头像

还未添加个人签名 2019.12.23 加入

OPPO数智技术干货及技术活动分享平台

评论

发布
暂无评论
oCPX简介——广告界的“无人驾驶”技术