一些基本概念和方法提出
点击转换率(post-click conversion rate(CVR))估计在推荐和广告系统有着广泛的应用。CVR估计的一个重要应用是在广告系统中,其目标是最大化每次点击消费(optimized cost-per-click),通过调整每次点击的竞价来获得平台和广告商的双赢。同样在推荐系统中,也是平衡用户的点击偏好和消费偏好的重要因素。
以电商系统为例,对于展示的商品(items),用户的行为遵循如下的顺序:impression -> click -> conversion,CVR估计基于后验CTR估计(即已发生点击行为的条件下对于转换率的估计)(post-click conversion rate):
目前CVR估计存在的问题:
1)采样偏置(sample selection bias (SSB))问题,CVR训练样本是所有有点击行为的样本,而实际预测的是全量数据;
2)数据稀疏(data sparsity(DS))问题,训练CVR模型的数据要远小于CTR模型,CVR模型的拟合难度更大。
常用术语:
CVR(click-conversion rate):点击转换率,即用户点击的条件下消费的概率;
CTR(click-through rate):点击通过率,即用户点击的概率;
CTCVR(click-through&conversion rate):点击通过且转换概率,即用户点击了且消费的概率;
具体方法介绍
基本概念
观测数据集合 ,采样数据为:
,那么后验click CVR 模型是估计概率:
,CTR的概率可以表示为
,CTCVR的概率可以表示为
,满足如下关系:
(1)
ESMM模型
结构如上图,ESMM很好的利用了用户行为的序列模式(sequential pattern),ESMM模型引入CTR和CTCVR两个辅助任务,利用全量的样本进行训练,消除了之前的两点问题(SSB和DS)。对于一个样本,ESMM同时输出了pCTR、pCVR和pCTCVR,其由两个子网络构成:CVR网络和CTR网络,两个子网络与基础模型具有相同的网络结构。pCTCVR取CVR子网络和CTR子网络输出的乘积,与之前模型比较ESMM有如下优势:
ESMM模型在整个样本空间进行训练(包括所有的样本商品(没点过的、点过没消费过的以及消费过的)),可以解决SSB问题。pCVR只是一个中间变量在等式(1)中被限制,pCTR和pCTCVR是ESMM在整个样本空间要估计的(pCVR对应的样本空间是点击过的样本)。loss函数包括两部分:CTR损失函数和CTCVR损失函数,但不包括CVR任务的损失函数,整个训练任务的损失函数为
其中,和
分别为CTR子网络和CVR子网络的参数,
为交叉熵损失函数。
CTR网络和CVR网络共享了embedding层,这种共享机制使得CVR网络能够学习未点击商品的信息,很大程度缓解了稀疏性带来的问题。
相关tensorflow代码实现
https://github.com/shenweichen/DeepCTR/blob/master/deepctr/models/multitask/esmm.py
https://github.com/nlpming/ESMM/blob/master/esmm.py