Position bias普遍存在于点击率预估的任务中。本文对推荐系统中的position bias问题进行了介绍,并以华为的一篇论文为例来讨论消除position bias的方法。
I. 简介
在一个推荐场景中,推荐商品大多以一个列表的形式呈现给用户,如常见的电商、视频、新闻推荐等等。对于用户的一个请求,排序模型会对召回候选集的所有商品进行打分并排序,分数最高的商品集会被展示给用户。这里就有一个position bias的问题,即用户更倾向于点击排名靠前的商品,而且这种倾向和用户真正的兴趣无关。如果对于不同位置上的点击率进行统计,我们可以发现排名靠前的商品点击率最高,如图1所示:
图1 不同位置的CTR统计
这张图反应了position bias在用户点击行为中的影响。这种现象可能会导致用户忽略自己真正感兴趣的商品,而只是点击排名靠前的商品。而用户行为又是构建推荐模型输入的重要特征,因此模型也会学习到用户带有位置偏差的行为,使得在打分的时候无法把用户最感兴趣的商品排到前面。
II. 现有的解决方案
现在工业界对于position的常用处理方法,是在离线训练时把position(以下用pos代替)当做特征加入到模型训练中,让模型可以学习到商品的位置信息;Pos作为一个输入特征一般会与其他feature concat起来,即,并一起输入到模型中训练。
在online serving时,由于pos特征是取不到的,模型打分时需要对该特征指定一个值,一般会给0,或者其他相同的默认值。这个默认值的选取对模型的最终打分影响很大,可以在离线预测时尝试不同的值,选取最合适的用于online serving。
III. PAL: 用单独的模型来学习position bias
这篇论文对于位置信息的假设如下:
首先,用户会点击某个商品的概率,取决于两个互相独立的概率:
- :用户在列表中看到(注意到)这个商品的概率
-
:用户看到该商品后,会点击的概率。
其次,论文假设用户看到该商品的概率,只与商品位置有关,与商品本身无关,即
并且用户看到该商品后点击的概率,只与商品本身有关,与商品位置无关,即
在华为的这篇论文中,使用了两个模型分别学习以上两种概率,如图2所示
模型分为两个部分,左边的模型只用作为输入,用于学习,右边的模型即为正常的CTR预估模型,输入中不包含,用于学习,两个模型的输出结果相乘,使用同一个cross entropy loss来更新。Online serving时只需要使用右边的模型,无需再给赋默认值。论文中对该模型进行线上AB test 3周,效果比II中传统的position bias处理方法提升了3% - 35%的CTR和CVR.
IV. 总结
position bias是推荐模型中普遍存在的问题,本论文不同于现有将位置作为特征训练的方法,而是提出了将用户看到商品和点击商品两个动作拆分的思想,将position bias对点击的影响单独使用一个模型来训练,并将结果作为偏置加在了原有的模型上,更加精细化地学习到了位置信息。这种将postion bias从CTR 预估模型中拆分并单独建模的思想值得借鉴。
参考资料
- <<PAL: A Position-bias Aware Learning Framework for CTR Prediction in Live Recommender Systems>>
网友评论