在很多推荐搜索的建模中,我们经常会使用D+1天的数据作为label,从1~D天的数据中的进行特征抽取等工作,和我们时间序列问题建模类似,但和很多其他的时间序列问题建模不一样的地方在于,我们的label不一定可靠,比如在传统的时间序列回归中,D+1天的销量是多少就是多少,我们没有太多的犹豫,因为不大会有其他的情况。但是在电商的问题中,就存在下面这种情况:
D+1天未购买可能并不一定是真正意义上的未购买,而可能是加入购物车或者意愿清单了, 只是没有在当天下单, 而是过了一天在D+2天的时候下了单, 而这样的标签如果我们直接默认其为负样本就会有较大的问题,因为它并不是真正意义上的负样本,只是反馈延迟了。
这在搜索推荐系统中,我们称之为延迟反馈的问题。
看到这么个描述,我们似乎有了一个直观的理解,但是可能并不会过于重视,我们直观感受是,是的,但是可能比例不会很高吧,有必要重视吗?下面我们看一组数据:
在Criteo公司早期,
这么看来问题还是十分严峻的,那么如何解决该问题呢?
这个问题较早在2014文章Modelling Delayed Feedback in Display Advertising中被提出,当时神经网络等还没那么流行,但是解决的思路非常值得借鉴?
在广告推荐中,有一个指标价值是非常大的,
eCPM=CPA∗P(conversion,click)=CPA∗P(click)∗P(conversion|click),
从上面这点可以看出,我们希望能很好地预估某个广告的转化概率(最终转化即可,对应到下文P(C=1|X=x).
我们先定义五个变量,
:特征集合
, 表示转化是否已经发生;
, 表示转化最终是否会发生;
: 表示点击和转化之间的延迟时间;
: 表示从点击到当前的时间。
定义完变量,下面就是把该问题转化为我们能理解的形式,回想一下,如果不考虑延迟转化,我们平时一般怎么建模,我们可能直接将该问题转化为一个简单的二分类问题,我们的问题就是求
,有时就是直接默认为
,那么此时我们得到
,我们最终的损失函数就是
。
那么现在呢?我们已经知道了延迟的问题,所以我们需要尽可能将时间信息加入,并重新构建以及
。本文选择用一个模型用来预估是否转化,另一个模型来捕获点击到转化的期望延迟时间的解决方案。
我们就有,
的话,必定意味着有一个d与之对应。
,即,
可能是不会转化,也有可能是转化的时间超过来点击到现在的时间。
独立性假设,
,我们认为E只对我们Y有影响。
两个表示:
, 最终某个广告会被成功转化的概率;
, ,广告最终被转化,从点击到转化的时间概率预估。
其中
,又可以表示为:
于是我们得到:
1.损失函数:
2.问题求解:
我们的优化问题中,有两个变量和,论文中提出了两种求解方案,基于EM算法的求解以及基于梯度下降的策略。
本文针对转化回传的延迟问题提出了一种新的建模方式,不把还没观察到转化样本直接当做负样本处理,而是考虑其距离当前点击发生的时间长短给予模型不同权重的梯度,在建模的时候考虑延迟转化的时间信息,实验的结果也验证了该方案的有效性。
当然直观的看本文的方案,我们也可以看到本文的几点不足,我们假设发生转化的延迟时间为指数分布,这种假设可能还不够宽泛;能否替换为其他的更好的函数值得考虑。
后续我们会筛选出在我们实践中带来提升或者启发的工作进行细致的解读与探讨,欢迎关注我们的公众号,也欢迎多交流,我是一品炼丹师: 一元。