深度模型(十):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) pCVR=p(conversionclick,impression)

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

深度模型(十):ESMM_第1张图片

传统的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 S={(xi,yizi)}i=1N, 样本 ( x , y , → z ) (\boldsymbol{x},y,\rightarrow z) (x,y,z)按照某种分布 D D D采样自域 X × Y × Z X\times Y\times Z X×Y×Z。其中 X X X为特征空间, Y , Z Y,Z Y,Z为标记空间,N为样本数量。 x \boldsymbol x x表示观察样本的特征向量,通常是高维的稀疏向量[8]. y , z y,z y,z是二值标签,表示是否点击或是否转化。

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

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}) p(y=1,z=1x)=p(z=1y=1,x)p(y=1x)

2.2 CVR建模和挑战

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

传统的CVR模型直接估计 p ( z = 1 ∣ y = 1 , x ) p(z=1|y=1,\boldsymbol{x}) p(z=1y=1,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 Sc={(xj),yjzj}j=1M上训练。其中 M M M表示点击数据的数量。显然, S c S_c Sc S S S的一个子集。 S c S_c Sc当中没有转化的样本作为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) p(z=1y=1,x)q(z=1xc).引入一个辅助的特征空间 X c X_c Xc,相关的样本空间为 S c S_c Sc。通过这种方式,模型在空间 X c X_c Xc和训练集 S c S_c Sc上拟合 q ( z = 1 ∣ x c ) q(z=1|\boldsymbol{x}_c) q(z=1xc), 然后在 X X X空间上预测 q ( z = 1 ∣ x ) q(z=1|\boldsymbol{x}) q(z=1x),并假设对于任何样本 ( x , y = 1 ) , x ∈ X (\boldsymbol{x},y=1),x\in X (x,y=1),xX都满足 x ∈ X c x\in X_c xXc。这个假设十分的牵强。实际上 X c X_c Xc X X X的一个子集。并且,缺少足够的采样的情况下, X c X_c Xc X X X的差异非常大。这种问题会导致分布漂移问题,并严重的影响模型的泛化能力。

  • 数据稀疏:传统的CVR模型在点击数据 S c S_c Sc上训练。点击时间本身就比较少,导致点击数据量比较稀疏。一般比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(z=1y=1,x)=p(y=1x)p(z=1,y=1x)

其中 p ( y = 1 , z = 1 ∣ x ) p(y=1,z=1|\boldsymbol{x}) p(y=1,z=1x) p ( y = 1 ∣ x ) p(y=1|\boldsymbol{x}) p(y=1x)都是在集合 S 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})) L(θcvr,θctr)=i=1Nl(yi,f(xi;θctr))+i=1Nl(yi&zi,f(xi;θctr)×f(xi;θcvr))

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

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

你可能感兴趣的:(深度模型(十):ESMM)