ctr 校准纠偏,保序回归

文章探讨了CTR预测模型在实际业务中的局限性,指出仅关注AUC指标可能无法反映最佳收益。在广告出价和电商搜索排序场景中,模型预测的CTR需与收益相结合,保序回归用于校准模型输出,确保预测值的相对顺序正确。此外,负样本过采样导致的CTR偏低问题可通过校准解决,IsotonicRegression算法为此提供了数学解析解。分组计算的策略对纠偏结果有影响,需谨慎选择分组方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此文尚未完成.

背景

模型预测的 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 先验校准
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值