oCPC中转化率模型与校准
翻看日历时间已经来到了2021年,也是共同战役的第二年,许久没有更新文章了,在与懒惰进行过几次斗争都失利之后,今天拿出打工人最后的倔强,终于收获了一场胜利。闲话不多说,今天咱们重点聊聊oCPC中转化率模型与校准。
首先分享近期的一些“好消息”,上了两个AB实验,收入全部大涨,但是并没有推全,原因是收入效果不可看。究其原因这两个实验都与oCPC出价相关。
第一组实验是圈定人群AB实验,简单理解就是圈出一部分的人群作为实验组提价,这个实验收入大涨很容易理解,因为有了提价操作,计费也自然提升。实验组整体的消耗速度自然也有大幅度提升。
第二组实验是圈定广告AB实验,就是从全量的广告中圈出一部分广告作为实验组提价,这个AB收入大涨也很好理解,在单次请求中,实验组的广告在提价之后更容易胜出,消费自然提升。
在广告算法交流群中经常有人说,冷启动oCPC广告相比CPC的广告掉量十分严重。针对这种说法,我觉得首先得看下CPA是否打平;再不济,也得看下oCPC的出价是否打平,如果oCPC的 CPA低很多,不掉量才奇怪呢。
oCPC使用转化率模型的预估值进行出价的计算,模型在这其中扮演着至关重要的角色。针对模型,简单小结几点:
(1)无模型:如果不使用转化率模型,我们可以基于一定的规则进行统计,粒度可以从粗到细,各种人工加权均可使用,尽可能地提升更新频率。
(2)模型形式:是拆分还是合并,各有说法。在数据量满足一定的条件下主要pk的还是人力物力财力。只要人力物力财力没问题,那就可以愉快地拆分,分媒体,分行业,分转化目标均可。如果没有那么多的人力物力财力那就合并吧,在模型结构和特征上深耕。
(3)模型质量:首当其冲的还是线上线下一致性,线上线下不一致,一切都是白谈。然后主要关注的还是auc,gauc,pcoc,abs_error等常见指标。最后还得关注下模型的泛化性,这点主要影响冷启动的效果。在实际工作中,经常会遇到相关的bad case。最典型的一个就是,很多广告主将投放效果好的素材复制投放,发现效果差了很多。oCPC出价和流量选择托管媒体平台,广告主的操作空间只剩下调整投放的素材。上述case会严重影响广告主对于素材质量的判断。
(4)模型调优思路:和之前讲过的一样,优先级:数据>特征>模型结构。尤其在oCPC初期阶段,数据选择尤为重要,例如有些广告根本就不回传转化数据,这些广告的数据显然既不属于正样本也不属于负样本,因此肯定是不能加入转化率模型的训练数据中的;在特征层面,仅仅使用id类的特征对于模型的泛化能力会带来毁灭性的打击,我们需要加入统计类的特征以及实时特征。从实际工作中看,特征的实时化要比模型的实时化更安全更简单也更有效;在模型结构层面,一味地追求新颖复杂的网络结构并无实际意义,模型越复杂,对应的成本也会越高,保持模型复杂度与效果的平衡方为上策。
(5)模型评估:转化率模型的预估结果会直接作用于出价,从开头的两个AB实验也可以看出,实验组出价的高低其实会直接影响实验的效果。经常会出现模型上线之后,AB实验收入上涨许多,做下数据分析发现,模型预估偏高,pcoc起飞,导致出价偏高。即使收入指标再好看,对于大盘来说也是毫无作用。转化率模型的优化是否一定会带来收入的上涨呢?不一定。模型效果评估先看序关系,收入,赔付,超成本,欠成本等指标都是辅助的。模型预估偏高和偏低要怎么办呢?做模型校准哇
什么是模型校准?
模型较准就是模型按照后验值对原始预测值进行校准,输出校准之后的预测值。这里的校准是粗粒度的校准,可以整个模型做一个校准,但通常需要保序,业界常用保序回归的方法,后续会详细介绍。
为什么要做模型校准?
做CTR模型的同学对校准通常会比较陌生,原因是常见的CTR模型在GSP机制下只要保证序关系OK就行,即关注模型的auc、gauc等指标即可,pcoc等指标大可不必纠结。CTR/CVR预估的原因和用法其实与广告出价方式是密切相关的。如果全是CPM出价计费,不考虑广告后端的成本,并不需要CTR模型;同样的,如果全是按照CPC出价计费,CVR模型也是不需要的;如果是做DSP广告参与ADX竞拍的话,CTR模型就不能只考虑序关系了,因为eCPM=CTR模型预测值*CPC出价直接作为出价,与其他广告竞争,最终的计费与eCPM相关,模型预测偏高或者偏低都会影响平台拿量以及收益率的大小。在oCPC广告中,CVR模型预测值直接参与出价,预测值偏高偏低都会影响广告主的成本以及平台的收益。
我们可以看出无论是为了对模型效果的评估还是对广告主以及平台收益稳定的保障,模型校准都是需要做的。如果不做校准的话,可能会出现AB实验涨很多,大盘整体收入反而降低;或者出现模型明明预期无diff,但是上线之后收入突升突降的现象。
怎么做模型校准?
。。。
预知后事如何,欢迎大家关注计算广告那些事儿哈,除了原创文章之外,也会不定期和大家分享业内大牛的文章哈!

oCPC中转化率模型与校准的更多相关文章
- 总结一下一般游戏中3D模型各种勾边方法遇到的工程性问题
以前做过简单的rim light勾边,几何勾边,这次又做了后处理的勾边,工程化的时候,都遇到很多问题,简单总结一下. 首先是火炬之光勾边效果,类似轮廓光的实现,简单的卡通渲染也是通过类似的算法加采样色 ...
- 15SpringMvc_在业务控制方法中写入模型变量收集参数,且使用@InitBind来解决字符串转日期类型
之前第12篇文章中提到过在业务控制方法中写入普通变量收集参数的方式,也提到了这种凡方式的弊端(参数很多怎么办),所以这篇文章讲的是在业务控制方法中写入模型变量来收集参数.本文的案例实现的功能是,在注册 ...
- ThinkPHP中的模型二
ThinkPHP中的模型 1.为什么要创建数据对象 案例:使用ThinkPHP完成部门管理 ① 设计数据库 ② 创建Dept控制器 路径:./Application/Admin/Controller创 ...
- ThinkPHP中的模型
ThinkPHP中的模型 1.什么是模型(Model) 模型表示企业数据和业务规则,实际项目开发中,主要实现与数据库进行操作. 2.模型的定义规则 模型类的命名规则是除去表前缀的数据表名称,采用驼峰法 ...
- 从3dmax中导入模型到UDK Editor(供个人备忘)
笔记从3dmax中导入模型到UDK Editor 1) 在3dmax中导出 2) 选择FBX格式,保存 3) 在UDK中打开content browser,自己选个pac ...
- Asp.net Mvc 中的模型绑定
asp.net mvc中的模型绑定可以在提交http请求的时候,进行数据的映射. 1.没有模型绑定的时候 public ActionResult Example0() { ) { string id ...
- CSS中盒模型的理解
今天突然看到一篇关于CSS中盒模型的文章,忽然觉得自己竟然遗忘了很多小的地方,所以写一篇文章来记忆一下 (摘抄于千与千寻写的CSS盒子模型理解,并在自己基础上添加了一些东西,希望更完善,对大家有帮助) ...
- 偏差(Bias)和方差(Variance)——机器学习中的模型选择zz
模型性能的度量 在监督学习中,已知样本 ,要求拟合出一个模型(函数),其预测值与样本实际值的误差最小. 考虑到样本数据其实是采样,并不是真实值本身,假设真实模型(函数)是,则采样值,其中代表噪音,其均 ...
- Web API中的模型验证
一.模型验证的作用 在ASP.NET Web API中,我们可以使用 System.ComponentModel.DataAnnotations 命名空间中的属性为模型上的属性设置验证规则. 一个模型 ...
随机推荐
- 使用 js 实现一个简易版的 async 库
使用 js 实现一个简易版的 async 库 具有挑战性的前端面试题 series & parallel 串行,并行 refs https://www.infoq.cn/article/0NU ...
- how to make one you own free online tutorials in minutes
how to make one you own free online tutorials in minutes educative.io https://www.educative.io/colle ...
- shit nuxt.js sensors-data
shit nuxt.js sensors-data why I can not close it? https://github.com/nuxt/nuxt.js/issues?q=sensors+d ...
- uniapp 万年历
大量代码来至这里 <template> <view class="calendar-main"> <!-- 当前年月 --> <view ...
- 链表、栈、队列、KMP相关知识点
链表.栈与队列.kmp; 数组模拟单链表: 用的最多的是邻接表--就是多个单链表: 作用:存储树与图 需要明确相关定义: 为什么需要使用数组模拟链表 比使用结构体 或者类来说 速度更快 代码简洁 算法 ...
- 别再人云亦云了!!!你真的搞懂了RDD、DF、DS的区别吗?
几年前,包括最近,我看了各种书籍.教程.官网.但是真正能够把RDD.DataFrame.DataSet解释得清楚一点的.论据多一点少之又少,甚至有的人号称Spark专家,但在这一块根本说不清楚.还有国 ...
- [JAVA学习笔记]JAVA基本程序设计结构
一个简单的Java应用程序 public class FirstSample { public static void main(String[] args) { System.out.println ...
- ElementUI使用总结
首先声明,我这总结的官网都有,只是将自己使用时遇到的问题,重新记录一下,官网地址:https://element.eleme.cn/ 1.表格内指定行数给定不同样式(类似于隔行变色,也能叫指定行数不同 ...
- 解决浏览器点击button出现边框问题
发现问题 本人不懂浏览器的HTML代码 不知道怎么在chrome浏览器的F12之后点到了哪里 点击button的时候就会出现黑色边框 解决 终于发现不是因为动了调试页面,而是动了谷歌浏览器的高级选项, ...
- AndroidStudio 中 gradle.properties 的中文值获取乱码问题
0x01 现象 在gradle.properties中定义了全局变量,然后从 build.gradle 中设置 app_name: resValue "string", " ...