保序回归平滑校准算法(SIR)通过分桶合并+线性插值解决广告预估偏差问题,核心是保持原始排序下纠偏。具体步骤:1)按预估分升序分桶,统计每个分桶的后验CTR;2)合并逆序桶重新计算均值,确保Pctr-Actr散点单调递增;3)用分段线性函数拟合校准曲线,保证平滑性。(Actr表示离线统计的Actual CTR)
SIR的优势在于利用保序思想缓解数据稀疏,兼具轻量化和可解释性,实测提升RPM/CTR/ROI。评估采用PCOC(越接近1越准)和Cal-N指标,但需注意PCOC可能掩盖局部高估/低估问题。该算法适用于混合竞价、多物料等复杂场景,是广告校准的主流方案。
1. 校准背景
校准技术是可信机器学习领域的一个研究分支,它能够改善机器学习模型在预估准确度和置信度方面的不确定性。在计算广告中,模型预估值大小准确性的优化(预估校准)在出价准确性、稳定性(包括算法出价oCPX/Auto-Bidding等)、竟价公平性,计划冷启动等方面发挥重要作用。
1.1 为什么推荐系统需要进行校准?
在推荐/广告的排序阶段,由于种种原因,模型打分的分布相比于真实分布会有偏差,或者称为高估、低估。一句话介绍为什么ctr预估需要校准:真实的CTR 值和预估的pCTR值由于负采样和模型等问题,存在一定的偏差。 CTR差异一般有以下两个原因:模型训练中正负样本有偏采样导致的,模型构建本身就不可能完美。
CTR预估值与真实值有偏差,并不会影响AUC指标和排序,但是实际使用中往往需要CTR的预估值不仅仅是做到有序,即正样本排在负样本前面,而且需要保证有一定的区分度。
在模型预估值大小发生偏差的情况下会明显导致广告主或平台的收益受损。除此之外,随着广告业务形态的发展,更多的场景对模型预估值大小准确性提出了挑战,包括:1)多种Bid类型混竞:CPC、CPM、算法智能出价(Auto-Bid)、智能调价(OCPX)等Bidding方式繁荣发展,混合竞价,预估大小准确性和稳定性直接影响出价;2)多物料混合:图文、直播、短视频等各类内容形态广告混合,不同物料上的预估水平参差不齐;3)广告与推荐流量混排:广告和推荐(自然)内容有各自独立的打分逻辑,预估大小的量纲和分布统一是能够保证混排公平性和高效性的基础。所以,预估值大小的准确性在广告领域至关重要。
通常我们可以借助校准(Calibration)技术,根据线上的真实点击率/转化率,对模型的打分结果进行调整,使其更加贴近线上的真实分布。校准的本质,是指根据场景特点划分候选,并将其得分分布与真实分布拉齐,从而改善多目标排序、多实体排序和广告竞价等场景的排序效果。
2. 校准目标
校准技术的目标是:使用户行为的预估值尽可能逼近真实概率值,即模型预测的CTR尽可能接近真实的CTR。
矫正的结果不能改变测试数据的ctr序, 即Calibration要保持单调性,Calibration前后的AUC保持不变 。
矫正的目的是在CTR序的分桶上使得COPC接近1。Calibration只矫正CTR序上的有偏,特征级别的有偏需要在特征级别进行矫正。
3. 保序回归
保序回归法(Isotonic Regression)是目前是业界最常用的校准方法,常见的算法是保序回归平滑校准算法(保序回归平滑校准算法:Smoothed Isotonic Regression,简称SIR算法)。其核心思想是利用模型本身的排序能力缓解校准样本数据稀疏的问题,具备轻量级和可解释性等特点。
- 保序:只影响CTR的绝对值,但不影响多条数据CTR之间的相对大小,即不影响商品最终的排序结果。
- 分桶:将所有数据按模型输出的预估值(pCTR)进行分桶,对桶内数据的label(0/1值)求平均,作为近似的真实CTR。
- 回归:通过分段线性回归将pCTR映射到CTR上。
保序回归算法流程:
1、将pCTR大小区间进行分桶,并计算每个桶内的平均CTR和pCTR。

2、如果,则违反桶间的大小顺序,需要进行桶合并。

3、若pCTR在某个桶区间内,则取该桶的统计CTR作为校准pCTR。
3.1 为什么保序回归可以进行CTR校准?
保序回归(Isotonic Regression)用于CTR校准的核心原因在于其能保持预测值的单调性,同时通过调整映射关系减少偏差。以下是具体原因:
- 保持排序稳定性:保序回归要求预测值(pCTR)与真实点击率(CTR)的映射关系保持单调递增,即确保预测值的相对大小与真实点击率一致。这避免了因模型偏差导致预测分与实际用户行为出现"左手倒右手"现象(例如高点击商品被低估、低点击商品被高估),从而维持推荐排序的准确性。
- 缓解数据稀疏问题:通过分桶处理并计算每个桶内的平均点击率,可有效缓解数据稀疏问题。例如,当样本按pCTR分桶后,每个桶内的数据量增加,使得后续回归分析更稳定。
- 优化多目标融合场景:在多目标(如点击率、转化率)融合场景中,保序回归能确保各目标预估值的相对顺序与实际用户行为一致。例如,即使两个模型的pCTR分布不同,只要保持排序能力不变,最终融合分数(如CTR×转化率)的排序仍可靠。
- 提升校准精度:保序回归通过调整预测值与真实值的映射关系,使预测分更贴近真实用户行为。例如,当预测分方差较大时,通过回归调整可减少偏差,从而提高RPM和广告主ROI。
4. 保序回归平滑校准算法
在实际的推荐系统中,我们通常使用保序回归平滑校准算法(Smoothed Isotonic Regression,简称SIR)来解决CTR校准的问题。
SIR算法具体思想为:模型原始打分相近的PV具有近似的真实点击率,PCTR大小区间可作为一个合理的校准维度(分桶);分桶数据量稀疏时,进一步利用模型本身的排序能力,对各分桶后验点击率与模型预估点击率做保序处理(保序回归);最后使用单调平滑函数拟合模型原始打分和后验点击率的映射关系(线性Scaling)就得到了校准函数。
具体做法如下:首先从pCxr维度对样本进行拆分,按照样本预估值大小排序后等频分桶整体样本;然后遍历全部分桶,对桶与桶之间存在逆序现象的分桶进行桶合并操作,并计算合并后分桶真实统计的转化率;最后利用简单线性插值方法,拟合模型原始预估分和后验真实转化率之间的映射关系,生成模型校准参数。
SIR在保序回归的基础上,进行桶间插值产生分段校准函数:

其中,x的约束是落在第i个桶内。保序回归系列的校准算法的优势是可以在不改变序的前提下,提升pCTR的准确度;且它不需要知道模型训练时样本选择的细节,更适合在Auction阶段使用。
SIR算法的优势在于**充分利用了保序和平滑思想缓解了数据稀疏的问题,而且具备轻量级和可解释性特点。**对比各类校准算法效果如下(AB是两个数据集),在实际应用中RPM、CTR以及广告主ROI均有显著提升(详细可见论文: Calibrating user response predictions in online advertising)。
4.1 SIR原始论文算法流程
4.2 SIR算法流程解读
Step1 区间分桶:升序-分桶-计算桶后验ctr
首先将Pctr值从小到大进行排序,然后按照区间分为K个桶。假设我们分为100个桶:(0,0.01], (0.01,0.02], (0.02,0.03],..., (0.99,1]。这里我们认为精排模型给出的pCTR值是具有参考意义的,同一个区间里的PV请求具有近似的真实点击率,每一个区间可作为一个合理的校准维度(分簇维度)。然后实际应用时,我们再统计每一个桶里的后验CTR值。比如今天线上一共有1000次预估的Pctr落在了桶 (0.02,0.03]之间,然后我们统计这1000个预估的后验CTR,假设后验CTR为0.23%。关于每个桶里Pctr和Actr平均值的计算公式如下:

Step2 桶间合并:桶合并-重新计算Actr和Pctr均值
如果说后验CTR的值超出了对应分桶的pCTR取值区间怎么办?假如原本分桶在(0.02,0.03]之间结果的后验CTR为0.35%,这时已经进入到了下一个桶里了(0.03,0.04]。如果我们将原本pCTR在(0.02,0.03]桶里面的值往下一个桶里的区间值进行校准,这就破坏了原有桶之间的顺序,保序回归的基本逻辑是不能破坏原有pCTR的顺序。此时我们需要把(0.02,0.03]和(0.03,0.04]桶进行合并得到新的桶(0.02,0.04],再重新对落入两个桶里的数据进行后验CTR统计,得到新桶里面的Actr和Pctr平均值。我们以Pctr为x轴,Actr为y轴,最终得到一个如下图所示单调递增的散点图:

Step3 桶间插值分段校准
我们需要基于上述散点图去构造一个校准函数,输入x值以后就可以输出校准后的y值。如果直接拟合一个y = kx + b函数,最终预估的结果不够平滑。目前业界的标准做法都是构造分段校准函数。

如上图所示,我们将两个桶之间坐标点连接起来,然后去构造一个分段的y = kx + b校准函数,假设pCTR一共分为了100个桶,那么最终就构造100个分段校准函数,这样既保证单调性,又保证平滑地校准。分段的校准函数如何得出,这里就是基础的初中数学知识,已知两点坐标计算对应的y = kx + b。
保序回归法的整体思想就是:不改变原有数据的Pctr排序,仅在原有Pctr的排序上进行纠偏。最终纠偏出来的CTR数据分布的单调性不变,AUC指标不变。
本身因为特征选择和样本采样导致的CTR偏差,需要基于先验知识的特征调整和基于负样本采样率的方法来对CTR进行纠偏。如果精排模型输出的Pctr和Actr差异很大,这种是无法依靠校准模块来进行纠偏的。

4.3 SIR为何能保序?
每个分段桶内部,f(x)=kx+b是单调递增函数,必然保序。
桶合并操作使得前一个桶的最大值就是后面一个桶的最小值,因此桶间也是保序的。
5. 校准评价标准
5.1 PCOC&COPC
当我们使用上述的方法对CTR进行纠偏以后,我们使用什么指标来评估纠偏效果的好坏了?一般我们使用PCOC和Calibration-N两大指标。
- PCOC(Predict Click Over Click)
- PCOC = Pctr / Actr,模型预估均值/后验均值,越接近1表明模型准度越高。
- COPC = (总支付数/总曝光数) / score均值
PCOC指标是校准之后的点击率与后验点击率(近似真实概率)的比值,越接近于1,意味着在绝对值上越准确。PCOC指标越接近于1,意味着CTR预估的越准确。PCOC > 1,则代表CTR被高估;PCOC < 1,则代表CTR被低估。但是PCOC存在一定局限性,因为PCOC指标是统计所有PV的Pctr和Actr效果,这里面可能会存在一定的统计偏差。假设样本里有50%PV的CTR被高估了,50%PV的CTR被低估了,最终二者汇总在一起时PCOC可能还是趋近于1。
举个例子:2万个样本,其中1万个样本的预估概率是0.2,后验概率是0.4,计算出PCOC是0.2/0.4=0.5,是显著低估的,另1万个样本PCOC是0.8/0.6= 1.3,明显是高估的。所以校准效果并不好,但是样本放一起看,校准后概率是(0.2+0.8)/2=0.5,后验概率是(0.4+0.6)/2=0.5,整体PCOC是1.0,表现完全正常。所以单一PCOC指标不能表征样本各维度下的校准水平。

5.2 Calibration-N
cal-N将样本集合按照自定义规则划分出多个簇分别计算PCOC,并计算与1的偏差作为标准误差。举个例子,将pctr根据值大小划分为多个桶,每个桶为一个簇,计算每个簇的PCOC及其与1的偏差 数学公式:

6. 落地细节
这里收集推荐系统、广告系统使用保序回归进行校准的一些落地细节。
- 校准模型更新频率:从理论上讲,校准模型的响应速度越快越好,实时流的效果应该是最接近真实水平的。
- SIR算法的分桶数量如何确定:这个并没有绝对的参考数值,更多的是依据数据量和经验来确定。分桶数越多,校准结果能够做的越精细;但是桶内的样本量也会越少,可能会影响校准的准确度。
7. 参考文献
【知乎】保序回归 Isotonic Regression-Python
【CSDN】精排模型校准Calibration_模型calibration-CSDN博客