阿里在《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》中提出了ESMM来解决CVR的建模问题:
摘要
在工业应用中,如推荐和广告,准确估计点击后转化率(post-click conversion rate:CVR)对于排序系统至关重要。【传统的CVR建模】使用流行的深度学习方法并实现了最先进的性能。然而,在实践中遇到了几个任务特定(task-specific)的问题,使CVR建模具有挑战性。例如,传统的CVR模型是通过点击样本进行训练的,而在整个空间中进行推理时,则使用所有曝光样本。这会导致样本选择偏差(sample selection bias)问题。此外,存在极端的数据稀疏问题,使得模型拟合变得非常困难。在本文中,我们通过充分利用用户行为的顺序模式,即曝光(impression)→点击(click)→转化(conversion),以全新的视角对CVR进行建模。所提出的整体空间多任务模型(ESMM)可以通过以下两种方式来同时消除这两个问题:
- i)直接在整个空间上建模CVR
- ii)采用特征表示迁移学习(feature representation transfer learning)策略
从淘宝推荐系统的流量日志收集的数据集上的实验表明,ESMM显著优于其它方法。我们还发布了这个数据集的抽样版本,以便未来的研究。据我们所知,这是第一个包含点击和转化标签顺序相关样本的公共数据集,用于CVR建模。
1.介绍
转化率(CVR)预测是工业应用中排名系统的重要任务,例如在线广告和推荐等。例如,在优化每次点击成本(OCPC)广告中,预测的CVR用于调整每次点击的出价,以实现平台和广告商的双赢[3]。它也是推荐系统中平衡用户点击偏好和购买偏好的重要因素。
本文重点关注点击后CVR预估任务。为了简化讨论,我们以电子商务网站中推荐系统中的CVR建模为例。给定推荐的商品,用户可能会点击感兴趣的商品,并进一步购买其中的一些商品。换句话说,用户行为遵循曝光→点击→转化的顺序模式。因此,CVR建模是指预估点击后的转化率,即$pCVR=p(conversion \mid click, impression)$。
通常,【传统的CVR建模】方法采用类似于点击率(CTR)预估任务中开发的技术,例如最近流行的深度网络[1,2]。然而,存在一些任务特定的问题,使CVR建模具有挑战性。其中,我们报告了我们在实践中遇到的两个关键问题:
- i)样本选择偏差(SSB)问题[9]。如图1所示,传统的CVR模型是在由有点击的曝光(clicked impressions)组成的数据集上进行训练的,而在整个空间中进行推理时,则使用所有曝光样本。SSB问题会损害训练模型的泛化性能。
- ii)数据稀疏(DS)问题。在实践中,用于训练CVR模型的数据通常比CTR任务少得多。训练数据的稀疏性使CVR模型拟合变得非常困难。
图1
有几项研究试图解决这些挑战:
- 在[4]中建立了不同特征的分层估计器,并与逻辑回归模型结合使用以解决DS问题。然而,它依赖于先验知识来构建分层结构,这在拥有数千万用户和商品的推荐系统中难以应用。
- 过采样方法[8]复制了少数类样本以增加训练数据,但可能会导致过拟合。所有未点击的印象作为负样本的随机采样策略(AMAN)[5]可以通过引入未观察到的例子在一定程度上消除SSB问题,但会导致持续低估的预测。
- 无偏方法[7]通过拒绝抽样从观察到的样本中拟合真正的潜在分布来解决CTR建模中的SSB问题。但是,当通过拒绝概率的除法加权样本时,可能会遇到数值不稳定性。
总之,在CVR建模场景中,SSB和DS问题都没有得到很好的解决,以上方法也没有利用顺序行为的信息。
在本文中,通过充分利用用户行为的顺序模式,我们提出了一种名为整体空间多任务模型(ESMM)的新方法,能够同时消除SSB和DS问题。在ESMM中,引入了预测曝光后点击率(post-view CTR)和曝光后点击转化率(post-view CTCVR)的两个辅助任务。ESMM不直接使用点击的曝光样本来训练CVR模型,而是将pCVR视为中间变量,乘以pCTR等于pCTCVR。pCTCVR和pCTR都是使用所有曝光的样本在整个空间上估计的,因此得到的pCVR也适用于整个空间。这表明SSB问题被消除了。此外,CVR网络的特征表示参数与CTR网络共享。后者使用更丰富的样本进行训练。这种参数转移学习有助于显着缓解DS问题。
对于这项工作,我们从淘宝的推荐系统中收集了流量日志。完整的数据集包括89亿个带有点击和转化顺序标签的样本。进行了仔细的实验。ESMM始终优于竞争模型,这证明了所提出方法的有效性。我们还发布了我们的数据集,以供该领域的未来研究使用。
2.提出的方法
我们假设观察到的数据集为:
\[S = \lbrace (x_i,y_i \rightarrow z_i) \rbrace \mid_{i=1}^N\]其中:
- 样本(x,y → z)是从具有域X×Y×Z的分布D中抽取的,其中X是特征空间,Y和Z是标签空间,N是曝光的总数
- x表示观察到的曝光的特征向量,通常是一个高维稀疏向量,具有多个字段,例如用户字段、商品字段等
- y和z是二元label,其中y = 1或z = 1表示是否发生了点击或转化事件
- y → z表示了点击和转化标签的顺序依赖性,即在转化事件发生时,总会有先前的点击
Post-click CVR建模的目标是:估计概率:
\[pCVR = p(z = 1 \mid y = 1, x)\]两个相关的概率是:
- post-view点击率(CTR):$pCTR = p(z = 1 \mid x)$
- post-view点击转化率(CTCVR):$pCTCVR = p(y = 1, z = 1 \mid x)$
在给定曝光x的情况下,这些概率遵循等式(1):
\[\underbrace{p(y = 1, z = 1|x)}_{pCTCVR} = \underbrace{p(y = 1|x)}_{pCTR} \times \underbrace{p(z = 1|y = 1, x)}_{pCVR}\]…(1)
2.2 CVR建模与挑战
最近,基于深度学习的方法已经被提出用于CVR建模,取得了很好的效果。其中大多数方法都遵循类似的Embedding & MLP 网络架构,如[2]中所介绍的。图2的左侧说明了这种架构,为了简单起见,我们将其称为BASE模型。
图2 ESMM模型的CVR建模架构概述。在ESMM模型中,引入了CTR和CTCVR两个辅助任务,这两个任务有助于:i)在整个输入空间中建模CVR,ii)提供特征表示的迁移学习。ESMM模型主要由两个子网络组成:左侧是CVR网络,右侧是CTR网络。CTR网络和CVR网络的嵌入参数是共享的。CTCVR的输出是CTR和CVR网络输出的乘积。
简而言之,【传统的CVR建模】方法直接估计点击后(post-click)转化率:
\[p(z = 1 \mid y = 1, x)\]他们(传统的CVR模型)使用已点击的曝光样本来训练模型,即:
\[Sc = \lbrace (x_j,z_j) | y_j = 1 \rbrace \mid_{j=1}^M\]其中:
- M是所有曝光中的点击次数。
- $S_c$是S的一个子集。
注意,在$S_c$中,
- (点击过的)曝光如果没有转化,会被视为负样本
- 有转化的曝光(也点击过)被视为正样本
在实践中,CVR建模遇到了几个任务特定的问题,使其具有挑战性。
1.样本选择偏差(SSB)[9]
事实上,【传统的CVR建模】通过引入辅助特征空间$X_c$,使得
\[p(z = 1|y = 1, x) ≈ q(z = 1|x_c)\]$X_c$表示与$S_c$相关的$limited^2$空间。对于$X_c$中的每个$x_c$,都存在一个对$(x = x_c,y_x = 1)$:
- 其中 $x \in X$
- $y_x$是x的点击label
通过这种方式,使用$S_c$的点击样本在空间$X_c$上训练$q(z = 1 \mid x_c)$。在推理阶段,假设对于任何$(x,y_x = 1)$对,其中:$x \in X$,x属于$X_c$,计算整个空间X上的$p(z = 1 \mid y = 1, x)$的预测值为$q(z = 1 \mid x)$。这个假设有很大的概率会被违反,因为$X_c$只是整个空间X的一小部分。它受到极少出现的点击事件的随机性的严重影响,其概率在空间X的不同区域中变化。此外,在实践中,如果没有足够的观察,空间$X_c$可能与X非常不同。这会导致训练样本的分布从真正的潜在分布中漂移,并损害CVR建模的泛化性能。
数据稀疏性(DS)
传统方法使用$S_c$的点击样本来训练CVR模型。点击事件的罕见发生导致CVR建模的训练数据极为稀疏。直观地说,它通常比相关的CTR任务少1-3个数量级,后者使用所有曝光的S数据集进行训练。表1显示了我们实验数据集的统计信息,其中CVR任务的样本数仅为CTR任务的4%。
2.3 Entire Space Multi-Task Model
等式(1)给我们提供了线索,可以转化为等式(2):
\[p(z = 1|y = 1, x) = p(y = 1, z = 1|x) p(y = 1|x)\]…(2)
这里,$p(y = 1, z = 1 \mid x)$和$ p(y = 1 \mid x)$是在包含所有曝光的S数据集上建模的。等式(2)告诉我们,通过估计pCTCVR和pCTR,可以在整个输入空间X上推导出pCVR,从而直接解决了样本选择偏差问题。通过单独训练模型分别估计pCTR和pCTCVR,并通过等式(2)获得pCVR似乎很容易,我们将其简称为DIVISION。然而,在实践中,pCTR是一个很小的数字,除以它会引起数值不稳定。ESMM通过乘法形式避免了这个问题。在ESMM中,pCVR只是一个中间变量,受方程(1)的约束。pCTR和pCTCVR是ESMM实际上在整个空间上估计的主要因素。乘法形式使得这三个相关的联合训练估计器能够利用数据的顺序模式并在训练过程中相互传递信息。此外,它确保估计的pCVR值在[0,1]范围内,在DIVISION方法中可能超过1。
ESMM的loss函数定义为等式(3)。它由来自CTR和CTCVR任务的两个loss项组成,这些loss项在所有曝光的样本上计算,而不使用CVR任务的loss。
\[L(\theta_{cvr}, \theta_{ctr}) = \sum\limits_{i=1}^N l(y_i, f(x_i; \theta_{ctr})) +\sum\limits_{i=1}^N l (y_i \& z_i, f(x_i; \theta_{ctr}) \times f(x_i; \theta_{cvr}))\]…(3)
其中:
- $\theta_{ctr}$和$\theta_{cvr}$是CTR和CVR网络的参数
- $l(·)$是交叉熵损失函数
从数学上讲,方程(3)将y → z分解为两部分:y和y&z,实际上利用了点击和转化标签的顺序依赖性。
特征表示转移(Feature representation transfer)。如第2.2节所介绍的,嵌入层将大规模稀疏输入映射为低维表示向量。它贡献了深度网络的大多数参数,学习需要大量的训练样本。在ESMM中,CVR网络的嵌入字典与CTR网络共享。它遵循特征表示转移学习范式。CTR任务的所有曝光训练样本相对于CVR任务要丰富得多。这种参数共享机制使得ESMM中的CVR网络能够从未点击的曝光中学习,并为缓解数据稀疏性问题提供了很大的帮助。
需要注意的是,ESMM中的子网络可以用一些最近开发的模型[1,2]替代,这可能会获得更好的性能。由于篇幅限制,我们省略了这部分内容,重点是解决CVR建模中实际遇到的挑战。
其它
略