ctr 校准纠偏,保序回归

2023-11-01 03:30
文章标签 回归 校准 ctr 纠偏 保序

本文主要是介绍ctr 校准纠偏,保序回归,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

此文尚未完成.

背景

模型预测的 ctr 并不一定总是准的, 若只关注 auc 指标, 难以反映业务价值.

场景一: 广告出价

排序表达式是 final_score = ctr * bid_price.
ABC三条广告, A的实际点击率是10%,B的实际点击率是5%,C的实际点击率是1%,但是A B C的点击收益分别是2,5,10。
如果我们的模型只保序、没有做到保距,那么输出的预估值是5%,1%,0.5%,这样的话AUC的排序指标是满足了,但是实际收益并不是最优的。

表格直观展现见下:

beforeABC
ctr0.050.010.005
bid_price2510
预估收益0.10.050.05

此时排序为: A,B,C

after 纠偏ABC
ctr0.10.050.01
bid_price2510
预估收益0.20.250.1

此时排序为 B,A,C

场景二: 多任务连乘

电商搜索页, 排序表达式是 final_score = ctr * cvr , 所以只看各自的auc有局限, 还得要求二者的数值也尽量准, 这样 final_score 的 auc 才更高.

给一个实际 例子, cvr 纠偏前后, 相对次序不变, 不影响 cvr 任务的 auc, 但能改变最终排序, 影响 ctcvr 任务的auc.
在这里插入图片描述
如果样本中 甲是正例, 乙是负例, 那么纠偏后的排序更精准.

以抽象的视角看, 上述两个任务其实是有共性的, 都是 向量相乘中, 一方只改大小不改次序, 却能影响最终排序.

场景三: 数据集负采样

原始数据集的正负样本个数差异过大, 人为增加负样本数量.
这会导致ctr预估偏低, 所以在预测时要对模型预测值进行矫正。

Calibration

(刻度)校准. 应用于场景三. 纠偏公式有解析解, 详见参考 [2].
在这里插入图片描述
r 表示负样本的采样比例.

Isotonic regression

保序回归, 详见参考1.

  • x x x 表示纠偏前的模型输出
  • y ^ \hat y y^ 表示纠偏之后的输出
  • y y y 表示后验的真实值.

保序回归就是在满足 任意两个预测值相对大小(保序在这里体现)不变的约束下, 令预测值的偏差尽量小.

在这里插入图片描述

在这里插入图片描述
该图来自 sklearn 页面, 因为纠偏后是非递减的, 所以做到了保序.

代码示例:

>>> from sklearn.isotonic import IsotonicRegression
>>> x = [0.1,0.2,0.3,0.4,0.5]
>>> y = [0.3,0.4,0.2,0.0,0.6]
>>> ir = IsotonicRegression()
>>> y_ = ir.fit_transform(x, y)
>>> y_
array([0.225, 0.225, 0.225, 0.225, 0.6  ])

这里有个问题: x,y 也是需要分组计算的, 等距/等频 不同的分组方式, 也会影响纠偏的结果, 那么这里有啥建议呢?

参考

  1. sklearn-isotonic
  2. 知乎文章, ctr 先验校准

这篇关于ctr 校准纠偏,保序回归的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/320162

相关文章

✨机器学习笔记(二)—— 线性回归、代价函数、梯度下降

1️⃣线性回归(linear regression) f w , b ( x ) = w x + b f_{w,b}(x) = wx + b fw,b​(x)=wx+b 🎈A linear regression model predicting house prices: 如图是机器学习通过监督学习运用线性回归模型来预测房价的例子,当房屋大小为1250 f e e t 2 feet^

用Python实现时间序列模型实战——Day 14: 向量自回归模型 (VAR) 与向量误差修正模型 (VECM)

一、学习内容 1. 向量自回归模型 (VAR) 的基本概念与应用 向量自回归模型 (VAR) 是多元时间序列分析中的一种模型,用于捕捉多个变量之间的相互依赖关系。与单变量自回归模型不同,VAR 模型将多个时间序列作为向量输入,同时对这些变量进行回归分析。 VAR 模型的一般形式为: 其中: ​ 是时间  的变量向量。 是常数向量。​ 是每个时间滞后的回归系数矩阵。​ 是误差项向量,假

深度学习与大模型第3课:线性回归模型的构建与训练

文章目录 使用Python实现线性回归:从基础到scikit-learn1. 环境准备2. 数据准备和可视化3. 使用numpy实现线性回归4. 使用模型进行预测5. 可视化预测结果6. 使用scikit-learn实现线性回归7. 梯度下降法8. 随机梯度下降和小批量梯度下降9. 比较不同的梯度下降方法总结 使用Python实现线性回归:从基础到scikit-learn 线性

【python因果推断库11】工具变量回归与使用 pymc 验证工具变量4

目录  Wald 估计与简单控制回归的比较 CausalPy 和 多变量模型 感兴趣的系数 复杂化工具变量公式  Wald 估计与简单控制回归的比较 但现在我们可以将这个估计与仅包含教育作为控制变量的简单回归进行比较。 naive_reg_model, idata_reg = make_reg_model(covariate_df.assign(education=df[

什么是GPT-3的自回归架构?为什么GPT-3无需梯度更新和微调

文章目录 知识回顾GPT-3的自回归架构何为自回归架构为什么架构会影响任务表现自回归架构的局限性与双向模型的对比小结 为何无需梯度更新和微调为什么不需要怎么做到不需要 🍃作者介绍:双非本科大四网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发,目前开始人工智能领域相关知识的学习 🦅个人主页:@逐梦苍穹 📕所属专栏:人工智能 🌻gitee地址:x

回归预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)多输入单输出

回归预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)多输入单输出 目录 回归预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)多输入单输出预测效果基本介绍模型介绍PSO模型LSTM模型PSO-LSTM模型 程序设计参考资料致谢 预测效果 Matlab实现PSO-LSTM多变量回归预测 1.input和outpu

【ML--04】第四课 logistic回归

1、什么是逻辑回归? 当要预测的y值不是连续的实数(连续变量),而是定性变量(离散变量),例如某个客户是否购买某件商品,这时线性回归模型不能直接作用,我们就需要用到logistic模型。 逻辑回归是一种分类的算法,它用给定的输入变量(X)来预测二元的结果(Y)(1/0,是/不是,真/假)。我们一般用虚拟变量来表示二元/类别结果。你可以把逻辑回归看成一种特殊的线性回归,只是因为最后的结果是类别变

逻辑回归与线性回归的目标函数和应用场景比较

概述 逻辑回归和线性回归是两种常用的预测模型,它们在目标函数和应用场景上存在显著差异。本文将详细比较这两种回归模型,并提供相应的代码示例。 线性回归 线性回归是一种预测连续数值的模型,其目标是找到特征( X )和目标变量( Y )之间的线性关系。线性回归的目标函数是最小化预测值和实际值之间的平方差,即均方误差(MSE)。 目标函数 线性回归的损失函数是均方误差: [ J(\theta)

【python pytorch】Pytorch实现逻辑回归

pytorch 逻辑回归学习demo: import torchimport torch.nn as nnimport torchvision.datasets as dsetsimport torchvision.transforms as transformsfrom torch.autograd import Variable# Hyper Parameters input_si

回归预测 | Matlab基于贝叶斯算法优化XGBoost(BO-XGBoost/Bayes-XGBoost)的数据回归预测+交叉验证

回归预测 | Matlab基于贝叶斯算法优化XGBoost(BO-XGBoost/Bayes-XGBoost)的数据回归预测+交叉验证 目录 回归预测 | Matlab基于贝叶斯算法优化XGBoost(BO-XGBoost/Bayes-XGBoost)的数据回归预测+交叉验证效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现基于贝叶斯算法优化X