今天这篇论文是阿里妈妈盖坤团队发表在SIGIR 18上赫赫有名的“双塔”模型,主要解决转化率预估中样本有偏和数据稀疏的问题。论文的全名是:Entire Space Multi-Task Model : An Effective Approach for Estimating Post-Click Conversion Rate
背景
推荐系统中用户的行为路径一般是:曝光-点击-转化,比如在电商推荐场景下,转化就是购买。排序算法需要对曝光点击率(CTR)和点击转化率(CVR)进行预估,作为排序的依据。
pCTR=p(点击|曝光)
pCVR=p(转化|曝光, 点击)
CVR预估现有问题
但一般的CVR预估算法存在如下两个问题:
1、训练样本选择有偏(Sample Selection Bias, SSB)
选择点击的样本作为训练集,点击后转化的为正样本,点击后未转化的为负样本,但在预测时,样本空间变成了全部的曝光样本。
2、数据稀疏(Data Sparsity, DS)
点击样本相比曝光很少,在作者举例的样本集中,CVR训练可用样本数只有CTR训练可用样本数的4%,这会导致模型很难达到拟合的状态。
CVR预估范式
基于深度学习的CVR预估范式一般采用 Embedding+MLP 的结构:
- 特征(包括user和item)输入 embedding layer
- 经过pooling后,拼接成一个向量
- 输入MLP
目前的解决方法
- hierarchical estimator: 在不同特征上构建分层的估计器,再通过LR组合,依赖先验知识,并且大规模的推荐系统很难使用
- 正样本升采样
- 用未点击样本作为负样本
- unbiased method:通过 rejection sampling 拟合真正的分布(解决SSB问题)
方法
一个公式
先定义一个曝转率,CTCVR,计算公式如下:
pCTCVR=pCTR * pCVR
稍微拆解一下
p(点击, 转化|曝光)=p(点击|曝光) * p(转化|曝光, 点击)
网络结构
ESMM的主要想法就是把CVR预估问题,转成CTR预估和CTCVR预估问题。
- 将CVR预估问题转成CTR和CTCVR预估问题,就可以使用整个曝光空间的样本了,解决了SSB和DS问题
- 损失函数的两项分别是CTR和CTCVR预估的损失项
- feature embedding layer 可以共享,达到迁移学习的目的
实验结果
实验对比了如下几种模型:
- BASE:使用单塔模型
- AMAN(All Missing As Negative):采样未点击的样本作为负样本
- OVERSAMPLING:正样本升采样
- UNBIAS:无偏估计方法