1 背景
自从 2012 年 Facebook 产品化 oCPX 以来,业内 oCPX 产品和能力的发展已经非常的成熟。OPPO 数智工程系统算法平台部商业化算法也在 oCPX 能力建设上积累了一些实践经验。
2 oCPX 是什么
从某投放平台的定义来看,oCPX 是一种针对效果广告的智能出价投放方式,广告主选择明确的优化目标(如下载、激活、注册、付费),并给出期望的转化成本,系统通过机器学习预估每一次投放机会的转化概率,并结合期望成本,自动出价,保障成本效果稳定。
o 是 optimize 优化的意思。CPX 是一种扣费方式 ,CPC 是按照点击扣费,CPD 是按照下载扣费,CPM 是按照曝光扣费。所以 oCPC 是一种优化 过的 CPC。oCPC 是按转化出价,按点击扣费;oCPD 是按转化出价,按下载扣费;oCPM 是按转化出价,按展示扣费。
oCPX 有一套出价控制系统,该系统实时、智能调节广告出价,以保障广告主的转化成本诉求。系统的控制目标是成本偏差位于 1.0 附近,具体手段是通过出价因子 alpha 干预 eCPM 排序公式从而影响计费金额。其中:
成本偏差 = 广告实际成本 / 广告预期成本
eCPM = pctr pcvr TCPA * alpha
如下图所示,CPC 与 oCPC 的出价点和计费点是分离的,CPC 的出价点在点击上,而oCPC的出价点在点击之后的激活、注册和付费上,两者的相同点是计费点都是点击。
从系统视角来说 ,CPC 广告需要广告主频繁调价,调整定向,自己保障成本。对平台来说,流量不按照深层价值售卖收益不高。oCPC 广告,对广告主来说,操作简单,只需要设定成本。对平台来说,oCPC 能让流量按照深层价值售卖收益更大 ,但是平台需要做 pcvr 预估和成本保障,对平台要求更高。
3 oCPX 广告在 OPPO 应用商店变现位置介绍
OPPO 应用商店有非常多位置,主要的场景有推荐和搜索。其中推荐场景主要是首页 、相关推荐和热搜, 热搜包括热搜软件和热搜游戏。搜索场景主要有搜索联想页和搜索结果页。联想页其实是 sug,输入 query 但是不点搜索,下面推荐的 app 算联想页,点击搜索之后的结果是结果页。
整体的推荐结果包括三种类型:广告、联运游戏和自然量。广告就是广告主投放的,抖音快手拼多多这类都是大广告主。联运游戏是游戏类开发者在游戏中心上架的 APP,走的是流水分成模式,比如 梦幻西游,王者荣耀。自然量就是常规 APP,比如微信从来不投广告并且也不是游戏。
4 转化率预估的挑战与应对策略
oCPX 广告的转化率预估面临的挑战很多。第一、转化目标多。不同的这个转化目标的数据的差异大的,激活跟付费差两个数量级,对模型学习效率产生影响。第二、深度转换延迟特别大。当天下载的 APP 带来的付费,只有五成左右的付费是当天到达的,剩下的大部分付费是未来七天内到达的,建模的时候当天是负样本第二天是正样本,反差会对这个模型的准确性造成影响。第三、数据稀疏导致模型很难学好。第四、转化数据的质量比较难保证。因为转化数据是广告主回传的,既可能传多了也可能传少了,广告主可能传错了或者进行脉冲式回传,容易导致系统压力较大,所以数据校验规则需要迭代地非常完善。
以应用分发 4 大模块(首页、热搜、相关推荐、下载更新页)为例,具有 os 激活、回传激活、回传注册、游戏注册、游戏付费一共 4*5=20 种 cvr 预估模型。每个转化目标独立建模有如下弊端:第一、 模型多,维护成本大,占用大量训练、储存资源。第二、线上内存占用大会导致组内的同学排队上线,降低实验效率。第三、 深度转化 CVR 样本过于稀疏 、数据量小会导致模型易欠拟合。第四、单独建模无法有效利用类型之间的共通信息量,比如付费就用不了注册带来的信息量。
为什么 MMOE 特别适合应用在多个转化目标的建模上呢?因为浅层目标和深层目标可以共享 embedding,这样浅层目标可以为稀疏样本深度转化类型共享信息量,而且没有对模型的大小及计算复杂度产生数量级增加,不会对性能造成冲击。在 MMOR 体系内,EXPERT 可以学习不同类型间的共性,GATE 和 TOWER 可以学习不同类型间的差异。而且经过实验测试,MMOE 版本的模型也比仅仅加 oCPX 类型特征的模型效果更好。
基于 MMOE 我们做了一些尝试。常规的 MMOE是每个任务配置的GATE对不同的 EXPERT 进行加权送给每个 tower 的一个多任务学习模型。CGC 版本的 MMOE 实际上是,每个任务必须要有单独的 私有 EXPERT,每个单独私有 EXPERT 不受其他任务的影响,当然共享 EXPERT 依然存在。ML-MMOE 实际上是上一层的ERPERT的输出与GATE的加权结果的输出要被下一层 EXPERT 所用。PLE 实际 上是 ML 版本的 CGC 网络。其他的优化点还有单个 tower 单独加 wide 和 gating 方法。不同的方法 AUC 收益如下:
最终 20 个模型减少到 2 个,线上取得 1%+的收益。
既然有了多目标建模,那就会碰到多目标调优的问题。我们内部尝试了两种方案,一种是基于不确定度调整多目标间的 loss,另一种是基于基于不同目标的学习速率去调整不同目标的损失的权重。
延迟转化是 oCPX 转化率建模的常见问题。延迟转化问题具体来说,如下图,8 月 1 日 1000 个点击带来了 100 个转化,但是这 100 个转化在 8 月 1 日当天仅仅到达了 50 个转化,另外延迟的 50 个转化对应的点击在 8 月 2 日建模的时候会被当成负样本进行学习,随后 8 月 2 日到达的 20 个转化会月 8 月 3 日当成正样本学习。同一个样本既被当正样本又被当负样本学习会对模型的准确性产生一定的影响。常见的解决方案主要有负样本调权、基于指数分布回流率建模和利用 DNN 预估回流时间。天级别负样本调权时需要注意的是距离当天越远的负样本是负样本的概率越大。
在 CVR 预估的领域,预估值跟真实值一定会有偏差,从而自然有校准方案。第一是整体的校准,整体的校准适用于 CVR 统一高估 1.5 倍,那就要除回来,这个是发生的概率比较小的。现实中比较常见的是因为建模的时候,对负样本进行采样,所以要把 pcvr 整体上进行校准回来。第二个是分段校准,现实中会经常的发现不是统一的高估。我们会发现在低分段高估,高分段低估。从右边的这个图来看,横坐标预估 CVR 是一个分段,比如说 20 就代表 0.2 这个段,纵坐标是统计 CVR。每个分段里如果有一百个样本,20 个正例与 80 个负例,可以获得统计 CVR。在校准的时候可以把这些红点都划出来,然后大家看到这个红点其实有一个规律,就是预估值低的时候,相对来说统计值也比较低的,预估值高的统计值就高。这个时候如果直接上校准的话,其实会发现红点有些毛刺的,如果这个时候校准对模型的 AUC 有一些影响的,用保序回归的方法画出一条绿色的线,是一个单调不递减的线,线上用保序回归来校准的话,AUC 不变,这也是业内比较常用的方案。第三是个体的校准,个体校准更多是为了应对运营或者广告主的一些 bad case。
由于ecpm 的排序公式会有固定的超参数,例如eCPM=TCPApcvr^pcvrTpctr^pctrT。超参常规来说需要基于经验来调整,数据分布发生变化时调整总有收益,但是需要人力投入。一套自动搜参的系统是必要的。常规的整体调参方法有 CEM,个性化调参方法有强化学习的 DDPG。
一套合理的评估指标可以指导大家沿着正确的路径迭代。常见的系统评估指标如下:消耗是指广告主在平台花费的钱,即广告平台的收入。广告主价值是指流量给广告主带来的价值,一般指所有转化的 CPA 之和。期望消耗等同于广告主价值。成本偏差是实际扣费与期望消耗的比值。预估偏差等价于模型在线预估值均值与后验统计值的比值。成本达标率(数量维度)是指成本偏差在[0.8, 1.2]之间的广告数占比。成本达标率(消耗维度)是指成本达标的广告消耗占整体消耗的比重。系统的评估指标,会非常关注两个点,一个叫做成本偏差,一个叫做预估偏差。成本偏差为广告主负责,预估偏差衡量模型能力。
5 总结
总体来说,要对数据有一个比较完善的掌控,不管是转化的数据还是离线的样本的建设的监控,都是要到位的。可以通过多模型的融合的方案来优化模型的准确度。策略方面,全链路都要参与。最后才可以达到一个对于广告主来说成本达标且模型预估准确的最大价值状态。这个价值最大不仅仅是说流量变现的价值,同时还有广告主对平台的满意度更高,留存也会更高。
作者简介
Jun OPPO高级数据挖掘工程师
有 7 年的广告算法领域经验,主要负责应用商店 oCPX 能力建设。
获取更多精彩内容,请扫码关注[OPPO数智技术]公众号