位置偏差入门(及其重要性)
使用稳定扩散生成的图像
标准机器学习课程教导 ML 模型从过去存在的模式中学习,以便对未来做出预测。
这是一个巧妙的简化,但是一旦这些模型的预测被用于生产,它们会创建反馈循环,情况就会发生巨大变化:现在,模型预测本身正在影响模型试图从中学习的世界。我们的模型不再只是预测未来,而是积极创造未来。
一个这样的反馈循环是位置偏差,这是一种在排名模型中观察到的现象,排名模型为整个行业的搜索引擎、推荐系统、社交媒体提要和广告排名提供支持。
什么是位置偏差?
位置偏差意味着排名最高的项目(Netflix 上的视频、谷歌上的页面、亚马逊上的产品、Facebook 上的帖子或 Twitter 上的推文)是产生最多参与度的项目,而不是因为它们实际上是最适合用户的内容用户,而不仅仅是因为他们排名最高。
这种偏见的表现是因为排名模型非常好,以至于用户开始盲目信任排名靠前的项目,甚至没有进一步查看(“盲目信任偏见”),或者因为用户甚至没有考虑其他可能更好的项目,因为他们排名太低,他们甚至没有注意到(“展示偏见”)。
为什么这是个问题?
让我们退后一步。排名模型的目标是显示最相关的内容,按参与概率排序。这些模型是在隐式用户数据上训练的:每次用户点击搜索结果页面或参与界面上的项目时,我们都会在下一次模型训练迭代中使用该点击作为正面标签。
如果用户只是因为内容的排名而不是相关性而开始与内容互动,那么我们的训练数据就会受到污染:模型不会学习用户真正想要什么,而是简单地从自己过去的预测中学习。随着时间的推移,预测会变得静态,并且会缺乏多样性。结果,用户可能会感到无聊或恼火,并最终转向其他地方。
位置偏差的另一个问题是离线测试变得不可靠。根据定义,有位置偏见的用户参与数据将始终偏向于现有的生产模型,因为这是产生用户看到的排名的模型。一个实际上更好的新模型在离线测试中可能仍然看起来更糟,并且可能被过早地丢弃。只有在线测试才能揭示真相。
我们如何减轻位置偏差?
模型从数据中学习,因此为了去除模型的偏差,我们需要去除其训练数据的偏差。正如Joachims 等人(2016)所示,这可以通过用位置偏差的倒数对每个训练样本进行加权来完成,为低偏差样本创建更多权重,为高偏差样本创建更少权重。直觉上,这是有道理的:点击排名第一的项目(具有高位置偏差)可能比点击排名第 10 的项目(具有低位置偏差)提供的信息少。
因此,减轻位置偏差的问题归结为对其进行测量。我们该怎么做?
一种方法是结果随机化:对于服务人群的一小部分,只需随机重新排列前 N 个项目,然后测量参与度的变化作为该人群中排名的函数。这行得通,但代价高昂:随机搜索结果或推荐,尤其是对于大 N,会造成糟糕的用户体验,这可能会损害用户保留率,从而损害业务收入。
因此,更好的替代方案可能是干预收获,由Argawal 等人(2018) 在全文文档搜索的背景下提出, Aslanyan 等人(2019) 在电子商务搜索的背景下提出。关键思想是成熟排名系统中记录的用户参与数据已经包含来自多个不同排名模型的排名,例如来自历史 A/B 测试或只是来自随着时间的推移推出的不同版本的生产模型。这种历史多样性在排名中产生了内在的随机性,我们可以“收获”它来估计位置偏差,而无需任何代价高昂的干预。
最后,还有一个更简单的想法,即谷歌的“ Rule 36 ”。他们建议在训练模型时简单地将排名本身添加为另一个特征,然后在推理时将该特征设置为默认值(例如 -1)。直觉是,通过简单地预先向模型提供所有信息,它将在幕后隐式地学习参与模型和位置偏差模型。无需额外步骤。
最后的想法
让我们回顾一下。职位偏差是整个行业都观察到的真实情况。这是一个问题,因为从长远来看,它会限制排名模型的多样性。但是我们可以通过使用偏差估计来消除训练数据的偏差来减轻它,我们可以从结果随机化或干预收获中获得。另一种缓解策略是直接使用等级作为模型特征,让模型隐含地学习偏差,不需要额外的步骤。
如果从整体上考虑,位置偏差的存在确实有点讽刺。如果我们让我们的排名模型随着时间的推移变得越来越好,这些改进可能会导致越来越多的用户盲目地相信排名靠前的结果,从而增加位置偏差,并最终降低我们的模型。除非我们采取慎重的措施来监控和减轻位置偏差,否则任何模型改进最终都可能弄巧成拙。