第4章:CVR预估与多任务学习
CVR(转化率)预估是广告竞价排序的核心技术,面临样本选择偏置、数据稀疏、延迟反馈等挑战。多任务学习通过共享表征和辅助任务有效缓解上述问题。本章围绕ESMM、MMOE、PLE等主流模型,拆解面试高频问题与项目实战要点。
▸ 样本选择偏置 → ESMM解决思路
▸ 数据稀疏 → 多任务共享Embedding
▸ 模型选型 → Share-Bottom / MMOE / PLE
▸ 评估指标 → GAUC、LogLoss、校准度
📌 面试问题 1:请解释CVR预估中样本选择偏置问题以及ESMM如何解决?
面试官考察点:是否理解CVR预估与CTR预估的样本空间差异,对ESMM核心设计(全样本空间、多任务学习)的掌握程度。
回答框架:
- 定义问题:点击→转化仅发生在点击样本上,训练和推理空间不一致(SSB)。
- ESMM思路:引入CTCVR预估任务,利用全样本空间计算CTCVR = pCTR × pCVR,反向更新CVR网络时梯度来自CTR和CTCVR两部分。
- 共享Embedding缓解数据稀疏。
简短示例回答:“样本选择偏置指CVR模型只在点击样本上训练,但线上需要对所有曝光样本推理。ESMM通过多任务学习,在曝光空间建模CTCVR,利用CTCVR/CTR得到CVR的隐式表示,从而解决了偏置问题。”
可能追问:ESMM的CVR网络是否能直接输出概率?如果CTR和CVR任务相关性较低怎么办?
避坑提醒:❌ 不要误以为ESMM直接输出CVR概率,实际是隐式推导,且要求CTR和CVR共享底层Embedding。
✅ 可以提一下后续改进:ESMM2、ESM2等优化。
📌 面试问题 2:多任务学习中常见的网络结构有哪些?各自适用场景?
面试官考察点:对不同结构优劣的理解,能否针对业务情况选择合适框架。
回答框架:
- Share-Bottom:完全共享底层,适用于任务高度相关(如CTR和CTCVR)。
- MMOE:多个专家网络+门控为每个任务分配不同组合,适用于任务差异较大、需要权衡的场景。
- PLE:在MMOE基础上增加任务独占专家,处理任务冲突严重的情况。
简短示例回答:“Share-Bottom最简单但容易负迁移;MMOE通过门控动态选择专家,在任务差异较大时效果优;PLE针对MMOE的‘跷跷板’问题,加入独占专家,适合CVR和GMV这种冲突较大的多任务。”
可能追问:MMOE中专家数和任务数如何设定?门控过拟合如何处理?
避坑提醒:❌ 不要忽略任务相关性分析直接套用MMOE。
✅ 可补充:Google推荐在任务数≤4时使用MMOE,>4时建议用PLE或定制。
📌 面试问题 3:如何评估CVR预估模型的效果?
面试官考察点:是否熟悉离线/在线指标体系,以及CVR特有的延迟反馈处理。
回答框架:
- 离线指标:GAUC(排序能力)、LogLoss(校准度)、Calibration(校准曲线)。
- 在线指标:CVR、CTCVR、GMV、千次展示收入(RPM)。
- 延迟反馈处理:使用搜索式延迟模型或观察窗口截断后的校正。
简短示例回答:“离线常用GAUC评估排序,LogLoss评估概率校准;在线关注CVR提升和GMV。由于转化延迟,需设置合理观察窗口并做延迟偏差校正,否则离线指标可能虚高。”
可能追问:具体如何做延迟反馈校准?用过哪些计数模型?
避坑提醒:❌ 不要只提AUC,CVR校准度比排序更重要。
✅ 可以强调“校准偏差”是CVR线上效果的关键环节。
📁 项目案例模板:电商广告CVR预估多任务学习
| 项目名称 | 电商场景CVR预估多任务模型(ESMM+MMOE) |
| 业务背景 | 提升商品转化率,同时兼顾点击率和GMV,多目标优化。 |
| 规模指标 | 日活3000万+,广告曝光10亿+,转化样本占比<0.5% |
| 技术栈 | TensorFlow / PyTorch,Spark(特征工程),Flink(实时特征),AB Test平台 |
| 核心难点 | ① 转化数据极稀疏 ② 曝光空间与点击空间不一致 ③ CTR和CVR任务冲突导致负迁移 |
| 面试高频追问 | • 如何处理负样本下采样?→ 使用全样本+权重调整 • 多任务Loss权重怎么定?→ 梯度平衡或动态调权 • 为什么不用ESMM而加了MMOE?→ 任务冲突较大,需差异化专家 |
| 可迁移回答话术 | “我们采用ESMM+MMOE框架,通过CTCVR辅助任务缓解样本选择偏置,同时设置4个专家网络,门控为每个任务分配权重。训练时使用梯度裁剪和正则化,最终CVR提升8%,GMV提升5%。” |
• 提及“递进式训练”:先预训练CTR任务,再联合CVR任务。
• 提到“Delay Feedback模型”比简单截断更专业。
• 熟悉Pinterest的CVR模型或阿里ESMM细节。