阿里提出的完整空间多任务模型ESSM是用来处理CVR预估中存在的样本选择偏差(sample selection bias)和数据稀疏(data sparsity)问题。
CVR:从点击到购买的转化我们称为post-click Conversion rate(以下简称CVR),CVR的预估在信息检索、推荐系统、在线广告投放等工业级应用中是至关重要的。
不过传统的CVR预估问题存在着两个主要的问题:样本选择偏差和稀疏数据。我们来看下面的图,我们把给用户曝光过的产品看作是整个样本空间 X 的话,用户点击过的产品仅是中间灰色的部分,我们定义为 X_{c} ,而用户购买过的产品仅是图中黑色的部分。
样本选择偏差(sample selection bias,SSB)[样本选择空间小于整个推理空间]:传统的推荐系统仅用 X_{c} 中的样本来训练CVR预估模型,但训练好的模型是在整个样本空间X去做推断的。由于点击事件相对于曝光事件来说要少很多,因此只是样本空间 X 的一个很小的子集,从 X_{c} 上提取的特征相对于从X中提取的特征而言是有偏的,甚至是很不相同。从而,按这种方法构建的训练样本集相当于是从一个与真实分布不一致的分布中采样得到的,这一定程度上违背了机器学习中独立同分布的假设。这种训练样本从整体样本空间的一个较小子集中提取,而训练得到的模型却需要对整个样本空间中的样本做推断预测的现象称之为样本选择偏差。样本选择偏差会伤害学到的模型的泛化性能。
数据稀疏(data sparsity,DS)[用户点击行为样本空间小于整个样本空间]:推荐系统展现给用户的商品数量要远远大于被用户点击的商品数量,同时有点击行为的用户也仅仅只占所有用户的一小部分,因此有点击行为的样本空间相对于整个样本空间X来说是很小的,通常来讲,量级要少1~3个数量级。如下表所示,在淘宝公开的训练数据集上,Xc只占整个样本空间X的4%。这就是所谓的训练数据稀疏的问题,高度稀疏的训练数据使得模型的学习变得相当困难。
为了解决上面的两个问题,阿里提出了完整空间多任务模型ESSM。下一章,我们将会来学习一下阿里是如何设计整个网络的。
阿里妈妈的算法同学提出的ESMM模型借鉴了多任务学习的思路,引入了两个辅助的学习任务,分别用来拟合pCTR和pCTCVR,从而同时消除了上文提到的两个挑战。ESMM模型能够充分利用用户行为的顺序性模式,其模型架构下图所示。
可以看到,ESSM模型由两个子网络组成,左边的子网络用来拟合pCVR,右边的子网络用来拟合pCTR,同时,两个子网络的输出相乘之后可以得到pCTCVR。因此,该网络结构共有三个子任务,分别用于输出pCTR、pCVR和pCTCVR。
假设我们用x表示曝光,y表示点击,z表示转化,那么根据pCTCVR = pCTR * pCVR,可以得到:
将乘法转化为除法,我们可以得到pCVR的计算:
CTR预估任务:有点击行为的曝光事件作为正样本,没有点击行为的曝光事件作为负样本。
CTCVR预估部分:同时有点击行为和购买行为的曝光事件作为正样本,其他作为负样本。
可以看到,用来训练两个任务的输入x其实是相同的,但是label是不同的。CTR任务预估的是点击y,CTCVR预估的是转化z。因此,我们将(x,y)输入到CTR任务中,得到CTR的预估值,将(x,z)输入到CVR任务中,得到CVR的预估值,
为什么这里(x,z)输入到CVR任务中,得到的就是CVR预估值呢?因为,输入的是一条样本,根据label的不同,送入不同的任务当中,即使是因为对整个样本空间建模而选择对CTR和CTCVR进行建模,也是需要模型可以输出CVR用来求解CTCVR = CTR*CVR,所以这里是规定左侧塔输出的是CVR,右侧塔输出的是CTR,然后用损失函数来约定要学习什么,从损失函数可以看到,学习的目标为CTR和CTCVR任务。
其中, theta_{ctr} 和 theta_{cvr} 分别是CTR网络和CVR网络的参数,l(⋅)是交叉熵损失函数。
注:Ctr样本多,对loss的贡献大,可以减少ctr损失的权重。
ESMM模型借鉴迁移学习的思路,在两个子网络的embedding层共享embedding向量(特征表示)词典。网络的embedding层把大规模稀疏的输入数据映射到低维的表示向量,该层的参数占了整个网络参数的绝大部分,需要大量的训练样本才能充分学习得到。由于CTR任务的训练样本量要大大超过CVR任务的训练样本量,ESMM模型中特征表示共享的机制能够使得CVR子任务也能够从只有展现没有点击的样本中学习,从而能够极大地有利于缓解训练数据稀疏性问题。
ESMM模型利用用户行为序列数据在完整样本空间建模,避免了传统CVR模型经常遭遇的样本选择偏差和训练数据稀疏的问题,取得了显著的效果。另一方面,ESMM模型的贡献在于其提出的利用学习CTR和CTCVR的辅助任务,迂回地学习CVR的思路。ESMM模型中的BASE子网络可以替换为任意的学习模型,因此ESMM的框架可以非常容易地和其他学习模型集成,从而吸收其他学习模型的优势,进一步提升学习效果,想象空间巨大。
答:为了在整个样本空间中进行建模-【体现在损失函数中】
pCVR是可以通过pCTR和pCTCVR的预估推导出来的。因此,我们只需要关注pCTR和pCTCVR两个任务即可。为什么是这两个任务呢?其实就是为了消除样本选择偏差,因为CVR是从click到conversion,而CTCVR是从impression到conversion,CTR是从impression到click,所以CTR和CTCVR都可以从整个样本空间进行训练,一定程度的消除了样本选择偏差。即,利用CTCVR和CTR的监督信息来训练网络,隐式地学习CVR。
ESMM的结构是基于“乘”的关系设计——pCTCVR=pCVR*pCTR,是不是也可以通过“除”的关系得到pCVR,即 pCVR = pCTCVR / pCTR ?例如分别训练一个CTCVR和CTR模型,然后相除得到pCVR,其实也是可以的,但这有个明显的缺点:真实场景预测出来的pCTR、pCTCVR值都比较小,“除”的方式容易造成数值上的不稳定,比如导致相除后,cvr的值大于1。
上一篇
下一篇
这次文章的内容主要是对比一下几支不同年代146,看看他们之间有什么不同,年代从远到近分别是14C、14k、T舌、现产(P146), ...
工欲善其事,必先利其器。 周末趁著闲暇,给大家整理了一份股票、基投资找工具网站。 看行情、找资讯、逛论坛,看财报、看研 ...