经典论文阅读(四)--ESMM(阿里Entire Space Multi-Task Model)

1. Motivation

在诸如信息检索、推荐系统、在线广告投放系统等工业级的应用中准确预估转化率(post-click conversion rate,CVR)是至关重要的。例如,在电商平台的推荐系统中,最大化场景商品交易总额(GMV)是平台的重要目标之一,而GMV可以拆解为流量×点击率×转化率×客单价,可见转化率是优化目标的重要因子;从用户体验的角度来说准确预估的转换率被用来平衡用户的点击偏好与购买偏好。

user actions follow a sequential pattern of impression(曝光) → click(点击) → conversion(转化、购买)

传统的CVR预估任务通常采用类似于CTR预估的技术,比如最近很流行的深度学习模型。然而,有别于CTR预估任务,CVR预估任务面临一些特有的挑战:1) 样本选择偏差;2) 训练数据稀疏;3) 延迟反馈等。

SSB\textbf{SSB}问题:Sample Selection Bias。传统的CVR模型在点击过的曝光样本上训练,但是推断却是在所有的曝光样本上进行的。点击样本占的比例通常很小(4%左右)。SSB\textbf{SSB} 问题损伤了训练模型的泛化性能。

DS\textbf{DS}问题:Data Sparsity。实践中,采集到的用来训练CVR模型的数据通常远远少于CTR任务的。训练数据的稀疏性使CVR模型的训练比较困难。

过采样方法拷贝rare class的样本来减轻数据稀疏性,但是对采样率很敏感。
All Missing As Negative方法使用随机采样策略来选出未点击的曝光作为负样本,这可以解决SSB问题,但是造成了一直偏低的预测结果。
Unbiased 方法针对SSB问题,通过有抛弃的抽样从观察样本中拟合真实分布。然而,它在通过rejection概率来划分样本时会出现数值不稳定的情况。

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

2. Entire Space Multi-task Model

Post-click CVR模型用来估计这个概率:pCVR=p(z=1y=1,x)pCVR = p(z=1|y=1,x)。两个相关的概率是: pCTR=p(z=1x)pCTR=p(z=1|x)pCTCVR=p(y=1,z=1x)pCTCVR=p(y=1,z=1|x)。pCTR是从曝光到点击的概率,pCTCVR是从曝光到点击且转化的概率。
他们之间的关系:
     p(y=1,z=1x)=p(y=1x)×p(z=1y=1,x)p(y=1,z=1|x)=p(y=1|x)\times p(z=1|y=1,x)
对应:
pCTCVR = pCTR * pCVR 或
p(conversion=1,click=1 |impression) = p(click=1 | impression) * p(conversion=1|click=1,impression)

目前有很多深度学习的方法用来对CVR建模,大多采用类似的Embedding&MLP网络结构。
这种结构如下图左侧所示,作为我们的BASE model,以便简化问题。

经典论文阅读(四)--ESMM(阿里Entire Space Multi-Task Model)

总之,传统的CVR建模方法直接估计post-click转化率: p(z=1y=1,x)p(z=1|y=1,x)。这些模型用点击样本来训练,比如:
Sc=(xj,zj)yj=1,j=1toM\large S_c = {(x_j,z_j)|y_j=1}, j=1 to M,其中M是所有曝光的点击数。显然,ScS_cS\large S的子集。
点击过但是没有转化的曝光被视为负样本,有转化的曝光(也点击过)作为正样本。实践中,CVR建模遇到几个挑战:
SSB和DS。

Entire Space Multi-task Model

提出的ESMM模型如上图所示,充分利用了用户行为的序列模式。ESMM借鉴了多任务学习,引入了两个辅助任务CVR和CTCVR来预估上述问题。ESMM同时输出pCTR, pCVR和pCTCVR。它包含两个自网络:
CVR网络如图左侧,CTR网络在图的右侧所示,然后CTCVR使用了这两个子网输出的乘积。

CVR和CTR网络都使用和Base Model一样的网络结构。图中粉色和绿色高亮部分显示了ESMM与传统方法的不同。

对整个空间建模

等式1 pCTCVR = pCTR*pCVR 给我们了提示,可以转换为下面的等式2:
       p(z=1y=1,x)=p(y=1,z=1x)p(y=1x)(2)p(z=1|y=1,x)=\dfrac{p(y=1,z=1|x)}{p(y=1|x)} \qquad\qquad (2)
这里分子和分母是对全部曝光的样本空间建模,那么等式2告诉我们,pCVR可以由全部输入空间的X得到(pCTCVR/pCTR),
这就直接解决了SSB问题
但是pCTR是一个很小的数,除以它会产生数值不稳定(numberical instability)。ESMM通过乘法的方式避免整个问题,
pCVR只是作为由等式1约束的一个中间变量,pCTR和pCTCVR才是实际用来预估全空间的主要的因子。
相乘的形式保证了预估值pCVR在[0,1]的范围内,而相除的方法可能会有超过1的结果。

ESMM 将 pCVR 作为一个中间变量,并将其乘以 pCTR 得到 pCTCVR,而不是直接基于有偏的点击样本的子集进行 CVR 模型训练。pCTCVR 和 pCTR 是在全空间中以所有展现样本估计的,因此衍生的 pCVR 也适用于全空间并且缓解了 SSB\textbf{SSB} 问题。此外,CVR 任务的特征表示网络与 CTR 任务共享,后者用更丰富的样本进行训练。这种参数共享遵循特征表示迁移学习范式,并为缓解 DS\textbf{DS} 问题提供了显著的帮助。

损失函数

pCTR 和 pCTCVR 是 ESMM 在全空间实际预估的变量。这种乘法形式使得三个关联和共同训练的分类器能够在训练期间利用数据的序列模式并相互传递信息。 ESMM的损失函数如下,它由 CTR 和 CTCVR 任务中的两个损失项组成,这些任务通过所有展现次数的样本进行计算。

L(θcvr,θctr)=i=1Nl(yi,f(xi;θctr))+i=1Nl(yi&zi,f(xi;θctr)×f(xi;θcvr))\begin{aligned} L(\theta_{cvr}, \theta_{ctr}) &= \sum\limits_{i=1}^N l(y_i, f(\textbf{x}_i;\theta_{ctr})) \\ &+ \sum\limits_{i=1}^N l(y_i\&z_i, f(\textbf{x}_i;\theta_{ctr}) \times f(\textbf{x}_i;\theta_{cvr})) \end{aligned}

其中θctr\theta_{ctr}θcvr\theta_{cvr}是CTR和CVR网络的参数,l()l(\cdot)是交叉熵损失函数。
在数学上,公式(3) 将 yzy \rightarrow z 分解为两部分对应于 CTR 和 CTCVR 任务的标签,构造训练数据集如下: 对于CTR任务,单击的展现被标记为 y = 1,否则为 y = 0;
对于 CTCVR 任务,同时发生点击和转化事件的展现被标记为 y&z=1y \& z = 1 ,否则 y&z=0y \& z = 0,y 和 y&zy \& z ,这实际上是利用点击和转化标签的序列依赖性。

特征表示的迁移

处理DS问题。

正如 BASE 模型部分介绍的那样,Embedding Layer 将大规模稀疏输入映射到低维稠密向量中,它占据深度网络的大部分参数,需要大量的样本来进行训练。在 ESMM 中,CVR 网络的 Embedding 参数与 CTR 任务共享。它遵循特征表示转化学习范式。CTR 任务所有展现次数的样本规模比 CVR 任务要丰富多个量级。该参数共享机制使 ESMM 中的 CVR 网络可以从未点击的展现中学习,缓解了数据稀疏性问题

结构扩展性

它主要由两个子网组成:CVR 网络在图的左边部分和右边部分的 CTR 网络。 CVR 和 CTR 网络都采用与 BASE 模型相同的结构。 CTCVR 将 CVR 和 CTR 网络的输出结果相乘作为输出。其中每个子网络结果可以被替代为任意的分类预估网络。

3. 实验效果