摘要
在工业级应用排序系统像推荐和广告中,准确地估计后验转化率(CVR)是非常重要的。传统的CVR建模采用了流行的深度学习方法,并且取得了非常不错的效果。但是在实际应用中遇到了一些特定任务问题,使得CVR建模充满挑战。例如,传统的CVR模型利用点击的曝光数据训练,然后利用所有的曝光数据来推断。这就会产生样本选择偏差问题(Sample Selection Bias),此外还存在一个严重的数据稀疏问题,使得模型拟合非常困难。在本文中,我们用一种新的视角利用用户行为序列模式来建模CVR,如曝光 -> 点击 -> 转化。提出的 Entire Space Multi-task Model(ESMM) 可以同时缓解这两个问题通过 i) 直接对整个空间建模CVR, ii) 利用一个特征表征迁移学习策略。在Taobao推荐系统的流水log数据集上的实验结果表明,ESMM明显优于竞争方法。我们还发布了该数据集的采样版本,以便将来进行研究。据我们所知,这是第一个公开的数据集,其中包含的样本与点击和转换标签顺序相关的CVR建模。
1、简介
转化率预估在工业级应用的排序系统中是一项非常重要的任务,像在线广告和推荐系统,例如在OCPC(optimized cost-per-click) 中预估CVR来调整每次点击广告的价格,让平台和广告商达到共赢。同样也是在推荐系统中平衡用户点击行为和购买行为的重要因子。
本文重点是关注CVR预估,以电商为例,给定一些物品,用户可能会对其感兴趣的某几个进行点击,然后可能会选择其中一个或多个继续进行购买,也就是说,对于用户来讲,会有曝光->点击->转化,这样一个行为序列,CVR问题就是来估计后验的点击转化。
一般来说,CVR问题可以用类似CTR预估的方法来解决,像深度模型。但是有一些特定任务的问题,使得CVR变得不太容易解决,主要就是sample selection bias(SSB) 样本选择偏差和data sparsity(DS) 数据稀疏问题。在实际场景中,用于训练CVR模型的数据要远少于CTR模型数据。当前也有不少方法提出来解决SSB和DS问题,有的也取得了不错的效果,但是目前还没有方法来探索行为序列信息。
本文充分利用了用户行为序列,我们提出了一个新的方法叫 Entire Space Multi-task Model(ESMM),可以同时缓解SSB和DS问题,ESMM并不是直接预测pCVR,而是由两个任务组成分别输出pCTR和pCVR,利用一个辅助任务,将pCVR作为中间变量输出,真正预测的值是pCTCVR,其中pCTCVR = pCTR * pCVR,因为pCTR和pCTCVR都是利用全空间曝光样本来估计,因此pCVR也是由全空间样本得到的,那么SSB问题就缓解了。除此之外,CVR网络的特征表征参数和CTR网络是共享的,后者有更丰富的训练样本,这种参数迁移学习也缓解了DS问题。
2、提出方法
2.1 概念
假设观测到的数据集可以表示为
S
=
{
(
x
i
,
y
i
→
z
i
)
}
∣
i
=
1
N
S=\{(x_i,y_i\rightarrow z_i)\}|_{i=1}^{N}
S={(xi,yi→zi)}∣i=1N,其中样本从域
X
×
Y
×
Z
\mathcal{X}\times\mathcal{Y}\times\mathcal{Z}
X×Y×Z的一个分布得到,其中
X
\mathcal{X}
X 是特征空间,
Y
,
Z
\mathcal{Y,Z}
Y,Z 是label空间,
N
N
N是总的曝光数。
x
x
x 是观测到的曝光向量,通常是一个多域的高维稀疏向量。
y
,
z
y,z
y,z 是二元标签值,
y
=
1
y=1
y=1 或者
z
=
1
z=1
z=1表示是否点击或者转化。
y
→
z
y\rightarrow z
y→z 揭示了点击事件和转化的序列依赖性,也就是说转化发生的时候一定有对应的点击先发生。
后验点击CVR建模用来估计pCVR =
p
(
z
=
1
∣
y
=
1
,
x
)
p(z=1|y=1,x)
p(z=1∣y=1,x),同两个概率值密切相关,pCTR =
p
(
y
=
1
∣
x
)
p(y=1|x)
p(y=1∣x)和pCTCVR =
p
(
z
=
1
,
y
=
1
∣
x
)
p(z=1,y=1|x)
p(z=1,y=1∣x),
p
(
y
=
1
,
z
=
1
∣
x
)
⏟
p
C
T
C
V
R
=
p
(
z
=
1
∣
y
=
1
,
x
)
⏟
p
C
V
R
∗
p
(
y
=
1
∣
x
)
⏟
p
C
T
R
(1)
\underbrace{p(y=1,z=1|x)}_{pCTCVR}=\underbrace{p(z=1|y=1,x)}_{pCVR}*\underbrace{p(y=1|x)}_{pCTR}\tag{1}
pCTCVR
p(y=1,z=1∣x)=pCVR
p(z=1∣y=1,x)∗pCTR
p(y=1∣x)(1)
2.2 CVR建模与挑战
现在主流的CVR模型基本都是深度网络模型,embedding+MLP结构。如图2左侧模型所示,作为我们的 base模型
常见的CVR模型是直接对后延转移概率
p
(
z
=
1
∣
y
=
1
,
x
)
p(z=1|y=1,x)
p(z=1∣y=1,x) 建模,利用已经点击的曝光数据来训练,即
S
c
=
{
(
x
j
,
z
j
)
∣
y
j
=
1
}
∣
j
=
1
M
S_c=\{(x_j,z_j)|y_j=1\}|_{j=1}^{M}
Sc={(xj,zj)∣yj=1}∣j=1M,
M
M
M 是所有点击的曝光数据,显然
S
c
S_c
Sc 是
S
S
S 的一个子集,在
S
c
S_c
Sc 中,有点击但没转化的曝光数据作为负样本,有转化的作为正样本,这样就引发了下面两个问题
Sample selection bias(SSB)
实际中,通常CVR模型会通过引入一个附属的特征空间
X
c
\mathcal{X_c}
Xc,将
p
(
z
=
1
∣
y
=
1
,
x
)
≈
p
(
z
=
1
∣
x
c
)
p(z=1|y=1,x)\approx p(z=1|x_c)
p(z=1∣y=1,x)≈p(z=1∣xc),
X
c
\mathcal{X_c}
Xc 表示和
S
c
S_c
Sc 相关的一个有限制的空间,
∀
x
c
∈
X
c
\forall x_c \in \mathcal{X_c}
∀xc∈Xc,存在一对
(
x
=
x
c
,
y
x
=
1
)
(x=x_c,y_x=1)
(x=xc,yx=1),其中
x
∈
X
x\in\mathcal{X}
x∈X,
y
x
y_x
yx 是
x
x
x 的一个点击标签,此时,
q
(
z
=
1
∣
x
c
)
q(z=1|x_c)
q(z=1∣xc) 是在整个有点击的样本集
S
c
S_c
Sc 中对整个空间
X
c
\mathcal{X_c}
Xc 来训练。而在预测阶段则是在整个特征空间
X
\mathcal{X}
X 上来完成,这里有一个假设条件,对任意的
(
x
,
y
x
=
1
)
(x,y_x=1)
(x,yx=1),其中
x
∈
X
x\in\mathcal{X}
x∈X,则
x
∈
X
c
x\in\mathcal{X_c}
x∈Xc,由于
X
c
\mathcal{X_c}
Xc 只是
X
\mathcal{X}
X 的一个子集,因此这个假设很可能不成立。如果没有足够的样本,
X
c
\mathcal{X_c}
Xc 和
X
\mathcal{X}
X 两个空间可能差异非常大。
Data sparsity(DS)
常用的CVR模型用
S
c
S_c
Sc 的点击样本来训练,但是由于点击数据的发生概率小,导致CVR的训练数据非常稀疏,而CVR的训练数据量级大约比CTR训练数据要小1-3个数量级。
除了上面提到的两个问题外还有像反馈的延迟性问题,但本文不重点关注这个。
2.3 Entire Sparsity Multi-Task Model
ESMM模型架构如上图所示,灵感来源于多任务学习[1],充分利用了用户行为序列。模型引入了CTR和CTCVR两个附属任务并且同时缓解了前面提到的CVR建模的两个问题。
整体来说,对于一个给定的曝光,ESMM模型会输出pCTR,pCVR,pCTCVR三个值,可以看到,模型分两部分组成,左右两个都是base模型,结构完全相同,并且底部共享一部分特征。
全空间建模
等式(1)可以转换成等式(2)
p
(
z
=
1
∣
y
=
1
,
x
)
=
p
(
y
=
1
,
z
=
1
∣
x
)
p
(
y
=
1
∣
x
)
(2)
p(z=1|y=1,x)=\frac{p(y=1,z=1|x)}{p(y=1|x)}\tag{2}
p(z=1∣y=1,x)=p(y=1∣x)p(y=1,z=1∣x)(2)这里
p
(
y
=
1
,
z
=
1
∣
x
)
p(y=1,z=1|x)
p(y=1,z=1∣x) 和
p
(
y
=
1
∣
x
)
p(y=1|x)
p(y=1∣x)可以通过曝光样本计算得到。等式 (2) 可以看出,我们可以直接估计pCTR,pCTCVR,然后相除得到pCVR,它直接解决了样本选择偏差问题。看起来似乎可以分别训练pCTR和pCTCVR模型来得到pCVR,但是pCVR是一个非常小的数值,直接这样计算容易引起数值不稳定。ESMM通过乘法形式避免了这种情况,在ESMM中,pCVR只是一个中间变量,由等式(1)约束,pCTR和pCTCVR是ESSM模型在整个空间估计的两个主要因子,乘法形式使三个相关联且受共同训练的估计量能够利用数据的顺序模式并在训练过程中相互交流信息。此外,这样可以保证pCVR的值落在 [0,1] 内,而直接用除法可能到时结果大于1。
ESMM的损失函数定义如下,由pCTR和pCTCVR两个任务的损失项组成,这些损失通过全部的曝光样本计算得到,其中没包含CVR任务。 L ( θ c v r , θ c t r ) = ∑ i = 1 N l ( y i , f ( x i ; θ c v r ) ) + ∑ i = 1 N l ( y i & z i , f ( x i ; θ c t r ) × f ( x i ; θ c v r ) ) (3) L(\theta_{cvr},\theta_{ctr})=\sum_{i=1}^{N}l(y_i, f(x_i;\theta_{cvr}))+\sum_{i=1}^{N}l(y_i\&z_i, f(x_i;\theta_{ctr}) \times f(x_i;\theta_{cvr})) \tag{3} L(θcvr,θctr)=i=1∑Nl(yi,f(xi;θcvr))+i=1∑Nl(yi&zi,f(xi;θctr)×f(xi;θcvr))(3) 其中 θ c t r , θ c v r \theta_{ctr},\theta_{cvr} θctr,θcvr 分别是CTR、CVR任务的参数, l ( ⋅ ) l(\cdot) l(⋅) 是交叉熵损失函数,等式 (3) 将 y → z y\rightarrow z y→z分解为两个部分, y , y & z y, y\&z y,y&z,实际上,它利用了点击和转化标签的顺序依赖性。
特征表征转化
正如前面 2.2 节介绍的,embedding layer 将大规模稀疏的输入映射到一个低维表征向量,它占据了深度网络多大部分参数,并且需要大量的样本来训练。在ESMM里,CVR网络的表征字典和CTR网络是共享的,它遵循特征表示转移学习范例。 对CTR任务的所有曝光数据进行训练的样本相对比CVR任务丰富得多。 此参数共享机制使ESMM中的CVR网络能够从未点击的曝光中学习,并为缓解数据稀疏性问题提供了很大的帮助。
3、实验
base模型基本结构:i) ReLU激活函数,ii) embedding 向量维度是18,iii) MLP网络是 360
×
\times
× 200
×
\times
× 80
×
\times
× 2,iv) 使用adam 来求解,参数为
β
1
=
0.9
,
β
2
=
0.999
,
ϵ
=
1
0
−
8
\beta_1=0.9,\beta_2=0.999,\epsilon=10^{-8}
β1=0.9,β2=0.999,ϵ=10−8
参考资料:
[1] Zhou G., Song C., et al. 2017. Deep Interest Network for Click-Through Rate
Prediction. arXiv preprint arXiv:1706.06978 (2017).