LTR中的一个常见问题就是position debias,在面试诸如推荐、搜索这样的职位的时候很有可能被问到。
所谓position bias就是指,当给用户展现搜索和推荐结果时,用户倾向于点击第一个item的这个行为里面,既有item的质量的影响,还有item排在第一个这个事件本身的影响。所以直接从原始log的数据中学习排序模型的学到的结果是有偏的。那么解决这种bias的方法主要有一下几种:
1、样本安排的trick:
a. 正样本后的样本都不算到训练样本中,如下图所示。这样就不会计算正样本后的样本,因为这些样本很可能没有被看到
(这个方法的缺点是用户点击第一个展示就不会产生样本,那么每次训练总是倾向于修改之前的结果)-> 改进:正样本后算有限个样本。
b. 分一部分流量展示topK随机排序,将这部分无偏集加入训练 (但是这个流量小的话数据不多,大的话可能会影响一部分人的体验)
2、特征&模型设计:
a. 将位置信息作为特征加入到模型特征中 (缺点是预测时没有位置信息,使用缺失值代替的话就造成了训练和预测的不一致,covariate shift)
b. 点击模型校准:通过各种方法得到用户是否看到了位置K(K越大这个概率越小)的概率,然后用1/P(K)给主模型的训练样本进行加权。可以是对用户历史浏览记录的统计,也可以通过向用户展示一些