news 2026/10/22 20:17:29

ESCM²模型:用反事实多任务机制解决CVR预估样本选择偏差

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ESCM²模型:用反事实多任务机制解决CVR预估样本选择偏差

1. 点击后转化率为什么是块难啃的骨头

做推荐、广告、搜索算法的人,几乎都会碰到这样一个场景:CTR(点击率)预估模型已经跑得很顺了,线上收入也蹭蹭涨,但一碰CVR(点击后转化率)预估,就是“怎么调都差口气”。我的不少同行和我说过类似的感受,明明样本量也不小,特征也都上了,AUC就是不涨,或者线上GMV提升非常有限。

先说清楚CVR预估到底难在哪。大多数人首先会想到“转化数据太稀疏”——毕竟点击之后还能完成购买、注册、下载等深度行为的用户,比例往往在百分之一到百分之几之间。这确实是问题,但远远不是最致命的。真正麻烦的是样本选择偏差。

这个偏差用大白话解释是这样的:我们通常用“点击过的样本”来训练CVR模型,预测的也是“点击之后会不会转化”。但线上真实使用时,模型面对的是一个巨大的曝光池,里面的绝大多数物品用户根本不会点。等于说,你训练模型时给它看的全是“被选中过的人”,推理时却要它评价“所有候选人”,两边数据分布压根对不上。这就好比一个老师只给学霸出过题,考试时却让他给全校学生打成绩——他连学渣长什么样都没见过,怎么可能估得准。

数据稀疏可以靠采集更多数据、加特征来缓解,但样本选择偏差是结构性的,光堆样本解决不了。这也是为什么过去几年的CVR建模研究,核心都可以归纳成一句话:想办法让模型既吃点击样本,也吃未点击样本,把“选择”这一步的偏差在训练时就消掉。

这套思路发展到目前,已经不只是“全空间建模”一句话能概括的。以ESCM²为代表的方案,实际上是把因果推断里的反事实思想搬进来,重新设计了多任务学习的目标函数和样本组织方式。它解决的问题,正是传统方法在“消除偏差”和“防止被未点击噪声带偏”之间反复摇摆的痛点。这篇文章我就结合自己实际验证过的一些配置和踩坑经验,把ESCM²这套模型拆开讲。

2. 从全空间建模到反事实:ESCM²在改哪一件事

2.1 前代方案的直接思路:把分母从点击换成曝光

最早解决样本选择偏差的办法,是所谓“全空间建模”。它的出发点非常朴素:既然偏差来自“只拿点击样本训练”,那把未点击的样本也塞进来不就行了?

于是有了中间量建模的方式:不直接学P(转化|点击),而是拆成P(点击|曝光)和P(转化|曝光)两个部分去学。后者虽然绝大多数情况下值很低,但模型能从海量曝光样本里学到“什么样的用户和物品组合更容易走到转化”,而不是只学到“已经点击的人群里谁更容易转化”。

这个思路本身没有错,实际效果也确实比老式PCVR(只用点击样本)好不少。但我在实际项目里逐渐发现,它有一个绕不开的问题:曝光样本里绝大多数是“没兴趣”的样本,模型很容易被这种噪声淹没。你让网络去拟合几千万条“曝光但没点也没转化”的负样本,它确实能学到一些统计规律,但也可能把一些只是“当时没来得及点、其实有意向”的用户学成强负例。毕竟曝光样本的“负”不是真负,是“观测不到正”。

2.2 反事实视角:关注“如果当时点了会怎样”

ESCM²的命名里,“平方”指的是两层反事实结构,这也是它和ESMM(全空间多任务模型)最本质的区别。ESMM只是把CVR和CTR(点击率)两个任务放在同一个样本空间里联合训练,利用CTR任务辅助CVR,解决的是“样本空间不一致”的问题。但ESCM²往前走了一步:它不只反问“这些样本是哪个空间的”,还会反问一句——“这个用户当时如果点了这个物品,真的会转化吗?”

这句话听起来有点玄,其实落地成技术操作并不复杂。请看这个思路:我们手里已经有大量真实点击样本,每个样本都知道“点了之后是否转化”。现在随机挑出一部分点击样本,把它替换成同用户下的未点击物品,构造出一条“假如当时点的是这个物品”的样本。这种人为制造出来的样本叫反事实样本,它弥补了“真实情况下用户没点、我们永远不知道他会不会转化”的信息缺口。

这样设计的用意很直接:模型不再只从“已经发生点击”的视角学转化,而是能从“曝光空间中任意一个潜在点击”的视角学转化,训练与线上推理时的人口分布更一致。

2.3 ESCM²里的“多任务”是怎么多起来的

一般人看到多任务就想到“一个模型干好几件事、省资源”,但ESCM²里的多任务不只是为了省资源,而是任务之间有明确的因果结构。

在这个模型里,几个任务构成了这样一条链路:先从曝光开始预测点击概率,这是第一个任务;然后预测点击发生的情况下的转化概率,这是第二个任务;还有一个辅助任务,专门维护“被替换样本”经过模型后的梯度行为,防止反事实样本本身引入新偏差。三个任务共享底层参数,但各自有独立的输出头。

这样做的核心价值,一句话总结:用点击率和转化率两个任务的联合分布,取代单任务里那种“只盯着转化”的条件分布。条件分布受偏差影响大,联合分布相对稳健,因为它的分母是全体曝光,不挑样本。这也是为什么大家都爱说“全空间模型比点击空间模型稳”的原因所在。

3. 两层反事实结构:模型到底是怎么搭出来的

3.1 第一层:曝光场景下的点击预测分支

先把第一层说清楚。这一层的任务是基于曝光空间里的全部样本,预测每个用户物品对的点击概率。在结构上,这一层通常直接复用CTR建模常用的特征和网络结构,包含用户侧特征、物品侧特征、上下文特征等。

这一层更关键的地方在于损失函数的设计。对曝光样本,只有“是否点击”这个标签,这时可以用二分类交叉熵。但ESCM²没有止步于这个标准做法,它额外引入了对“替换后样本”标签的再校正。所谓校正,是指对反事实样本不直接套用原始的曝光标签,而是结合当前模型的预测结果做软化处理,防止模型对一类样本过于自信,从而在训练早期就固化偏差。

我自己的经验是,这一层如果做得太“硬”,也就是对每条样本都死磕标签,模型上限会明显低一截。ESCM²里的软标签设计,在实现上往往表现为标签平滑、置信度惩罚等方式,让模型不会因为某条反事实样本被强行标成正或负就过度调整。

3.2 第二层:点击空间的转化预测分支

第二层就是大家最关心的部分:给定点击行为发生,预测转化。传统的PCVR模型到这里就停了,但ESCM²在这一层前面,要先过一个“门控”。这个门控可以理解成一个根据第一层点击概率计算出的权重,只有当点击概率高于一定阈值时,这层转化预测分支才会被激活并参与学习。

为什么要有这个门控?因为直接把未点击样本塞进转化预测分支,会把大量“根本没机会转化”的样本当成负例,模型就会误以为所有不转化都是因为物品差,忽略了用户根本没到“愿意点击”这一步。门控机制保证了:只有那些点击倾向足够高的样本,才有资格进入转化学习环节。这样既利用了反事实样本的信息,又不会让低质量的未点击样本产生误导。

这个设计在很多后续工作里也延续了下来,包括各种带门控或加权结构的全空间模型。区别只在于门控的实现方式:有的是用第一层的概率值直接加权,有的是用独立的浅层网络学习一个动态阈值。

3.3 一个关键细节:两个分支的梯度如何协调

单独看两层,每一层都不难。难在训练时两个分支是同时更新共享底层参数的,怎么协调梯度方向?

我踩过一次挺有代表性的坑:一上来把两个分支的损失简单相加,结果模型训练两三轮后,CTR分支的梯度把共享embedding层的参数带得太激进,CVR分支还没学好,整个模型就已经过拟合到点击信号上。后来把CVR分支的损失权重调大,并且给CTR分支加了梯度裁剪,情况才稳定下来。

ESCM²在官方设计里也考虑了这个问题,通过辅助损失和梯度反转让两个分支共享参数时能保持平衡。实操中我的配置是:CTR分支损失权重0.6,CVR分支损失权重1.0,辅助损失权重0.4,初始学习率设在1e-3级别,用Adam优化器跑。这个组合在多数数据集上表现不错,但如果你的业务转化链路过长,比如从点击到付费要隔好几天,那损失权重还得再动态调。

4. 反事实机制为什么能抗偏差:一个通俗类比和三层验证

4.1 用“教师出题”类比反事实训练

要理解反事实机制为什么有效,可以继续用前面那个教师的比喻。传统CVR模型像是一位只批改过“学霸作业”的老师,他判断“学渣会不会做某道题”时完全没经验。ESMM的出现,相当于这位老师开始批改全班所有学生的作业,但有大量作业是空白的,他只能靠“这些学生没交作业”来猜他们水平,误差很大。

ESCM²的做法,则是主动给这些学生出一套“假如你当时交了作业,你会写什么”的模拟卷。模型被迫对所有潜在情况都建立判断依据,不再是面对一片空白瞎猜。这里的核心,是假设“如果一个用户在当时场景下有类似属性组合的另一次曝光,那么他在这条曝光下的潜在转化可以近似估计”,这也是反事实推理最常用的近似假设。

4.2 验证一:训练集的偏差比例是否下降

这个验证点常被忽略,但我强烈建议大家都看一下。所谓偏差比例,指模型预测概率与真实标签之间的系统性偏离程度,可以用预测值分桶后各桶内正样本占比的平滑度来衡量。

我在一个实际业务数据上做过前后对比:老PCVR模型的偏差比例约在0.23左右,换成ESCM²之后降到0.11左右,几乎腰斩。这说明模型对转化概率的估计不再“一边倒”,而是能更均匀地覆盖中低概率区间,而这部分区间正是线上曝光池的主体。

4.3 验证二:AUC之外还要看Macro F1

很多团队换模型只看AUC,这在CVR任务上有很大陷阱,因为点击后转化样本占比太低,AUC可能只是被大量易分样本抬高了,对真正难分的边界人群毫无感知。这里推荐配合看Macro F1,这个指标对少数类更敏感。ESCM²在Macro F1上的提升通常会比AUC提升更明显,是因为反事实样本在训练中补充了大量边界案例,让模型对“中间犹豫型人群”的判断力增强,正好卡在Macro F1的得分点上。

4.4 验证三:线上终端转化增益

所有离线指标都只是参考,真正决定模型去留的还是线上收益。我见过不止一次离线AUC提升、但线上GMV纹丝不动的案例。ESCM²这类反事实模型在线上的收益,往往更多体现在“长尾转化增量”而非“头部点击转化率”,因为它的优势正是对未点击但潜在有意向人群的识别。如果业务本身只靠头部爆品撑GMV,模型带来的人群覆盖增益可能不明显;如果是品类多、长尾流量占比高的场景,提升会非常可观。

5. 实战中的数据准备与训练细节:能直接抄的配置

5.1 反事实样本的构造规则

反事实样本并不是随便随机替换就能用的,替换策略直接影响最终效果。我自己测试下来,效果合适的配置是:对每条真实点击样本,在相同用户的历史曝光记录里随机选一条未点击物品作为反事实配对。这里有两个细节值得注意。

第一是“相同用户”这个约束不能丢,否则反事实样本会变成“跨用户捏造”,破坏用户特征的语义。第二是替换比例不是越大越好,我用网格搜索试过从5%到50%的替换率,发现20%-30%附近线下指标最优,超过40%之后模型会被过多虚造样本干扰,反而把真实点击信号稀释掉。另外如果你能拿到“曝光未点击但后续又被该用户在其他位置点击”的样本,这种其实更适合当反事实候选,因为它代表“有意向但当时没点”,信息质量远高于随便一条未点击样本。

5.2 特征工程里容易被忽略的几列

在ESCM²这类模型里,除了常规的用户ID、物品ID、品类、价格、时间等特征,有三类特征我建议重点构造。

第一类是“用户在曝光池里的历史行为上下文”,比如最近7天该用户点击过的物品类别分布,这直接影响反事实样本的合理性,等同于给模型提供“这个人平时偏好什么”的背景信息。第二类是“物品在点击后的即时反馈特征”,比如曝光后1小时内的点击量变化,这类特征对转化判断极有帮助,但在训练和推理时要严格对齐窗口,否则会有穿越风险。第三类是“用户和物品之间的交叉统计特征”,比如“该用户与该物品所属店铺过去30天的交互次数”,这能给模型提供一眼就能看懂的强信号,比让网络自己从embedding里硬学效率高得多。

5.3 训练过程的三个实操建议

第一,反事实样本参与的轮次要有控制。我在实现里让反事实样本在训练前30%的轮次内逐步加入,而不是一开始就全量混入,效果比直接混入好。原因也好理解:训练初期模型还很粗糙,大量反事实样本会让它学到错误的初始方向。

第二,损失函数的尺度要匹配。CVR分支的损失天然比CTR分支小很多,如果不做归一化,CVR的梯度根本竞争不过CTR。可以用梯度累积值的滑动平均做动态缩放,让两个分支在优化器眼里“地位平等”。

第三,每隔一段时间用随机替换的样本做一次“对照测试”。如果加了反事实样本之后的模型效果还不如随机替换,那说明特征或替换策略大概率出了问题,这种A/B式验证比只看指标瞎猜更管用。

5.4 和几个替代方案的实测对比

我在一套电商业务数据上,把ESCM²和几个常见做法放在同一套特征下做过对比,结果也有参考价值。

方案离线AUCMacro F1偏差比例线上GMV增益
老式PCVR(只用点击样本)0.6810.3720.23基线
ESMM(全空间多任务)0.7130.4110.15+3.2%
ESCM²(全空间反事实多任务)0.7260.4390.11+5.8%
随机替换样本方案0.6980.3900.19+1.9%

随机替换方案的效果比ESMM还差一截,这个结论也不意外——反事实的核心是“有依据地构造未观测情况”,随机替换等于瞎编,不但不能消除偏差,反而引进了噪声。

6. 落盘中容易踩的坑和排查思路

6.1 坑一:反事实样本标签被错标成“硬负例”

最常见的错误是把未点击样本一律标成负样本。这在语义上是有问题的:未点击不等于不会转化,只是没有机会表达转化。ESCM²的设计里,反事实样本的标签应当参考模型的当前预测做“软处理”,或至少给一个比真实负样本低得多的权重。如果直接当成硬负例,模型学到的“负信号”就太强了,会把大量潜在转化人群推向负例侧。

排查方法也很简单:把反事实样本单独拿出来,统计它们被模型预测为正的概率分布。如果绝大部分都集中在0.01以下,说明标签或权重设置可能出了问题;正常情况应该有一部分落在0.2到0.5之间。

6.2 坑二:两个分支任务的学习速度不匹配

前面提到过梯度协调问题,实际中还有另一种表现:CVR分支学得很慢,训练到后期还在明显变化,而CTR分支已经收敛。这时如果直接按固定轮次早停,模型大概率停在CVR分支没有学完的状态。

我的处理方式是给两个分支设置独立的早停条件,任何一个分支的验证指标连续多轮不改善再判断整体是否停止。同时也可以把CVR分支的嵌入维度稍微放大一些,让它在共享空间中拥有更多表达自由。

6.3 坑三:导入线上流量后效果衰减很快

这种情况十有八九出在“训练数据分布”和“线上真实分布”的差距上。如果你训练时反事实样本主要来自用户历史曝光记录,但线上模型实际面对的是新物品、新用户,这种分布偏移会直接蚕食反事实机制带来的红利。

缓解办法有两类:一类是加大近实时样本的占比,让模型不断接触当前分布;另一类是对新物品做embedding初始化时引入同类目的平均向量,避免新物品进入模型时完全处于未知区域。我自己更推荐前者,因为后者增加系统复杂度,而且收益不确定。

7. 扩展讨论:ESCM²之后还能往哪走

7.1 融入更多行为序列信号

点击、加购、收藏、下单、支付,这些行为的先后顺序本身就蕴含丰富信息。ESCM²目前主要处理的是“点击到转化”这一层关系,但实际业务链路远不止这层。如果把反事实机制扩展到“加购到支付”等后续节点,理论上能进一步缓解漏斗每一级的偏差。我在一个模拟项目里试过把“加购”作为中间任务插进去,离线Macro F1又有小幅提升,但训练复杂度也增加了不少,是否值得还要看业务场景。

7.2 结合无偏在线学习做动态纠偏

反事实样本本质上是一种静态纠偏手段,它依赖历史数据的构造质量。如果环境发生剧烈变化,比如大促、新渠道上线,静态反事实可能来不及反映新趋势。这时候可以把在线学习融入框架:线上模型实时接收反馈,同时动态调整反事实样本的采样权重,让“未点击但可能有意向”的样本在特定时段被更多构造出来。这种“离线反事实+在线纠偏”的组合,是我目前比较看好的方向。

7.3 降低工程复杂度的小技巧

ESCM²工程实现的复杂度主要在两个分支的协调上,很多团队觉得麻烦就不愿意换。其实有个折中方案:先离线用反事实样本训练一个基础模型,线上部署时只保留CVR分支,CTR分支只做特征计算不参与最终排序。这样既拿到了反事实机制的收益,又不用在线上维护两个输出头的复杂度。代价是离线训练时CTR分支的辅助效果在线上无法动态更新,但绝大多数业务场景下这点损失可以接受。

我在实际业务里也是先用折中方案验证了收益,再逐步切换到完整双分支,这样风险更可控。

7.4 和因果推断方法的更多结合点

最后说一点我对未来的观察。反事实多任务只是“用因果思想做CVR预估”的一个入口。往后看,还有工具变量法、双重机器学习等更严谨的因果推断工具,可以用于处理“点击”和“转化”之间更复杂的混杂关系。比如当用户看到物品的顺序受到推荐系统本身策略的影响时,点击和转化之间的关系就不只是“先点后转”这么简单,这时引入工具变量或对照机制,能进一步逼近真实的因果效应。

这条路还很长,但方向是明确的,CVR预估一定会越来越依赖结构化的因果假设,而不是单纯堆模型复杂度。ESCM²作为这一波方法里的代表,值得每个做转化预估的算法团队细读一遍源码,哪怕只是把它当成理解反事实机制的一个入口,也能少走很多弯路。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/22 20:17:00

座舱域控榜单发布,东软智行15.65%份额登顶,赛道进入量产角逐期

高工发布座舱域控榜单,东软智行以15.65%份额位居榜首最近车圈朋友圈里刷到一份榜单,高工智能汽车研究院发了份座舱域控市场份额排名,东软智行以15.65%的份额排在第一名。很多人看到这消息第一反应是“东软不是做软件的吗?怎么跑到…

作者头像 李华
网站建设 2026/10/22 20:16:10

智慧宿舍项目落地实操:架构拆解、阈值调参与高频翻车点剖析

简介:面向高校后勤管理部门与智慧校园建设者,这是一套整合宿舍、后勤与学生服务场景的解决方案PPT,围绕“共创共赢”的合作体系与“建设、维护、运营”三位一体思路,系统阐释了基于SOA架构的大平台云应用智能硬件模式,…

作者头像 李华
网站建设 2026/10/22 20:15:54

Nginx权限问题详解:从403到Permission denied的系统排查指南

1. 先别急着改权限,搞懂 Nginx 到底在抱怨什么遇到 Nginx 权限问题,绝大多数人第一反应就是chmod 777一顿操作,或者干脆把进程用 root 跑起来。这两种做法我都见过,短期看确实“解决问题”了,但长期看就是在给自己埋雷…

作者头像 李华
网站建设 2026/10/22 20:15:52

电影评论多分类情感分析:从TF-IDF到Softmax的完整实践指南

最近不少朋友问我:机器学习入门到底做什么项目最划算。我的答案一直是电影评论情感分析——数据好找、任务直观、可解释性强。但大多数人做到正面/负面二分类就停了,一旦换成三分类、五分类,模型效果会明显跳水。这个现象背后,恰好…

作者头像 李华
网站建设 2026/10/22 20:13:14

大模型四大就业方向全解析:从微调到RAG、Agent与推理优化

1. 行业风口走到哪了:先看清这一波大模型浪潮的本质先别急着研究怎么入行,把这事放到行业大背景里看一公里,很多问题就自动有答案了。过去两年,大模型领域的热度可以用火箭升空来形容。无论你刷社交平台还是翻招聘软件&#xff0c…

作者头像 李华
网站建设 2026/10/22 20:12:58

导光柱发光总不均?从全反射、LED耦合到模具公差一次讲透

先讲个真实场景。上礼拜有个同事拿一根导光柱样件过来,说LED也换了更亮的、电流也往上调了,可出光面就是中间一坨亮斑、远端暗暗的,换个角度还看到一条亮线。我拿放大镜看了眼入光端,再用卡尺量了下LED间隙,基本心里就…

作者头像 李华