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

oCPX诞生历程算法

互联网广告最先出现的时候会让广告主按时间长度去买断一个展现位置的广告,或者按广告展示次数去投放广告。这种方式与传统电视广告投放方式比较相似。咱们如今看到的一些网站的Banner和大部分App的开屏广告都属于这种广告投放方式,而这些广告主都是以品牌推广为目的进行广告投放的。 这类广告特色是个性化差,全部用户观看这个电视节目或者打开这个网页都会看到这个广告,因此不少男士在电视上会看到化妆品广告,女士会看到耐克的广告,而实际上大部分状况下他们对这个品牌商品是不感兴趣的,广告流量浪费会比较多。而投放品牌广告的广告主也不太在乎这些流量浪费,不要求用户看完广告会立刻购买商品,从更长期角度来看来加强大众对该品牌的认知。后端

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

广告主投放广告以后,广告会出如今搜索结果页或者内容推荐页上面。广告展示自己是不收费用的,只有用户点击广告以后才会进行广告扣费。这样的广告对广告主来讲广告效果会更加可控,一次广告扣费就会带来一个用户访问,而不是仅仅支付广告费用其余全部方面都没有保障。并且通常来讲用户感兴趣才会点击广告连接,用户对广告内容会有必定相关性,必定程度提高广告转化和用户体验。 对广告平台放来讲,能够把不一样用户的曝光卖给不一样广告主,比起把全部用户曝光都卖给同一个广告主来讲收益更高了。另外一方面也对平台技术提出了更高要求,平台须要准确预估用户对每一个候选广告点击率(ctr),按照ctr*bid进行排序,不断优化ctr预估模型才能更合理地把用户和广告主配对,提高平台收益。机器学习

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

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

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

咱们把按转化扣费的方式称做CPA,而在互联网场景上运做CPA方式会有比较多问题。搜索引擎

  1. 转化行为都有延迟,转化行为发生时不必定能进行扣费。
  2. 准确转化数据在广告主手上,互联网场景没法像现实中介同样全程陪同。
  3. 须要对接不少中小广告主,他们技术水平不高,回传转化数据流程容易出问题。

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

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

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控制稍差,须要较多的规则进行限制才能稳定运行。

做者简介 Taipeng 8年互联网算法工做经历,2016年加入OPPO负责信息流广告算法,2020年负责推荐/广告机器学习基础设施建设工做。

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

相关文章
相关标签/搜索