推荐系统遇上深度学习(七十六)-CVR预估中的延迟反馈问题建模

1、背景介绍

在展示广告场景中,有多种多样的计费方式,如按每次展示计费CPM、按每次点击计费CPC、以及按每次转化计费CPA。但不论何种计费方式,在实时竞价的场景下,供给方(媒体)对于广告的排序基本都是采用eCPM(千次展示广告收入),那么对于CPC计费的情景,eCPM = bid * pCTR,而对于CPA计费的场景,eCPM = bid * pCTR * pCVR。可以看到,对于CPA计费的场景,需要对CTR和CVR进行准确的预估。而本文也重点关注CPA计费场景下的CVR预估问题。

但是对与转化率(Conversion Rate)的预估,有时候会存在一定的延迟反馈(delayed feedback)问题,比如看过一个商品广告,当时没有发生购买行为,过了几天按捺不住去买。对于这种存在延迟反馈的场景,在训练模型时,对于一些还没有转化的样本,我们无法确定是负样本还是有可能变成正样本。一种比较基本的做法是设定一个matching window,比如5天,如果5天内还没有发生转化,那么就会标记为负样本。

上述的做法,对于matching window的设定至关重要,如果matching window设置的较短,那么可能会有更多的样本被错误的标记为负样本,如果设置较长,那么每次更新模型,所使用的样本至少是matching window时间前的样本,这样会导致训练的模型“不新鲜”。

因此,本文提出一种不包含matching window的对延迟反馈问题建模的方法,一起学习一下。

2、建模方法

2.1 符号定义

首先,我们来看下本文至关重要的5个符号定义:

X : 特征集合
Y : 0或者1,表示转化行为是否已经发生
C : 0或者1,表示转化行为是否最终发生
D : 转化行为和点击行为之间的时间间隔(如果最终没有转化,就不会有对应的D)
E : 目前距点击行为发生的的时间间隔

首先来看下Y和C的关系。

1)Y=0 等价于 C=0 or (C=1 and E < D)
2)Y=1 等价于 C=1

第一条的意思是说,当前还没有发生转化行为,可能有两方面的原因,一是最终不会发生转化,二是当前距点击行为发生的时间间隔小于最终转化距点击行为的时间间隔。

同时,这里还有一条隐含的假设,即给定特征X,一组(C,D)的组合发生的概率,和E是无关的,即:

2.2 问题建模

基于上面的符号定义和假设,本文提出的方法要建模两个方面的内容:

1)Pr(C|X),即建模是否会发生转化行为
2)Pr(D|X,C=1),即当转化行为发生时,与点击行为的时间间隔

而在线上应用的时候,我们只会应用第一部分的模型。

对于第一个问题,我们可以使用最简单的逻辑回归模型:

而第二个问题,我们认为转化时间满足一个指数分布,转化行为发生的概率会随时间的变长而降低:

其中λ(x) = exp(wd · x)。因此,我们需要学习的参数就包括wc和wd

但是,由于延迟反馈问题的存在,我们不能直接去训练这两个模型,我们所能拿到的每条数据通常包含以下三个部分(xi,yi,ei),即特征xi,当前是否转化yi和当前距点击行为发生的时间间隔xi。如果yi = 1 ,那么还会包含转化和点击之间的时间间隔di

因此,我们需要通过建模P(Y)来间接的建模前面提到的两个问题。因此,我们需要做一定的转换。对于Y=1的情况,我们进行如下的转换:

第一步的转换利用了Y=1和C=1的等价关系,而第二步则利用了2.1节我们介绍过的假设,第三步则是将联合概率转换为边缘概率。

同样的,对于Y=0的情况,也可以进行转换:

同样利用Y=0和 C=0 or (C=1 and E < D)的等价关系,将其拆解为两部分。由于C=0可以等价转化为Y=0(但Y=0不能等价转化为C=0),所以第一部分的概率等价于P(C=0|X=xi),即1-p(xi),而第二部分计算如下,首先将问题转化为D>E的概率,然后转化为对应的积分问题:

因此,总体上Y=0可以转化为:

2.3 问题优化

文中给出了两种优化方法,一种是EM方法,一种是梯度下降方法,我们这里只介绍梯度下降方法,即优化如下的带正则化的log likelihood:

其中:

3、整体回顾

最后再来整体回顾一下本文提出的思路:

对于线上使用的模型,为了能够保证模型的“新鲜性”,需要对模型进行实时的更新(分钟级,小时级,天级别),但对于CVR问题来说,有时候存在一定的反馈延迟。因此,本文将训练时建模的目标分为两部分,一是建模是否会发生转化行为,二是建模当转化行为发生时,转化行为与点击行为的时间间隔。

但对于收集到的数据,特别是在实时更新时,我们只能区分是正样本还是未标记样本。对于未标记样本,可以分成两种情况,一种是最终也不会发生转化,一种是转化时间发生在之后。模型训练只能围绕当前获得到的标记展开,因此通过概率转换,使用建模目标的概率计算方法来表示数据中的样本,从而通过样本的训练,来优化上述两部分目标。而最终在线上使用时,只预测最终的转化概率即可。

本文提出的建模思路还是比较巧妙的,虽然是2014年的文章,还是值得一读的。

你可能感兴趣的:(推荐系统遇上深度学习(七十六)-CVR预估中的延迟反馈问题建模)