背景:

在以往的 曝光→点击→转化 链路中,从曝光→点击,点击→转化, 曝光→转化这一步的比例,我们分别称为CTR(点击率),CVR(转化率),CTCVR(总转率);ESMM采用行为序列模式建模,impression->click->conversion,数据集保留了用户行为过程顺序。

Untitled


常见的做法是:CTR模型使用曝光样本,CVR模型使用点击样本。在预估CVR时,我们实际上是预测点击后的转化率。这种方法看似没有问题,但实则存在挑战。

  1. 首先,对于某个用户来说,冷门商品的CTCVR可能非常低。如果这个样本转化了,模型在训练时会默认这个商品的期望转化率就会误以为很高。这是因为训练样本只选择了对这个商品感兴趣的人(愿意点击),没有包括对这个商品不感兴趣的人(有偏)。因此,再给用户推荐商品时,我们不应该把这种商品的排序放在前面。即样本选择偏差会伤害学到的模型的泛化性能。
  2. 问题二:CVR的样本量太少,只占了整体曝光样本的很小一部分;

方法:

解决上述问题的简单方法是在预估CVR时,将曝光样本加入训练集。如上图所示。但这样可能产生新的问题:这时预估的CVR实际上是总转率。在同一个曝光样本中,这个预估的总转率可能会大于预估的点击率。这与曝光→点击→转化的链路因果关系不符。因此,作者选择将P_ctr*P_cvr作为P_ctcvr,以确保总转率预估值不大于点击率。请注意,不能使用P_ctcvr/P_ctr作为P_cvr,因为除法可能导致值波动极大,很可能会大于1。

此关系符合因果规则:考虑极端情况,如果P_ctr=0,那么P_ctcvr必定是0,如果P_ctr=1,那么P_ctcvr就等于P_cvr。

Untitled


总结:

文章用了多目标模型,模型结构如上图。

优点:

1)共享Embedding :CVR-task和CTR-task使用相同的特征和特征embedding,即两者从Concatenate之后才学习各自部分独享的参数;