专栏首页桃花源记【论文笔记】CVR预估之ESMM模型

【论文笔记】CVR预估之ESMM模型

概述

预测post-click转换率CVR在排序系统如推荐系统、广告中是至关重要的。传统的CVR模型使用深度学习方法已经实现到state-of-the-art水平。但是在实际应用中会遇到几个特定的问题让CVR模型建模变得困难。比如,传统的CVR模型是在点击曝光样本上训练的;但是最终是在整个样本空间上进行应用(曝光样本空间)。这就造成了样本选择偏差问题(Sample Selection Bias)。此外,数据稀疏问题让模型训练变得困难。在这篇论文中,提出利用用户行为序列数据,如曝光—>点击—>转化,对CVR模型建模的新方法。提出的ESMM模型可以同时消除上述两个问题:1)在整个样本空间对CVR模型进行建模;2)使用特征表示迁移学习策略对数据稀疏问题进行解决。在淘宝推荐系统收集的数据集上,ESMM模型比其他方法表现优异。最后公开了一个抽样版的数据集,包含点击、转换标签序列独立的用于CVR训练的训练样本。

介绍

转换率CVR预测对于工业应用的推荐系统,如在线广告、推荐系统是一个至关重要的任务。比如,上篇笔记中提到的OCPC中预测CVR来调整出价进而实现平台和广告主的双赢。也是推荐系统中平衡用户偏好和购买偏好的非常重要的因素。

论文专注于预测post-click转化率(post-click转换率就是用户点击后发生转化的概率,点击已经发生了)。以电商中的推荐系统为例。给定一个推荐物品,用户可能会点击感兴趣的部分,进而可能会产生购买行为。换句话说,用户的行为遵循一个序列模式:曝光->点击->转化。CVR建模更倾向于预测post-click转换率,即pCVR = p(conversion|click, impression)。【用户点击商品/广告后发生转换的概率,即post-click转化率】。

通常,传统的CVR建模方法使用和CTR预测任务的技术相似,比如使用深度学习。然而,存在几个任务相关的问题使得CVR建模变得具有挑战性。本文中提出在实际应用中遇到2个问题:1)样本选择偏差问题(Sample Selection Bias)。如图1所示,传统的CVR模型是在点击曝光数据上训练的(图中灰色部分),然而在模型应用时则是在整个样本空间上(白色部分,即所有的曝光样本)。SSB问题将会影响模型的泛化能力。2)数据稀疏问题(Data Sparsity)。在实际问题中,收集的用于CVR模型训练的数据集相较于CTR任务是非常少的。训练数据稀疏使得CVR模型的拟合变得十分困难。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xw9crUz3-1597244655260)(http://note.youdao.com/yws/public/resource/0598dd3dfb0f1261a999086ba0e72e2f/xmlnote/WEBRESOURCEf1baed4ab2ef47c4bc0bc6efd4cf0326/210)]

为了解决这些问题提出了一些方法。

  • 在不同特征上构建分层估计器estimators,然后用逻辑回归将这些特征结合,用于解决数据稀疏问题。然后这种方法依赖于构建封层结构模型的先验知识,这种方法很难应用在有百万用户和items的推荐系统上。
  • 对小类别样本进行过采样oversampling可以减缓数据稀疏;但是模型对于采样频率敏感;
  • All Missing As Negative(AMAN)使用随机采样策略在非点击曝光样本上进行样本选择作为负样本。这种方法通过引入非观察性的样本可以减缓样本选择偏差;但是会导致预测值始终偏低。
  • 无偏方法通过拟合来自rejection sampling观察的观测值的真实基础分布,解决了CTR建模中的SSB问题。然而,当用rejection概率对样本进行加权时,可能会遇到数值不稳定性。

总之,SSB和DS在CVR建模场景中都没有很好地解决,上述方法都没有利用好序列动作中的信息。

论文中提出ESMM方法来利用用户行为数据模式,这种方法能同时消除SSB和DS问题。在ESMM中有两种辅助任务,分别预测post-view点击率(浏览后点击概率)和post-view 点击转化率(曝光后点击转化概率CTCVR)。CVR不再是直接在点击曝光样本上训练,ESMM将pCVR看做一个中间变量,和pCTR相乘得到pCTCVR。pCTCVR和pCTR都是在所有曝光样本即整个样本空间进行预测,因此引出的pCVR也是在整个空间上应用。这意味着已经解决SSB问题。此外,CVR网络的特征表示参数和CTR网络之间是共享的。后者的训练样本更加丰富;这种参数迁移学习能够显著的消除DS问题。

方法

D上采样样本构成的数据集。其中N表示曝光样本的数量。

x:表示观测的曝光样本的特征向量,通常是多个field的特征向量,比如用户域、item域;

y、z:二进制标签,y=1 or z=1分别表示点击、转化事件发生。

y \to z

:表示点击和转化之间的序列依赖性;当转换事件发生时之前总有一个点击事件(也就是说,转化通常是点击后发生的)。

post-click CVR(点击后转化概率)建模是估计概率

pCVR=p(z=1|y=1,x)

。两个相关的概率分别是post-view 点击率(曝光后点击率)

pCTR=p(y=1|x)

以及post-view 点击转化率(曝光后点击&转化概率;同时发生点击&转化)

pCTCVR=p(y=1,z=1|x)

。给定曝光样本x,

CVR建模和挑战

近来基于深度学习的方法用于CVR建模,而且表现已经达到state-of-the-art。这些模型大多遵循一个相似的Embedding&MLP结构。

传统 CVR建模方法直接用于预估post-click(点击后的转化率)转化率

p(z=1|y=1,x)

。对应的训练样本是在所有的曝光点击数据,

S_c = {(x_j,z_j)|y_j=1}|_{j=1}^M

,也就是图1中的灰色阴影部分,

S_c

是S的一个子集,在

S_c

中,没有转化的曝光点击数据被作为负样本,有转化的曝光点击样本作为正样本。在实际应用时存在几个问题使得CVR任务变得更具有挑战性。

Sample Selection Bias样本选择偏差。事实上,传统的CVR建模使用近似:

p(z=1|y=1,x) \approx q(z=1|x_c)

通过引入辅助的特征空间

X_c

做一个近似。

X_c

表示和CVR训练集

S_c

相关的特征表示空间。

X_c

中的每个数据都有

(x=x_c, y_x=1)

,即点击标签为1(都是发生点击的样本)。

q(z=1|x_c)

S_c

中的样本空间

X_c

上训练。在模型应用阶段,整个空间上

p(z=1|y=1,x)

的预测通过假设任意属于整个曝光样本的样本也属于点击样本,使用

q(z=1|x)

对其进行计算【即样本选择偏差问题】。由于

X_c

可能只是X的一部分,上述假设通常情况下不成立。而且这个假设受到很少发生的点击事件的随机性的严重影响,其随机性在空间X的区域中会发生变化。此外,在实践中如果样本数据不够,空间Xc可能与X完全不同。这将使训练样本的分布偏离真正的基础分布,而且会损害CVR建模的泛化性能。

**Data sparsity(DS)**数据稀疏问题。传统方法使用点击样本

S_c

训练CVR模型。点击事件发生概率很小导致用于CVR模型训练的样本非常稀疏。理论上,数据集比CTR训练的样本少1-3个数量级。表格1展示了实验数据集上的统计指标,CVR任务样本是CTR任务的4%。

值得注意的是CVR建模还存在其他挑战,如延迟反馈问题。这里不关注这个问题,原因是因为系统中的转化率延迟程度可以接受,另一个是论文中的方法可以和之前的工作结合用于解决延迟转化问题。

ESMM

ESMM模型能充分利用用户行为的序列模式。借鉴多任务学习的理念,ESMM引入两个辅助任务:CTR和CTCVR;同时解决前面提到的CVR建模遇到的问题。

ESMM给定曝光样本后能同时输出pCTR、pCVR以及pCTCVR。ESMM主要包括两个子网络:左半部分是CVR网络,右半部分为CTR网络。CVR和CTR网络采用相同的结构作为base模型。CTCVR将两个网络的输出值的乘积作为CTCVR。ESMM有一些亮点给CVR建模带来显著地影响,使得ESMM从传统方法中脱颖而出。

整个空间上建模

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IIL7QO4R-1597244655283)(http://note.youdao.com/yws/public/resource/0598dd3dfb0f1261a999086ba0e72e2f/xmlnote/WEBRESOURCEd8d1ab0800614f708bb7b21a0c732f58/213)]

其中

p(y=1,z=1|x)

p(y=1|x)

是在所有曝光数据S上进行建模学习。上述等式可以,通过预测pCTCVR和pCTR,pCVR可以在整个输入空间X上推导出来,这样可以直接解决样本选择偏差问题。将pCTR和pCTCVR分别训练建模,然后再根据等式,应用除法计算pCVR看起来很简单。但是,pCTR实际上是一个很小的值,直接除会引起数字不稳定。ESMM通过使用乘法方式避免这个问题。在ESMM中,pCVR是一个中间变量,其大小受到等式1的约束。pCTR和pCTCVR是ESMM模型在整个样本空间上真正预测的元素。乘法形式使得三者之间相互联系,共同训练利用序列数据的信息,而且在训练过程中能相互交流学到的信息。此外,可以保证预测的pCVR取值范围在[0,1]之间,除法计算结果可能超出1。

ESMM的loss函数定义为:

由CTR和CTCVR的两个loss项组成,都是在所有曝光样本上进行计算,没有使用CVR任务的loss值

loss函数中的

\theta_{ctr}

\theta_{cvr}

分别是CTR和CVR网络的参数,l()表示交叉熵函数。数学意义上,上述等式将

y \to z

解耦成两部分:y和 y&z,这样就可以利用点击和转化标签的序列依赖性。

特征表示迁移。Embedding层将大规模的稀疏输入映射成低维表示向量。嵌入层占据深度网络的大部分参数量,其学习需要很大的数据样本量。在ESMM中,CVR网络的embedding和CTR网络的embedding相互共享,遵循特征表示的迁移学习模式。用于CTR训练的曝光样本数据量比CVR任务大很多。参数共享机制使得ESMM的CVR网络可以在非点击曝光样本商学系,为解决数据稀疏问题提供了帮助。

值得注意的是,ESMM中的子网络可以使用其他网络模型替换,而且可能取得更好的效果。

实验

实验设置

数据集:淘宝平台上收集的数据集。Public Dataset,Product Dataset。

比较模型

  • Base: Embedding + MLP;
  • AMAN:使用负采样策略,抽样率在{10%,20%,50%,100%}中选择最佳结果;
  • Oversampling:使用过采样,对正样本过采样,采样率在{2,3,5,10}中选择;
  • Unbias:通过rejection sampling从观测中拟合真正的分布,使用rejection概率计算pCTR;
  • Division:通过除法计算pCVR;分别训练CTR和CTCVR然后估计pCTR和pCTCVR;
  • ESMM-NS: ESMM相同架构,但是两个子网络之间Embedding参数不共享。

所有的模型使用和Base模型相同的结构以及超参数:

  • 激活函数为Relu;
  • Embedding长度为18;
  • MLP维度为:360x200x80x2;
  • 优化器adam,
\beta_1=0.9,\beta_2=0.999,\epsilon=10^{-8}

评价指标:用两个不同的任务上的表现评估模型;

  • 和传统CVR预测任务一致,使用点击过的曝光数据来预测pCVR
  • 在所有曝光数据上预测pCTCVR

任务二用于比较在整个空间上不同的CVR建模方法,能反映出是否解决SSB问题以及表现如何。在CTCVR任务中,模型通过pCTR*pCVR计算pCTCVR,其中pCTR、pCVR分别通过CTR网络和CVR网络预测计算。这两个任务都按时间顺序分割了前1/2个数据作为训练集,而其余的则作为测试集。使用AUC作为评价指标,同时所有试验重复10次取平均值作为最终结果。

Pulic数据集上的表现

从上表可看到:

  1. 在BASE模型的3个变种中,只有AMAN方法在CVR任务上表现比BASE模型差,其效果对随机抽样比较敏感;过采样和unbias在CVR和CTCVR上表现比BASE模型都要好;
  2. Division和ESMM-NS在整个空间上预测pCVR,取得比BASE模型更显著的效果。为了避免数值不稳定,ESMM-NS表现比Division要好。
  3. ESMM比ESMM-NS效果更好。

通过利用用户行为的序列模式,从非点击数据中使用迁移机制进行学习,ESMM模型同时解决了CVR模型建模中的样本选择偏差和数据稀疏问题,表现优于其他的模型。相较于BASE模型,ESMM在CVR任务上在AUC指标上取得2.56%的提升,这表明在有偏数据上ESMM也能取得很好地泛化效果。在所有样本上的CTCVR任务上,AUC能提升3.25%。

Poduct数据上的表现

验证模型在89亿数据集上的表现。

在Product上采用不同的采样率进行训练验证,图中可以看到随着训练样本的增多,所有的模型表现都得到了提升,这表明数据稀疏带来的影响。

  • 在1%抽样率的样本上,除了AMAN外所有模型的CVR任务表现都由于BASE模型。
  • 在不同的采样率上,ESMM-NS和ESMM都优于其他模型。
  • ESMM模型在CTR和CTCVR上表现比其他模型号很多,AUC上有很大的差距。
  • 在整个数据集上训练后,ESMM模型相比于BASE模型CVR上能取得2.18%的提升,CTCVR上取得2.32%的提升。在工业系统中,AUC提升0.1%带来的影响也是非常显著的。

结论 & 展望

论文提出ESMM模型用于CVR建模。通过两个辅助任务CTR和CTCVR,ESMM能解决CVR建模中遇到的样本选择偏差和数据稀疏问题。这种方法可以很容易地推广到具有顺序依赖性的场景中的用户动作预测。之后,团队打算使用多阶段行为来设计全局优化模型:如请求-曝光-点击-转换。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • TF入门03-实现线性回归&逻辑回归

    之前,我们介绍了TF的运算图、会话以及基本的ops,本文使用前面介绍的东西实现两个简单的算法,分别是线性回归和逻辑回归。本文的内容安排如下:

    公众号-不为谁写的歌
  • TF入门02-TensorFlow Ops

    我们首先介绍一下TensorBoard的使用,然后介绍TensorFlow的基本ops,之后介绍张量的数据类型,最后介绍一下如何将自己的输入导入模型。

    公众号-不为谁写的歌
  • 计算广告笔记04-合约广告

    广告位合约是最早产生的在线广告售卖方式。它指媒体和广告主约定在某一时间段内某些广告位上固定投放该广告主的广告,相应的结算方式为CPT。这是一种典型的线下广告投放...

    公众号-不为谁写的歌
  • 深入理解推荐系统:排序

    最近正好在做KDD Cup:Debiasing赛道,不同于其它类型的比赛,推荐系统中的排序建模需要大家自己构建正负样本。本文也将作为方法梳理,希望能帮助到大家。

    Coggle数据科学
  • 微信「看一看」 推荐排序技术揭秘

    ? 本文转载自:微信AI,作者 xiafengxia 在微信 AI 背后,技术究竟如何让一切发生?微信 AI 公众号推出技术专题系列“微信看一看背后的技术架构...

    腾讯技术工程官方号
  • 技术栈中的爱马仕?Facebook发布全新JavaScript引擎:Hermes

    Facebook在Chain React 2019 大会上发布的一个崭新JavaScript引擎

    Carson.Ho
  • 当推荐遇到社交:美图的推荐算法设计优化实践

    在美图公司社交战略部署下,推荐算法存在多方面的挑战,为了解决这些挑战,我们团队从工具和算法两个方面分别开展了工作。

    机器之心
  • hexo 搭建博客

    通常我们可以使用github pages 来搭建静态博客,建立一个username.github.io的项目就可以了,如果要将其他项目也作为页面展示,可以将代码...

    苏生不惑
  • 十大业务步骤确保物联网生态系统的安全

    在物联网环境中,设备、应用程序和人类通过巨大而又迥然不同的生态系统相互关联,安全是物联网部署中必不可少的一部分,这一点非常重要。

    未来守护者
  • 75道常见AI面试题,看看你的知识盲点在哪?(附解析)

    【导语】正值求职、跳槽季,无论你是换工作还是找实习,没有真本事都是万万不行的,可是如何高效率复习呢?之前我们给大家推荐了一份 Python 面试宝典,收藏了近 ...

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券