Interview AiBoxInterview AiBox 实时 AI 助手,让你自信应答每一场面试
请详细介绍ESMM模型的原理,它是如何实现CTR和CVR建模的?你还了解哪些其他的多任务学习模型?
题型摘要
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
模型架构
实现细节
-
共享底层表示:模型底层是共享的特征表示层,提取输入特征的通用表示。
-
双塔结构:
- CTR塔:学习点击率预测
- CTCVR塔:学习点击后转化率预测
-
损失函数:
- 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模型的优势
-
解决样本选择偏差:在整个样本空间上学习,而不是仅在点击样本上学习。
-
缓解数据稀疏性:通过CTR任务的辅助学习,共享底层表示,缓解了CVR任务的数据稀疏问题。
-
端到端训练:模型可以端到端训练,简化了传统多阶段建模的复杂性。
-
提升效果:在实际应用中,ESMM模型相比传统CVR模型有显著的效果提升。
其他多任务学习模型
1. Shared-Bottom模型
特点:
- 所有任务共享底层网络
- 上层为各任务特定的网络
- 简单高效,但可能导致负迁移
2. MMOE(Multi-gate Mixture-of-Experts)模型
特点:
- 多个专家网络(Expert Networks)提取不同特征
- 每个任务有独立的门控网络(Gate Network)
- 门控网络学习如何加权组合专家网络的输出
- 可以缓解负迁移问题,提升模型表达能力
3. PLE(Progressive Layered Extraction)模型
特点:
- 在MMOE基础上增加了任务特定的专家网络
- 共享专家网络和任务特定专家网络共同参与任务学习
- 通过分层提取,更好地平衡共享与特定信息
4. MTAN(Multi-Task Attention Network)模型
特点:
- 使用注意力机制动态调整特征权重
- 为不同任务生成不同的注意力掩码
- 可以自动学习任务间的关系和特征重要性
5. 多任务学习模型对比
| 模型 | 核心思想 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| Shared-Bottom | 共享底层网络 | 简单高效,参数少 | 容易产生负迁移 | 任务相关性高时 |
| MMOE | 多专家+门控网络 | 缓解负迁移,表达能力强 | 计算复杂度高 | 任务相关性中等 |
| PLE | 共享+特定专家网络 | 更好平衡共享与特定信息 | 模型更复杂 | 任务相关性差异大 |
| ESMM | 利用概率关系联合学习 | 解决样本选择偏差和数据稀疏 | 仅适用于特定概率关系 | CTR/CVR预估等概率相关任务 |
| MTAN | 注意力机制动态调整 | 自动学习特征重要性 | 计算开销大 | 特征重要性差异大的场景 |
ESMM模型的应用场景
- 电商推荐系统:预测用户点击和购买行为
- 广告投放:优化广告点击率和转化率
- 金融风控:预测用户申请和通过率
- 内容推荐:预测用户点击和完播率
总结
ESMM模型通过巧妙利用CTR和CTCVR之间的概率关系,在整个样本空间上联合学习,有效解决了CVR预估中的样本选择偏差和数据稀疏问题。其核心创新在于将CVR预估转化为CTR和CTCVR两个任务的联合学习,从而避免了直接在稀疏的转化样本上训练CVR模型。
除了ESMM,多任务学习领域还有Shared-Bottom、MMOE、PLE、MTAN等多种模型架构,它们各有特点和适用场景。在实际应用中,需要根据任务相关性、数据分布、计算资源等因素选择合适的模型架构。
参考资料
- Ma, X., et al. "Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate." SIGIR 2018.
- Tang, H., et al. "Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations." RecSys 2020.
- Google AI Blog: "Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts" (2018).
- Liu, Y., et al. "Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics." CVPR 2019.
思维导图
Interview AiBoxInterview AiBox — 面试搭档
不只是准备,更是实时陪练
Interview AiBox 在面试过程中提供实时屏幕提示、AI 模拟面试和智能复盘,让你每一次回答都更有信心。
AI 助读
一键发送到常用 AI
ESMM模型是阿里巴巴提出的多任务学习模型,通过联合学习CTR和CTCVR任务,利用概率关系pCVR=pCTCVR/pCTR间接得到CVR预估,解决了传统CVR预估中的样本选择偏差和数据稀疏问题。模型采用共享底层表示和双塔结构,在整个样本空间上训练,避免了只在点击样本上训练的局限性。其他多任务学习模型包括Shared-Bottom、MMOE、PLE和MTAN等,它们在共享机制、任务特定处理和计算复杂度等方面各有特点,适用于不同相关性的任务场景。
智能总结
深度解读
考点定位
思路启发
相关题目
对于数据不平衡问题,有哪些解决办法?
数据不平衡问题指分类任务中不同类别样本数量差异大,导致模型偏向多数类。解决方法主要从三个层面:1)数据层面:包括过采样(SMOTE、ADASYN)、欠采样(NearMiss、Tomek Links)和混合采样(SMOTEENN);2)算法层面:包括成本敏感学习、集成方法(EasyEnsemble、BalanceCascade)和特定算法调整;3)评估指标选择:使用精确率、召回率、F1分数、PR曲线、ROC-AUC等代替准确率。实际应用中需结合具体问题选择合适方法或组合策略,并使用合适的评估指标。
请解释L1/L2正则化的原理及其在LightGBM中的应用。
L1/L2正则化是防止机器学习模型过拟合的关键技术。L1正则化通过添加参数绝对值之和作为惩罚项,产生稀疏解并实现特征选择;L2正则化通过添加参数平方和作为惩罚项,使所有参数值缩小但不为零。在LightGBM中,可通过reg_alpha和reg_lambda参数控制L1和L2正则化强度,这些参数影响叶子节点权重的计算,有效控制模型复杂度并提高泛化能力。实际应用中,应根据数据特性和问题需求选择合适的正则化方法,并通过交叉验证等手段优化参数设置。
除了正则化外,还有哪些方法可以防止过拟合?
防止过拟合的方法可分为三大类:数据相关方法(获取更多数据、数据增强、交叉验证)、模型相关方法(早停、Dropout、批量归一化、特征选择与降维、集成学习、减少模型复杂度、权重约束、权重衰减)和其他方法(贝叶斯方法、对抗训练、标签平滑)。实际应用中通常需要结合多种方法,根据数据特性、模型类型和任务需求选择合适的策略组合。
请详细解释XGBoost和GBDT的原理区别。
XGBoost和GBDT都是基于梯度提升的集成学习算法,但XGBoost在GBDT基础上进行了多项优化。主要区别包括:1) XGBoost使用二阶泰勒展开优化损失函数,而GBDT仅使用一阶导数;2) XGBoost引入了正则化项控制模型复杂度;3) XGBoost能自动处理缺失值;4) XGBoost支持并行计算,效率更高;5) XGBoost更灵活,支持自定义目标函数。这些优化使XGBoost在保持精度的同时,提高了计算效率和泛化能力,特别适合处理大规模数据集。
请详细介绍你使用过的特征选择方法,包括过滤法、包装法和嵌入法,并分析它们各自的特点。
特征选择是机器学习中的关键步骤,主要分为过滤法、包装法和嵌入法三大类。过滤法作为预处理步骤,使用统计测试独立评估特征,计算效率高但忽略特征间交互;包装法通过模型性能评估特征子集,考虑特征交互但计算开销大;嵌入法将特征选择融入模型训练过程,平衡了效率和效果。实际应用中应根据数据规模、计算资源、模型类型等因素选择合适方法,并可组合使用多种方法以获得最佳效果。