ESMM多任务学习解读

ESMM模型2018年由阿里巴巴提出,发表在SIGIR2018会议上的《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》文章基于 Multi-Task Learning 的思路,有效解决了真实场景中CVR预估面临的数据稀疏(data sparsity,DS)以及样本选择偏差(sample selection bias,SSB)这两个关键问题

  • Sample Selection Bias (SSB)

转化是在点击之后才“有可能”发生的动作,传统CVR模型通常以点击数据为训练集,其中点击未转化为负例,点击并转化为正例。但是训练好的模型实际使用时,则是对整个空间的样本进行预估,而非只对点击样本进行预估。即是说,训练数据与实际要预测的数据来自不同分布,这个偏差对模型的泛化能力构成了很大挑战。

  • Data Sparsity (DS)

作为CVR训练数据的点击样本远小于CTR预估训练使用的曝光样本。

ESMM多任务学习解读_第1张图片

2. ESMM模型

为了解决SSB和DS问题,ESMM提出了一个多任务学习的框架,能够使用整个样本空间的数据;同时优化pCTCVR和pCTR,进而做到优化CVR的目的。它与CTR没有绝对的关系,很多人有一个先入为主的认知,即若user对某item的点击概率很低,则user对这个item的转化概率也肯定低,这是不成立的。更准确的说,CVR预估模型的本质,不是预测“item被点击,然后被转化”的概率(CTCVR),而是“假设item被点击,那么它被转化”的概率(CVR)

这就是不能直接使用全部样本训练CVR模型的原因,因为压根不知道:那些unclicked的item,假设他们被user点击了,它们是否会被转化。如果直接使用0作为它们的label,会很大程度上误导CVR模型的学习。认识到点击(CTR)、转化(CVR)、点击然后转化(CTCVR)是三个不同的任务后,三者的关联:

其中z,y分别表示转化和点击。注意到,在全部样本空间中,CTR对应的label为点击,而CTCVR对应的label为点击& 转化,这两个任务是可以使用全部样本的

ESMM模型的目标函数如下:

上式中,N代表样本数量; θcvr ,θctr 分别代表cvr网络,ctr网络的参数;pCTCVR(曝光后,点击转化率)计算公式如下:其中pCTR表示曝光点击率;pCVR表示点击转化率;其中x 表示特征向量,y=1表示点击数据,z=1表示转化数据。

ESMM多任务学习解读_第2张图片

ESMM模型结构如下:左边的网络结构为预测pCVR任务,右边的网络结构预测pCTR任务,最后将 pCTR * pCVR 输出一个融合的结果pCTCVR;pCVR网络和pCTR网络,共享embedding层的参数。

  • 共享Embedding

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

  • 隐式学习pCVR

即利用CTCVR和CTR的监督信息来训练网络,隐式地学习CVR,这正是ESMM的精华所在,至于这么做的必要性以及合理性,本节开头已经充分论述了。

你可能感兴趣的:(学习,python,算法)