文章名称
【CIKM-2019】【National Taiwan University-Huawei Noah’s ark lab】Improving Ad Click Prediction by Considering Non-displayed Events
核心要点
文章旨在解决Selection Bias对advertising system的影响,we propose a novel
framework for counterfactual CTR prediction
上一节主要讲解了CPC广告系统中存在的数据偏差问题,以及作者的分析数据和过程,这一节讲解作者如何解决这一问题。
方法细节
问题引入
现有方法
如前所述,在CPC广告系统中,考虑未被展示的广告的点击情况时,我们所面临的数据是Labeled-and-Unlabeled(注意不同于PU)。作者把这种场景视为标注选择场景,也就是说模型(或者说Top-k这种展示策略)类似于一个选择去,选择一些广告展示给用户,让他们给这些广告打标签(让他们对这些广告进行反馈,点击或者不点击,有点像标注采集器...)。整个过程如下图所示,没有被展示的广告受限于展示资源,因此没有收集到标签。
这种方法可以被归类到batch learning from logged bandit feedbacks或者counterfactual learning[31],现有的解决方法包括直接方法(插值方法),IPW方法,DR方法,
- 插值方法,利用被展示的广告的特征和标签,训练一个模型,预测未被展示的数据的标签。得到所标签后,再训练排序模型。(当然这个插值模型可以做一个标签置信度的过滤,只用置信度高的标签来训练,但是不管怎么说,如果我有了优秀的插值模型,其实就相当于有了排序模型。得到有效的插值模型是很难的)
- IPW方法,(如大家熟悉的)估计某一个广告事件(广告请求-广告元组被展示的概率,表示这个元组所代表的事件)被记录的概率(也就是广告被展示的概率)。用这个概率的逆(倒数)作为权重,给所有展示的事件(收集到的样本)加权,可以得到我们关心的目标的无偏估计(证明过太多次了,细节也可以参见这篇文章的3.2节)。我们通常都是在观测数据上先估计Propensity Score,当然也可以做随机实验得到这个值。值得一提的是,IPW方法假设广告事件,也就是广告展示的过程是随机的(不是完全random,而是stochastic具有某种随机性,并且概率处于0-1之间),这与CPC场景固定策略选择被展示的广告不符。
- DR方法,结合了前两者的优势,把IPW部分和插值的部分(以某种形式,具体公式如下图所示,其中是Propensity Score,是插入的伪标签)求和。可以证明这种方法也是无偏的,并且只要公式中的任意一个部分效果好,整体效果就不差(方差也会小一些)。
应用现有方法的难点
上述方法无法被应用到现有CPC广告系统,原因如下,
- 不符合IPW的随机展示理论基础。如上所述,IPW假设任何广告都有概率在一个事件中被展示(这样理解,如果是随机的,那么每一个广告都有概率,尽管很多广告的概率极小,那也是有概率。虽然收集数据可能最终还是没有展示他们,但是只要收集的足够多,就有可能看到他们。作者说的CPC系统,广告并不是这种采样来的)。然而,当前CPC广告系统是只要ECPM低于阈值,就完全没有机会被展示了。
- 利用插值模型会继承展示数据中存在的Selection Bias。如上所述,插值方法是在展示的数据上学习模型,生成伪标签。这个样本本来就有偏差,所以伪标签天然也有偏差,导致插值法和DR法都可能有偏(DR小一些)。
- 计算量过大。如果考虑所有广告(包括展示的和未被展示的),计算量将非常大(主要是插值和DR,IPW不考虑未被展示的)。
具体做法
Unbiased Imputation Models
为解决上述问题,作者参考[2]的做法,把所有被展示的广告事件的Propensity Score都设置为1,即。[2]表明在翻译场景,即便每次只把最优的结果交给用户打分,DR方法的插值部分仍然可以很好的消除确实标签的问题,提升模型性能。改造后的目标函数如下图所示,其中是调节IPW部分和插值部分的超参数。
但是,由于缺少了IPW,纠偏只能依靠插值部分,(如上所述)这部分又会受到Selection Bias的影响。作者利用通过随机策略收集到的极小的样本集,来训练插值模型。与[1, 3]方法不同,直接在上学习插值模型,而不是在不同策略(随机和非随机)的数据集上分别训练模型,最后bagging。
作者强调,虽然插值模型和CTR类似,但不是同样的任务,如果够大,可以把插值模型的任务搞的和CTR估计一样复杂。如果很小,可以直接预测平均点击这样的任务(对所有的事件,都用的平均点击率代替标签...)。
Efficient Training
为了解决上述计算复杂度较高的问题,作者借鉴了推荐场景的做法。假设被展示的物品结合为,其中被点击的物品结合为,未被点击的物品集合为。把广告事件拆分成请求-广告元组,则可以把双数Propensity-free DR的目标函数转换成如下图所示的公式,分别表示真正的评分和插入模型预测出的评分(这里说评分是因为在推荐场景,是评分矩阵,不是点击率矩阵,但其实大同小异)。
为了降低复杂度,[4, 5]把所有未被展示的元组的评分统一设置为一个负向得分(整体评分在-1到1之间),并且限制损失函数的复杂度,独立计算上边的损失。
因此,作者进一步调整目标函数为如下图所示的公式,保留DR框架中IPW部分的损失为,把插入部分的损失变为MSE(简化了计算,原有的可能是排序损失)。同时,简化对(在广告场景里是,这里作者的思路和notation有点乱,感兴趣的同学可以看看原文...)的计算,利用类似FFM的模型把在元组上的特征尽量拆分成只和或者相关的部分的组合。这样,就不需要计算每个元组,而是用或者独立计算的结果拼凑起来(有点类似于FM中的)。
整个方法就描述完了,感觉理论上其实有点蹩脚,思路显得有一些混乱...但确实是从实际的问题出发...也许实际看实现能够有更多启发。
心得体会
选择性标注
个人感觉,这种选择性标注的思路,也许可以和主动学习,弱监督学习等联系起来。系统不断地展示广告,不断地收集到标注,利用这些收集到的标注来优化展示。
无偏插值模型
个人感觉,所谓的无偏插值模型,仅仅是利用了随机策略的数据而已。从实验结果上看,全局平均CTR作为标签,能够得到几乎与最好的效果差不多的结果(甚至某些指标好于其他复杂方法),感觉有点虚...要么超参调的好,要么数据太小...也许可以深究一下...
文章引用
[1] Stephen Bonner and Flavian Vasile. 2018. Causal Embeddings for Recommendation. In RecSys.
[2] Carolin Lawrence, Artem Sokolov, and Stefan Riezler. 2017. Counterfactual Learning from Bandit Feedback under Deterministic Logging: A Case Study in Statistical Machine Translation. In EMNLP.
[3] Nir Rosenfeld, Yishay Mansour, and Elad Yom-Tov. 2017. Predicting counterfactuals from large historical data and small randomized trials. In WWW.
[4] Hsiang-Fu Yu, Hsin-Yuan Huang, Inderjit S. Dihillon, and Chih-Jen Lin. 2017. A Unified Algorithm for One-class Structured Matrix Factorization with Side Information. In AAAI
[5] Bowen Yuan, Meng-Yuan Yang, Jui-Yang Hsia, Hong Zhu, Zhirong Liu, Zhenhua Dong, and Chih-Jen Lin. 2019. One-class Field-aware Factorization Machines for Recommender Systems with Implicit Feedbacks. Technical Report. National Taiwan University. http://www.csie.ntu.edu.tw/~cjlin/papers/ocffm/imp_ffm.pdf