论文地址:Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate
CVR \text{CVR} CVR预测是在线广告、推荐系统等工业应用中排名系统的一项重要任务。例如,在 OCPC \text{OCPC} OCPC广告中使用的 pCVR \text{pCVR} pCVR来调整每次点击的bid价格,从而实现平台和广告主的双赢。这也是推荐系统中平衡用户点击偏好和购买偏好的重要因素。
在本文中,主要专注在
post-click CVR
\text{post-click CVR}
post-click CVR估计中。为了简化讨论,这里使用电商推荐系统中的
CVR
\text{CVR}
CVR作为例子。给定推荐的物品,用户可能会点击感兴趣的其中一个,并进一步买其中的一个。换句话说,用户的行为遵循下面的模式:曝光(impression)→点击(click)→转化(conversion)。在这种方式中,
CVR
\text{CVR}
CVR建模是指预估post-click
转化率的任务,即
pCVR
=
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
)
\text{pCVR}=p(conversion|click,impression)
pCVR=p(conversion∣click,impression)。
一般来说,传统的 CVR \text{CVR} CVR建模方法会使用与 CTR \text{CTR} CTR预测任务类似的技术。然而,存在一些任务相关的问题,使得 CVR \text{CVR} CVR建模存在挑战。在这些问题中,这里主要介绍在真实实践中遇到的两个主要问题:(1) 样本选择偏差 (sample selection bias,SSB) \text{(sample selection bias,SSB)} (sample selection bias,SSB)。如上图所示,传统的 CVR \text{CVR} CVR模型会在点击的曝光数据上训练,但是训练好的模型会被用于在所有曝光样本的全空间中进行推断。 SSB \text{SSB} SSB问题伤害了训练模型的泛化效果;(2) 数据稀疏 (data sparsity,DS) \text{(data sparsity,DS)} (data sparsity,DS)问题。在实践中,训练 CVR \text{CVR} CVR模型的数据通常少于 CTR \text{CTR} CTR任务。训练数据的稀疏性使得 CVR \text{CVR} CVR模型拟合更加的困难。
在本文中,通过利用用户行为的序列模式,作者提出了一个称为 ESMM(Entire Space Multi-task Model) \text{ESMM(Entire Space Multi-task Model)} ESMM(Entire Space Multi-task Model)的新方法,其能够同时解决 SSB \text{SSB} SSB和 DS \text{DS} DS问题。在 ESMM \text{ESMM} ESMM中,引入了 post-view CTR \text{post-view CTR} post-view CTR和 post-view CTCVR \text{post-view CTCVR} post-view CTCVR两个辅助任务。相比于在点击曝光数据上直接训练 CVR \text{CVR} CVR模型, ESMM \text{ESMM} ESMM模型将 pCVR \text{pCVR} pCVR看作是与 pCTR \text{pCTR} pCTR相乘等于 pCTCVR \text{pCTCVR} pCTCVR的中间变量。由于 pCTCVR \text{pCTCVR} pCTCVR和 pCTR \text{pCTR} pCTR都是在所有曝光样本的完整空间上估计得到的,因此推导出的 pCVR \text{pCVR} pCVR也适用于整个空间, SSB \text{SSB} SSB问题可以被解决。此外, CVR \text{CVR} CVR网络的特征表示参数与 CTR \text{CTR} CTR网络共享。后者在更丰富的样本上训练。这种类型的参数迁移学习有助于缓解 DS \text{DS} DS问题。
对于本文,作者搜集了淘宝推荐系统的流量日志。整个数据集有89亿具有序列标签的点击和转化样本组成。通过仔细的实验, ESMM \text{ESMM} ESMM始终优于其他模型,这也表明了提出方法的有效性。
假设观察到的数据集为 S = { ( x i , y i → z i ) } i = 1 N \mathcal{S}=\{(\textbf{x}_i,y_i\rightarrow z_i)\}_{i=1}^N S={(xi,yi→zi)}i=1N,样本 ( x , y → z ) (\textbf{x},y\rightarrow z) (x,y→z)是从具有域 X × Y × Z \mathcal{X}\times\mathcal{Y}\times\mathcal{Z} X×Y×Z的分布 D D D中采样得到的,其中 X \mathcal{X} X是特征空间, Y \mathcal{Y} Y和 Z \mathcal{Z} Z是标签空间, N N N是曝光的总数量。 x \textbf{x} x表示曝光的特征向量,其通常是具有多filed的高维稀疏向量,例如:用户field、商品field等。 y y y和 z z z是二进制标签, y = 1 y=1 y=1或者 z = 1 z=1 z=1分别表示点击或者转换事件发生。 y → z y\rightarrow z y→z揭示了点击和转化标签的序列依赖,转化事件始终在点击事件的基础上。
CVR
\text{CVR}
CVR建模是为了估计概率
pCVR
=
p
(
z
=
1
∣
y
=
1
,
x
)
\text{pCVR}=p(z=1|y=1,\textbf{x})
pCVR=p(z=1∣y=1,x)。两个相关的概率
pCTR
=
p
(
z
=
1
∣
x
)
\text{pCTR}=p(z=1|\textbf{x})
pCTR=p(z=1∣x)和
pCTCVR
=
p
(
y
=
1
,
z
=
1
∣
x
)
\text{pCTCVR}=p(y=1,z=1|\textbf{x})
pCTCVR=p(y=1,z=1∣x)。给定曝光
x
\textbf{x}
x,这三个概率的关系如下:
p
(
y
=
1
,
z
=
1
∣
x
)
=
p
(
y
=
1
∣
x
)
×
p
(
z
=
1
∣
y
=
1
,
x
)
(1)
p(y=1,z=1|\textbf{x})=p(y=1|\textbf{x})\times p(z=1|y=1,\textbf{x}) \tag{1}
p(y=1,z=1∣x)=p(y=1∣x)×p(z=1∣y=1,x)(1)
基于深度学习的
CVR
\text{CVR}
CVR建模实现了state-of-the-art
。大多数的模型都类似于
Embedding&MLP
\text{Embedding\&MLP}
Embedding&MLP网络架构。上图左边展示了这种架构,为了简单起见,将其称为
BASE
\textbf{BASE}
BASE模型。
传统的 CVR \text{CVR} CVR建模方法会直接估计 p ( z = 1 ∣ y = 1 , x ) p(z=1|y=1,\textbf{x}) p(z=1∣y=1,x)。其会使用点击的曝光数据来训练模型,即 S c = { ( x j , z j ) ∣ y j = 1 } j = 1 M \mathcal{S}_c=\{(\textbf{x}_j,z_j)|y_j=1\}_{j=1}^M Sc={(xj,zj)∣yj=1}j=1M。 M M M是所有曝光的点击数量。显然, S c \mathcal{S}_c Sc是 S \mathcal{S} S的子集。在 S c \mathcal{S}_c Sc中(点击过的)曝光但未转化被当做负样本,曝光且转化被当做正样本。在实践中, CVR \text{CVR} CVR建模会遇到一些任务相关的问题。
样本选择偏差 (Sample selection bias, SSB) \text{(Sample selection bias, SSB)} (Sample selection bias, SSB)
事实上,传统 CVR \text{CVR} CVR建模通过引入辅助特征空间 X c \mathcal{X}_c Xc来完成近似: p ( z = 1 ∣ y = 1 , x ) ≈ q ( z = 1 ∣ x c ) p(z=1|y=1,\textbf{x})\approx q(z=1|\textbf{x}_c) p(z=1∣y=1,x)≈q(z=1∣xc)。 X c \mathcal{X}_c Xc表示与 S c \mathcal{S}_c Sc相关联的有效空间。 ∀ x c ∈ X c \forall \textbf{x}_c\in\mathcal{X}_c ∀xc∈Xc,存在一个样本对 ( x = x c , y x = 1 ) (\textbf{x}=\textbf{x}_c,y_{\textbf{x}}=1) (x=xc,yx=1),其中 x ∈ X \textbf{x}\in\mathcal{X} x∈X且 y x y_{\textbf{x}} yx是 x \textbf{x} x的点击标签。 q ( z = 1 ∣ x c ) q(z=1|\textbf{x}_c) q(z=1∣xc)是在空间 X c \mathcal{X}_c Xc上训练的。在推理阶段,在完整空间 X \mathcal{X} X的预测 p ( z = 1 ∣ y = 1 , x ) p(z=1|y=1,\textbf{x}) p(z=1∣y=1,x)被计算为 q ( z = 1 ∣ x ) q(z=1|\textbf{x}) q(z=1∣x),其基于的假设为:对于任意 ( x , y x = 1 ) (\textbf{x},y_\textbf{x}=1) (x,yx=1),其中 x ∈ X \textbf{x}\in\mathcal{X} x∈X, x \textbf{x} x属于 X c \mathcal{X}_c Xc。这个假设大概率是不成立的,因为 X c \mathcal{X}_c Xc仅是完整空间 X \mathcal{X} X的一小部分。此外,空间 X c \mathcal{X}_c Xc可能与 X \mathcal{X} X非常的不同。这会使训练样本的分布与真实的分布产生偏差,从而伤害 CVR \text{CVR} CVR建模的泛化性能。
数据稀疏 (Data sparsity, DS) \text{(Data sparsity, DS)} (Data sparsity, DS)
传统的 CVR \text{CVR} CVR建模方法是在点击样本 S c \mathcal{S}_c Sc上训练的。由于点击事件发生的很少,从而导致 CVR \text{CVR} CVR建模的训练数据非常的稀疏。直觉上,其通常会比相关联的 CTR \text{CTR} CTR任务小1-3个数量级。在本文的实验数据中, CVR \text{CVR} CVR任务的样本数量仅是 CTR \text{CTR} CTR任务的4%。
CVR
\text{CVR}
CVR建模也存在着其他的挑战,例如:delayed feedback
。本文并不关注该问题。一个原因是在作者的系统中,转换延期的程度是可接收的。另一个原因是本文的方法也可以合并先前的工作来解决这个问题。
ESMM \text{ESMM} ESMM如上图所示,其很好的利用了用户行为的序列模型。借鉴了多任务学习的思想, ESMM \text{ESMM} ESMM引入了 CVR \text{CVR} CVR和 CTCVR \text{CTCVR} CTCVR两个辅助任务,并且解决了 CVR \text{CVR} CVR建模中前面提及的问题。
总的来说, ESMM \text{ESMM} ESMM同时输出 pCTR \text{pCTR} pCTR、 pCVR \text{pCVR} pCVR和 pCTCVR \text{pCTCVR} pCTCVR。该模型主要是由两个子网络组成:上图中左半部分的 CVR \text{CVR} CVR网络和右半部分的 CTR \text{CTR} CTR网络。 CVR \text{CVR} CVR和 CTR \text{CTR} CTR网络均采用与 BASE \textbf{BASE} BASE模型相同的结构。 CTCVR \text{CTCVR} CTCVR则是 CVR \text{CVR} CVR和 CTR \text{CTR} CTR网络输出的乘积。 ESMM \text{ESMM} ESMM在 CVR \text{CVR} CVR建模中有一些显著的优点以及与传统方法的区别。
全空间上建模
等式(1)可以转化为
p
(
z
=
1
∣
y
=
1
,
x
)
=
p
(
y
=
1
,
z
=
1
∣
x
)
p
(
y
=
1
∣
x
)
(2)
p(z=1|y=1,\textbf{x})=\frac{p(y=1,z=1|\textbf{x})}{p(y=1|\textbf{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|\textbf{x})
p(y=1,z=1∣x)和
p
(
y
=
1
∣
x
)
p(y=1|\textbf{x})
p(y=1∣x)是在数据集
S
\mathcal{S}
S上建模的。等式(2)说明估计
pCTCVR
\text{pCTCVR}
pCTCVR和
pCTR
\text{pCTR}
pCTR,推导出的
pCVR
\text{pCVR}
pCVR是在完整数据空间
X
\mathcal{X}
X上的,其能够直接解决样本选择偏差问题。用单独的模型来分别估计
pCTR
\text{pCTR}
pCTR和
pCTCVR
\text{pCTCVR}
pCTCVR,并根据等式(2)获得
pCVR
\text{pCVR}
pCVR似乎很容易。然而,实际上
pCTR
\text{pCTR}
pCTR是一个很小的数值,除以该值会引起数值不稳定。
ESMM
\text{ESMM}
ESMM使用乘法的形式来避免这个问题。在
ESMM
\text{ESMM}
ESMM中,
pCVR
\text{pCVR}
pCVR仅是一个受等式(1)约束的中间变量。
pCTR
\text{pCTR}
pCTR和
pCTCVR
\text{pCTCVR}
pCTCVR是
ESMM
\text{ESMM}
ESMM在完整空间中估计的主要因子。采用乘法的形式能够使三个关联的、共同训练的估计器来利用数据的序列模式,并在训练过程中彼此进行信息沟通。此外,其能够确保估计的
pCVR
\text{pCVR}
pCVR位于区间
[
0
,
1
]
[0,1]
[0,1],而使用除的方法可能会超过1。
ESMM
\text{ESMM}
ESMM的损失函数如等式(3)所示。其是由
CTR
\text{CTR}
CTR和
CTCVR
\text{CTCVR}
CTCVR两个任务的损失函数组成,没有使用
CVR
\text{CVR}
CVR任务的损失函数。
KaTeX parse error: Expected 'EOF', got '&' at position 30: …},\theta_{ctr})&̲=\sum_{i=1}^N l…
其中
θ
c
t
r
\theta_{ctr}
θctr和
θ
c
v
r
\theta_{cvr}
θcvr是
CTR
\text{CTR}
CTR和
CVR
\text{CVR}
CVR网络的参数,
l
(
⋅
)
l(\cdot)
l(⋅)是交叉熵损失函数。等式(3)将
y
→
z
y\rightarrow z
y→z分解为两部分:
y
y
y和
y
&
z
y\&z
y&z,其实际上利用了点击和转化标签的损失依赖关系。
特征表示迁移
embedding层将大规模的稀疏输入映射至低维表示空间,其占用了整个深度网络参数量的大部分,并且需要大量的训练样本进行学习。在 ESMM \text{ESMM} ESMM中, CVR \text{CVR} CVR网络的嵌入词典与 CTR \text{CTR} CTR网络共享,其遵循特征表示迁移学习范式。 CTR \text{CTR} CTR任务的训练样本相对于 CVR \text{CVR} CVR要丰富的多。这种参数共享机制能够使 ESMM \text{ESMM} ESMM中的 CVR \text{CVR} CVR网络从未点击的曝光数据中学习,为缓解数据稀疏问题提供了很大的帮助。 ESMM \text{ESMM} ESMM的子网络可以用一些最近开发的模型替代,可能会获得更好的表现。