在诸如信息检索、推荐系统、在线广告投放系统等工业级的应用中准确预估转化率(post-click conversion rate,CVR)是至关重要的。
样本选择偏差(Sample Selection Bias,SSB)
传统的CVR训练用的是点击数据,用户点击后未转化为负样本,点击后转化为正样本。但点击事件仅仅是整个曝光空间的一个子集,数据分布是不一致的,模型的泛化能力就会受到影响。
数据稀疏问题(data sparsity Problem, DS)
在实践中,点击率一般是比较低的,曝光数量远远大于点击数量,所以训练CVR模型的数据通常比CTR任务的少的多,训练数据的稀疏性使得CVR模型的拟合变得相当困难。
延迟反馈(delayed feedback)
用户发生点击后,可能需要较长时间才能发生转化,负样本可能是假性负样本,这给建模带来了很多困难。
样本选择偏差
缺失值作为负样本(All Missing As Negative,AMAN)采用随机抽样策略把选择未点击的展示作为负示例,这在某种程度上可以减轻样本选择偏差的问题,但通常会会导致预测值偏低。
无偏采样(Unbias Sampling)通过蒙特·卡罗拒绝采样法(Rejection Sampling)来拟合观测值的真实基础分布,从而解决了CTR建模中的样本选择偏差问题。但是,通过拒绝概率的除法对样本加权时,可能会遇到数值不稳定性。
数据稀疏问题
延迟反馈
这个问题的解决方案,推荐阅读:Modeling delayed feedback in display advertising by Olivier Chapelle. KDD 2014。主要思想就是对于还未观察到conversion的样本,不直接将其当做负样本,而是当前考虑click已发生的时间长短给模型不同大小的gradient.
这不是本算法解决的重点问题,因为阿里推荐系统中转化反馈的延迟是可以接受的。
总之,在CVR建模的情况下,SSB和DS问题都没有得到很好的解决,并且上述方法都没有利用动作的顺序信息。
为了解决上述问题,阿里算法团队提出了关于CVR预估的新模型ESSM,《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》,发表在SIGIR’2018。
我们以电子商务网站推荐系统中的CVR建模为例,给定推荐的商品,用户可以点击感兴趣的商品,然后再购买其中一些。换句话说,用户操作遵循曝光(impression) 点击(click) 转换(conversion)的顺序模式。以此方式,CVR建模是指预估点击后转化率的任务,即。
假设我们观察的数据空间是,其中N代表总曝光数。
点击转化率(pCTCVR),点击率(pCTR)与转化率(pCVR)关系如下:
根据上式,可以看到三者的关系非常明确,那么也就意味着,我只要得到了三者中的二者就可以方便地估计剩下的一个参数了。
常规的CVR模型只用了点击以后的样本去预估pCVR,这个会有样本选择偏差的问题,好消息是pCTCVR和pCTR是可以在全量数据集上学习的,我们变换一下上面的公式,就可以根据pCTCVR和pCTR这两个在全量数据集上学习到的值计算出pCVR。
然而,实际上,pCTR很小,除以pCTR会引起数值不稳定,而且有可能是的pCVR超过1,这明显不合理。
ESMM通过乘法形式避免了这种情况,就是用全样本使用一个模型来同时学习pCTR以及pCVR,然后二者相乘拟合pCTCVR,pCTR预估以及pCTCVR预估是可以使用全样本训练的。
ESMM是一个双塔模型,模型采用CTCVR和CTR来学习CVR,模型结构如上图。主要由两个子网组成:左侧所示的CVR网络和右侧所示的CTR网络,它们是共享底层Embedding的,只是上面的不一样,一个用来预测CVR,这个可以在全样本空间上进行训练,另一个是用来预测CTR,CTR是一个辅助任务。最后的pCTCVR可以在全样本空间中训练。
ESMM的损失函数定义为以下公式。它由CTR和CTCVR任务的两个损失项组成,这些损失项是根据所有展示的样本计算得出的,而没有使用CVR任务的损失。
其中, 和分别是CTR网络和CVR网络的参数,是交叉熵损失函数。在CTR任务中,有点击行为的展现事件构成的样本标记为正样本,没有点击行为发生的展现事件标记为负样本;在CTCVR任务中,同时有点击和购买行为的展现事件标记为正样本,否则标记为负样本。
共享Embedding层
隐式学习pCVR
解决样本选择(BBS)问题
解决样本稀疏(DS)问题
由于ESMM模型创新性地利用了用户的序列行为做完模型的训练样本,因此并没有公开的数据集可供测试,阿里的技术同学从淘宝的日志中采样了一部分数据,作为公开的测试集。阿里妈妈的工程师们分别在公开的数据集和淘宝生产环境的数据集上做了测试,相对于其他几个主流的竞争模型,都取得了更好的性能。
对照算法 | 描述 |
---|---|
BASE | 单CVR任务作为baseline |
AMAN | 从未点击样本中随机抽样作为负例加入训练 |
OVERSAMPLING | 对点击后的转化正样本过采样 |
UNBIAS | 使用rejection sampling方式采样样本 |
DIVISION | 训练CTR和CTCVR两个任务,除法运算得到pCVR |
ESMM-NS | ESMM结构两个任务不共享Embedding |
与BASE模型相比,ESMM在CVR任务上实现了2.56%的AUC绝对值提升,这表明,即使对于有偏差的样本,它也具有良好的泛化性能。在具有完整样本的CTCVR任务上,它带来3.25%的AUC增益。这些结果验证了我们建模方法的有效性。
与BASE模型相比,ESMM在CVR任务上实现2.18%的绝对AUC提升,在CTCVR任务上实现2.32%的绝对AUC提升。 对于工业应用而言,这是一项重大改进,在这种应用中,AUC提升高达0.1%
最后,引用一下朱小强对ESMM的评价
关于ESMM模型多说两句,我们展示了对同态的CTR和CVR任务联合建模,帮助CVR子任务解决样本偏差与稀疏两个挑战。事实上这篇文章是我们总结DL时代Multi-Task Learning建模方法的一个具体示例。图中给出了更为一般的网络架构。据我所知这个工作在这个领域是最早的一批,但不唯一。今天很多团队都吸收了MTL的思路来进行建模优化,不过大部分都集中在传统的MTL体系,如研究怎么对参数进行共享、多个Loss之间怎么加权或者自动学习、哪些Task可以用来联合学习等等。ESMM模型的特别之处在于我们额外关注了任务的Label域信息,通过展现>点击>购买所构成的行为链,巧妙地构建了multi-target概率连乘通路。传统MTL中多个task大都是隐式地共享信息、任务本身独立建模,ESMM细腻地捕捉了契合领域问题的任务间显式关系,从feature到label全面利用起来。这个角度对互联网行为建模是一个比较有效的模式,后续我们还会有进一步的工作来推进。
[1]Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate
[2]CVR预估的新思路:完整空间多任务模型/杨旭东/知乎
[3]镶嵌在互联网技术上的明珠:漫谈深度学习时代点击率预估技术进展/朱小强/知乎
[4]ESMM-完整空间下的多任务学习/知天易or逆天难/CSDN
[5]ESMM模型笔记/巴拉巴拉朵/CSDN
↶ 返回首页