推荐系统遇上深度学习 (十九)-- 探秘阿里之完整空间多任务模型 ESSM



转载请注明 AIQ - 最专业的机器学习大数据社区  http://www.6aiq.com

AIQ 机器学习大数据 知乎专栏 点击关注

阿里近几年公开的推荐领域算法有许多,既有传统领域的探索如 MLR 算法,还有深度学习领域的探索如 entire-space multi-task model,Deep Interest Network 等,同时跟清华大学合作展开了强化学习领域的探索,提出了 MARDPG 算法。

上一篇,我们介绍了深度兴趣网络 (Deep Interest Network),充分利用用户历史行为数据中的DiversityLocal Activation特性进行建模。再来回顾一下 DIN 的网络结构:
ea3e564c6807457f85b6c7a5a91b399b.png

这一篇,我们将焦点转向 CVR 的预估,来看一下阿里提出的完整空间多任务模型 ESSM 是如何处理 CVR 预估中存在的样本选择偏差 (sample selection bias) 和数据稀疏 (data sparsity) 问题的。

论文地址:https://arxiv.org/abs/1804.07931

在正式开篇之前,我们先介绍一下几个名词:

impression:用户观察到曝光的产品

click:用户对 impression 的点击行为

conversion:用户点击之后对物品的购买行为

CTR:从 impression 到 click 的比例

CVR:从 click 到 conversion 的比例

CTCVR:从 impression 到 conversion 的比例

pCTR:p(click=1 | impression)

pCVR: p(conversion=1 | click=1,impression)

pCTCVR: p(conversion=1,click=1 |impression) = p(click=1 | impression) * p(conversion=1|click=1,impression)

1、背景

以电子商务平台为例,用户的购买行为一般遵循以下的顺序决策模式:impression-click-conversion,即用户先观察到系统推荐的产品,然后会对自己感兴趣的商品进行点击,进而产生购买行为。从点击到购买的转化我们称为 post-click Conversion rate(以下简称 CVR),CVR 的预估在信息检索、推荐系统、在线广告投放等工业级应用中是至关重要的。

不过传统的 CVR 预估问题存在着两个主要的问题:样本选择偏差稀疏数据。我们来看下面的图,我们把给用户曝光过的产品看作是整个样本空间 X 的话,用户点击过的产品仅是中间灰色的部分,我们定义为 Xc,而用户购买过的产品仅是图中黑色的部分。

8d7b859157d146cb921b04d99a227935.png

样本选择偏差 (sample selection bias,SSB):传统的推荐系统仅用 Xc 中的样本来训练 CVR 预估模型,但训练好的模型是在整个样本空间 X 去做推断的。由于点击事件相对于曝光事件来说要少很多,因此只是样本空间 X 的一个很小的子集,从 Xc 上提取的特征相对于从 X 中提取的特征而言是有偏的,甚至是很不相同。从而,按这种方法构建的训练样本集相当于是从一个与真实分布不一致的分布中采样得到的,这一定程度上违背了机器学习中独立同分布的假设。这种训练样本从整体样本空间的一个较小子集中提取,而训练得到的模型却需要对整个样本空间中的样本做推断预测的现象称之为样本选择偏差。样本选择偏差会伤害学到的模型的泛化性能。

数据稀疏 (data sparsity,DS): 推荐系统展现给用户的商品数量要远远大于被用户点击的商品数量,同时有点击行为的用户也仅仅只占所有用户的一小部分,因此有点击行为的样本空间 Xc 相对于整个样本空间 X 来说是很小的,通常来讲,量级要少 1~3 个数量级。如下表所示,在淘宝公开的训练数据集上,Xc 只占整个样本空间 X 的 4%。这就是所谓的训练数据稀疏的问题,高度稀疏的训练数据使得模型的学习变得相当困难。
8d71bb8ed88a498192e5a76a67d36f0c.png

为了解决上面的两个问题,阿里提出了完整空间多任务模型 ESSM。下一章,我们将会来学习一下阿里是如何设计整个网络的。

2、ESSM 模型

2.1 模型结构

阿里妈妈的算法同学提出的 ESMM 模型借鉴了多任务学习的思路,引入了两个辅助的学习任务,分别用来拟合 pCTR 和 pCTCVR,从而同时消除了上文提到的两个挑战。ESMM 模型能够充分利用用户行为的顺序性模式,其模型架构下图所示:
2bcb2a5b3a3e40dea9dc094801cd7522.png

可以看到,ESSM 模型由两个子网络组成,左边的子网络用来拟合 pCVR,右边的子网络用来拟合 pCTR,同时,两个子网络的输出相乘之后可以得到 pCTCVR。因此,该网络结构共有三个子任务,分别用于输出 pCTR、pCVR 和 pCTCVR。

假设我们用 x 表示 feature(即 impression),y 表示点击,z 表示转化,那么根据 pCTCVR = pCTR * pCVR,可以得到:
0a3f1b010ec64dac88dbf369899f4ca6.png

将乘法转化为除法,我们可以得到 pCVR 的计算:
c1d19984f25243bab97d4f75334a0643.png

2.2 模型特点

ESSM 模型共有以下两个主要的特点:

在整个样本空间中进行建模

由上面提到的等式可以看出,pCVR 是可以通过 pCTR 和 pCTCVR 的预估推导出来的。因此,我们只需要关注 pCTR 和 pCTCVR 两个任务即可。为什么是这两个任务呢?其实就是为了消除样本选择偏差嘛,因为 CVR 是从 click 到 conversion,而 CTCVR 是从 impression 到 conversion,CTR 是从 impression 到 conversion,所以 CTR 和 CTCVR 都可以从整个样本空间进行训练,一定程度的消除了样本选择偏差。

我们可以将有点击行为的曝光事件作为正样本,没有点击行为的曝光事件作为负样本,来做 CTR 预估的任务。将同时有点击行为和购买行为的曝光事件作为正样本,其他作为负样本来训练 CTCVR 的预估部分。

模型具体是怎么做的呢?可以看到,用来训练两个任务的输入 x 其实是相同的,但是 label 是不同的。CTR 任务预估的是点击 y,CTCVR 预估的是转化 z。因此,我们将 (x,y) 输入到 CTR 任务中,得到 CTR 的预估值,将 (x,z) 输入到 CVR 任务中,得到 CVR 的预估值,CTR 和 CVR 的预估值相乘,便得到了 CTCVR 的预估值。因此,模型的损失函数可以定义为:
c1948bf24de64ca0b889c2f140cd7cf6.png

其中,θctr 和θcvr 分别是 CTR 网络和 CVR 网络的参数,l(⋅) 是交叉熵损失函数。
共享特征表示
ESMM 模型借鉴迁移学习的思路,在两个子网络的 embedding 层共享 embedding 向量(特征表示)词典。网络的 embedding 层把大规模稀疏的输入数据映射到低维的表示向量,该层的参数占了整个网络参数的绝大部分,需要大量的训练样本才能充分学习得到。由于 CTR 任务的训练样本量要大大超过 CVR 任务的训练样本量,ESMM 模型中特征表示共享的机制能够使得 CVR 子任务也能够从只有展现没有点击的样本中学习,从而能够极大地有利于缓解训练数据稀疏性问题。
3、实验效果
3.1 对比模型介绍
为了验证 ESSM 的效果,阿里团队与如下的算法进行了对比:
6db891736a5f4490853b1816c42527d8.png

3.2 公开数据集实验

下图展示了在公开实验数据集上模型的对比效果:
660d74f365e34d4ba6fa9016ff1973a8.png

可以看到,ESSM 模型相比于其他的模型,实验效果显著提升。

3.3 淘宝数据集实验

下图展示了 ESMM 模型在淘宝生产环境数据集上的测试效果对比:
0a4722d510ec46f89a474fb617f4c251.png

可以看到,相对于 BASE 模型,ESMM 模型在 CVR 任务中 AUC 指标提升了 2.18%,在 CTCVR 任务中 AUC 指标提升了 2.32%。

4、总结

总结一下,ESMM 模型利用用户行为序列数据在完整样本空间建模,避免了传统 CVR 模型经常遭遇的样本选择偏差和训练数据稀疏的问题,取得了显著的效果。另一方面,ESMM 模型的贡献在于其提出的利用学习 CTR 和 CTCVR 的辅助任务,迂回地学习 CVR 的思路。ESMM 模型中的 BASE 子网络可以替换为任意的学习模型,因此 ESMM 的框架可以非常容易地和其他学习模型集成,从而吸收其他学习模型的优势,进一步提升学习效果,想象空间巨大。

参考文献

1、https://arxiv.org/abs/1804.07931

2、http://xudongyang.coding.me/esmm/


更多高质资源 尽在AIQ 机器学习大数据 知乎专栏 点击关注

转载请注明 AIQ - 最专业的机器学习大数据社区  http://www.6aiq.com