推荐广告中的延迟转化

背景

在推荐尤其是广告中,一个用户的正反馈不是马上就发生的,可能过了一段时间后才发生。如商品的购买、游戏中的付费行为,常常是发生在点击广告后的几天之后。这样导致了模型训练时不知道一个样本是不是真的负样本。其中一个朴素的解决方法时等待一个固定的时间窗口,超过这个时间窗口还没回传转化的样本都看作负样本,但是这样做的缺点是:如果时间窗口设的太短会丢失大量的正例,时间窗口设的太长模型的时效性有损。

 

解决方案

1. 建模回流分布

Criteo在《Modeling Delayed Feedback in Display Advertising》中提出一种延迟转化转化建模的方案,基本思想是用一个模型建模正样本的回流分布,用这个分布来纠偏主模型

先作出以下定义:

X:特征集合
Y∈{0,1}:观测到的样本(转化是否已经发生)
C∈{0,1}:转化最终是否会发生
r:正例回流比例Pr(Y=1|C=1)

那么观测到的负样本的概率可以表示为:

$$\operatorname{Pr}(Y=0,C=1 \mid X) =  \operatorname{Pr}(C=1 \mid X)  \operatorname{Pr}(Y=0 \mid C=1, X)$$
$$\operatorname{Pr}(Y=0,C=0 \mid X) =  \operatorname{Pr}(C=0 \mid X)  \operatorname{Pr}(Y=0 \mid C=0, X)$$

其中:

$$\operatorname{Pr}(Y=0 \mid C=1, X) = 1-r$$
$$\operatorname{Pr}(Y=0 \mid C=0, X) = 1$$

综上:

$$\operatorname{Pr}(Y=0 \mid X)= p_i (1-r) + (1-p_i) = 1-rp_i$$

观测到的正样本的概率可以表示为:

  $$\operatorname{Pr}(Y=1 \mid X)= \operatorname{Pr}(Y=1,C=0 \mid X)+\operatorname{Pr}(Y=1,C=1 \mid X)= \operatorname{Pr}(Y=1 \mid C=1,X) \operatorname{Pr}(C=1 \mid X)= rp_i$$

根据极大似然估计可以得到loss为:

$$Loss=-\sum_{i \in \text { positives }} \log(rp_i) - \sum_{i \in \text { negatives }} \log(1-rp_i)$$
 
回流分布模型样本构建:
假设cvr样本的拼接窗口是60min, 那么60min以内回流的就是正样本,60min以外回流的就是负样本
 
建模回流分布的方法理论上可以很好的解决延迟转化的问题,但是实际中存在以下几个问题:
1. 由于需要建模回流分布,增加资源开销
2. 回流分布的预测是个回归任务,回归任务的难度一般比分类任务的难度大,通常会转为分类任务来预测
 
在实践中也可以采用以下几种简化的方式:
1. 直接加一个预估时间分布的辅助tower来纠正底层embedding
2. 把时间分布tower的预估值作为负样本权重
 

2. 分时间段建模

 如购买付费事件可能需要7天才能充分回流,如果模型等待7天训练的话时效性有损。可以采取折中的方式,如可以用一个multitask模型同时建模首日付费概率和后6日付费概率,这样可以兼顾实时新和准确性
google在《Handling many conversions per click in modeling delayed feedback》中提出可以将整个转化回流的时间窗口分成N段,利用Muti-task训练N个模型来预估这N个时间段上的转化概率。设回流窗口长度为M,预估时间为t,,将预估区间为[t+di,t+M),i∈[0, .......,N),其中d0=0,区间设计为前后包含,而非彼此独立,主要考虑有二:其一是聚合区间有利于减少数据稀疏;其二前后两区间之差时间内的转化信息对后面的区间转化存在因果关系,可以作为特征指导后面区间的预估。该模型的构架如下:

 

3. FN纠偏

当一个样本到来时,首先当作负样本加入到训练流中,如果这个样本后面回传了正反馈,就把这个样本当作正样本加入训练流中。也就是说每个正样本被训练两次(一次是作为负样本,一次是作为正样本),这样导致进入模型的样本是有偏的,所以需要纠偏。详见Twitter延迟转化论文《Addressing Delayed Feedback for Continuous Training with Neural Networks in CTR prediction》中的Fake negative calibration方法

 
 

 

posted @ 2023-05-05 15:35  xd_xumaomao  阅读(865)  评论(0编辑  收藏  举报