文章目录

  • 为什么要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. 女皇万岁!我们是来送礼的 ——阿里聚安全春天系列全套大礼包
  2. Shell与ShellScript
  3. Flex布局里的align-self属性
  4. oracle-单行函数
  5. You have new mail in /var/spool/mail/root消除提示的方法
  6. 那些开发《虚拟光驱》的人们
  7. leetcode - 621. 任务调度器
  8. Ubuntu 18.04安装软件包下载速度慢的解决方案
  9. Vue使用v-for绑定两个属性拼接渲染界面
  10. C# 如何在空间运行时调整控件位置和大小
  11. python自学视频教程 38-python编程开发入门中文视频培训教程38讲
  12. linux数组大小排序,Linux如何使用awk进行数组排序
  13. BI报表设计 AJ-Report
  14. H3C 路由备份与IP聚合
  15. 监管科技崛起:从FinTech到RegTech
  16. OpenMP与C++ 事半功倍地获得多线程的好处 下
  17. Gensim库的使用——Word2vec模型(一)模型的简单介绍与加载预训练的模型进行测试
  18. C# 体检套餐管理系统
  19. jquery easyui datagrid deleteRow(删除行)的BUG!
  20. Python学多久才能独立接单赚钱?一个月足够了,本人私藏的学习计划分享给大家

热门文章

  1. 8月9日华为发布了其自研的鸿蒙操作系统,华为正式发布自研操作系统鸿蒙
  2. 二叉树排序和绘制技巧
  3. win10桌面快捷方式图标变白
  4. 世界上第一台电子数字式计算机诞生于美国,世界上公认的第一台电子数字计算机诞生于哪年哪个国家?...
  5. Vue启动本地(.exe)文件
  6. rabbitmq的安装与命令行管理工具rabbitmqadmin的使用
  7. android自定义View之margin和padding的处理
  8. colorkey唇釉是否安全_colorkey空气唇釉怎么样 人气口红种草 – 爱打扮
  9. JS 滚动屏幕至顶端
  10. GMM-HMM孤立词识别