CVR预估模型ESMM

Posted zhiyong_will

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CVR预估模型ESMM相关的知识,希望对你有一定的参考价值。

1. 概述

一般在对CVR建模的过程中,正样本选择的是在点击后有转化的样本作为正样本,负样本则是在点击后没有转化的样本作为负样本。然而,这样的建模方式存在一定的问题:

  • Sample Selection Bias(SSB)问题,即样本选择有偏。在training和inference阶段面对的样本空间不一致,在training阶段,选择的样本都是点击后的样本,而在inference阶段,面对的是所有的可能曝光的样本;
  • Data Sparsity (DS)问题,即样本稀疏。点击的样本只是占了曝光样本的很小的一部分,如下图所示:

为了解决以上的这些问题,阿里在2018年提出了ESMM(Entire space multi-task model)[1]模型,从名称来看,CVR的建模也是在全空间上的,同时这是一个基于多任务建模的模型。

2. 算法原理

2.1. CVR建模

一条样本的整个过程包括了“曝光->点击->转化”,这是一个顺序的过程。假设 x \\mathbfx x表示的是一条曝光样本, y ∈ 0 , 1 y\\in \\left\\ 0,1\\right\\ y0,1表示的是该曝光样本是否被点击, z ∈ 0 , 1 z\\in \\left\\ 0,1\\right\\ z0,1表示的是该样本在曝光点击后是否有转化,对CVR建模是预估转化率: p C V R = p ( z = 1 ∣ y = 1 , x ) pCVR=p\\left ( z=1\\mid y=1,\\mathbfx \\right ) pCVR=p(z=1y=1,x),与之相关的两个概率是点击率(CTR): p C T R = p ( y = 1 ∣ x ) pCTR=p\\left ( y=1\\mid \\mathbfx \\right ) pCTR=p(y=1x)和点击转化率(CTCVR): p C T C V R = p ( y = 1 , z = 1 ∣ x ) pCTCVR=p\\left ( y=1,z=1\\mid \\mathbfx \\right ) pCTCVR=p(y=1,z=1x),这三者之间的关系为:

p ( y = 1 , z = 1 ∣ x ) ⏟ = p ( y = 1 ∣ x ) ⏟ × p ( z = 1 ∣ y = 1 , x ) ⏟ p C T C V R p C T R p C V R \\beginmatrix \\underbracep\\left ( y=1,z=1\\mid \\mathbfx \\right ) & = & \\underbracep\\left ( y=1\\mid \\mathbfx \\right ) & \\times & \\underbracep\\left ( z=1\\mid y=1,\\mathbfx \\right ) \\\\ pCTCVR & & pCTR & & pCVR\\\\ \\endmatrix p(y=1,z=1x)pCTCVR= p(y=1x)pCTR× p(z=1y=1,x)pCVR

因此,在单独对CVR建模的过程中,需要选择的样本空间是在所有点击样本中,即上述过程的“点击->转化”阶段,如果存在转化,则在CVR中为正样本 z = 1 z=1 z=1,否则为负样本 z = 0 z=0 z=0。反观CTR建模的过程,选择的样本空间在上述过程的“曝光->点击”阶段。
而在inference阶段,所需面对的样本是所有可能曝光的样本。基于以上的公式,对于CTCVR的建模,选择的样本空间则是上述过程的融合,即“曝光->转化”。对上述公式进行简单的变换,得到如下的公式:

p ( z = 1 ∣ y = 1 , x ) = p ( y = 1 , z = 1 ∣ x ) p ( y = 1 ∣ x ) p\\left ( z=1\\mid y=1,\\mathbfx \\right )=\\fracp\\left ( y=1,z=1\\mid \\mathbfx \\right )p\\left ( y=1\\mid \\mathbfx \\right ) p(z=1y=1,x)=p(y=1x)p(y=1,z=1x)

这样就能直接利用“曝光”样本空间中的样本直接对CVR建模,不过在对CVR建模的过程中需要同时对CTR以及CTCVR建模。

2.2. ESMM模型结构

基于以上的分析,在ESMM模型的建模过程中引入两个辅助任务,即:CTR建模和CTCVR建模,ESMM的网络结构如下图所示:

在ESMM模型结构中,有两个特点:

第一,在ESMM结构中包含了两个塔,如上图所示,左侧是一个CVR任务的塔,右侧是一个CTR任务的塔,两个塔可以构建两个任务,分别为pCTR和pCTCVR,这样样本分别是从“曝光->点击”和“曝光->转化”,解决了样本空间的问题,通过模型中参数的学习,可以把CVR塔中的参数学习到,这样对于CVR塔的样本空间即为“曝光->转化”。

第二,在两个塔的底层Embedding层是参数共享的,这样能充分利用CTR任务重的样本,缓解传统的CVR建模过程中面临的数据稀疏问题。

2.3. 损失函数

因为在ESMM中存在两个学习任务,分别为CTR和CTCVR,则最终的损失函数为:

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 ) ) \\beginalign* L\\left ( \\theta _cvr,\\theta _ctr \\right ) &= \\sum_i=1^Nl\\left ( y_i,f\\left ( \\mathbfx_i;\\theta _ctr \\right ) \\right )\\\\ &+ \\sum_i=1^Nl\\left ( y_i\\&z_i,f\\left ( \\mathbfx_i;\\theta _ctr \\right )\\times f\\left ( \\mathbfx_i;\\theta _cvr \\right ) \\right ) \\endalign* L(θcvr,θctr)=i=1Nl(yi,f(xi;θctr))+i=1Nl(yi&zi,f(xi;θctr)×f(xi;θcvr))

其中, θ c v r \\theta _cvr θcvr表示的是CVR塔中的参数, θ c t r \\theta _ctr θctr表示的是CTR塔中的参数, y i y_i yi表示的是样本 x i \\mathbfx_i xi在CTR任务上的label, z i z_i zi表示的是样本 x i \\mathbfx_i xi在CVR任务上的label, f ( x i ; θ c t r ) f\\left ( \\mathbfx_i;\\theta _ctr \\right ) f(xi;θctr)表示的样本 x i \\mathbfx_i xi在CTR塔中的结果, f ( x i ; θ c v r ) f\\left ( \\mathbfx_i;\\theta _cvr \\right ) f以上是关于CVR预估模型ESMM的主要内容,如果未能解决你的问题,请参考以下文章

CVR预估模型-ESMM

CVR预估模型-ESMM

CVR预估模型-ESMM

CVR预估模型ESMM

CVR预估模型ESMM

多任务学习——SIGIR 2018ESMM