CVR预估中的延迟反馈建模——指数模型

本文介绍了广告场景中CVR预估的延迟反馈问题及其后果,探讨了使用指数模型来模拟延迟现象的必要性和建模过程。通过建立两个模型,分别预测转化是否发生和转化延迟时间,利用联合概率分布和梯度下降法优化损失函数,解决延迟反馈对模型准确性的影响。
摘要由CSDN通过智能技术生成

今天分享一篇解决延迟反馈问题最经典的文章:《Modeling Delayed Feedback in Display Advertising》,于2014年发表在KDD上。

CVR预估的延迟反馈问题

广告场景中的CVR预估

CVR预估对广告平台而言非常重要,平台往往可以通过选择曝光给用户不同的广告而增加收益,假设广告主对获得一个用户的价位 b i d bid bid,将广告曝光给用户后的期望点击率为 p c t r pctr pctr,点击后的激活率为 p c v r pcvr pcvr,则每次曝光的期望收益 e c p m ecpm ecpm即为:
e c p m = p c t r ∗ p c v r ∗ b i d ecpm=pctr*pcvr*bid ecpm=pctrpcvrbid


在曝光之前需要预估曝光后的点击率 p c t r pctr pctr与点击转化率 p c v r pcvr pcvr,预估曝光的期望收益,从而优化曝光收益,由此可见pcvr预估的重要性。

延迟反馈造成的后果

延迟反馈现象非常普遍,用户在点击某个广告后往往需要经过一段时间之后才会付费,从而带来收益,而这一转化结果又需要一段时间才能传回,因此从用户点击物品到获知该次点击是否发生转化存在一定的时间间隔,这便是延迟反馈现象,文中给出了延迟反馈情况统计,对于30天内的反馈数据,延迟情况如下:
在这里插入图片描述

大概50%转化发生在一天以后,13%转化发生在2周以后,如果在一天后划分正负样本,则仅有一半的正样本能够被正确标注,其他一半则被误标记为负样本,基于偏差如此大的数据训练的模型效果可想而知。

从图中可以看出延迟的日期比较符合指数分布,因此后续建模时会用指数分布模型来拟合。

需要指出的是图中的数据仅仅包含30天内反馈的数据,如果考虑30天以上的转化,真实的延迟反馈现象可能更加严重。

建模的必要性

一个很自然的想法是,既然大部分转化有延迟,那是否可以等待更长时间,数据回流完成之后再对样本进行标记和使用,事实上这是因为线上模型对实时性具有很高的要求,为了证明这一点,作者给出了新流量占比图:


图中的横坐标代表日期,纵坐标代表该日期所有流量中新流量的占比,该指稳定上升,并在30天时达到了11%,若使用30天前的数据进行训练,则有至少11%的数据是模型从未遇见过的,这是无法接受的。

建模过程

模型建立

为了对延迟反馈现象进行建模,我们需要建立两个模型,第一个建模转化是否会发生(即cvr预估),第二个模型建模转化发生的延迟。

第二个模型仅仅用于辅助第一个模型的训练,在线上仅使用第一个模型进行CVR预估。

X表示所有特征(包括用户、物品及其他上下文特征),C为01变量,表示最终是否发生转化,Y表示01变量,表示当前是否已发生转化,D表示点击到转化之间的延迟长度(仅对C=1有定义),E表示点击到当前时刻经历的时间。C和Y的关系可由下图表示,若Y=1则必然C=1,若Y=0则C均有可能,即当前未发生转化,但未来有可能发生。

在这里插入图片描述

模型1:使用逻辑回归模型预测最终转化率C,其中 w c w_c wc为待解参数:
P r ( C = 1 ∣ X = x ) = p ( x ) Pr(C=1|X=x)=p(x) Pr(C=1X=x)=p(x)
p ( x ) = 1 1 + e x p ( − w c ⋅ x ) p(x)=\frac{1}{1+exp(-w_c\cdot x)} p(x)=1+exp(wcx)1
模型2:预测延迟时间
假设延迟时间服从参数为 λ ( x ) \lambda(x) λ(x)的指数分布,则:
P r ( D = d ∣ X = x , C = 1 ) = λ ( x ) e x p ( − λ ( x ) d ) ) Pr(D=d|X=x, C=1)=\lambda(x)exp(-\lambda(x)d)) Pr(D=dX=x,C=1)=λ(x)exp(λ(x)d))
作者认为不同的特征的延迟时间是不同的,比如有些用户会很快给出反馈,有些业务场景需要较长的等待,因此指数分布的参数 λ ( x ) \lambda(x) λ(x)应该与x有关,另一方面为了保证其恒为正,将其建模为指数:
λ ( x ) = e x p ( w d ⋅ x ) \lambda(x)=exp(w_d\cdot x) λ(x)=exp(wdx)

概率计算

如果我们知道 C C C的信息,那么可以直接训练模型1中的参数 w c w_c wc,而实际上我们不知道 C C C,只知道 Y Y Y D D D,因此需要使用模型表示出 Y Y Y D D D的联合概率分布,再基于已知的它们的值建立损失函数,从而训练模型中的参数。

首先计算图中蓝色部分,即 Y = 1 Y=1 Y=1部分的概率:
Pr ⁡ ( Y = 1 , D = d i ∣ X = x i , E = e i ) = Pr ⁡ ( D = d i ∣ X = x i , C = 1 ) Pr ⁡ ( C = 1 ∣ X = x i ) = λ ( x i ) exp ⁡ ( − λ ( x i ) d i ) p ( x i ) \begin{array}{l} \operatorname{Pr}\left(Y=1, D=d_{i} \mid X=\mathbf{x}_{i}, E=e_{i}\right) \\ =\operatorname{Pr}\left(D=d_{i} \mid X=\mathbf{x}_{i}, C=1\right) \operatorname{Pr}\left(C=1 \mid X=\mathbf{x}_{i}\right) \\ =\lambda\left(\mathbf{x}_{i}\right) \exp \left(-\lambda\left(\mathbf{x}_{i}\right) d_{i}\right) p\left(\mathbf{x}_{i}\right) \end{array} Pr(Y=1,D=diX=xi,E=ei)=Pr(D=diX=x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值