丨目录:
· 背景
· Preliminaries
· AdaCalib:后验引导的特征自适应校准模型
· 离在线实验
· 总结
· 关于我们
· References
本文介绍阿里妈妈外投广告 UD 算法团队在预估校准方向的实践与探索,该项工作论文已发表 SIGIR 2022。 论文: Posterior Probability Matters: Doubly-Adaptive Calibration for Neural Predictions in Online Advertising下载: https://arxiv.org/abs/2205.072951. 背景 对用户行为(如点击/转化/停留时长/二跳/收藏/加购等)概率进行精准预估是在线广告平台以及搜推系统的核心能力,基于大规模离散特征的 DNN 模型已成为精排模块的事实标准。关于精排模型的迭代,大多时候是从优化排序关系的角度出发,如果单纯从 AUC 提升来说,预估值是否有严格的概率意义并不十分重要;而在广告场景下对预估值的准确性有着额外的要求:例如在 oCPX 模式下,模型对每条流量给出的点击率/转化率预估值会直接作用于出价,因此我们希望预估值能够反映用户行为事件发生的实际概率来实现对流量价值的精准判断;对广告平台而言,模型预估值会影响扣费与结算,因此预估值应避免出现过高估计或过低估计的情况。阿里妈妈外投广告的效果类业务以 oCPX 模式为主,预估值的准确性提升一直是模型侧与机制侧在迭代中追求的目标。 由于单个样本的行为概率不可知(仅能观测到行为是否发生),对于预估值的准确性的评估通常是按某一特征来聚合相应的样本后,比较模型在样本集合上的预估值相较于样本集上统计出的后验概率的偏离程度,例如若某一个 ad_id 的所有样本的平均点击率为 0.02 则我们希望在该 ad_id 上的模型预估值均值也接近 0.02 。因此,对于预估值的准确性的要求一般是在特征粒度上的。同样由于单个样本的真实概率未知,预估模型的训练只能以二值分类为学习目标而做不到以连续值回归为目标,这就导致模型预估值的准确性往往不尽人意。此外,模型学习的收敛性情况、额外的样本采样、引入了额外 loss 等操作均会对预估值的准确性产生影响。 业界广泛使用的提升预估值准确性的方式是校准(calibration) :校准模块通常处在精排模型之后,基于后验信息将精排模型给出的预估值进行一次映射,使其更加逼近后验概率,预估值经过这样的后处理之后再去参与排序、出价等。预估模型通常是基于大规模离散特征的 DNN,相比之下,校准模块以轻量化的转换函数为主。在看似“矛盾”的设置背后,我们开始思考能否通过 DNN 的强大拟合能力来助力预估值的准确性提升,并探索预估和校准是否有合二为一的可能。 沿着预估&校准一体化这个思路我们展开了初步尝试,提出后验引导的特征自适应校准模型 AdaCalib 。AdaCalib 通过引入后验统计量,基于 DNN 来学习校准函数族,指定的待校准特征域下的每个特征取值会对应一个特定的校准函数。同时,针对不同特征取值的频数信息存在差异的现象,通过自适应分桶机制来保证每个特征取值的校准函数所依赖的后验信息的可靠性。在线 serving 时,AdaCalib 被合入预估模型的 ckpt 中、推送至 RTP,相当于校准直接在精排模块生效,而不再维护单独的校准模块。在 RTA 效果外投场景上的在线实验表明 AdaCalib 在 CVR 等指标上取得了明显效果。 2. Preliminaries 2.1 相关工作 (1)Binning-based 方法 :以保序回归 (Isotonic Regression, IsoReg) [1] 为代表,将样本按模型预估值升序排列后分桶并计算桶内的后验概率(若连续的两个桶的后验概率不满足升序则进行合并桶,直到各桶的后验值满足升序),将桶内后验值作为桶内全部样本的校准后预估值。此类方法的优势在于校准不会影响预估模型对样本的排序,但通常是非参的、表达能力受限,并且不能给出样本粒度的校准值。 (2)Scaling-based 方法 :以 Platt Scaling [2]、Gamma Calibration [3] 等为代表,通常是学习参数化的函数将 logit 进行映射来完成校准(该类方法被用于对 SVM 等输出无明显概率意义的模型进行校准,因此不是直接对预估值做校准),通过假设概率服从某类特定分布,来给出校准函数中待学习的参数,不同的参数化形式对应于对分布的不同假设。这类方法的表达能力强,但各种分布假设都可能有其适用性的问题。 (3)Hybrid 方法 :以 Smoothed IsoReg (SIR) [4] 和 Neural Calibration (NeuCalib) [5] 为代表,该类方法结合了 binning 和 scaling 两类方法的优势。SIR 在 IsoReg 基础上通过线性插值 scaling 来得到每个样本的校准后预估值,因此校准函数为分段线性的形式。NeuCalib 提出了特征粒度校准 (field-aware calibration) 的概念,即认为给定特征域 (field) 下的不同特征取值 (field value) 应该有不同的校准函数,因为不加区分地用全局后验作为校准依据时会出现一些样本被抬高而另一些样本被拉低的情况。方法层面上,NeuCalib 采用将 logit 分桶后学习一个全局的分段线性函数作为校准函数,并在映射后的 logit 上添加了一路辅助网络来补充特征信息,最终经过 scaling 来给出校准值。 以上方法仅有 NeuCalib 涉足了特征粒度校准,然而其校准函数的学习过程依然与特征无关。 图1:各类方法的校准函数示意 2.2 问题定义与评价指标 假设我们已经在训练集 上训好了一个 un-calibrated 的预估模型 ,其中 为样本特征信息、 为二值 label, 表示对样本 的预估值,由 logistic 函数 输出。对于一个想要考察的特征域 ,记相应的特征取值集合为 。特征粒度校准旨在学习一个 function family 来将预估值进行后处理: 目标是校准后的值 能够尽可能接近后验概率。为了衡量校准的效果,采用 [5] 提出的评价指标 field-level relative calibration error (Field-RCE): 上式中, 表示测试集,表示特征域 上的取值为 的样本所构成的子集。Field-RCE 指标衡量了各个特征取值 的子集上,校准后的值相比后验的偏离程度。 3. AdaCalib:后验引导的特征自适应校准模型 AdaCalib 模型的设计主要有两个动因:引入后验信息来指导校准函数的学习,并尽可能提升其表达能力;对特征取值能够自适应,为每个特征取值学习特定且恰当的校准函数。因此我们选择 hybrid 类方法的思路,结合 binning 类方法易于引入后验信息的特点,构建特征粒度的分桶机制,并在此基础之上引入 DNN 来令校准函数具有强表达能力。 3.1 特征域的校准函数族 (calibration function family) 学习 对于用于训练校准模型的数据集,使用已训练好的 un-calibrated 预估模型 来得到每个样本 的 un-calibrated 预估值 。指定待校准的特征域 后,我们将数据集按照样本在特征域 上的取值来划分为若干子集 。 对于特征取值为 的子集,基于样本的 un-calibrated 预估值来将全部样本进行升序排列,并进行等频分桶来将全部样本分到 个桶中:计算出 个边界值 ,当样本 的 un-calibrated 预估值 满足条件 时就将该样本放置到桶 中。进一步,统计每个桶的后验信息,包括点击数/转化数/点击率/转化率等,将桶 的后验统计量记作 。 由于预估模型的排序能力不是完美的,可能会出现桶号较大(即,预估值的均值较大)的桶的后验概率值反而小于某些桶号较小的桶的情况。为了令桶内的后验概率值随着桶号单调递增,可以利用 IsoReg 对原始分桶做一步处理(合并某些桶,直到满足单调递增)来满足这一点,但实验后我们发现这步处理对于最终的校准性能影响不大。 对于指定的特征域,AdaCalib 模型旨在基于后验统计量,通过强表达能力的 DNN 来学习校准函数族 (calibration function family),每个特征取值对应特定的校准函数。校准函数的作用即是将 un-calibrated 预估值映射到逼近后验概率的 calibrated 值。 我们期望校准函数能够在不影响 un-calibrated 模型的排序能力的情况下给出每个样本的 calibrated 值。因此,AdaCalib 与过往的 hybrid 方法类似,采用单调递增的、连续的分段线性函数作为校准函数的形状:每个桶都对应于一段线性函数,且相邻两桶的线性函数是连续的。因此,校准函数的学习就等价于对各桶线性函数的斜率的学习。 图2:后验引导的校准函数族学习 具体地,对于特征取值为 、预估值为 的样本 ,AdaCalib 的校准函数参数化如下: 设该样本处于桶 中,该桶对应的线性函数的斜率为 ,其中 表示待学习的 DNN,桶内的后验统计量 (其送入 DNN 之前会经过离散化转为 embedding)决定了斜率值因而决定了校准函数的形状。单调递增的形状可以保证校准函数是保序的(即,若某一样本 的 un-calibrated 预估值大于另一样本 ,则样本 经过校准函数映射后的 calibrated 值也大于样本 ),通过约束每个桶对应的线性函数斜率均为非负值来实现。 在具体实现上,我们对 logit 做校准而没有直接对预估值 做校准,并在 calibrated logit 上加一个额外的辅助网络 来进一步提升模型表达能力。同时,在这种形式下,校准模型也不再严格保序,实践发现这样可以进一步提升排序性能。通过一个 logistic 函数来做一步 scaling,得到最终的 calibrated 值 : 3.1.4 目标函数 校准函数的学习是通过优化如下的目标函数:
其中第一项是 calibrated 值 与样本的 label 的交叉熵,与 scaling 类方法的优化目标相同;第二项则是用于约束每个桶的斜率为非负,实现保序。 3.2 特征自适应的分桶策略 上述校准函数族 已经实现了不同特征取值对应于不同的校准函数。然而需要注意的是,校准函数的学习依赖于后验统计量,可靠性取决于桶内落下的样本数量是否足以得到置信的统计结果。经过统计,同一特征域的各特征取值的频数(即样本量)存在极大的差异,因此固定数量的桶数难以保证其能够适用于每个特征取值的频数:若分桶数设置为较大值,低频特征落在各桶内的样本量太少使得后验不可靠;若分桶数设置为较小值,高频特征失去了通过更细的分桶来得到更精细的校准函数的机会。 出于上述考虑,我们添加了一个自适应的动态分桶机制,使得每个特征取值根据其频数信息来从候选桶数集合中选择一个合适的桶数,期望能够保证每个特征取值的后验统计量的置信程度。具体而言,首先指定若干候选桶数 并学习一组校准函数族,那么对于每个样本 ,会相应地得到一组校准结果。而后,根据特征取值 的总样本数、id embedding 作为频数信息 ,通过 hard attention 来从一组校准结果里选择唯一一个作为最终的校准值: 上式是比较常用的基于 gumbel-softmax 的 hard attention 计算过程,得到的 attention scores 接近于 one-hot 但整个模型仍然可导,其中 是一个单层 DNN。Put all together,AdaCalib 模型的训练目标为: 3.3 在线 serving 在线 serving 时,我们将 AdaCalib 和 un-calibrated 预估模型 进行“合并”,得到一个统一的 checkpoint 并导出、推送至 RTP,相当于 AdaCalib 直接在精排模块生效,而不再通过校准模块去单独请求一次 AdaCalib。 图3:AdaCalib 的训练与 Serving 流程 回顾一下 AdaCalib 的前向计算过程,样本 (特征域 上的取值为 )的预估值 通过 AdaCalib 映射到 需要两步:1)将预估值 与 个边界值 进行比对,取到该样本落入的桶号;2)设该样本落入了桶 中,那么基于该桶的线性映射函数完成对 的映射,该过程由边界值 和 决定(为介绍简便起见先只考虑线性映射部分,但并不影响流程的完备性)。 为了将 AdaCalib 的前向过程合入预估模型中以导出统一的 ckpt 供 inference 时使用,我们首先将这四组值 dump 为 tf ops 可访问的 variables(AdaCalib 模型训练好后, 已经是确定的值,所以在 inference 时无须基于 走一遍 的前向传播,而是可以直接使用 这一前向结果)。而后,在预估模型的前向过程基础上,通过 tf ops 访问上述 variables 并实现 AdaCalib 前向计算逻辑,从而使导出的 checkpoint 兼具预估和校准的两重功能。上述流程经过仔细地实现后,在 1e-6 阈值下对分通过,因此完成了 AdaCalib 和预估模型 的“合并”。 4. 离在线实验 4.1 主实验 我们在公开数据集以及 RTA 商家外投业务的生产数据集上都进行了实验。对于生产数据集,我们分别组织了 CTR 预估校准和 CVR 预估校准的实验:1)对于 CTR 预估校准,我们的日志共 12 亿条曝光,选定的特征域为 Item ID(共 969 个 unique 值),按时间戳切分 5:1:1 截取数据作为 ;2)对于 CVR 预估校准,我们的日志共 2 亿条点击,按时间戳切分 8:1:1 截取数据作为 。对于公开数据集,我们选用 ESMM 论文中发布的 Ali-CCP 数据集,并进行 CTR 预估校准的实验:共 0.8 亿条曝光,选定的特征域为 User Group ID(共 13 个 unique 值)。三组实验所使用的 un-calibrated 预估模型均为四层 DNN 结构。 我们选取的对比方法包括 binning-based 的 IsoReg [1],scaling-based 的 GammaCalib [3],以及 hybrid 的 SIR [4] 和 NeuCalib [5]。对于需要分桶的方法,我们经验性地设置桶数为 10;对于 AdaCalib,CVR 校准的候选桶数集合为 {5, 10, 20}、CTR 校准的候选桶数集合为 {2, 4, 8}。所有的校准方法均使用 来训练(以往的校准论文中建议使用 训练 [6],我们实践下来发现用 来训练可以取得更佳的效果)。 评价指标方面,使用 Field-RCE 来评价校准后的值的准确性、使用 Field-AUC(即通常说的 GAUC [7])来评价校准后是否损害了原预估模型的排序能力。另外,我们也使用与特征域无关的两个指标 LogLoss、AUC 来评价全局的准确性和排序能力,作为参考。注意到虽然在校准领域通常使用 Expected Calibration Error (ECE) 来评价准确性,但假设模型只是记住了数据集的正样本率并对所有样本的预估值都是该正样本率,就可以得到绝佳的 ECE,而这样的模型是没有意义的,因此我们没有使用 ECE 作为评价指标。 表1:主实验 表1 给出了主实验结果。从排序能力来看,各校准方法均不会影响原预估模型的排序水平,NeuCalib 和 AdaCalib 会得到更高的 Field-AUC 和 AUC 指标是因为辅助网络 增加了表达能力的作用。从准确性来看,scaling-based 方法和 hybrid 方法通常比 binning-based 方法更胜一筹,而 AdaCalib 则在三组实验上都有着明确的优势。 表2:Ablation 实验 我们着重考察了 AdaCalib 中的四个组件对于最终效果的影响:斜率参数化时引入/不引入后验统计量、为每个特征取值学习特定的分段线性函数/所有特征取值均使用相同的分段线性函数、基于 hard attention 为每个特征取值选择特定的桶数/所有特征取值均使用相同的桶数、添加/不添加一项辅助网络到 calibrated logit 上。表2 给出了在 CVR 预估校准实验上的 ablation 结果。其中最后两行的模型实际上做不到特征粒度的校准,所以相对前三行的模型差距会更大些。该表的结果证实了上述四个组件对于 AdaCalib 性能的贡献。 4.2 定性分析 在定量结果之外,进一步通过定性分析来直观感受 AdaCalib 的一些特点。 4.2.1 对比 AdaCalib 和 NeuCalib 学习得到的校准函数形状 图4:AdaCalib 和 NeuCalib 的分段线性函数形状差异 图4 绘制了在两个不同的特征取值上,AdaCalib 和 NeuCalib 给出的分段线性函数形状差异。由于 AdaCalib 和 NeuCalib 的分桶方式不同(前者使用等频分桶、后者使用等间距分桶),所以二者的分桶边界值不可直接比较,因此横轴只代表桶号而不代表桶的具体边界值;另外由于二者均是对 logit 进行校准,因此我们将每个桶的斜率参数 经过 logistic 映射到 (0, 1) 范围,使之与后验概率可比较。可以明显地看到,AdaCalib 给出的函数形状更贴合于后验概率值,因而具备更好的校准能力。 4.2.2 自适应分桶机制的行为 图5:选择桶数 5 或 20 的特征取值个数 接下来考察自适应分桶机制是否能做到基于特征取值的频数信息来选择恰当的桶数以保障桶内后验统计量的可靠性。对于每个特征取值,我们求取其正样本数,然后将全部特征取值按升序排列并划分成十个组,约定第一组的正样本数最少、第十组的正样本数最多。 图5 展示了对于每个组,共有多少个特征取值选择了桶数 5 或桶数 20。可以发现,随着组号的增长(即正样本数的增长),组内越来越多的特征取值倾向于选择桶数 20,因此证实了当正样本数量级上升、后验信息可靠性增加时,AdaCalib 倾向于分配更大的桶数,达到了自适应分桶机制的设计目的。 4.3 在线实验 我们在 RTA 商家效果外投业务场景的精排 CVR 模块上进行了一周的在线实验,AdaCalib 相比基线 SIR 取得了 CVR +5.05%、成交金额 +5.47% 的线上效果。 5. 总结 AdaCalib 是我们在预估&校准一体化方向上的一次初步尝试,在取得了一定的收益的同时,后面还有很长一段路要走,例如如何将特征域的自适应选择结合到 AdaCalib 中以更好地克服转化数稀少的新 ad 上的校准性能。后续我们会持续探索这个方向,助力 RTA 商家外投业务向更大体量进发,并推广应用至更多业务。 关于我们 阿里妈妈外投广告UD效果&用增算法团队 是阿里集团媒体推广核心团队,依托于集团庞大而真实的营销场景,以AI技术驱动实现客户商品营销,并承担集团App用户增长等业务需求。我们持续探索人工智能,联邦学习,深度学习,多任务学习、强化学习,知识图谱,图学习等前沿技术在外投广告和用增方面的落地应用。在创造业务价值的同时,团队近1年也在WWW、SIGIR、CIKM、NAACL等信息检索领域顶级会议上发表多篇论文,热忱欢迎对广告算法,推荐系统,图像理解、NLP等方向感兴趣的同学加入我们!References [1] Transforming classifier scores into accurate multiclass probability estimates, KDD 2002
[2] Probabilistic outputs for support vector machines and comparisons to regularized likelihood method, 1999
[3] Obtaining Calibrated Probabilities with Personalized Ranking Models, AAAI 2022
[4] Calibrating user response predictions in online adverting, ECML-PKDD 2020
[5] Field-aware calibration: A simple and empirically strong method for reliable probabilistic prediction, WWW 2020
[6] Predicting good probabilities with supervised learning, ICML 2005
[7] Ups and downs: Modeling the visual evolution of fashion trends with one-class collaborative filtering, WWW 2016
丨 CIKM 2021 | AutoHERI: 基于层次表示自动聚合的 CVR 预估模型
丨 WWW 2022 | 搜索广告CVR延迟反馈建模DEFUSE
丨 阿里妈妈技术团队5篇论文入选 SIGIR 2022
欢迎关注 「阿里妈妈技术」 ,了解更多~