推荐系统CTR(CVR)预估模型(多任务学习)之ESMM

 esmm模型是阿里妈妈基础算法团队发表在SIGIR 18上的一篇论文,用来做转化率预估。
 整篇论文非常简单,创新点也很通俗易懂,转化率预估目前主要存在两个难点:1、sample selection bias, conversion CVR model are trained on dataset composed of clicked impressions, while are utilized to make inference on the entire space with samples of all impressions. 这样做实际上存在一个很严重的问题,因为模型用于训练的数据全是点击数据, 而上线预测则是用于全部的数据, 训练和预测的数据分布完全不一样。2、data sparsity。实际上CTR预估的数据就已经非常稀疏了,再考虑到从点击到转化,实际转化率一般也不超过百分之几,这样实际上用户看到一件商品,到最后购买,这个几率可能就只有万分之几,一般的方法是很难去处理如此稀疏的数据的。
推荐系统CTR(CVR)预估模型(多任务学习)之ESMM_第1张图片
 CVR模型线上inference时,实际上对应的上整个impression的样本空间,如果用click的样本空间来train CVR model会有一些问题。
 这偏论文的创新点主要是用到了一个multi-task learning 的方法, 并没有直接去预估CVR,而是采用两个辅助的任务,通过预测CTR和CTCVR来间接的预测CVR,因为CTCVR=CTR*CVR,这样由于CTR和CTCVR预估都是在全样本空间进行预估的,从而避免了上面说的两个问题, 注意,实际处理时,CVR不是通过CTCVR/CTR来进行计算的,实际上我们在模型处理是,这三个变量都有预测,但是只计算了CTR和CVCTR的loss,更详细的原因,可以去看论文。
推荐系统CTR(CVR)预估模型(多任务学习)之ESMM_第2张图片
  ESMM的网络结构如上图,非常简单,通过两个辅助的任务CTR和CVCTR来间接预估CTCVR,最后loss=loss(ctr) + loss(cvr).
推荐系统CTR(CVR)预估模型(多任务学习)之ESMM_第3张图片
模型的tensorflow实现代码可以参考: https://github.com/qiaoguan/deep-ctr-prediction/tree/master/ESMM

参考文献:【1】Xiao Ma et all. “Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate,” In SIGIR,2018.
tips:两个任务的损失融合时可以参考multi-task learning中,不同task进行融合的一些技巧。
https://www.zhihu.com/question/268105631

你可能感兴趣的:(推荐系统CTR(CVR)预估模型(多任务学习)之ESMM)