真实面经题目 · 原创解析

广告排序中 eCPM 如何融合 pCTR、pCVR 和出价,ESMM/MMoE 如何支撑多目标预估?

这道题考察广告排序目标和多目标预估的连接。回答时要先讲清 eCPM 是期望收益排序信号,再说明 pCTR、pCVR、出价分别来自不同任务,ESMM 解决点击后转化的样本选择偏差,MMoE 用共享专家和任务门控支撑多目标学习。

出现于:阿里巴巴 · 算法 · 2 条面经记录

60 秒回答模板

我会先把 eCPM 解释成一次展示的期望收益。不同计费或优化目标下公式会不同:CPC 更接近 pCTR 乘出价,转化目标更接近 pCTR 乘 pCVR 再乘转化价值或出价,实际排序还会叠加质量、体验和校准项。pCTR 来自曝光到点击任务,pCVR 来自点击或曝光到转化任务,难点是 CVR 只在点击样本上可观察,直接训练会有样本选择偏差。ESMM 用曝光空间同时学习 CTR 和 CTCVR,通过 pCTCVR 等于 pCTR 乘 pCVR 来间接约束 CVR,缓解点击样本偏差;MMoE 则适合同时预估 CTR、CVR、GMV、长期价值等多个相关但不完全一致的目标。最后要补充负采样、标签窗口、概率校准和在线 A/B,因为 eCPM 对概率尺度非常敏感。

考点 排序公式
难度 真实面经题
回答目标 讲清原理、实现和边界

深入解析

01

先定义排序目标

广告排序不是只把点击率最高的广告排前面,而是估计一次展示能带来的期望收益。CPC 场景通常会把 pCTR 和出价相乘;转化或成交导向场景会继续乘 pCVR、转化价值或目标出价。实际 eCPM 还会受质量分、相关性、预算、频控和体验约束影响,所以回答时要把“收益最大化”和“用户体验约束”一起说清。

02

拆开 pCTR、pCVR 和出价

pCTR 估计曝光后点击概率,输入更强调用户、广告、上下文和即时兴趣;pCVR 估计点击后或曝光后转化概率,输入更依赖商品/落地页、价格、历史转化、用户购买意图和转化窗口。出价不是模型预测值,而是广告主愿意为点击、转化或成交支付的价值信号,模型输出必须校准到可和出价相乘的概率尺度。

03

ESMM 解决样本选择偏差

如果只用点击样本训练 CVR,模型看到的是“已经点击的人和广告”,这和排序时面对的全量曝光空间不同。ESMM 把 CTR、CVR 和 CTCVR 放到同一个曝光样本空间里学习,其中 CTCVR 表示从曝光到转化的概率,并用 pCTCVR = pCTR × pCVR 约束 CVR 分支。这样 CVR 分支虽然仍需要点击转化信号,但会受到全空间 CTCVR 任务牵引,减少只在点击样本上训练带来的偏差。

04

MMoE 支撑多目标预估

MMoE 的核心是多个 expert 共享底层表征,每个任务用自己的 gate 选择专家组合。广告排序常见目标并不完全一致,例如点击、转化、成交额、留存或投诉率,有共享信息也有冲突。MMoE 比简单共享底层更灵活,可以让 CTR 任务偏向短期兴趣专家,让 CVR 或价值任务偏向购买意图和商品质量专家。

05

样本和标签要按任务空间设计

CTR 的正负样本通常来自曝光后是否点击,CVR 的标签要考虑点击、转化窗口和延迟回传,CTCVR 则在曝光空间定义是否最终转化。负采样不能只为了平衡比例而改变真实排序分布,必要时要做采样权重还原。多目标训练还要处理不同任务样本量、标签成熟时间和 loss 权重,否则高频 CTR 任务可能压制低频转化任务。

06

上线前必须校准和验证

eCPM 是概率和出价的乘积,pCTR 或 pCVR 只要系统性偏高,就会直接放大排序错误和消耗风险。离线要看 AUC、LogLoss、校准曲线、分桶预估/实际比和分出价段效果,线上要看收入、转化成本、用户体验和预算消耗稳定性。模型结构讲完后补这一层,回答才像完整广告排序方案。

易错点

  • 只背 ESMM 结构,没有解释 eCPM 中概率和出价如何相乘,回答会偏离广告排序主轴。
  • 把 pCVR 当作普通点击样本分类器输出,忽略点击后样本空间和曝光排序空间不一致。
  • 认为 MMoE 一定优于 ESMM,忽略两者解决的问题不同,实际可以分别承担概率关系和多任务共享。
  • 只看 AUC,不看概率校准和分桶预估/实际比,无法证明模型输出可以进入收益公式。

面试官追问

ESMM 和 MMoE 的区别是什么?

ESMM 更像围绕 CTR、CVR、CTCVR 概率关系设计的任务建模框架,重点解决 CVR 样本选择偏差;MMoE 是通用多任务结构,重点解决多任务共享和冲突。两者可以组合使用,不是互斥关系。

为什么 eCPM 排序前要做校准?

eCPM 会把概率和出价相乘,概率尺度偏差会被直接转成收益排序偏差。校准可以让不同广告、不同流量桶、不同模型版本的预估概率更接近真实发生率。

CVR 的负样本怎么取?

要先定义转化窗口。窗口内未转化的点击或曝光可以作为负样本,但延迟回传场景要等标签成熟,或按样本年龄加权,否则会把尚未回传的正样本误当负样本。

多目标之间冲突怎么办?

可以在训练阶段用 loss 权重、动态加权或 MMoE gate 缓解冲突,排序阶段用约束、重排或多目标打分做取舍。关键是用线上业务指标验证,不只看单个任务 AUC。