news 2026/6/10 22:30:25

从ESMM到ESM2:多任务学习在CVR预估中的演进与实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从ESMM到ESM2:多任务学习在CVR预估中的演进与实践

1. 从点击到购买:CVR预估的核心挑战

在电商推荐系统中,转化率(CVR)预估一直是个让人头疼的问题。想象一下这样的场景:用户看到商品展示(曝光)→ 点击商品详情 → 最终下单购买。传统做法是直接用点击后的数据训练CVR模型,但这里藏着两个大坑:

**样本选择偏差(SSB)**就像用高考成绩预测大学表现——训练时只用"考上大学的学生"数据,但实际要预测的是"所有高中生"的未来表现。具体到CVR预估:

  • 训练数据:只有点击过的样本(点击未转化=负例,点击且转化=正例)
  • 预测场景:面对的是所有曝光样本(包括未点击的) 这种训练和预测的数据分布差异,会导致模型在实际应用中表现不佳。

**数据稀疏性(DS)**的问题更直观。以淘宝数据为例:

  • 日均曝光量:1亿次
  • 平均CTR:2% → 点击量200万
  • 平均CVR:0.5% → 转化量仅1万 用1万条转化样本训练深度模型,就像用几滴水试图填满一个游泳池。

2. ESMM:多任务学习的破局之道

2.1 模型设计的灵感来源

2018年阿里妈妈团队提出的ESMM模型,巧妙地用概率论解决了这两个难题。其核心思想可以用一个简单公式表达:

p(转化|曝光) = p(点击|曝光) × p(转化|点击)

这个等式揭示了CTR(点击率)和CVR(点击转化率)的天然关联性。

**为什么不直接相除?**有人可能想到用 pCTCVR/pCTR 计算pCVR。但实测会发现:

  1. 两个概率值都很小(通常<1%),除法会放大噪声
  2. 当pCTR预估不准时,可能算出pCVR>1的荒谬结果

2.2 网络架构与实现细节

ESMM的模型结构包含三个关键组件:

  1. 共享嵌入层:统一处理用户、商品特征
  2. 双塔结构
    • CTR塔:预估点击概率
    • CVR塔:预估转化概率(无直接监督信号)
  3. 概率融合层:CTCVR = CTR × CVR
# 简化版ESMM核心代码 class ESMM(tf.keras.Model): def __init__(self): super().__init__() self.shared_bottom = DNN([256, 128]) # 共享底层 self.ctr_tower = DNN([64, 1], activation='sigmoid') self.cvr_tower = DNN([64, 1], activation='sigmoid') def call(self, inputs): shared = self.shared_bottom(inputs) ctr = self.ctr_tower(shared) cvr = self.cvr_tower(shared) ctcvr = ctr * cvr # 概率连乘 return ctr, ctcvr

2.3 损失函数的设计艺术

ESMM的损失函数包含两部分:

L = L_CTR + L_CTCVR
  • L_CTR:用全部曝光样本计算点击损失
  • L_CTCVR:用点击样本计算转化损失(通过CTCVR间接优化CVR塔)

这种设计实现了:

  • 解决SSB:CVR塔通过CTCVR接触到全量样本
  • 缓解DS:CTR和CVR共享特征表示

3. ESM2:行为链路的深度挖掘

3.1 从两阶段到多阶段建模

虽然ESMM解决了基础问题,但实际场景中用户行为更复杂。阿里2020年提出的ESM2观察到:

  • 用户点击后可能先加购/收藏(DAction)
  • 这些中间行为数据量更大(加购率≈10%,是直接购买的20倍)
  • 最终购买可能来自不同路径:
    • 点击→加购→购买
    • 点击→其他行为→购买

3.2 四任务联合建模

ESM2将用户行为拆解为:

  1. Y1:点击率(CTR)
  2. Y2:点击后执行DAction的概率
  3. Y3:DAction后购买的概率
  4. Y4:其他行为后购买的概率

最终CVR计算公式变为:

CVR = Y2*Y3 + (1-Y2)*Y4

3.3 模型架构演进

ESM2的主要改进:

  1. 共享嵌入模块(SEM):统一特征表征
  2. 分解预测模块(DPM):四个子任务独立MLP
  3. 序列组合模块(SCM):按行为链路组合概率
# ESM2的概率计算示例 def calculate_cvr(y1, y2, y3, y4): return y1 * (y2*y3 + (1-y2)*y4)

4. 实战中的调优经验

4.1 特征工程要点

  • 用户行为序列:加入历史CTR/CVR统计特征
  • 跨任务特征:CTR塔学到的embedding可作为CVR塔输入
  • 时间衰减:近期的行为赋予更高权重

4.2 训练技巧

  1. 损失权重调整
    • 初期可设w_ctr=1, w_ctcvr=0.1
    • 逐步增加CTCVR权重
  2. 渐进式解冻
    • 先训练CTR塔至收敛
    • 再联合训练双塔
  3. 对抗验证:检测训练集/测试集分布差异

4.3 线上效果对比

在淘宝公开数据集上的AUC提升:

模型CVR AUCCTCVR AUC
传统模型0.6820.715
ESMM0.703 (+3.1%)0.732 (+2.4%)
ESM20.712 (+1.3%)0.741 (+1.2%)

5. 技术演进的方向

当前业界的最新探索集中在:

  1. 因果推断应用:用IPW等方法解决曝光偏差
  2. 长行为链路建模:覆盖浏览→对比→咨询等更复杂路径
  3. 多场景迁移:跨品类/跨渠道的知识共享

在实际业务中,ESMM系列模型已成为电商推荐的标配。我在某跨境电商项目落地ESM2时,通过引入"加入比价"作为新行为节点,使CVR预估准确率提升了5.7%。关键是要根据业务特点设计合适的行为分解策略,而不是机械照搬论文方案。

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

企业数据不出域:GLM-4-9B本地化部署全攻略

企业数据不出域&#xff1a;GLM-4-9B本地化部署全攻略 在金融风控会议现场&#xff0c;法务总监把一份287页的跨境并购协议拖进对话框&#xff1b;研发主管将整个Spring Boot微服务代码库压缩包上传至分析界面&#xff1b;审计团队正逐条比对三份不同年份的上市公司财报附注—…

作者头像 李华
网站建设 2026/6/10 13:34:24

E7Helper自动化系统技术手册

E7Helper自动化系统技术手册 【免费下载链接】e7Helper 【EPIC】第七史诗多功能覆盖脚本(刷书签&#x1f343;&#xff0c;挂讨伐、后记、祭坛✌️&#xff0c;挂JJC等&#x1f4db;&#xff0c;多服务器支持&#x1f4fa;&#xff0c;qq机器人消息通知&#x1f4e9;) 项目地…

作者头像 李华
网站建设 2026/6/10 17:23:00

Chord视频工具一文详解:视觉定位模式如何精准输出[x1,y1,x2,y2]与时间戳

Chord视频工具一文详解&#xff1a;视觉定位模式如何精准输出[x1,y1,x2,y2]与时间戳 1. 什么是Chord&#xff1a;专为视频时空理解而生的本地智能分析工具 你有没有遇到过这样的问题&#xff1a;一段监控视频里&#xff0c;想快速找到“穿红衣服的人第一次出现的时间和位置”…

作者头像 李华