文章目录

  • 为什么要ctr校正?
  • CTR 训练时负样本下采样,上线前如何矫正?
    • 第一种方法
    • 第二种方法
    • 矫正ctr例子
  • Python code

为什么要ctr校正?

通常我们在做CTR预估的时候,预估值会与真是的CTR有偏差,这种偏差可能来自于负采样,可能是因为模型的问题。

CTR预估值与真实值有偏差,并不会影响AUC指标和排序,但是实际使用中往往需要CTR的预估值不仅仅是做到有序,即正样本排在负样本前面,而且需要保证有一定的区分度。这涉及到一个概念保序和保距。

假设我们有这么一个序列 牛 500KG,羊100KG,兔子 5kg,假设我们有一个模型,输入这些动物之后,根据体重排序,并且出一个体重的预估值。

我们模型如果只是采用AUC这个指标的话,那么我们模型输出 牛 100kg, 羊 20 kg,兔子1kg,这样的结果AUC是没问题的,但是这只是做到了保序,但是他们之间的差值变小了,没有做到保距

在实际业务中,比如我们有这么一些广告,A的实际点击率是10%,B的实际点击率是5%,C的实际点击率是1%,但是A B C的点击收益分别是2,5,10。如果我们的模型只保序、没有做到保距,那么输出的预估值是5%,1%,0.5%,这样的话AUC的排序指标是满足了,但是实际收益并不是最优的。

因此需要对CTR进行校准,是的CTR距离真实值越近越好。

CTR 训练时负样本下采样,上线前如何矫正?

第一种方法

  1. 首先有以下假设:
  • p′p^{'}p′: 是已经采样之后的预测概率
  • ppp: 表示未采样的预测概率
  • NpN_pNp​: 原始的正样本数量
  • NnN_nNn​: 采样后的负样本的数量
  • rrr: 表示负样本的采样比例,通常是个分数
  • Npr\frac{N_p}{r}rNp​​: 表示原始的负样本数量

可以得到:

p′1−p′=NpNn(1)\frac{p^{'}}{1-p^{'}} = \frac{N_p}{N_n} \ (1) 1−p′p′​=Nn​Np​​ (1)
p1−p=NpNnr(2)\frac{p}{1-p} = \frac{N_p}{\frac{N_n}{r}} \ (2) 1−pp​=rNn​​Np​​ (2)
p′=11+e−wx(3)p^{'} = \frac{1}{1+e^{-wx}}\ (3) p′=1+e−wx1​ (3)

公式(1)(2)这里假设:(正样本概率) / (负样本概率) = (正样本数) / (负样本数)
公式(3)也是一个假设,方便后面计算

  1. 根据(1)和(2)得到:

p1−p=NpNnr=p′1−p′∗r(4)\frac{p}{1-p} =\frac{N_p}{\frac{N_n}{r}} = \frac{p^{'}}{1-p^{'}}*r \ (4) 1−pp​=rNn​​Np​​=1−p′p′​∗r (4)

  1. 已知(3)可得:

1p′=1+e−wx(第一步)1−p′p′=e−wx(第二步)ln(1−p′p′)=−wx(第三步)ln(p′1−p′)=wx(5)\frac{1}{p^{'}} = 1+e^{-wx} \ (第一步)\\ \frac{1-p^{'}}{p^{'}} = e^{-wx} \ (第二步)\\ ln(\frac{1-p^{'}}{p^{'}} ) = -wx \ (第三步)\\ ln(\frac{p^{'}}{1-p^{'}}) = wx \ (5) p′1​=1+e−wx (第一步)p′1−p′​=e−wx (第二步)ln(p′1−p′​)=−wx (第三步)ln(1−p′p′​)=wx (5)

  1. 已知(4)和(5)可得:

(4)取以e为底的对数,然后用(5)替换

ln(p1−p)=ln(p′1−p′)+ln(r)=wx+ln(r)(6)ln(\frac{p}{1-p}) = ln(\frac{p^{'}}{1-p^{'}}) + ln(r) = wx + ln(r) \ (6) ln(1−pp​)=ln(1−p′p′​)+ln(r)=wx+ln(r) (6)

  1. 最终得到的预测概率为:

ln(p1−p)=wx+ln(r)然后取以e为底ln(p1−p)为指数的变换ln(\frac{p}{1-p}) = wx + ln(r) \ 然后取以e为底\ ln(\frac{p}{1-p}) \ 为指数的变换 ln(1−pp​)=wx+ln(r) 然后取以e为底 ln(1−pp​) 为指数的变换

p=11+e−(wx+ln(r))(7)p = \frac{1}{1+e^{-(wx+ln(r))}} \ (7) p=1+e−(wx+ln(r))1​ (7)

第二种方法

参考的论文是14年facebook的论文《Practical Lessons from Predicting Clicks on Ads at Facebook》

q=pp+1−pwq = \frac{p}{p+\frac{1-p}{w}} q=p+w1−p​p​

其中:

  • P是预估值
  • w是负样本的采样比例
  • q是校准后的值

矫正ctr例子

在广告的CTR训练中,在训练集中对负样本使用下采样,下采样比例为1/7,即选择1/7负样本作为训练数据。

在模型评估中,新模型ctr的mean为0.02。但是线上的Base模型mean为0.0032。所以上线前要对新模型的预估ctr做矫正。按照上面的公式带入计算。

p’是已经采样之后的预测概率值为0.02
r表示负样本的采样比例为1/7
要在要预估p(未采样的预测概率)

  • 用第一种方法:

由(5)可知wx等于-2In7。

将wx等于-2In7带入公式(7)等于0.003。

  • 用第二种方法:

0.020.02+1−0.021/7=0.0029\frac{0.02}{0.02+\frac{1-0.02}{1/7}} = 0.00290.02+1/71−0.02​0.02​=0.0029

通过计算,可以得出两种矫正的结果相差不多,似乎第一种方式更好,但是第一种比第二计算方式复杂。

分析:采样后预估均值为0.02,如果不采样的真实值大约在0.003附近。两者大约相差7倍。

注意:
在预估ctr的场景中,如果采用cpm排序、点击计费的场景中,一般是不需要上线前校准的。只要做到保序就可以了,但是如果想要更好的效果,就要做到保距,也就需要校准。

这么来看的话其实做校准模型也是有必要的,因为精排能够保序,但是保距能力较弱,所以需要通过校准模型优化模型预估的保距能力

Python code

# res 为模型预测后的概率值
res = res[0][1] / (res[0][1] + (1 - res[0][1]) / 0.1)

推荐中的ctr校准方式相关推荐

  1. 今日头条首次改进DQN网络,解决推荐中的在线广告投放问题

    (图片付费下载自视觉中国) 作者 | 深度传送门 来源 | 深度传送门(ID:gh_5faae7b50fc5) [导读]本文主要介绍今日头条推出的强化学习应用在推荐的最新论文[1],首次改进DQN网络 ...

  2. 深度召回模型在QQ看点推荐中的应用实践

    导语:最近几年来,深度学习在推荐系统领域中取得了不少成果,相比传统的推荐方法,深度学习有着自己独到的优势.我们团队在QQ看点的图文推荐中也尝试了一些深度学习方法,积累了一些经验.本文主要介绍了一种用于 ...

  3. 搜索推荐中的召回匹配模型综述(二):基于表示学习的深度学习方法

    " 本文是搜索推荐中的召回匹配模型综述系列的第二篇,上一篇为搜索推荐中的召回匹配模型综述(一)--传统方法. 本文主要介绍了搜索推荐中基于representation learning的深度 ...

  4. 推荐中的attention有什么作用?

    文 | 水哥 源 | 知乎 Saying 1. attention要解决两个问题:(1)attention怎么加,在哪个层面上做attention:(2)attention的系数怎么来,谁来得到att ...

  5. UC 国际信息流推荐中的多语言内容理解

    导读:本次分享的题目是 UC 国际信息流推荐中的多语言内容理解,讲一下我们在国际信流推荐场景下的多语言内容理解方面的一些工作和思考,主要分为: 多语言内容理解的需求和挑战 多语言内容结构化信号建设方法 ...

  6. 一矢多穿:多目标排序在爱奇艺短视频推荐中的应用

    短视频具有内容丰富.信息集中.用户粘性大的特点,如何提高短视频分发的效率和推荐精准度,有效提升消费时长.留存等关键业务指标,是推荐系统的核心能力和建模目标. 本文主要分享在短视频推荐场景下,爱奇艺基础 ...

  7. 2018深度学习在个性化推荐中的应用

    深度学习在个性化推荐中的应用 结论 得益于深度学习强大的表示能力,目前深度学习在推荐系统中需要对用户与物品进行表示学习的任务中有着不错的表现,但优势不如图像与文本那么显著[1]. 深度学习与分布式表示 ...

  8. 他山之石 | 预训练模型在华为推荐中的应用与探索

    经过多年的技术进步,推荐系统场景已经从最开始的协同过滤,发展到了现在的深度学习为核心的阶段.随着深度学习模型的体量逐渐变大后,其优化的难度也在增大,特别在推理性能上的限制下,最后模型的效果提升受到了很 ...

  9. 多目标排序在快手短视频推荐中的实践

    分享嘉宾:郑东博士 快手 推荐算法技术总监 编辑整理:于洋 出品平台:DataFunTalk 导读:快手是中国领先的短视频和直播社区,拥有超过3亿的DAU和丰富的社交数据.快手秉承的价值观是真实.多元 ...

最新文章

  1. c语言计算字符串的函数是什么,字符函数
  2. Golang通道的无阻塞读写的方法示例
  3. 生物计算:SIR模型笔记
  4. jquery 视觉特效(幻灯片效果)
  5. ise的时钟ip核_ISE的IP核clocking wizard使用和例化
  6. 请求参数绑定实体类型
  7. 【转】SharePoint 编程指南
  8. c语言平面向量加法考点,平面向量的加减法怎么死活都不会?有没有什么口诀?例如:向量AB+BC=?向量OA-OB=?向量AB-CB=?有没有什么口诀!...
  9. linux清除log日志,linux清除log日志
  10. 「雕爷学编程」Arduino动手做(32)——雨滴传感器模块
  11. P2P模式的相应/应答的一个例子
  12. matlab画收敛域,第二章习题与答案1.求以下序列的z变换并画出零极点图和收敛域.doc...
  13. 小伙伴要我给他介绍一些非常酷炫而有趣又容易上手的前端框架
  14. kafka消费策略 随笔
  15. java开源运维平台_推荐一个:开源自动化运维开发平台(IT Automatic Develop Platform)...
  16. java配置ehcache_配置和使用Ehcache
  17. error怎么开机 fan_电脑开机提示CPU Fan Error是什么意思?如何解决?
  18. glyphicons 图标大全
  19. linux的wine启动软件报错:err:font:add_replace_font not found suitable family L“MS Shell Dlg“
  20. Maya角色手指动作约束方案

热门文章

  1. 如何设置迪文T5L串口屏的防盗版功能?
  2. 【数据格式化】数字货币加逗号隔开
  3. 【观察】不断打破手机行业创新边界,三个维度解读vivo NEX双屏版
  4. java如何数字竖排输出_Java输出竖排文字
  5. ModelAndView: materialized View is [null];和Action的onSubmit()方法不被执行
  6. 基于OpenWRT+FreeRadius+TinyRadius+Daloradius实现portal加radius安全认证
  7. html5中margin是什么意思,css中margin是什么意思,margin作用是什么?
  8. 小丸子学Oracle 12c系列之——Oracle Pluggable Database
  9. 求电子在线商城后台管理系统
  10. 杭电计算机学硕专硕2019,2019杭电计算机考研总结