深度模型(十):ESMM

摘要

准确的估计CVR(点击后转化率)对于推荐和广告这类排序系统来说非常关键。传统的CVR模型采用流行的深度学习方法达到目前最好的效果。但是也遇到了一些问题。比如,传统的CVR模型采用点击后的数据训练,但是要在整体数据上做预测。这导致样本选择偏差问题。另外,还存在比较严重的数据稀疏问题。本文我们从一个全新的角度建模CVR预估问题,充份利用用户行为序列:曝光 -> 点击 -> 转化。ESMM(全量空间多任务模型)解决了采样偏差和数据稀疏的问题,通过1)在全量数据上直接建模CVR模型,2)引入特征表示迁移学习策略。

1.介绍

本文中,我们主要关注点击后CVR估计问题。为了简化问题,我们以电商系统中的推荐系统为例。给定推荐的物品,用户可能会点击感兴趣的物品,然后有可能会购买。用户的行为是线性的:物品报告->点击->转换。CVR模型的目标就是预测这曝光并且点击之后的转换概率:

p C V R = p ( c o n v e r s i o n c l i c k , i m p r e s s i o n ) pCVR=p(conversion|click,impression)

传统的CVR模型一般采用CTR类似的方法,比如最近流行的深度网络[2,3]。但是CVR预估问题中存在一些特有的问题。比如,关键的两个问题1).样本偏差(SSB)问题[12]。如下图所示:

在这里插入图片描述

传统的CVR模型在点击数据上进行训练,然后在整个数据上进行预测。SSB问题会严重影响模型的泛化能力。2).数据稀疏问题(DS)。CVR的训练数据会远小于CTR的数据量,DS使CVR模型的拟合更加困难。

一些研究试图解决这些问题。[5]采用联合不同特征上的多个分层模型解决数据稀疏问题。但是它依赖先验的知识来构建分层的结构。大规模的推荐系统上难以采用。过采样方法[11]拷贝稀有类型样本,可以降低数据稀疏的影响,但是对采样率比较敏感。AMAN(缺失值作为负样本)方法随机选择未点击数据作为负样本[6],通过引入未被观察的样本可以一定程度的降低采样误差的问题,但是会导致估计值偏低的问题。无偏差方法[10]通过拒绝采样来拟合样本实际分布,但会遇到数值不稳定问题。总之,采样偏差和数据稀疏问题都没有被很好的解决。并且还没有一个方法利用了序列行为的信息。

本文中通过充分利用序列行为的信息,我们提出全量数据多任务模型,解决了样本偏差和数据稀疏的问题。ESMM中,存在两个辅助任务:曝光后的点击率预测CTR任务,和曝光点击后的转化率CTCVR预测任务。ESMM没有直接在点击数据上训练CVR模型,而是将pCVR作为中间变量,乘以pCTR得到pCTCVR.在用整体的样本拟合pCTCVR和pCTR。因此,推导得到pCVR适用于整体的样本。也就是说采样偏差问题解决了。另外,CVR和CTR的特征表示层的参数是共享的。后者是在更丰富的样本空间上训练的。这种迁移学习的方式帮助降低数据稀疏问题的影响。

2. 模型

2.1 定义

我们假设观察数据集合为 S = { ( x i , y i z i ) } i = 1 N S=\{(\boldsymbol{x}_i,y_i \rightarrow z_i)\}|_{i=1}^N , 样本 ( x , y , z ) (\boldsymbol{x},y,\rightarrow z) 按照某种分布 D D 采样自域 X × Y × Z X\times Y\times Z 。其中 X X 为特征空间, Y , Z Y,Z 为标记空间,N为样本数量。 x \boldsymbol x 表示观察样本的特征向量,通常是高维的稀疏向量[8]. y , z y,z 是二值标签,表示是否点击或是否转化。

CVR模型的任务就是估计概率值 p C V R = p ( z = 1 y = 1 , x ) pCVR=p(z=1|y=1,\boldsymbol{x}) .相关的两个概率值为 p C T R = p ( y = 1 x ) pCTR=p(y=1|\boldsymbol{x}) p C T C V R = p ( z = 1 , y = 1 x ) pCTCVR=p(z=1,y=1|\boldsymbol{x}) ,关系如下:

p ( y = 1 , z = 1 x ) = p ( z = 1 y = 1 , x ) p ( y = 1 x ) p(y=1,z=1|\boldsymbol{x})=p(z=1|y=1,\boldsymbol{x})p(y=1|\boldsymbol{x})

2.2 CVR建模和挑战

近期基于深度学习的方法在CVR估计问题上取得了目前最好的成绩。大部分的方法都采用了Embedding+MLP这样的结构模式[3].如下图的左边部分,我们称之为BASE模型.
在这里插入图片描述

传统的CVR模型直接估计 p ( z = 1 y = 1 , x ) p(z=1|y=1,\boldsymbol{x}) ,在点击样本 S c = { ( x j ) , y j z j } j = 1 M S_c=\{(\boldsymbol{x}_j),y_j\rightarrow z_j\}|_{j=1}^M 上训练。其中 M M 表示点击数据的数量。显然, S c S_c S S 的一个子集。 S c S_c 当中没有转化的样本作为CVR模型的负样本。实际当中这种方式导致了几个问题:

  • 采样偏差:实际上,传统的CVR模型采用了近似计算 p ( z = 1 y = 1 , x ) q ( z = 1 x c ) p(z=1|y=1,\boldsymbol{x})\approx q(z=1|\boldsymbol{x}_c) .引入一个辅助的特征空间 X c X_c ,相关的样本空间为 S c S_c 。通过这种方式,模型在空间 X c X_c 和训练集 S c S_c 上拟合 q ( z = 1 x c ) q(z=1|\boldsymbol{x}_c) , 然后在 X X 空间上预测 q ( z = 1 x ) q(z=1|\boldsymbol{x}) ,并假设对于任何样本 ( x , y = 1 ) , x X (\boldsymbol{x},y=1),x\in X 都满足 x X c x\in X_c 。这个假设十分的牵强。实际上 X c X_c X X 的一个子集。并且,缺少足够的采样的情况下, X c X_c X X 的差异非常大。这种问题会导致分布漂移问题,并严重的影响模型的泛化能力。

  • 数据稀疏:传统的CVR模型在点击数据 S c S_c 上训练。点击时间本身就比较少,导致点击数据量比较稀疏。一般比CTR的训练数据少1-3个数量级。

2.3 ESMM

如上图2,ESMM借鉴了多任务学习[9]的思想,引入了CTR和CTCVR两个辅助任务。

整体上,ESMM同事输出pCTR,pCVR和pCTCVR.主要有两个子网络组成:左边的CVR网络和右边的CTR网络。两个子网络都采用BASE网络结构。

ESMM在全局空间建模CVR模型:

p ( z = 1 y = 1 , x ) = p ( z = 1 , y = 1 x ) p ( y = 1 x ) p(z=1|y=1,\boldsymbol{x})=\frac{p(z=1,y=1|\boldsymbol{x})}{p(y=1|\boldsymbol{x})}

其中 p ( y = 1 , z = 1 x ) p(y=1,z=1|\boldsymbol{x}) p ( y = 1 x ) p(y=1|\boldsymbol{x}) 都是在集合 S S 上训练。为了避免除法的数值计算不稳定性,ESMM将pCVR作为中间将上述等式转化了乘法形式。

ESMM的损失函数包含CTR和CTCVR两部分:

L ( θ c v r , θ c t r ) = i = 1 N l ( y i , f ( x i ; θ c t r ) ) + i = 1 N l ( y i & z i , f ( x i ; θ c t r ) × f ( x i ; θ c v r ) ) L(\theta_{cvr}, \theta_{ctr})=\sum_{i=1}^Nl(y_i, f(\boldsymbol{x}_i;\theta_{ctr}))+\sum_{i=1}^Nl(y_i\&z_i,f(\boldsymbol{x}_i;\theta_{ctr})\times f(\boldsymbol{x}_i;\theta_{cvr}))

其中 θ c t r \theta_{ctr} θ c v r \theta_{cvr} 分别表示CTR和CVR网络参数。 l l 表示交叉墒损失函数。

并且在ESMM模型中,CVR与CTR网络共享embeding层参数,这种参数迁移的方式显著降低了CVR模型的数据稀疏问题。另外,ESMM中子网络可以替换为其他的模型[2,3]。

发布了52 篇原创文章 · 获赞 105 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/gaofeipaopaotang/article/details/100162986