论文原文:
论文地址:https://arxiv.org/abs/1910.07099
论文题目:《Entire Space Multi-Task Modeling via Post-Click Behavior Decomposition for Conversion Rate Prediction 》
一 、背景
在第十二篇文章里面我们介绍了阿里巴巴针对cvr的多任务学习模型,在ESMM第一篇文章里面,阿里用多任务学习模型解决了两个问题,数据稀疏和样本选择偏差两个问题。作为ESMM的升级版,本论文做了什么样的改进呢?我们来看看吧。
我们先看看推荐系统的总体架构:
从图中,我们可以很清楚的看到,推荐系统分为match(召回)和(rank)两个阶段,在上一篇多任务学习的模型中,我们已经介绍了这两个阶段的工作,就不再赘述了。
推荐系统给用户推荐的物品成为曝光(impression)物品,但是对于曝光物品,用户不一定都会进行点击(click),即使稍微感兴趣点,也不会进行购买(purchase),用户行为阶段的一般过程是Impression - Click - Purchase。
推荐系统是现代电子商务的重要组成部分,由两个基本模块组成,即点击率(CTR)和转化率(CVR)预测。尽管CVR对购买量有直接影响,但由于样本选择偏差(SSB)和数据稀疏性(DS)问题,其预测是众所周知的挑战。
对于这两个问题,我们在上一篇文章里面也提到了,这篇文章就再提一遍:
样本选择偏差(sample selection bias,SSB):传统的推荐系统仅用click中的样本来训练CVR预估模型,但训练好的模型是在整个样本空间去做推断的。由于点击事件相对于曝光事件来说要少很多,因此只是样本空间X的一个很小的子集,从click中的样本上提取的特征相对于从所有样本中提取的特征而言是有偏的,甚至是很不相同。在机器学习中,我们知道训练集的样本跟测试集的样本要服从同一个分布,否则训练出来的模型会有很大的偏差,使得模型的泛化性能很差。这种训练样本从整体样本空间的一个较小子集中提取,而训练得到的模型却需要对整个样本空间中的样本做推断预测的现象称之为样本选择偏差。
数据稀疏(data sparsity,DS): 推荐系统展现给用户的商品数量要远远大于被用户点击的商品数量,同时有点击行为的用户也仅仅只占所有用户的一小部分,因此有点击行为的click样本空间相对于整个样本空间来说是很小的,通常来讲,量级要少1~3个数量级。这就是所谓的训练数据稀疏的问题,高度稀疏的训练数据使得模型的学习变得相当困难。
ESMM模型已经尝试的解决这两个问题了:
ESMM模型用pCTCVR和pCTR两个值来计算pCVR,pCTCVR = pCTR*pCVR,我们很容易知道pCVR的计算方式,通过embedding的共享机制,使得pCVR子任务也能够从只有展现没有点击的样本中学习,从而能够极大地有利于缓解训练数据稀疏性问题。
尽管通常基于用户顺序行为过程为“曝光→点击→购买”的现有方法可以有效地处理SSB问题,但由于购买的训练样本很少,因此他们仍然难以解决数据稀疏问题。观察到用户在点击后始终会进行与购买相关的若干操作,具体地,在点击和购买之间会发生一些额外的动作,比如加入购物车这种行为。
加入购物车的数据相较购买数据还是比较多的,因此可以基于这部分数据,通过多任务学习模型来求解CVR模型。如图所示,文中把加入购物车此类行为称作Deterministic Action (DAction) ,而其他对购买相关性不是很大的行为称作Other Action(OAction) 。此时原来的 Impression→Click→Buy过程变成了更加丰富的Impression→Click→DAction/OAction→Buy过程。
在ESMM1中,我们在训练pCVR模型时并没有区分这部分的数据,只用到了购买的数据来训练pCVR子模型,相比于把加入购物车中的物品也作为训练CVR的样本来说还是很少的,从直觉上来看,一般加入购物车中的物品,用户的购买欲望是很高的,因此我们不能忽略这部分数据。
对于这部分数据来说,阿里巴巴提出了ESMM2模型,下面我们就来看看这篇论文的工作吧。
二、ESMM模型结构
我们先从直觉上看ESMM2的模型结构,整个网络分为四个子模型:
1. Impression -> click子模型,这个子模型预测的是CTR,y1
2.click->DAction 子模型,这个子模型预测的是click到DAction的概率,y2
3. DAction -> purchase 子模型,这个子模型预测的是从确定性的行为到购买的概率,y3
4. OAction ->puchase 子模型,这个子模型预测的是从不确定的行为到购买的概率,y4
我们来看看通过这几个子模型,能组合成什么任务模型:
1.CTCVR = y1 [(1-y2)y4 + y2y3],简单解释一下就是CTR*CVR,用CTR*(确性行为购买的概率 + 不确定行为购买的概率),这里有一个细节就是DAction和OAction的概率之和为1,即这两个事件是对立事件。
2.CTAVR = y1y2,这个没什么好说的
3.CVR = (1-y2)y4 + y2y3 这个在前面也说过了,也可以看上面这张图,CVR通过两条路径得来:
DAction/OAction -> purchase,所以就是简单的概率相加了。
有了上面说的三个组合模型,自然也有三个loss函数:
1.Loss1 impression->click 就是CTR预估的损失函数
2.Loss2 impression->DAction 从Impress到DAction的损失函数,预估的是CTAVR
3.Loss3 impression->purchase 这个是CTCVR的损失函数
这三部分的损失函数通过加权得到最终的损失函数:
跟ESMM1模型还是有相同的部分的,那就是他们也是共享embedding的,这个其实在很多推荐系统中都是这么做的,一来是可以减少模型的规模,二来是可以充分的学习到embedding信息。
三、实验结果
其中GAUC为对每个用户的AUC进行加权的结果:
可以看到ESMM2的CVR预估效果比其他baseline都好,跟ESMM1来说三个指标都有较好的提升。