反馈延迟建模论文阅读笔记

反馈延迟建模是效果广告领域的一个常见问题。在效果广告领域中,随着广告主愈加关注后链路转化效果,其偏向采用oCPC方式进行广告投放,即在转化(如下载、安装、激活、付费、加购、下单等)上进行出价,由广告平台在广告请求到来后,用模型实时预估点击率pCTR和转化率pCVR,并根据转化出价,计算eCPM:
eCPM = pCTR × pCVR × tCPA \text{eCPM}=\text{pCTR}\times\text{pCVR}\times\text{tCPA} eCPM=pCTR×pCVR×tCPA

最后使用eCPM进行排序和计价,选取靠前的广告进行展示。

而模型预估的准确性依赖于是否准确收集用户在广告展现后的反馈(是否点击和转化)作为样本标记进行模型训练,特别是实时模型更新更依赖样本的时效性,而转化相对于展现、点击一般都会延迟发生,比如用户点击游戏广告下载后,可能会延迟数日才会在游戏中进行付费。假设将付费作为转化目标由模型预估转化率,若在模型训练时,付费还未发生,则由展现、点击日志构成的样本会被标记为负样本,若最终付费在广告平台归因最长窗口期内发生并回传,则样本又会被标记为正样本,这就会导致样本在前后模型训练时的标记不同,并且训练时样本标记的分布和真实分布相比是有偏的------错误地将正样本标记为负样本(Fake Negative,FN),如果模型直接基于有偏的样本集进行训练,最终模型预估的转化率也是有偏的(偏低)。对于这类反馈延迟问题,业界已经有比较多的理论研究和业务实践,本文主要是对基于重要性采样解决反馈延迟的一系列论文的阅读笔记。

DFM

较早的比较经典的解决反馈延迟问题的论文是Criteo于2014年发表的《Modeling Delayed Feedback in Display Advertising》。这篇论文将反馈延迟下的转化率预估问题转化为两个问题:一是预估转化率,二是预估转化相对点击延迟的时间。

x x x表示样本, y ∈ { 0 , 1 } y\in\{0,1\} y∈{0,1}表示训练时样本是否发生转化, c ∈ { 0 , 1 } c\in\{0,1\} c∈{0,1}表示样本最终是否发生转化, d d d表示转化相对点击延迟的时间, e e e表示训练时相对点击的时间。论文设计了两个模型分别预估转化率 p ( c = 1 ∣ x ) p(c=1|x) p(c=1∣x)和转化相对点击延迟的时间 p ( d ∣ x , c = 1 ) p(d|x,c=1) p(d∣x,c=1)。第一个模型采用逻辑回归模型,即:
p ( c = 1 ∣ x ) = = 1 1 + exp ⁡ ( − w c ⋅ x ) = σ ( w c ⋅ x ) p(c=1|x)==\frac{1}{1+\exp{(-w_c\cdot x)}}=\sigma(w_c\cdot x) p(c=1∣x)==1+exp(−wc⋅x)1=σ(wc⋅x)

其中, σ \sigma σ是sigmoid函数。论文假定转化相对点击延迟的时间满足指数分布,因此,第二个模型可以表示为:
p ( d ∣ x , c = 1 ) = λ ( x ) exp ⁡ ( − λ ( x ) d ) p(d|x,c=1)=\lambda(x)\exp(-\lambda(x)d) p(d∣x,c=1)=λ(x)exp(−λ(x)d)

其中, λ ( x ) = exp ⁡ ( w d ⋅ x ) \lambda(x)=\exp(w_d\cdot x) λ(x)=exp(wd⋅x)。

论文对这两个模型进行联合训练,但训练完成后,只保留第一个模型用于预估转化率。

FNW和FNC

DFM解决延迟反馈的思路是将转化率预估分解为转化率预估和延迟预估两个问题,并设计相应的模型,而另一个思路是保持模型不变,但针对反馈延迟导致的样本标记分布偏差,通过在损失函数中进行正负样本的加权来纠偏。采用这个思路的较早的比较经典的论文是Twitter于2019年发表的《Addressing Delayed Feedback for Continuous Training with Neural Networks in CTR prediction》。Twitter在这篇论文中主要解决其视频广告的延迟点击问题,因此,在本节内容中,样本为展现日志,样本标记为是否点击。

重要性采样

x x x表示样本, y ∈ { 0 , 1 } y\in\{0,1\} y∈{0,1}表示样本最终是否发生点击, f θ ( y ∣ x ) f_\theta(y|x) fθ(y∣x)表示预估点击率的模型,则训练模型常用的交叉熵损失函数可表示为:
L ( θ ) = − E p log ⁡ f θ ( y ∣ x ) = − ∑ x , y p ( x , y ) log ⁡ f θ ( y ∣ x ) \mathcal{L}(\theta)=-\mathbb{E}p\\log{f_\\theta(y\|x)}=-\sum{x,y}{p(x,y)\log{f_\theta(y|x)}} L(θ)=−Eplogfθ(y∣x)=−x,y∑p(x,y)logfθ(y∣x)

因为模型训练样本集存在FN问题,所以训练样本集并不满足真实概率分布 p ( x , y ) p(x,y) p(x,y)。令样本集的概率分布为 b ( x , y ) b(x,y) b(x,y),与真实概率分布存在偏差,因此,调整损失函数计算方式,由计算真实概率分布下的期望等价修改为计算偏差概率分布下的期望:
L ( θ ) = − E p log ⁡ f θ ( y ∣ x ) = − E b p ( x , y ) b ( x , y ) log ⁡ f θ ( y ∣ x ) \mathcal{L(\theta)}=-\mathbb{E}_p\\log{f_\\theta(y\|x)}=-\mathbb{E}_b\\frac{p(x,y)}{b(x,y)}\\log{f_\\theta(y\|x)} L(θ)=−Eplogfθ(y∣x)=−Ebb(x,y)p(x,y)logfθ(y∣x)

w ( x , y ) = p ( x , y ) b ( x , y ) w(x,y)=\frac{p(x,y)}{b(x,y)} w(x,y)=b(x,y)p(x,y)表示重要性权重,上述期望基于训练样本集计算的公式如下:
L ( θ ) = − 1 N ∑ n w ( x n , y n ) log ⁡ f θ ( y n ∣ x n ) \mathcal{L}(\theta)=-\frac{1}{N}\sum_n{w(x_n,y_n)\log{f_\theta(y_n|x_n)}} L(θ)=−N1n∑w(xn,yn)logfθ(yn∣xn)

通过上述公式即可以基于有偏训练样本集计算损失函数,并通过梯度下降更新模型参数最小化损失函数。这种基于有偏概率分布预估真实概率分布的方法被称为重要性采样(Importance Sampling)。重要性采样并不需要对原有点击率预估模型结构进行修改,仅需要调节损失函数中正负样本权重,其核心问题即如何计算权重 w ( x , y ) w(x,y) w(x,y)。 对于点击延迟,论文在处理样本时并不会等待其相应的点击发生,而是直接将样本标记为负样本,待点击发生后,再将原样本复制成一条新样本,并将新样本标记为正样本。对于重要性采样,论文设计了纠偏机制------FNW(Fake Negative Weighted)。

FNW

p p p表示真实概率分布, b b b表示训练样本集实际有偏的概率分布。虽然由于FN问题导致训练样本标记的概率分布有偏,但论文假设有偏的正负样本集合中样本特征的分布和真实分布是同分布的,即:
b ( x ∣ y = 0 ) = p ( x ) b ( x ∣ y = 1 ) = p ( x ∣ y = 1 ) \begin{aligned} b(x|y=0)&=p(x) \\ b(x|y=1)&=p(x|y=1) \end{aligned} b(x∣y=0)b(x∣y=1)=p(x)=p(x∣y=1)

另外,由于展现发生时直接将样本标记为负样本,待点击发生后,再将原样本复制成一条新样本,并将新样本标记为正样本,所以训练样本集中负样本的概率可表示为:
b ( y = 0 ) = 1 1 + p ( y = 1 ) b(y=0)=\frac{1}{1+p(y=1)} b(y=0)=1+p(y=1)1

即分子是原样本,分母是原样本加上点击发生后复制的新样本,同样可得:
b ( y = 1 ) = p ( y = 1 ) 1 + p ( y = 1 ) b(y=1)=\frac{p(y=1)}{1+p(y=1)} b(y=1)=1+p(y=1)p(y=1)

对使用真实概率分布数据集进行计算的损失函数公式进行如下推导:
L ( θ ) = − ∑ x , y p ( x , y ) log ⁡ f θ ( y ∣ x ) = − ∑ x , y p ( y = 1 ∣ x ) log ⁡ f θ ( y = 1 ∣ x ) + p ( y = 0 ∣ x ) log ⁡ f θ ( y = 0 ∣ x ) = − ∑ x , y b ( y = 1 ∣ x ) p ( y = 1 ∣ x ) b ( y = 1 ∣ x ) log ⁡ f θ ( y = 1 ∣ x ) + b ( y = 0 ∣ x ) p ( y = 0 ∣ x ) b ( y = 0 ∣ x ) log ⁡ f θ ( y = 0 ∣ x ) \begin{aligned} \mathcal{L}(\theta)&=-\sum_{x,y}{p(x,y)\log{f_\theta(y|x)}} \\ &=-\sum_{x,y}{p(y=1|x)\log f_\theta(y=1|x)+p(y=0|x)\log f_\theta(y=0|x)} \\ &=-\sum_{x,y}{b(y=1|x)\frac{p(y=1|x)}{b(y=1|x)}\log f_\theta(y=1|x)+b(y=0|x)\frac{p(y=0|x)}{b(y=0|x)}\log f_\theta(y=0|x)} \end{aligned} L(θ)=−x,y∑p(x,y)logfθ(y∣x)=−x,y∑p(y=1∣x)logfθ(y=1∣x)+p(y=0∣x)logfθ(y=0∣x)=−x,y∑b(y=1∣x)b(y=1∣x)p(y=1∣x)logfθ(y=1∣x)+b(y=0∣x)b(y=0∣x)p(y=0∣x)logfθ(y=0∣x)

即由使用真实概率分布计算改为使用有偏概率分布计算,而 p ( y = 1 ∣ x ) b ( y = 1 ∣ x ) \frac{p(y=1|x)}{b(y=1|x)} b(y=1∣x)p(y=1∣x)、 p ( y = 0 ∣ x ) b ( y = 0 ∣ x ) \frac{p(y=0|x)}{b(y=0|x)} b(y=0∣x)p(y=0∣x)分别是正负样本的重要性权重。对 b ( y = 1 ∣ x ) b(y=1|x) b(y=1∣x)进一步展开:
b ( y = 1 ∣ x ) = b ( y = 1 , x ) b ( x ) = b ( y = 1 ) b ( x ∣ y = 1 ) b ( x , y = 1 ) + b ( x , y = 0 ) = b ( y = 1 ) b ( x ∣ y = 1 ) b ( y = 1 ) b ( x ∣ y = 1 ) + b ( y = 0 ) b ( x ∣ y = 0 ) \begin{aligned} b(y=1|x)&=\frac{b(y=1,x)}{b(x)} \\ &=\frac{b(y=1)b(x|y=1)}{b(x,y=1)+b(x,y=0)} \\ &=\frac{b(y=1)b(x|y=1)}{b(y=1)b(x|y=1)+b(y=0)b(x|y=0)} \end{aligned} b(y=1∣x)=b(x)b(y=1,x)=b(x,y=1)+b(x,y=0)b(y=1)b(x∣y=1)=b(y=1)b(x∣y=1)+b(y=0)b(x∣y=0)b(y=1)b(x∣y=1)

b ( x ∣ y = 0 ) = p ( x ) b(x|y=0)=p(x) b(x∣y=0)=p(x)、 b ( x ∣ y = 1 ) = p ( x ∣ y = 1 ) b(x|y=1)=p(x|y=1) b(x∣y=1)=p(x∣y=1)、 b ( y = 0 ) = 1 1 + p ( y = 1 ) b(y=0)=\frac{1}{1+p(y=1)} b(y=0)=1+p(y=1)1、 b ( y = 1 ) = p ( y = 1 ) 1 + p ( y = 1 ) b(y=1)=\frac{p(y=1)}{1+p(y=1)} b(y=1)=1+p(y=1)p(y=1)代入上式:
b ( y = 1 ∣ x ) = p ( y = 1 ) 1 + p ( y = 1 ) p ( x ∣ y = 1 ) p ( y = 1 ) 1 + p ( y = 1 ) p ( x ∣ y = 1 ) + 1 1 + p ( y = 1 ) p ( x ) = p ( y = 1 ) p ( x ∣ y = 1 ) p ( y = 1 ) p ( x ∣ y = 1 ) + p ( x ) = p ( y = 1 ∣ x ) p ( x ) p ( y = 1 ∣ x ) p ( x ) + p ( x ) = p ( y = 1 ∣ x ) 1 + p ( y = 1 ∣ x ) \begin{aligned} b(y=1|x)&=\frac{\frac{p(y=1)}{1+p(y=1)}p(x|y=1)}{\frac{p(y=1)}{1+p(y=1)}p(x|y=1)+\frac{1}{1+p(y=1)}p(x)} \\ &=\frac{p(y=1)p(x|y=1)}{p(y=1)p(x|y=1)+p(x)} \\ &=\frac{p(y=1|x)p(x)}{p(y=1|x)p(x)+p(x)} \\ &=\frac{p(y=1|x)}{1+p(y=1|x)} \end{aligned} b(y=1∣x)=1+p(y=1)p(y=1)p(x∣y=1)+1+p(y=1)1p(x)1+p(y=1)p(y=1)p(x∣y=1)=p(y=1)p(x∣y=1)+p(x)p(y=1)p(x∣y=1)=p(y=1∣x)p(x)+p(x)p(y=1∣x)p(x)=1+p(y=1∣x)p(y=1∣x)

进一步可得:
b ( y = 0 ∣ x ) = 1 − b ( y = 1 ∣ x ) = 1 1 + p ( y = 1 ∣ x ) b(y=0|x)=1-b(y=1|x)=\frac{1}{1+p(y=1|x)} b(y=0∣x)=1−b(y=1∣x)=1+p(y=1∣x)1

b ( y = 1 ∣ x ) = p ( y = 1 ∣ x ) 1 + p ( y = 1 ∣ x ) b(y=1|x)=\frac{p(y=1|x)}{1+p(y=1|x)} b(y=1∣x)=1+p(y=1∣x)p(y=1∣x)和 b ( y = 0 ∣ x ) = 1 1 + p ( y = 1 ∣ x ) b(y=0|x)=\frac{1}{1+p(y=1|x)} b(y=0∣x)=1+p(y=1∣x)1代入上面的损失函数可得:
L I S ( θ ) = − ∑ x , y b ( y = 1 ∣ x ) ( 1 + p ( y = 1 ∣ x ) ) log ⁡ f θ ( y = 1 ∣ x ) + b ( y = 0 ∣ x ) p ( y = 0 ∣ x ) ( 1 + p ( y = 1 ∣ x ) ) log ⁡ f θ ( y = 0 ∣ x ) = − ∑ x , y b ( y = 1 ∣ x ) ( 1 + p ( y = 1 ∣ x ) ) log ⁡ f θ ( y = 1 ∣ x ) + b ( y = 0 ∣ x ) ( 1 − p ( y = 1 ∣ x ) ) ( 1 + p ( y = 1 ∣ x ) ) log ⁡ ( 1 − f θ ( y = 1 ∣ x ) ) \begin{aligned} \mathcal{L}{IS}(\theta)&=-\sum{x,y}{b(y=1|x)(1+p(y=1|x))\log f_\theta(y=1|x)+b(y=0|x)p(y=0|x)(1+p(y=1|x))\log f_\theta(y=0|x)} \\ &=-\sum_{x,y}{b(y=1|x)(1+p(y=1|x))\log f_\theta(y=1|x)+b(y=0|x)(1-p(y=1|x))(1+p(y=1|x))\log(1-f_\theta(y=1|x))} \end{aligned} LIS(θ)=−x,y∑b(y=1∣x)(1+p(y=1∣x))logfθ(y=1∣x)+b(y=0∣x)p(y=0∣x)(1+p(y=1∣x))logfθ(y=0∣x)=−x,y∑b(y=1∣x)(1+p(y=1∣x))logfθ(y=1∣x)+b(y=0∣x)(1−p(y=1∣x))(1+p(y=1∣x))log(1−fθ(y=1∣x))

即在损失函数中,当训练样本集有偏时,对于正样本,用 ( 1 + p ( y = 1 ∣ x ) ) (1+p(y=1|x)) (1+p(y=1∣x))进行加权,对于负样本,用 ( 1 − p ( y = 1 ∣ x ) ) ⋅ ( 1 + p ( y = 1 ∣ x ) ) (1-p(y=1|x))\cdot(1+p(y=1|x)) (1−p(y=1∣x))⋅(1+p(y=1∣x))进行加权 。由于 p ( y = 1 ∣ x ) p(y=1|x) p(y=1∣x)无法提前得知,所以用模型预估值 f θ ( y = 1 ∣ x ) f_\theta(y=1|x) fθ(y=1∣x)直接替换真实概率分布 p ( y = 1 ∣ x ) p(y=1|x) p(y=1∣x),即权重修改为 ( 1 + f θ ( y = 1 ∣ x ) ) (1+f_\theta(y=1|x)) (1+fθ(y=1∣x))和 ( 1 − f θ ( y = 1 ∣ x ) ) ⋅ ( 1 + f θ ( y = 1 ∣ x ) ) (1-f_\theta(y=1|x))\cdot(1+f_\theta(y=1|x)) (1−fθ(y=1∣x))⋅(1+fθ(y=1∣x)),损失函数可进一步表示为:
L I S ( θ ) = − ∑ x , y b ( y = 1 ∣ x ) ( 1 + f θ ( y = 1 ∣ x ) ) log ⁡ f θ ( y = 1 ∣ x ) + b ( y = 0 ∣ x ) ( 1 − f θ ( y = 1 ∣ x ) ) ( 1 + f θ ( y = 1 ∣ x ) ) log ⁡ ( 1 − f θ ( y = 1 ∣ x ) ) \mathcal{L}{IS}(\theta)=-\sum{x,y}{b(y=1|x)\left(1+f_\\theta(y=1\|x))\\right\log f_\theta(y=1|x)+b(y=0|x)\left(1-f_\\theta(y=1\|x))(1+f_\\theta(y=1\|x))\\right\log(1-f_\theta(y=1|x))} LIS(θ)=−x,y∑b(y=1∣x)(1+fθ(y=1∣x))logfθ(y=1∣x)+b(y=0∣x)(1−fθ(y=1∣x))(1+fθ(y=1∣x))log(1−fθ(y=1∣x))

论文指出,损失函数由中括号包含的权重部分虽由模型计算所得,但在计算梯度时,这部分固定不进行求导。

FNC

基于FNW,论文设计了另一种纠偏机制------FNC(Fake Negative Calibration)。FNC对模型和损失函数均不进行调整,直接基于有偏的训练样本集训练模型并预测有偏概率分布 b ( y = 1 ∣ x ) b(y=1|x) b(y=1∣x),并通过FNW中推导出的公式对 b ( y = 1 ∣ x ) b(y=1|x) b(y=1∣x)进行纠偏得到 p ( y = 1 ∣ x ) p(y=1|x) p(y=1∣x):
p ( y = 1 ∣ x ) = b ( y = 1 ∣ x ) 1 − b ( y = 1 ∣ x ) p(y=1|x)=\frac{b(y=1|x)}{1-b(y=1|x)} p(y=1∣x)=1−b(y=1∣x)b(y=1∣x)

对于模型结构,论文使用了当时点击率预估比较常用的Logistics回归和Wide & Deep。

ES-DFM

针对反馈延迟问题,Twitter提出的FNW先将所有样本直接标记为负样本用于训练,等点击发生后,再复制原样本、构造新的正样本用于训练,并基于重要性采样,通过调节损失函数中正负样本权重,解决反馈延迟问题。这种方法虽然样本时效性较高,但会导致所有正样本初始时均会被错误标记为负样本。一种权衡的方法是等待一段时间(Elapsed Time),若点击发生,则将样本标记为正样本,否则仍标记为负样本,等待虽不能解决FN问题(点击可能在等待后发生),但在降低样本时效性的代价下,能够带来样本准确性的提升 。基于这个思路,阿里妈妈于2021年发表了论文《Capturing Delayed Feedback in Conversion Rate Prediction via Elapsed-Time Sampling》,提出了ES-DFM(Elapsed-Time Sampling Delayed Feedback Model)算法。由于后续内容主要解决转化延迟问题,因此样本为展现、点击日志,样本标记为是否转化。

图1 反馈延迟场景下的样本类型

x x x表示样本特征, y y y表示样本标记, e e e表示等待时间, h h h表示转化延迟时间。根据等待时间、转化延迟时间和归因窗口三者之间的关系,可将真实样本集样本分为以下三种类型:

  • Real Negative:不发生转化或转化在归因窗口(上图未标出归因窗口)后发生, y = 0 y=0 y=0;
  • Fake Negative: h > e h>e h>e,转化在等待时间后、归因窗口内发生并归因,初始时 y = 0 y=0 y=0,归因后复制新样本, y = 1 y=1 y=1;
  • Positive: h ≤ e h\le e h≤e,转化在等待时间内发生并归因, y = 1 y=1 y=1;

p ( x , y ) p(x,y) p(x,y)表示真实概率分布, q ( x , y ) q(x,y) q(x,y)表示训练样本集因反馈延迟导致的有偏概率分布,则对于转化率预估模型 f θ ( x ) f_\theta(x) fθ(x),理想的损失函数就是计算真实概率分布下的交叉熵损失函数期望:
L i d e a l = E ( x , y ) ∼ p ( x , y ) l ( y , f θ ( x ) ) \mathcal{L}{ideal}=\mathbb{E}{(x,y)\sim p(x,y)}\mathcal{l(y,f_\theta(x))} Lideal=E(x,y)∼p(x,y)l(y,fθ(x))

若先不考虑Fake Negative样本在转化发生并归因后复制正样本、导致训练样本集样本数多于真实样本集样本数的问题,则训练样本集负样本由真实样本集Real Negative样本和真实样本集Fake Negative样本构成,即:
q ( y = 0 ∣ x ) = p ( y = 0 ∣ x ) + p ( y = 1 ∣ x ) p ( h > e ∣ x , y = 1 ) q(y=0|x)=p(y=0|x)+p(y=1|x)p(h>e|x,y=1) q(y=0∣x)=p(y=0∣x)+p(y=1∣x)p(h>e∣x,y=1)

而训练样本集正样本集真实样本集Positive样本构成,即:
q ( y = 1 ∣ x ) = p ( y = 1 ∣ x ) p ( h ≤ e ∣ x , y = 1 ) q(y=1|x)=p(y=1|x)p(h\le e|x,y=1) q(y=1∣x)=p(y=1∣x)p(h≤e∣x,y=1)

若再考虑Fake Negative样本在转化发生并归因后复制正样本的问题,则训练样本集正样本由真实样本集Positive样本和真实样本集Fake Negative样本复制正样本构成,则 q ( y = 0 ∣ x ) q(y=0|x) q(y=0∣x)和 q ( y = 1 ∣ x ) q(y=1|x) q(y=1∣x)可进一步表示为:
q ( y = 0 ∣ x ) = p ( y = 0 ∣ x ) + p ( y = 1 ∣ x ) p ( h > e ∣ x , y = 1 ) 1 + p ( y = 1 ∣ x ) p ( h > e ∣ x , y = 1 ) q(y=0|x)=\frac{p(y=0|x)+p(y=1|x)p(h>e|x,y=1)}{1+p(y=1|x)p(h>e|x,y=1)} q(y=0∣x)=1+p(y=1∣x)p(h>e∣x,y=1)p(y=0∣x)+p(y=1∣x)p(h>e∣x,y=1)
q ( y = 1 ∣ x ) = p ( y = 1 ∣ x ) p ( h ≤ e ∣ x , y = 1 ) + p ( y = 1 ∣ x ) p ( h > e ∣ x , y = 1 ) 1 + p ( y = 1 ∣ x ) p ( h > e ∣ x , y = 1 ) = p ( y = 1 ∣ x ) 1 + p ( y = 1 ∣ x ) p ( h > e ∣ x , y = 1 ) \begin{aligned} q(y=1|x)&=\frac{p(y=1|x)p(h\le e|x,y=1)+p(y=1|x)p(h>e|x,y=1)}{1+p(y=1|x)p(h>e|x,y=1)} \\ &=\frac{p(y=1|x)}{1+p(y=1|x)p(h>e|x,y=1)} \end{aligned} q(y=1∣x)=1+p(y=1∣x)p(h>e∣x,y=1)p(y=1∣x)p(h≤e∣x,y=1)+p(y=1∣x)p(h>e∣x,y=1)=1+p(y=1∣x)p(h>e∣x,y=1)p(y=1∣x)

由FNW中的推导可得,若采用重要性采样,需要计算正负样本权重 p ( y = 1 ∣ x ) q ( y = 1 ∣ x ) \frac{p(y=1|x)}{q(y=1|x)} q(y=1∣x)p(y=1∣x)、 p ( y = 0 ∣ x ) q ( y = 0 ∣ x ) \frac{p(y=0|x)}{q(y=0|x)} q(y=0∣x)p(y=0∣x),由上述 q ( y = 0 ∣ x ) q(y=0|x) q(y=0∣x)、 q ( y = 1 ∣ x ) q(y=1|x) q(y=1∣x)的推导,可进一步得到:
p ( y = 1 ∣ x ) q ( y = 1 ∣ x ) = 1 + p ( y = 1 ∣ x ) p ( h > e ∣ x , y = 1 ) = 1 + p d p \begin{aligned} \frac{p(y=1|x)}{q(y=1|x)}&=1+p(y=1|x)p(h>e|x,y=1) \\ &=1+p_{dp} \end{aligned} q(y=1∣x)p(y=1∣x)=1+p(y=1∣x)p(h>e∣x,y=1)=1+pdp
p ( y = 0 ∣ x ) q ( y = 0 ∣ x ) = p ( y = 0 ∣ x ) + p ( y = 0 ∣ x ) p ( y = 1 ∣ x ) p ( h > e ∣ x , y = 1 ) p ( y = 0 ∣ x ) + p ( y = 1 ∣ x ) p ( h > e ∣ x , y = 1 ) = p ( y = 0 ∣ x ) ( 1 + p ( y = 1 ∣ x ) p ( h > e ∣ x , y = 1 ) ) p ( y = 0 ∣ x ) + p ( y = 1 ∣ x ) p ( h > e ∣ x , y = 1 ) = 1 + p d p ( x ) p r n ( x ) \begin{aligned} \frac{p(y=0|x)}{q(y=0|x)}&=\frac{p(y=0|x)+p(y=0|x)p(y=1|x)p(h>e|x,y=1)}{p(y=0|x)+p(y=1|x)p(h>e|x,y=1)} \\ &=\frac{p(y=0|x)(1+p(y=1|x)p(h>e|x,y=1))}{p(y=0|x)+p(y=1|x)p(h>e|x,y=1)} \\ &=1+p_{dp}(x)p_{rn}(x) \end{aligned} q(y=0∣x)p(y=0∣x)=p(y=0∣x)+p(y=1∣x)p(h>e∣x,y=1)p(y=0∣x)+p(y=0∣x)p(y=1∣x)p(h>e∣x,y=1)=p(y=0∣x)+p(y=1∣x)p(h>e∣x,y=1)p(y=0∣x)(1+p(y=1∣x)p(h>e∣x,y=1))=1+pdp(x)prn(x)

其中:
p d p = p ( y = 1 ∣ x ) p ( h > e ∣ x , y = 1 ) p_{dp}=p(y=1|x)p(h>e|x,y=1) pdp=p(y=1∣x)p(h>e∣x,y=1)
p r n = p ( y = 0 ∣ x ) p ( y = 0 ∣ x ) + p ( y = 1 ∣ x ) p ( h > e ∣ x , y = 1 ) p_{rn}=\frac{p(y=0|x)}{p(y=0|x)+p(y=1|x)p(h>e|x,y=1)} prn=p(y=0∣x)+p(y=1∣x)p(h>e∣x,y=1)p(y=0∣x)

从公式可以看出, p d p p_{dp} pdp表示真实样本集中延迟正样本(即Fake Negative样本)的概率(Delayed Positive Probability), p r n p_{rn} prn表示训练样本集负样本(包含Fake Negative样本)中真负样本(即Real Negative样本)的概率(Real Negative Probability)。基于上述正负样本权重 p ( y = 1 ∣ x ) q ( y = 1 ∣ x ) \frac{p(y=1|x)}{q(y=1|x)} q(y=1∣x)p(y=1∣x)、 p ( y = 0 ∣ x ) q ( y = 0 ∣ x ) \frac{p(y=0|x)}{q(y=0|x)} q(y=0∣x)p(y=0∣x)的表达式,损失函数最终可写成:
L i w n = − ∑ ( x i , y i ) ∈ D ~ n y i 1 + p d p ( x i ) log ⁡ ( f θ ( x i ) ) + ( 1 − y i ) 1 + p d p ( x i ) p r n ( x i ) log ⁡ ( 1 − f θ ( x i ) ) \mathcal{L}{iw}^n=-\sum{(x_i,y_i)\in\tilde{D}}^n{y_i1+p_{dp}(x_i)\log(f_\theta(x_i))+(1-y_i)1+p_{dp}(x_i)p_{rn}(x_i)\log(1-f_\theta(x_i))} Liwn=−(xi,yi)∈D~∑nyi1+pdp(xi)log(fθ(xi))+(1−yi)1+pdp(xi)prn(xi)log(1−fθ(xi))

其中, D ~ \tilde{D} D~表示训练样本集,其满足概率分布 q ( x , y ) q(x,y) q(x,y)。至此,论文将正负样本权重的计算转化为计算 p d p p_{dp} pdp和 p r p p_{rp} prp。论文分别使用分类器 f d p f_{dp} fdp和 f r n f_{rn} frn预估 p d p p_{dp} pdp和 p r n p_{rn} prn,这两个分类器共用一个模型进行联合训练,模型结构和转化率预估模型相同。

对于如何构造 f d p f_{dp} fdp和 f r n f_{rn} frn的训练数据,论文使用30天前的历史样本数据,这些样本数据已无反馈延迟,可以对其准确标记正负样本以及当时是否延迟。对于 f d p f_{dp} fdp,其正样本为转化延迟正样本,其负样本为历史样本数据中除转化延迟正样本以外的其他样本,对于 f r n f_{rn} frn,其正样本为转化负样本,其负样本为转化延迟正样本。

论文通过等待转化发生并归因以提升样本准确性。对于等待时间的长短,论文指出电商广告场景下,不同类型商品的转化延迟时间不同(比如价格高的商品转化延迟大),因此相应的等待时间也应不同,但论文对此进行了简化,将等待时间固定为常量,并通过实验验证其取值为1小时较合适。

DEFER

FNW和ES-DFM在处理样本时,均只对Fake Negative样本进行处理,在转化发生并归因后,复制原样本,构造新的正样本,如图2左侧所示。阿里妈妈于2021年发表了论文《Real Negatives Matter: Continuous Training with Real Negatives for Delayed Feedback Modeling》,提出了DEFER(DElayed FEedback modeling with Real negatives)算法,如图2右侧所示,除复制Fake Negative样本外,也复制Real Negative样本和Positive样本,从而保证训练样本集特征概率分布 q ( x ) q(x) q(x)和真实样本集特征概率分布 p ( x ) p(x) p(x)一致

图2 DEFER和之前算法样本复制策略的不同

通过复制,训练样本集除包含真实样本集中的Positive、Fake Negative和Real Negative外,还包含复制样本集中的真正样本和真负样本,真实样本集和复制样本集除部分样本的标记不同外,其余均一致。

训练样本集负样本包含真负样本(真实样本集中的Real Negative样本和复制样本集中其对应的复制样本)和Fake Negative样本,则 q ( x , y = 0 ) q(x,y=0) q(x,y=0)可用如下公式表示:
q ( x , y = 0 ) = p ( x , y = 0 ) + 1 2 p ( x , y = 0 , z > w 1 ) q(x,y=0)=p(x,y=0)+\frac{1}{2}p(x,y=0,z>w_1) q(x,y=0)=p(x,y=0)+21p(x,y=0,z>w1)

进而, q ( y = 0 ∣ x ) q(y=0|x) q(y=0∣x)可表示为:
q ( y = 0 ∣ x ) = q ( x , y = 0 ) q ( x ) = p ( x , y = 0 ) + 1 2 p ( x , y = 1 , z > w 1 ) p ( x ) = p ( y = 0 ∣ x ) + 1 2 p d p ( x ) \begin{aligned} q(y=0|x)&=\frac{q(x,y=0)}{q(x)} \\ &=\frac{p(x,y=0)+\frac{1}{2}p(x,y=1,z>w_1)}{p(x)} \\ &=p(y=0|x)+\frac{1}{2}p_{dp}(x) \end{aligned} q(y=0∣x)=q(x)q(x,y=0)=p(x)p(x,y=0)+21p(x,y=1,z>w1)=p(y=0∣x)+21pdp(x)

其中:
p d p ( x ) = p ( x , y = 1 , z > w 1 ∣ x ) p_{dp}(x)=p(x,y=1,z>w_1|x) pdp(x)=p(x,y=1,z>w1∣x)

p d p p_{dp} pdp表示真实样本集中延迟正样本(即Fake Negative样本)的概率(Delayed Positive Probability)。

类似地,训练样本集正样本包含真正样本(真实样本集中的真正样本和复制样本集中其对应的复制样本),并减去真实样本集中的Fake Negative样本,可作如下公式推导:
q ( y = 1 ∣ x ) = q ( x , y = 1 ) q ( x ) = p ( x , y = 1 ) − 1 2 p ( x , y = 1 , z > w 1 ) p ( x ) = p ( y = 1 ∣ x ) − 1 2 p d p ( x ) \begin{aligned} q(y=1|x)&=\frac{q(x,y=1)}{q(x)} \\ &=\frac{p(x,y=1)-\frac{1}{2}p(x,y=1,z>w_1)}{p(x)} \\ &=p(y=1|x)-\frac{1}{2}p_{dp}(x) \end{aligned} q(y=1∣x)=q(x)q(x,y=1)=p(x)p(x,y=1)−21p(x,y=1,z>w1)=p(y=1∣x)−21pdp(x)

重要性采样中正负样本权重 p ( y = 1 ∣ x ) q ( y = 1 ∣ x ) \frac{p(y=1|x)}{q(y=1|x)} q(y=1∣x)p(y=1∣x)、 p ( y = 0 ∣ x ) q ( y = 0 ∣ x ) \frac{p(y=0|x)}{q(y=0|x)} q(y=0∣x)p(y=0∣x)可表示为:
p ( y = 0 ∣ x ) q ( y = 0 ∣ x ) = p ( y = 0 ∣ x ) p ( y = 0 ∣ x ) + 1 2 p d p ( x ) \frac{p(y=0|x)}{q(y=0|x)}=\frac{p(y=0|x)}{p(y=0|x)+\frac{1}{2}p_{dp}(x)} q(y=0∣x)p(y=0∣x)=p(y=0∣x)+21pdp(x)p(y=0∣x)
p ( y = 1 ∣ x ) q ( y = 1 ∣ x ) = p ( y = 1 ∣ x ) p ( y = 1 ∣ x ) − 1 2 p d p ( x ) \frac{p(y=1|x)}{q(y=1|x)}=\frac{p(y=1|x)}{p(y=1|x)-\frac{1}{2}p_{dp}(x)} q(y=1∣x)p(y=1∣x)=p(y=1∣x)−21pdp(x)p(y=1∣x)

基于上述正负样本权重,损失函数最终可写成:
L = − ∑ x , y y p ( y = 1 ∣ x ) p ( y = 1 ∣ x ) − 1 2 p d p ( x ) log ⁡ f θ ( x ) + ( 1 − y ) p ( y = 0 ∣ x ) p ( y = 0 ∣ x ) + 1 2 p d p ( x ) log ⁡ ( 1 − f θ ( x ) ) \mathcal{L}=-\sum_{x,y}{y\frac{p(y=1|x)}{p(y=1|x)-\frac{1}{2}p_{dp}(x)}\log f_\theta(x)+(1-y)\frac{p(y=0|x)}{p(y=0|x)+\frac{1}{2}p_{dp}(x)}\log(1-f_\theta(x))} L=−x,y∑yp(y=1∣x)−21pdp(x)p(y=1∣x)logfθ(x)+(1−y)p(y=0∣x)+21pdp(x)p(y=0∣x)log(1−fθ(x))

其中, p ( y = 1 ∣ x ) p(y=1|x) p(y=1∣x)和 p ( y = 0 ∣ x ) p(y=0|x) p(y=0∣x)未知,使用模型预估值 f θ ( x ) f_\theta(x) fθ(x)和 1 − f θ ( x ) 1-f_\theta(x) 1−fθ(x)分别替代,另外,和ES-DFM 类似,训练分类器 f d p ( x ) f_{dp}(x) fdp(x)用于预估 p d p ( x ) p_{dp}(x) pdp(x),因此上述损失函数可进一步改写为:
L = − ∑ x , y y f θ ( x ) f θ ( x ) − 1 2 f d p ( x ) log ⁡ f θ ( x ) + ( 1 − y ) 1 − f θ ( x ) 1 − f θ ( x ) + 1 2 f d p ( x ) log ⁡ ( 1 − f θ ( x ) ) \mathcal{L}=-\sum_{x,y}{y\\frac{f_\\theta(x)}{f_\\theta(x)-\\frac{1}{2}f_{dp}(x)}\log f_\theta(x)+(1-y)\\frac{1-f_\\theta(x)}{1-f_\\theta(x)+\\frac{1}{2}f_{dp}(x)}\log(1-f_\theta(x))} L=−x,y∑yfθ(x)−21fdp(x)fθ(x)logfθ(x)+(1−y)1−fθ(x)+21fdp(x)1−fθ(x)log(1−fθ(x))

其中,中括号部分和FNW中的处理方式一致,计算梯度时,固定不进行求导。

相关推荐
め.11 小时前
GJK+EPA算法
算法
木井巳11 小时前
【DFS解决floodfill算法】岛屿数量
java·算法·leetcode·深度优先
段一凡-华北理工大学11 小时前
工业领域的Hadoop架构学习~系列文章15:机器学习与大数据融合 - 工业智能的算法引擎
大数据·人工智能·hadoop·机器学习·架构·工业智能体·高炉炼铁智能化
一楼的猫11 小时前
AI辅助长篇小说创作的“记忆崩坏“问题与结构管理策略
人工智能·学习·机器学习·chatgpt·ai作画·ai写作
好评笔记11 小时前
深度学习面试八股——循环神经网络RNN
人工智能·rnn·深度学习·神经网络·算法·机器学习·aigc
装不满的克莱因瓶11 小时前
深度学习优化:使用深层神经网络来解决复杂任务
人工智能·python·深度学习·神经网络·机器学习·ai
凯瑟琳.奥古斯特12 小时前
力扣1003题C++解法详解
开发语言·c++·算法·leetcode·职场和发展
计算机安禾12 小时前
【算法分析与设计】第48篇:流算法与数据概要技术
java·服务器·网络·数据库·算法
hunterkkk(c++)12 小时前
SPFA最短路径算法(c++)
java·c++·算法
weixin_4462608512 小时前
HANDOFF:基于蒸馏互补教师的人形机器人任务空间整体控制
人工智能·算法·机器人