ESMM模型

ESMM

  1. 在 “曝光 -> 点击 -> 转化” 链路上,CTR 预估任务预估每个曝光被用户点击的概率,CVR 预估任务预估每个点击被转化的概率。和 CTR 相比,CVR 更关注预测用户有没有商品购买、游戏注册、表单登记等转化行为。

  2. 常规的 CVR 预估模型采用和 CTR 预估模型类似的深度学习方法,但是在具体应用中面临几个特殊的问题:

    • 样本选择偏差 sample selection bias:SSB 问题:传统的 CVR 模型是在点击样本上训练的,但是推断是在曝光样本上进行的。这导致训练样本和推断样本不一致,降低了模型的泛化能力。

      在这里插入图片描述

    • 数据稀疏 data sparsity:DS 问题:点击数据通常要比曝光数据少得多,因此 CVR 任务的样本数通常远小于 CTR 任务的样本数。这导致 CVR 模型很容易陷入过拟合。

    有一些方法试图解决这些问题:

    • 基于不同特征构建层次化分类器 hierarchical estimators,然后用逻辑回归模型融合这些分类器来预测。

      该方法可以解决数据稀疏问题,但是依赖于先验知识来构建层次化的分类器。

    • 过采样 Oversampling 拷贝正样本从而有助于缓解数据的稀疏性,但是这种方式对采样率非常敏感。

    • All Missing As Negative:AMAN 方法随机抽取一定比例的未点击的曝光样本作为负样本。

      该方法可以一定程度上消除 SSB 问题,但是会导致 pCVR 被低估。因为在未点击的曝光样本中,假如所有曝光都被用户点击,则可能存在一定比例的转化行为(正样本)。而 AMAN 方法假设所有未点击的曝光都是负样本。

    • 无偏方法采用拒绝抽样 rejection sampling 来使得观测样本(即:点击分布)拟合真实的数据分布(即:曝光分布),从而解决了 SSB 问题。

      这种方式在除以拒绝概率 rejection probability 时可能会遇到数值稳定性问题。

  3. 论文 Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate 提出了 Entire Space Multi-task Model:ESMM 模型,该模型充分利用了用户的操作顺序(“曝光 -> 点击 -> 转化”),通过新的视角来建模 CVR

    同时:

    • ESMM 模型通过在整个曝光空间对 CVR 建模,这解决了样本选择偏差问题。
    • ESMM 模型采用特征表达的迁移学习策略,这解决了数据稀疏问题。

模型

  1. 在转化链路中用户遵循 “曝光 -> 点击 -> 转化” 的顺序。ESMM 模型借鉴了多任务学习的思想,基于该顺序引入两个辅助任务:CTR 预测任务、CTCVR 预测任务。

    • 模型由两个子网络构成:左侧的 CVR 网络和右侧的 CTR 网络,二者均采用 BASE 模型(即下图左侧的基准 DNN 模型)相同的结构。

      论文指出:这两个子网络可以用最先进的其它模型替代,从而获取更好的整体性能。

    • 模型同时输出pCTR,pCVR,pCTCVR 三路输出,其中:

      • pCVR 输出由左侧的 CVR 网络输出
      • pCTR 输出由右侧的 CTR 网络输出
      • pCTCVR 输出将 CVRCTR 网络输出的乘积作为输出
    • ESMM 模型不会直接使用点击样本来预测 CVR,而是将 CVR 作为一个中间变量:

      p C T R × p C V R = p C T C V R \mathrm{pCTR} \times \mathrm{pCVR}=\mathrm{pCTCVR} pCTR×pCVR=pCTCVR
      其中 PCTRpCTCVR 都是在整个曝光样本空间进行估计的,因此派生的 pCVR 也适用于整个曝光样本空间。这就消除了样本选择偏差问题。

    • 另外,CVR 网络的 embedding 参数和 CTR 网络的 embeddin 参数共享,而后者具有更多的训练样本。因此这种参数的迁移学习可以有效缓解数据稀疏问题。

在这里插入图片描述

  1. 假设观察到的所有样本集合为:
    S = { ( x → 1 , y 1 , z 1 ) , ⋯   , ( x → N , y N , z N ) } \mathcal{S}=\left\{\left(\overrightarrow{\mathbf{x}}_{1}, y_{1}, z_{1}\right), \cdots,\left(\overrightarrow{\mathbf{x}}_{N}, y_{N}, z_{N}\right)\right\} S={(x 1,y1,z1),,(x N,yN,zN)}
    其中, x → ∈ X \overrightarrow{\mathbf{x}} \in \mathcal{X} x X为特征, y ∈ Y y \in \mathcal{Y} yY点击label z ∈ Z z \in \mathcal{Z} zZ为转化label

    • CVR 建模是预估 p C V R = p ( z = 1 ∣ y = 1 , x → ) \mathrm{pCVR}=p(z=1 \mid y=1, \overrightarrow{\mathbf{x}}) pCVR=p(z=1y=1,x )

    • CTR 建模是预估 p C T R = p ( y = 1 ∣ x → ) \mathrm{pCTR}=p(y=1 \mid \overrightarrow{\mathbf{x}}) pCTR=p(y=1x )

    • CTCVR 建模是预估pCTCVR = p ( y = 1 , z = 1 ∣ x → ) =p(y=1, z=1 \mid \overrightarrow{\mathbf{x}}) =p(y=1,z=1x )

    它们之间满足: p ( y = 1 , z = 1 ∣ x → ) = p ( y = 1 ∣ x → ) × p ( z = 1 ∣ y = 1 , x → ) p(y=1, z=1 \mid \overrightarrow{\mathbf{x}})=p(y=1 \mid \overrightarrow{\mathbf{x}}) \times p(z=1 \mid y=1, \overrightarrow{\mathbf{x}}) p(y=1,z=1x )=p(y=1x )×p(z=1y=1,x )

    即: p C T C V R = p C T R × p C V R \mathrm{pCTCVR}=\mathrm{pCTR} \times \mathrm{pCVR} pCTCVR=pCTR×pCVR

  2. 大多数传统 CVR 模型是上图左侧所示的 DNN 模型,这种结构作为我们实验对比的基准模型。

    传统 CVR 模型直接估计 p ( z = 1 ∣ y = 1 , x → ) p(z=1 \mid y=1, \overrightarrow{\mathbf{x}}) p(z=1y=1,x ),模型训练样本仅包含点击样本:

    S c = { ( x → 1 , y 1 , z 1 ∣ y 1 = 1 ) , ⋯   , ( x → M , y M , z M ∣ y M = 1 ) } \mathcal{S}_{c}=\left\{\left(\overrightarrow{\mathbf{x}}_{1}, y_{1}, z_{1} \mid y_{1}=1\right), \cdots,\left(\overrightarrow{\mathbf{x}}_{M}, y_{M}, z_{M} \mid y_{M}=1\right)\right\} Sc={(x 1,y1,z1y1=1),,(x M,yM,zMyM=1)}

    其中 M 为所有点击样本数量, S c ⊂ S \mathcal{S}_{c} \subset \mathcal{S} ScS

    这会带来以下问题:

    • SSB:设 S c \mathcal{S}_{c} Sc的特征空间为 X c \mathcal{X}_{c} Xc,则 CVR 模型近似转化为:
      p ( z = 1 ∣ y = 1 , x → ; x → ∈ X ) ≃ q ( z = 1 ∣ x → ; x → ∈ X c ) p(z=1 \mid y=1, \overrightarrow{\mathbf{x}} ; \overrightarrow{\mathbf{x}} \in \mathcal{X}) \simeq q\left(z=1 \mid \overrightarrow{\mathbf{x}} ; \overrightarrow{\mathbf{x}} \in \mathcal{X}_{c}\right) p(z=1y=1,x ;x X)q(z=1x ;x Xc)
      因此训练期间都是在 X c \mathcal{X}_{c} Xc上训练。

      而推断期间给定一个特征 x → ∈ X \overrightarrow{\mathbf{x}} \in \mathcal{X} x X,我们需要计算:假设该曝光被点击的条件下其转化率。即计算 q ( z = 1 ∣ x → ; x → ∈ X ) q(z=1 \mid \overrightarrow{\mathbf{x}} ; \overrightarrow{\mathbf{x}} \in \mathcal{X}) q(z=1x ;x X)

      这里存在两个问题:

      • X c \mathcal{X_c} Xc仅仅是 X \mathcal{X} X的一个很小的部分,它很容易受到一些随机的噪声点击的影响。因此其分布很不稳定。
      • 空间 X c \mathcal{X_c} Xc的分布和 X \mathcal{X} X差异较大,这使得训练样本的分布偏离了预测样本的分布(即:真实样本分布),降低了CVR 模型的泛化能力。
    • DS:由于点击事件发生次数比曝光事件发生次数少得多,因此 CVR 训练样本极其稀疏。

      论文的实验数据统计表明:CVR 任务样本数仅仅是 CTR 任务样本数的 4%

    • 反馈延迟 delayed feedback:即单次曝光的点击和转化之间可能间隔很长时间。

      如:给用户推荐一款商品,用户点击之后可能过了两周才购买。

  3. 与基准 DNN 模型不同,ESMM 在整个曝光空间建模。根据:

    p ( z = 1 ∣ y = 1 , x → ) = p ( y = 1 , z = 1 ∣ x → ) p ( y = 1 ∣ x → ) p(z=1 \mid y=1, \overrightarrow{\mathbf{x}})=\frac{p(y=1, z=1 \mid \overrightarrow{\mathbf{x}})}{p(y=1 \mid \overrightarrow{\mathbf{x}})} p(z=1y=1,x )=p(y=1x )p(y=1,z=1x )

    其中 p ( y = 1 , z = 1 ∣ x → ) p(y=1, z=1 \mid \overrightarrow{\mathbf{x}}) p(y=1,z=1x ) p ( y = 1 ∣ x → ) p(y=1 \mid \overrightarrow{\mathbf{x}}) p(y=1x )在所有曝光的数据空间 S \mathcal{S} S上建模,因此可以有效解决样本选择偏移问题。

  4. ESMM 中,CVR 网络的 embeddingCTR 网络的 embedding 字典共享,这是典型的特征表达迁移学习。

    由于 CTR 任务的训练样本要比 CVR 任务多得多,这种参数共享机制使得 CVR 网络能够从未点击的曝光样本中学习,有效缓解了数据稀疏性问题。

  5. ESMM 模型的损失函数综合考虑了 CTRCTCVR 两个辅助任务:
    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 ) ) \mathcal{L}\left(\theta_{c v r}, \theta_{c t r}\right)=\sum_{i=1}^{N} l\left(y_{i}, f\left(\overrightarrow{\mathbf{x}}_{i} ; \theta_{c t r}\right)\right)+\sum_{i=1}^{N} l\left(y_{i} \& z_{i}, f\left(\overrightarrow{\mathbf{x}}_{i} ; \theta_{c t r}\right) \times f\left(\overrightarrow{\mathbf{x}}_{i} ; \theta_{c v r}\right)\right) L(θcvr,θctr)=i=1Nl(yi,f(x i;θctr))+i=1Nl(yi&zi,f(x i;θctr)×f(x i;θcvr))
    其中 θ c t r , θ c v r \theta_{c t r}, \theta_{c v r} θctr,θcvrCTRCVR 网络参数, l ( ⋅ ) l(\cdot) l()为交叉熵损失函数。

  6. 表面上看,我们可以分别独立的建立两个模型分别估计 pCTRpCTCVR,然后根据:

    p C V R = p C T C V R p C T R \mathrm{pCVR}=\frac{\mathrm{pCTCVR}}{\mathrm{pCTR}} pCVR=pCTRpCTCVR

    来计算 pCVR 。但这种做法存在两个问题:

    • 由于 pCTR 通常是一个非常小的数(如 1 0 − 9 10^{-9} 109),除以一个很小的数很容易导致数值不稳定。

    • 除法的结果无法确保是在 0~1 之间。

    ESMM 模型中,pCVR 是一个中间变量,通过乘法的形式使得这三个概率可以同时被训练。

    另外模型结构也保证了 pCVR 一定是在 0~1 之间。

实验

  1. 数据集:CVR 任务目前没有公开的数据集。为了评估模型,论文从淘宝的推荐系统中收集了曝光日志,并发布了整个数据集的 1% 随机抽样数据(高达 38GB )作为公共数据集 Public Dataset。整个数据集称作产品数据集 Product Dataset

    下表给出了这两个数据集的统计信息。

    在这里插入图片描述

  2. 参与比较的模型包括:

    • 基准模型:即前面介绍的简单 DNN 模型,不采取任何额外的策略。

    • AMAN:执行负采样策略的基准模型,负采样比例从 10%,20%,50%,100% 中搜索。

    • OVERSAMPLING:执行正样本过采样策略的基准模型,正样本拷贝比例从 2,3,5,10 中搜索。

    • UNBIAS:执行 rejection 采样策略的基准模型,通过拒绝采样使得训练分布(即点击数据集的数据分布)和真实分布(即曝光数据集的数据分布)保持一致。

    • DIVISION:通过基准模型分别训练 pCTRpCTCVR,然后计算 pCVR = pCTCVR/pCTR

    • ESMM-NSESMM 模型的一个变种,该模型没有共享 embedding 参数。

      前面四个模型是分别直接独立建模 CVRCTR ,然后根据 CTCVR = CTR x CVR 来计算 CTCVRDIVISION, ESMM-NS,ESMM 在整个曝光样本空间间接建模CVR

    为了公平起见,包括 ESMM 在内的所有模型都采取和 BASE 基准模型相同的网络结构和超参数,包括:

    • 采用 ReLU 激活函数
    • embedding 向量维度为 18
    • 嵌入层后续的全连接层有4层,每层的隐向量维度分别为 360,200,80,2
    • 采用 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,ϵ=108
  3. 模型性能评估在两个任务上进行:对点击数据集评估 pCVR 任务、对曝光数据集评估 pCTCVR 任务。评估指标为 AUC

    • 每个模型分别评估 pCVR 任务
    • 每个模型通过计算 pCTR x pCVR 来评估 pCTCVR 任务

    这两个任务的数据集都根据时间顺序拆分:前 1/2 数据作为训练数据,后 1/2 数据作为测试数据。

    所有实验重复 10次,取10次的平均结果。

  4. 在公共数据集上不同模型的表现如下图所示。

    • 在基准模型的三个变种之间,只有 AMANCVR 任务的表现稍差,这可能是由于随机采样的敏感性导致。

      OVERSAMPLINGUNBIASCVRCTCVR 这两个任务上相对基准模型均有所改进。

    • DIVISIONESMM-NS 对整个曝光空间进行估计,因此它们相对基准模型取得显著提升。

      由于 ESMM-NS 避免了数值不稳定性,因此其性能强于 DIVISION

    • ESMM 利用迁移学习从未点击数据中学习,因此进一步强于 ESMM-NS

    在这里插入图片描述

  5. 在产品数据集上评估ESMM 模型,该数据集比公开数据集大两个量级。

    我们通过对产品数据集执行不同采样率来生成不同规模的训练数据集,然后评估训练集规模对于 模型性能的影响。结论:

    • 随着训练样本的增加,所有方法都得到改善。这说明了数据稀疏性的影响。

    • 除了AMAN 1% 这组搭配以外,所有其它模型在所有训练集规模上都超越了基准模型。

    • ESMM-NSESMM 在所有数据集规模上超越了所有其它模型。

    • ESMM 模型在 CVR 任务和 CTCVR 任务上的所有数据集规模都超越了其它模型一大截。

    在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值