CVR预估中的延迟反馈问题

搜索推荐炼丹笔记:CVR预估中的延迟反馈问题_深度学习
一元@炼丹笔记

问题描述

在很多推荐搜索的建模中,我们经常会使用D+1天的数据作为label,从1~D天的数据中的进行特征抽取等工作,和我们时间序列问题建模类似,但和很多其他的时间序列问题建模不一样的地方在于,我们的label不一定可靠,比如在传统的时间序列回归中,D+1天的销量是多少就是多少,我们没有太多的犹豫,因为不大会有其他的情况。但是在电商的问题中,就存在下面这种情况:

D+1天未购买可能并不一定是真正意义上的未购买,而可能是加入购物车或者意愿清单了, 只是没有在当天下单, 而是过了一天在D+2天的时候下了单, 而这样的标签如果我们直接默认其为负样本就会有较大的问题,因为它并不是真正意义上的负样本,只是反馈延迟了。

这在搜索推荐系统中,我们称之为延迟反馈的问题。

搜索推荐炼丹笔记:CVR预估中的延迟反馈问题_炼丹笔记_02

问题严峻性

看到这么个描述,我们似乎有了一个直观的理解,但是可能并不会过于重视,我们直观感受是,是的,但是可能比例不会很高吧,有必要重视吗?下面我们看一组数据:在Criteo公司早期,

  • 有35%的商品会在点击后一个小时内得到转化;
  • 有50%的商品会在点击后24h内得到转化;
  • 有13%的商品会在点击后2周之后才得到转化。

搜索推荐炼丹笔记:CVR预估中的延迟反馈问题_炼丹笔记_03

这么看来问题还是十分严峻的,那么如何解决该问题呢?

Modelling Delayed Feedback in Display Ad

eCPM

这个问题较早在2014文章Modelling Delayed Feedback in Display Advertising中被提出,当时神经网络等还没那么流行,但是解决的思路非常值得借鉴?在广告推荐中,有一个指标价值是非常大的,eCPM=CPA∗P(conversion,click)=CPA∗P(click)∗P(conversion|click),

  • CPA: Cost per conversion, 广告商愿意为每个转化支付的金额, 如果eCPM高的话,意味着我们可能获得更多的钱。

从上面这点可以看出,我们希望能很好地预估某个广告的转化概率(最终转化即可,对应到下文P(C=1|X=x).

问题建模

变量定义

我们先定义五个变量,

搜索推荐炼丹笔记:CVR预估中的延迟反馈问题_python_04

搜索推荐炼丹笔记:CVR预估中的延迟反馈问题_炼丹笔记_05

假设

搜索推荐炼丹笔记:CVR预估中的延迟反馈问题_python_06

问题表示

搜索推荐炼丹笔记:CVR预估中的延迟反馈问题_炼丹笔记_07

损失函数 & 问题求解

损失函数:

搜索推荐炼丹笔记:CVR预估中的延迟反馈问题_python_08

问题求解:

我们的优化问题中,有两个变量和,论文中提出了两种求解方案,基于EM算法的求解以及基于梯度下降的策略。

小结

本文针对转化回传的延迟问题提出了一种新的建模方式,不把还没观察到转化样本直接当做负样本处理,而是考虑其距离当前点击发生的时间长短给予模型不同权重的梯度,在建模的时候考虑延迟转化的时间信息,实验的结果也验证了该方案的有效性。当然直观的看本文的方案,我们也可以看到本文的几点不足,我们假设发生转化的延迟时间为指数分布,这种假设可能还不够宽泛;能否替换为其他的更好的函数值得考虑。