Interview AiBox logo

Interview AiBox 实时 AI 助手,让你自信应答每一场面试

download免费下载
高阶local_fire_department4 次面试更新于 2025-09-05account_tree思维导图

请详细介绍ESMM模型的原理,它是如何实现CTR和CVR建模的?你还了解哪些其他的多任务学习模型?

lightbulb

题型摘要

ESMM模型是阿里巴巴提出的多任务学习模型,通过联合学习CTR和CTCVR任务,利用概率关系pCVR=pCTCVR/pCTR间接得到CVR预估,解决了传统CVR预估中的样本选择偏差和数据稀疏问题。模型采用共享底层表示和双塔结构,在整个样本空间上训练,避免了只在点击样本上训练的局限性。其他多任务学习模型包括Shared-Bottom、MMOE、PLE和MTAN等,它们在共享机制、任务特定处理和计算复杂度等方面各有特点,适用于不同相关性的任务场景。

ESMM模型原理与应用

ESMM模型概述

ESMM(Entire Space Multi-Task Model)模型是由阿里巴巴提出的一种多任务学习模型,主要用于解决推荐系统中CVR(Conversion Rate)预估的两个核心问题:数据稀疏性样本选择偏差。该模型在2018年发表于KDD会议,被广泛应用于电商推荐、广告投放等场景。

传统CVR预估的问题

1. 样本选择偏差(Sample Selection Bias)

传统CVR模型只在点击样本上训练,但实际预测时需要在整个样本空间上预测。这导致了训练数据与预测数据分布不一致的问题。

2. 数据稀疏性(Data Sparsity)

在推荐系统中,转化行为(如购买)远少于点击行为,导致可用于CVR模型训练的正样本非常稀疏,模型难以充分学习。

ESMM模型原理

核心思想

ESMM模型的核心思想是:利用CTR和CTCVR(点击后转化率)两个任务,在整个样本空间上联合学习,从而间接得到CVR的预估

数学基础

根据概率论中的乘法公式,CTCVR可以表示为CTR与CVR的乘积:

pCTCVR = pCTR × pCVR

因此,CVR可以表示为:

pCVR = pCTCVR / pCTR

模型架构

--- title: ESMM模型架构 --- graph LR A[输入特征] --> B[共享特征表示层] B --> C[CTR任务塔] B --> D[CTCVR任务塔] C --> E[CTR预测] D --> F[CTCVR预测] E --> G[CVR计算 pCVR = pCTCVR/pCTR] F --> G H[点击样本] --> I[CTR损失函数] J[转化样本] --> K[CTCVR损失函数] I --> L[联合损失函数] K --> L L --> M[模型优化]

实现细节

  1. 共享底层表示:模型底层是共享的特征表示层,提取输入特征的通用表示。

  2. 双塔结构

    • CTR塔:学习点击率预测
    • CTCVR塔:学习点击后转化率预测
  3. 损失函数

    • CTR任务使用点击样本,损失函数为二元交叉熵
    • CTCVR任务使用转化样本,损失函数为二元交叉熵
    • 联合损失函数为两个任务损失加权和
# ESMM模型伪代码示例

class ESMM(nn.Module):
    def __init__(self, feature_dim, hidden_dims):
        super(ESMM, self).__init__()
        
        # 共享底层表示
        self.shared_layer = nn.Sequential(
            nn.Linear(feature_dim, hidden_dims[0]),
            nn.ReLU(),
            nn.Linear(hidden_dims[0], hidden_dims[1]),
            nn.ReLU()
        )
        
        # CTR塔
        self.ctr_tower = nn.Sequential(
            nn.Linear(hidden_dims[1], hidden_dims[2]//2),
            nn.ReLU(),
            nn.Linear(hidden_dims[2]//2, 1),
            nn.Sigmoid()
        )
        
        # CTCVR塔
        self.ctcvr_tower = nn.Sequential(
            nn.Linear(hidden_dims[1], hidden_dims[2]//2),
            nn.ReLU(),
            nn.Linear(hidden_dims[2]//2, 1),
            nn.Sigmoid()
        )
    
    def forward(self, x):
        shared_repr = self.shared_layer(x)
        ctr_pred = self.ctr_tower(shared_repr)
        ctcvr_pred = self.ctcvr_tower(shared_repr)
        
        # 根据pCTCVR = pCTR × pCVR计算CVR
        cvr_pred = ctcvr_pred / (ctr_pred + 1e-8)  # 防止除以0
        
        return ctr_pred, ctcvr_pred, cvr_pred

ESMM模型的优势

  1. 解决样本选择偏差:在整个样本空间上学习,而不是仅在点击样本上学习。

  2. 缓解数据稀疏性:通过CTR任务的辅助学习,共享底层表示,缓解了CVR任务的数据稀疏问题。

  3. 端到端训练:模型可以端到端训练,简化了传统多阶段建模的复杂性。

  4. 提升效果:在实际应用中,ESMM模型相比传统CVR模型有显著的效果提升。

其他多任务学习模型

1. Shared-Bottom模型

--- title: Shared-Bottom模型架构 --- graph LR A[输入特征] --> B[共享底层网络] B --> C[任务A特定网络] B --> D[任务B特定网络] C --> E[任务A输出] D --> F[任务B输出]

特点

  • 所有任务共享底层网络
  • 上层为各任务特定的网络
  • 简单高效,但可能导致负迁移

2. MMOE(Multi-gate Mixture-of-Experts)模型

--- title: MMOE模型架构 --- graph LR A[输入特征] --> B[专家网络1] A --> C[专家网络2] A --> D[专家网络3] B --> E[门控网络1] C --> E D --> E B --> F[门控网络2] C --> F D --> F E --> G[任务1输出] F --> H[任务2输出]

特点

  • 多个专家网络(Expert Networks)提取不同特征
  • 每个任务有独立的门控网络(Gate Network)
  • 门控网络学习如何加权组合专家网络的输出
  • 可以缓解负迁移问题,提升模型表达能力

3. PLE(Progressive Layered Extraction)模型

--- title: PLE模型架构 --- graph LR A[输入特征] --> B[共享专家网络] A --> C[任务1特定专家网络] A --> D[任务2特定专家网络] B --> E[任务1门控网络] C --> E D --> E B --> F[任务2门控网络] C --> F D --> F E --> G[任务1输出] F --> H[任务2输出]

特点

  • 在MMOE基础上增加了任务特定的专家网络
  • 共享专家网络和任务特定专家网络共同参与任务学习
  • 通过分层提取,更好地平衡共享与特定信息

4. MTAN(Multi-Task Attention Network)模型

特点

  • 使用注意力机制动态调整特征权重
  • 为不同任务生成不同的注意力掩码
  • 可以自动学习任务间的关系和特征重要性

5. 多任务学习模型对比

模型 核心思想 优点 缺点 适用场景
Shared-Bottom 共享底层网络 简单高效,参数少 容易产生负迁移 任务相关性高时
MMOE 多专家+门控网络 缓解负迁移,表达能力强 计算复杂度高 任务相关性中等
PLE 共享+特定专家网络 更好平衡共享与特定信息 模型更复杂 任务相关性差异大
ESMM 利用概率关系联合学习 解决样本选择偏差和数据稀疏 仅适用于特定概率关系 CTR/CVR预估等概率相关任务
MTAN 注意力机制动态调整 自动学习特征重要性 计算开销大 特征重要性差异大的场景

ESMM模型的应用场景

  1. 电商推荐系统:预测用户点击和购买行为
  2. 广告投放:优化广告点击率和转化率
  3. 金融风控:预测用户申请和通过率
  4. 内容推荐:预测用户点击和完播率

总结

ESMM模型通过巧妙利用CTR和CTCVR之间的概率关系,在整个样本空间上联合学习,有效解决了CVR预估中的样本选择偏差和数据稀疏问题。其核心创新在于将CVR预估转化为CTR和CTCVR两个任务的联合学习,从而避免了直接在稀疏的转化样本上训练CVR模型。

除了ESMM,多任务学习领域还有Shared-Bottom、MMOE、PLE、MTAN等多种模型架构,它们各有特点和适用场景。在实际应用中,需要根据任务相关性、数据分布、计算资源等因素选择合适的模型架构。

参考资料

  1. Ma, X., et al. "Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate." SIGIR 2018.
  2. Tang, H., et al. "Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations." RecSys 2020.
  3. Google AI Blog: "Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts" (2018).
  4. Liu, Y., et al. "Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics." CVPR 2019.
account_tree

思维导图

Interview AiBox logo

Interview AiBox — 面试搭档

不只是准备,更是实时陪练

Interview AiBox 在面试过程中提供实时屏幕提示、AI 模拟面试和智能复盘,让你每一次回答都更有信心。

AI 助读

一键发送到常用 AI

ESMM模型是阿里巴巴提出的多任务学习模型,通过联合学习CTR和CTCVR任务,利用概率关系pCVR=pCTCVR/pCTR间接得到CVR预估,解决了传统CVR预估中的样本选择偏差和数据稀疏问题。模型采用共享底层表示和双塔结构,在整个样本空间上训练,避免了只在点击样本上训练的局限性。其他多任务学习模型包括Shared-Bottom、MMOE、PLE和MTAN等,它们在共享机制、任务特定处理和计算复杂度等方面各有特点,适用于不同相关性的任务场景。

智能总结

深度解读

考点定位

思路启发

auto_awesome

相关题目

对于数据不平衡问题,有哪些解决办法?

数据不平衡问题指分类任务中不同类别样本数量差异大,导致模型偏向多数类。解决方法主要从三个层面:1)数据层面:包括过采样(SMOTE、ADASYN)、欠采样(NearMiss、Tomek Links)和混合采样(SMOTEENN);2)算法层面:包括成本敏感学习、集成方法(EasyEnsemble、BalanceCascade)和特定算法调整;3)评估指标选择:使用精确率、召回率、F1分数、PR曲线、ROC-AUC等代替准确率。实际应用中需结合具体问题选择合适方法或组合策略,并使用合适的评估指标。

arrow_forward

请解释L1/L2正则化的原理及其在LightGBM中的应用。

L1/L2正则化是防止机器学习模型过拟合的关键技术。L1正则化通过添加参数绝对值之和作为惩罚项,产生稀疏解并实现特征选择;L2正则化通过添加参数平方和作为惩罚项,使所有参数值缩小但不为零。在LightGBM中,可通过reg_alpha和reg_lambda参数控制L1和L2正则化强度,这些参数影响叶子节点权重的计算,有效控制模型复杂度并提高泛化能力。实际应用中,应根据数据特性和问题需求选择合适的正则化方法,并通过交叉验证等手段优化参数设置。

arrow_forward

除了正则化外,还有哪些方法可以防止过拟合?

防止过拟合的方法可分为三大类:数据相关方法(获取更多数据、数据增强、交叉验证)、模型相关方法(早停、Dropout、批量归一化、特征选择与降维、集成学习、减少模型复杂度、权重约束、权重衰减)和其他方法(贝叶斯方法、对抗训练、标签平滑)。实际应用中通常需要结合多种方法,根据数据特性、模型类型和任务需求选择合适的策略组合。

arrow_forward

请详细解释XGBoost和GBDT的原理区别。

XGBoost和GBDT都是基于梯度提升的集成学习算法,但XGBoost在GBDT基础上进行了多项优化。主要区别包括:1) XGBoost使用二阶泰勒展开优化损失函数,而GBDT仅使用一阶导数;2) XGBoost引入了正则化项控制模型复杂度;3) XGBoost能自动处理缺失值;4) XGBoost支持并行计算,效率更高;5) XGBoost更灵活,支持自定义目标函数。这些优化使XGBoost在保持精度的同时,提高了计算效率和泛化能力,特别适合处理大规模数据集。

arrow_forward

请详细介绍你使用过的特征选择方法,包括过滤法、包装法和嵌入法,并分析它们各自的特点。

特征选择是机器学习中的关键步骤,主要分为过滤法、包装法和嵌入法三大类。过滤法作为预处理步骤,使用统计测试独立评估特征,计算效率高但忽略特征间交互;包装法通过模型性能评估特征子集,考虑特征交互但计算开销大;嵌入法将特征选择融入模型训练过程,平衡了效率和效果。实际应用中应根据数据规模、计算资源、模型类型等因素选择合适方法,并可组合使用多种方法以获得最佳效果。

arrow_forward

阅读状态

阅读时长

7 分钟

阅读进度

5%

章节:19 · 已读:0

当前章节: ESMM模型概述

最近更新:2025-09-05

本页目录

Interview AiBox logo

Interview AiBox

AI 面试实时助手

面试中屏幕实时显示参考回答,帮你打磨表达。

免费下载download

分享题目

复制链接,或一键分享到常用平台

外部分享