19推荐系统16CTR&CVR联合学习

Posted 炫云云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19推荐系统16CTR&CVR联合学习相关的知识,希望对你有一定的参考价值。

1、前言

  • 在第三方广告营销平台上,以经典的效果类广告 - CPI (Cost Per Install) 广告为例,系统投放单子的排序指标为: e C P M = p C T R ∗ p C V R ∗ p r i c e eCPM=pCTR * pCVR * price eCPM=pCTRpCVRprice;其中准确预估投放的转化率(pCVR)显得尤为重要;
  • 传统的CVR通常会面临样本选择偏差和数据稀疏两大的问题,从而使得模型训练变得相当困难。本文作者提出ESMM算法,通过定义新型多任务联合训练的方式,以全新的视角对CVR进行建模。

通过淘宝推荐系统的实验表明,ESMM的性能明显优于其他算法。

看到这里,大家可能有很多疑问:

  1. CVR预估任务中,样本选择偏差是什么问题?

  2. ESMM是怎样多任务训练的,又是如何联合训练的?

带着问题,我们来阅读以下内容。

2、相关知识

post-click conversion rate 翻译过来就是:点击后转化率,也就是说 CVR 是建⽴在⽤户点击的基础上的进⾏的。以电商为例,给定一些物品,用户可能会对其感兴趣的某几个进行点击,然后可能会选择其中一个或多个继续进行购买。

样本选择偏差

作者将⽤户的⾏为简化为:曝光->点击->转换三个步骤,三者的区别如图1所示:

图 1 : 说 明 了 传 统 C V R 建 模 中 样 本 选 择 偏 差 问 题 。 训 练 空 间 由 带 有 点 击 的 i m p r e s s i o n 样 本 组 成 , 它 只 是 由 所 有 i m p r e s s i o n 构 成 的 推 理 空 间 S 的 一 部 分 图1:说明了传统CVR建模中样本选择偏差问题。训练空间由带有点击的 impression 样本组成,\\\\它只是由所有 impression 构成的推理空间S的一部分 1:CVRimpression,impressionS

传统的CVR任务中,工程师通常将以点击未购买的样本作为负样本,而点击购买的样本作为正样本,并以此训练模型,将其部署到线上使用。

但这样的训练方式有一个问题,模型是针对点击的商品进行训练的,而线上数据集大部分都是未点击的,此时便会出现样本选择偏差(sample selection bias,SSB)的问题。

由于点击事件相对展现事件要少很多,因此只是样本空间S的一个很小的子集,从上提取的特征相对于从S中提取到的特征是有偏的,甚至是很不相同。从而,按这种方法构建的训练样本集相当于是从一个与真实分布不一致的分布中采样得到的,而训练得到的模型却需要对整个样本空间中的样本做推断预测,样本选择偏差会伤害学到的模型的泛化性能。

数据稀疏性

事实上,广告(推荐)系统展现给用户的广告数量要远远大于被用户点击的广告数量,同时有点击行为的用户也仅仅只占所有用户的一小部分,因此有点击行为的样本空间相对于整个样本空间来说是很小的,通常要差至少1个数量级。高度稀疏的训练数据使得模型的学习变得相当困难。

SSB问题会影响模型的泛化性能,而DS问题会影响模型的拟合。

现有的一些研究试图去解决这些问题,比如说︰建立基于不同特征的分层估计器,并将其与LR模型相结合来解决DS问题,或者利用对未曝光未点击的样本做采样来缓解SSB问题。这些策略在一定程度上可以消除SSB和DS问题,但都显得不够优雅,并且也都不能真正解决CVR建模中的问题。

上述策略的一大关键在于没有考虑到CTR和CVR的顺序动作信息,而通过充分利用用户操作的顺序性提出了ESMM算法,该方法能够同时解决SSB和DS问题。

ESMM并不是直接预测pCVR,而是引入了两个辅助任务,分别是CTR和点击后转换的CTCVR任务。ESMM并不是直接使用曝光样本来训练CVR,而是利用 p ( C T C V R ) = p ( C V R ) ∗ p ( C T R ) p(CTCVR)= p(CVR)*p(CTR) p(CTCVR)=p(CVR)p(CTR)的关系, C T C V R CTCVR CTCVR C T R CTR CTR可以通过曝光的样本进行训练,而 C V R CVR CVR作为中间变量可以由 C T R CTR CTR C T C V R CTCVR CTCVR估算得到。因此,通过这种方法算出的CVR也适用于整个样本空间(与线上分布一致),这便解决了 S S B SSB SSB问题。此外, C V R CVR CVR C T R CTR CTR​ 共享网络表征,由于后者的训练样本更多,所以也可以减轻DS问题

3、模型结构

接下来,我们来看 ESMM 的具体做法。

假设观测到的数据集可以表示为 S = { ( x i , y i → z i ) } ∣ i = 1 N S=\\left.\\left\\{\\left(x_{i}, y_{i} \\rightarrow z_{i}\\right)\\right\\}\\right|_{i=1} ^{N} S={(xi,yizi)}i=1N, 其中样本从域 X × Y × Z \\mathcal{X} \\times \\mathcal{Y} \\times \\mathcal{Z} X×Y×Z 的一个分布得到, 其中 X \\mathcal{X} X 是特征空间, Y , Z \\mathcal{Y}, \\mathcal{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 yz 揭示了点击事件和转化的序列依赖性,也就是说转化发生的时候一定有对应的点击先发生。 后验点击CVR建模用来估计 p C V R = p ( z = 1 ∣ y = 1 , x ) \\mathrm{pCVR}=p(z=1 \\mid y=1, x) pCVR=p(z=1y=1,x), 同两个概率值 p C T R = p ( y = 1 ∣ x ) \\mathrm{pCTR}=p(y=1 \\mid x) pCTR=p(y=1x) p C T C V R = p ( z = 1 , y = p C T C V R=p(z=1, y= pCTCVR=p(z=1,y= 1 ∣ x ) 1 \\mid x) 1x)​密切相关.

我们将上面的式子写具体, 对于给定的曝光样本 x \\mathrm{x} x​, 我们可以得到 CTCVR 的概率:
p ( z & y = 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(z \\& y=1 \\mid x)}_{p C T C V R}=\\underbrace{p(z=1 \\mid y=1, x)}_{p C V R} \\underbrace{p(y=1 \\mid x)}_{p C T R}\\tag{1} pCTCVR p(z&y=1x)=pCVR p(z=1y=1,x)pCTR p(y=1x)(1)
基于这种关系, 我们联合 Embedding 和 MLP 网络设计了 ESMM 架构:

图 2 : 用 于 C V R 建 模 的 E S M M 体 系 结 构 。 图2:用于CVR建模的ESMM体系结构。 2:CVRESMM

在ESMM中,引入了CTR和CTCVR的两个辅助任务:1)帮助CVR在整个输入空间上建模,2)提供特征表示迁移学习。ESMM主要由两个子网络组成,如图2左侧的CVR网络和右侧的CTR网络。CTR和CVR网络的嵌入参数是共享的。CTCVR以CTR输出与CVR网络的乘积作为输出。

ESMM借鉴多任务学习的思想,将模型分为左右两个模块,左边是我们需要的CVR模块,右边是CTR和CTCVR辅助训练模块,恰当的引入了用户操作的顺序性,同时消除了CVR建模出现的两个问题。

值得注意的是,CVR和CTR任务采用相同的特征输入并共享Embedding Layer,CTR任务中由于具有大量训练样本,可以对模型进行充分训练,这种参数共享的方式,可以降低数据稀疏带来的影响。

另外, p C V R pCVR pCVR只是一个中间变量,受到上面公式的约束,而 p C T R pCTR pCTR p C T C V R pCTCVR pCTCVR​才是ESMM 中实际训练的主要因素。(可以这样理解,CVR模型是没有监督信号的,而CTR和CTCVR都是有监督信号的,最后利用公式约束得到CVR模型。)

所以,对于给定曝光的样本,我们同时可以得到CVR、CTR和CTCVR。

可能有同学会有疑问,为什么要通过公式进行约束,而不直接通过pCTCVR/pCTR来得到pCVR。作者也做了这样的实验,但是结果并不好,主要原因在于pCTR通常非常小,除以一个非常小的数会引起数值不稳定,所以ESMM采用了乘法公式进行约束,而不是直接通过除法得到结果。

我们来看下ESMM的损失函数,由具有监督信息的 p C T R pCTR pCTR p C T C V R pCTCVR pCTCVR任务组成:
L ( θ c v r , θ c t r ) = ∑ i = 1 N l ( y i , f ( x i ; θ c

以上是关于19推荐系统16CTR&CVR联合学习的主要内容,如果未能解决你的问题,请参考以下文章

推荐系统论文阅读(二十)-阿里妈妈基于用户长序列历史行为的推荐SIM

(读论文)推荐系统之ctr预估-Wide&Deep模型解析

推荐系统概况:传统CTR深度学习CTR GraphEmbedding多任务学习梳理

深度CTR预估模型在应用宝推荐系统中的探索

推荐系统系列:FFM理论与实践

推荐系统推荐系统数据流的经典技术架构+微软阿里微软等10大深度学习CTR模型最全演化图谱