LTR中的一个常见问题就是position debias,在面试诸如推荐、搜索这样的职位的时候很有可能被问到。
所谓position bias就是指,当给用户展现搜索和推荐结果时,用户倾向于点击第一个item的这个行为里面,既有item的质量的影响,还有item排在第一个这个事件本身的影响。所以直接从原始log的数据中学习排序模型的学到的结果是有偏的。那么解决这种bias的方法主要有一下几种:

1、样本安排的trick:

a. 正样本后的样本都不算到训练样本中,如下图所示。这样就不会计算正样本后的样本,因为这些样本很可能没有被看到
LTR问题 position debias方法
(这个方法的缺点是用户点击第一个展示就不会产生样本,那么每次训练总是倾向于修改之前的结果)-> 改进:正样本后算有限个样本。

b. 分一部分流量展示topK随机排序,将这部分无偏集加入训练 (但是这个流量小的话数据不多,大的话可能会影响一部分人的体验)

2、特征&模型设计:

a. 将位置信息作为特征加入到模型特征中 (缺点是预测时没有位置信息,使用缺失值代替的话就造成了训练和预测的不一致,covariate shift)

b. 点击模型校准:通过各种方法得到用户是否看到了位置K(K越大这个概率越小)的概率,然后用1/P(K)给主模型的训练样本进行加权。可以是对用户历史浏览记录的统计,也可以通过向用户展示一些随机排序的item然后统计看到各个位置的概率得到看到位置K的概率。这个看到位置K的概率是user_id的函数,不同用户的概率分布不同欧诺个

c. YouTube的一篇文章:https://zhuanlan.zhihu.com/p/86627202
用一个shallow tower 独立于主模型之外对position建模,然后作为偏置项加到logit里来算损失。预测的时候处理为missing。基本思想是训练的时候由shallow tower来纠偏,认为这样主模型就能学到无偏结果,区别于a中直接将位置作为特征加入到主模型中

相关文章:

  • 2021-06-18
  • 2022-12-23
  • 2022-02-14
  • 2022-12-23
  • 2022-01-15
  • 2022-03-06
  • 2022-12-23
  • 2021-10-13
猜你喜欢
  • 2021-08-20
  • 2022-02-02
  • 2022-01-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-22
相关资源
相似解决方案