1. 背景
精排预估打分是在线广告系统里非常重要的环节,其中打分准确性会极大地影响客户效果,也会影响用户体验和平台收益。精排预估打分为前链路打分和后链路打分,以 CPC(Cost Per Click)计费模式为例,前链路打分指点击率(Click-Through Rate,CTR),后链路打分指点击后客户获得的效果,这里的效果可以有很多种,常见的有成交量、收藏量等。
前链路打分主要用于广告排序:特指预估点击率(pCTR,predict CTR),平台按照 pCTR * bid_price 进行排序,pCTR 准确性影响排序的准确性。
后链路打分主要用于出价决策:比如预估成交率(pCVR,predict CVR),OCPX(Optimized Cost Per X)自动出价模式下,出价和后链路打分相关,因此打分的准确性直接影响客户最终投放效果。另外,BCB 以及 MCB 模式下也使用了后链路打分,打分准确是 BCB、MCB 最优性成立的基本条件。
精排预估打分模型主要采用深度模型,对特征、样本、模型结构的挖掘工作持续迭代,经过不断优化,打分精度也不断再创新高,尽管如此,精排预估打分仍然存在一些问题。
序准确 or 值准确:一般而言,精排打分模型多数看的是 AUC 指标,AUC 指标对应序的准确性,对于值的准确性容易被忽视,比如 A 渠道统计 CTR 是 B 渠道的 2 倍,如果值是准确的,那么打分也应该为近似 2 倍的关系。
冷启动:这里的冷启动包括新客户冷启动和新渠道冷启动,这部分流量缺少历史样本,精排预估打分准度受限。
维度效果差异巨大:某些维度下的效果存在很大差异,精排模型精准地学到这些倍数关系非常困难。尤其是流量渠道维度,好渠道的 CVR 可能是差渠道 CTR 的几十倍。
样本倾斜:大多数场景存在长尾效应效应,例如大占比数量的流量渠道的样本量占比较低,由于精排模型统一建模,或多或少存在少样本“迁就”多样本现象。
校准是解决以上问题最直观、最直接的方法,也是业界常用的方法。它的思路很简单,就是在精排模型打分阶段后对打分进行修改,后续机制策略使用校准后的分,流程图如下:

一般而言,校准模块需要要具备以下特点:
简单轻量:根据定位一可知,校准模块不做重度优化,设计理应简单轻量。
可解释:一方面,可解释意味着合情合理,badcase 可能会少,或者出现 badcase 更容易排查,另一方面,校准结果的解释性可为精排模型提供优化思路。
鲁棒&风险可控:校准模块承担着为精排模型保驾护航的作用,需要降低校准后效果更差的风险。
2. 问题分析
我们之所以认为精排模型存在值准度问题,大多数情况是因为在做一些数据统计分析的时候,发现某些维度的打分不满足直观的统计特性,如下图所示:

实际角度来看,不管是流量渠道维度和客户维度,统计值和预估值存在较大差异。我们可以通过统计学假设检验来解释这个问题,以 CTR 打分为例,我们挑选了一些打分值都为 9.07% 的实际样本,总样本量为 444587,正样本量为 36267。原假设为「所有样本真实 CTR 都为 9.07%」,这里我们采用正样本量作为统计量,此时正样本量服从 n = 444587,p = 0.0907 的二项分布,我们很容易计算。,显而易见我们要拒绝原假设,通俗的解释就是如果原假设成立出现这种样本的几率几乎为 0。原假设被拒绝意味着至少一部分样本 CTR 不是 9.07%。
由于无法确切知道每个样本的真实 CTR,统计推断结论基本只能到这一步,即「我们知道打分有问题,但不知道哪些样本有问题」,此时校准就显得有必要了。
业界常用的校准算法中,非参数方法能做到自适应,但方法复杂一点则缺乏一定的可解释性;参数方法可解释,但目前存在的建模不够复杂,表达能力不足;混合方法看起来能