ESMM模型笔记
背景
ESMM模型是阿里算法团队关于CVR预估提出的新模型,思路很新颖,对于CVR预估有很强的参考意义。而且里面的多个目标其实可以根据实际业务进行替换,可以快速尝试应用,想象力空间很大。
CVR任务面临的典型挑战:
1. 样本选择偏差(SSB)
传统的CVR训练用的是点击数据,用户点击后未转化为负样本,点击后转化为正样本。但点击事件仅仅是整个曝光空间的一个子集,数据分布是不一致的,模型的泛化能力就会受到影响。
2. 数据稀疏问题(DS)
点击率一般是比较低的,曝光量是远远大于点击量的,以点击数据作为CVR的训练数据,会导致数据非常稀疏
3. 延迟反馈
用户点击之后可能过几天才转化,对于CVR模型,负样本可能是假性负样本,这对模型的学习造成困扰
ESMM模型
用户的点击率高,转化率不一定高。在很多场景都是这样,不同群里的点击率和转化率差异很大。传统的CVR模型中,是在用户点击的前提下,预估用户的转化情况(pCTCVR)。但是实际上需要预测的是如果用户点击后,用户转化的概率(pCVR)。因为用户如果点击了,是否转化我们是不知道的。
点击后转化概率,点击率与转化率关系如下
其中z表示转化,y表示点击
ESMM模型采用CTCVR和CTR来学习CVR,模型结构如下图。
-
两个任务共享Embedding层,这样能充分利用所有数据,缓解单独训练CVR的数据稀疏问题
-
CTR和CVR是乘法的形式,数值会比较稳定。其实单独训练一个CTR和CTCVR模型,然后用除法的形式得到CVR也可以,但是除法存在数值不稳定的情况
损失函数
使用交叉熵损失函数
对比 -
单CVR任务作为baseline
-
AMAN:从未点击样本中随机抽样作为负例加入训练
-
OVERSAMPLING——对点击后的转化正样本过采样
-
UNBIAS——使用rejection sampling方式采样样本
-
DIVISION——训练CTR和CTCVR两个任务,除法运算得到pCVR
-
ESMM-NS——ESMM结构两个任务不共享Embedding
小结
ESMM使用CTR和CTCVR两个任务的联合训练来解决CVR问题,这里能根据实际业务需要变换label,只要两个label有类似的联系,应该都有一定的提升。
另外这里的网络结构其实可以换成更其他更复杂的网络结构,可以进一步扩展
参考
1. 镶嵌在互联网技术上的明珠:漫谈深度学习时代点击率预估技术进展
2. Entire Space Multi-Task Model: An Effective Approach for
Estimating Post-Click Conversion Rate