ESMM的理解
首先,理解部分主要是ESMM要解决什么问题,以及解决方案。弱未度过原文的可以查阅原论文。
论文地址:https://arxiv.org/pdf/1804.07931.pdf
实现代码:https://github.com/PaddlePaddle/PaddleRec/tree/master/models/multitask/esmm
ESMM的理解——ESMM要解决什么问题
Sample Selection Bias (SSB) :传统的cvr模型是基于点击的样本建模,而线上预估是在全局样本上预估——即所有候选集上。这就出现了线下训练的样本空间(有点击样本)和预估的样本空间(全局样本)有偏差,即样本空间分布不同,这就是所谓的SSB问题。
Data Sparsity (DS) :点击样本空间远小于曝光的样本空间,特别是某些业务场景点击样本极少,这给训练cvr模型带来了很大的挑战。
![](https://img-blog.csdnimg.cn/img_convert/8ed72cfef7d1abcb5cb3148ccb70c833.png)
ESMM提出的解决方案
ESMM的模型结构如图,即ctr和cvr联合训练,都是在曝光的样本集上训练。重点是loss的计算:
cost=loss_ctr + loss_ctcvr
loss_ctr = paddle.nn.functional.log_loss(
input=ctr_out_one, label=paddle.cast(
ctr_clk, dtype="float32"))
loss_ctcvr = paddle.nn.functional.log_loss(
input=ctcvr_prop_one,
label=paddle.cast(
ctcvr_buy, dtype="float32"))
cost = loss_ctr + loss_ctcvr
![](https://img-blog.csdnimg.cn/img_convert/6bae6dba80042dc45e565baba420c995.png)
关于ESMM的高频面试题(关于ESMM没有效果的思考)
貌似ESMM解决了cvr预估存在的SSB和DS问题,但是为什么很多业务场景没有效果,这就引申出了面试官的一系列问题(不排除面试官在面试中寻找答案,当然也主要考察面试者对模型或者业务的理解深度)。常见的面试问题:
ESMM的pctcvr是ctcvr吗?为什么不是?
ESMM的pcvr是否会有偏?为什么有偏?
ESMM两个塔的区别和联系
3只要理解模型结构就能回答,1和2可以看这篇文章https://zhuanlan.zhihu.com/p/352991132