当前位置: 首页 > 科技观察

一文看懂推荐系统中的debias

时间:2023-03-12 04:23:57 科技观察

作者|游戏算法-陈可简介问题不平衡的现象。对于“客观公正的理想状态”,在各个场景中并没有统一的定义,但在各个场景的讨论中会出现一些共识概念。但是,这个概念也随着人们认知的加深而不断延伸。所以偏见仍然是一个非常开放的话题。推荐系统是一个涉及很多环节的复杂系统。在系统中,推荐模型根据已经发生的用户行为进行学习,并向用户展示项目(视频、文章、产品等)。用户对展示的物品产生反馈,反馈的用户行为数据继续被模型学习。在整个环节中,没有绝对意义上的“因”和“果”,它们是一种相互影响的关系。(见图1)图1.推荐系统中的各个环节和偏差产生的阶段(来自文献[1])推荐系统的各个环节都依赖于用户与物品之间的交互。交互是有限的并且需要成本。在某些情况下,它不会充分反映客观事实。这里就会产生偏差,对推荐系统的整个环节都会产生影响。一些公认的偏差包括:位置偏差(positionbias):概念解释:用户的精力是有限的,用户有更大的概率与显示在最前面位置的item进行交互,从而产生积极的行为,是否符合与项目用户偏好无关。负面影响:数据中正面和负面的标签不一定能客观反映用户偏好。典型场景:电商/文章推荐,页面多个位置有点击行为。ExposureBias(曝光偏差):注意:这里的exposure曝光是指item真正被用户注意到,而不是item只是简单地展示在客户端上。下面用曝光来指代用户对物品的真实关注度,用展示来指代在客户端展示的物品的埋点报告,以示区别。概念解释:在基于隐式反馈建模的场景中(如CTR场景),用户只会接触到全部物品中的一小部分,并与之产生显式的积极行为。那些没有明确行为的项目可能是用户不感兴趣,也可能不会暴露给用户。如果都简单地当成反例来训练模型,就会出现严重的偏差(有论文称之为positive-unlabeledproblem)。另一方面,在推荐结果中,越热的项目越有可能暴露给用户。对于用户来说,一个项目是否会产生显式积极行为的记录是非随机缺失(missingnotatrandom,在很多论文中也称为MNAR)。这会导致收集到的数据分布与真实分布不一致。负面影响:没有正面行为的item不都是真实的负面例子,简单粗暴的处理会带来falsenegative。在出现曝光偏差的场景下,一些随机负样本的项目没有展示给用户,作为用户的负面反馈;有些使用显示但不会产生交互行为的项目作为用户的负面反馈,这两者都会带来偏见。典型场景:使用隐式反馈的电子商务/视频推荐。SelectionBias(选择偏差):概念解释:存在于基于显式反馈建模的场景中(比如产品评分),用户倾向于给自己喜欢的item打分,而用户倾向于给verygood或verygood的item打分。因此,观察到的评分结果数据分布并不是真正的全分布。负面影响:观测数据分布有偏。典型场景:预测电影的用户评分。还有其他的偏差比如ConformityBias(社会环境中人们的意见和群体趋同造成的偏差),PopularityBias(高知名度的项目获得的流量远远超过合理水平,造成马太效应),这将不在本文中进一步讨论。.以上偏差的存在给推荐系统的服务效果带来了负面影响。在我看来,位置偏差和曝光偏差是推荐系统中最重要和最常见的两种偏差类型。因此,针对这两类偏差,下面介绍一些以往学术界提出的主流debias(消除偏差)解决方案。在笔者看来,从技术方案实现的角度来看,主流的Positionbias和ExposureBias去偏方案可以分为曝光建模和样本权重调整。暴露建模:理论上假设用户显式行为的发生可以解耦为两个事件:“物品是否暴露给用户”和“物品是否符合用户偏好”。在算法设计中,对“曝光”进行显式建模,使模型能够真正从数据样本中学习到物品与用户之间相关性的客观规律。暴露建模思想的特点是需要对“是否暴露”的因变量做一定的假设,而实际的数据样本需要反映假设的规则,所以样本量也需要足够了。样本权重调整:根据业务场景的特点,对不同的样本赋予不同的权重,尤其是对置信度较低的样本(如隐式反馈场景中的负例)赋予较小的权重,从而使样本水平反映outbias减轻。另外,根据业务场景中偏差的产生机制,对于观察到的样本,重新定义损失函数,使其逼近无偏差的情况,也是一种去偏差的思路。由于重新定义损失函数的做法本质上是改变了不同样本的权重,所以本文将这种思路归类到样本权重调整的思想下。样本权重调整思路的特点是需要很强的手工经验和业务理解。需要注意的是,这两种思路并没有绝对的区别。在一些方案中,对暴露概率进行建模,利用模型估计的暴露概率来调整样本的权重。由于这类思维依赖于建模曝光,本文将其归类于曝光建模。本文内容组织主要参考文献综述陈嘉伟、董涵德、王向、冯富立、王猛、何向南。推荐系统中的偏差和去偏差:调查和未来方向[1]。本文后续内容安排如下:ExposureRecommendationsModel:介绍positionbias和exposurebias场景下曝光建模思路对应的具体技术方案。在每个偏见场景标题的开头,都简要回顾了偏见的含义和机制。样本权重调整:介绍positionbias和exposurebias场景下的样本权重调整思路。其中,在exposurebias的标题下,样本权重调整方案分为“启发式权重调整”和“损失函数重新定义”两个方向。Debiasofevaluationindicators:引入消除模型评估指标(即metrics)偏差的思想。曝光建模位置偏差是学习排名系统中的常见偏差。它的基本假设是,无论是否符合用户的偏好,显示在最前面位置的项目都有更大的概率被用户点击。它在系统和搜索排序场景中都很常见。曝光建模用于消除位置偏差。思路是拆分用户点击行为的中间过程,对中间的曝光事件进行建模,利用这些中间过程的模型预测值去偏。点击中间过程如何拆分涉及到不同的假设,对应不同的具体方案。比较有影响力的方案之一是PAL(Position-biasAwareLearning)模型[2],它假设:用户(u)点击(C,click)事件,并且item(i)被用户注意到(E、examined)且item有一定的概率满足用户的偏好(relevant)和两者的结果;一旦物品被用户(E)注意到,那么用户点击物品(C)的概率只与物品和用户本身有关,与位置无关;物品被用户注意到的概率(E)只与物品的位置(p)有关,与物品是否符合用户偏好无关。总结一下:其中r_ui是用户和item是否符合的真实概率,h_q是item被用户注意到的概率,只取决于位置。让模型分别对这两种行为进行建模,然后只以r_ui作为在线服务排序的依据。具体如下图所示,在深度学习模型中,使用位置相关的特征输入构建一个塔,使用其他特征输入构建另一个塔。两个塔的最终输出经过sigmoid(pCTR*ProbSeen)后相乘,作为计算loss的输出(bCTR)。模型训练时,计算样本标签和bCTR,得到loss,用于梯度的反向传播。在线估算服务时,只使用pCTR的估算值,因为它是去掉position后的debiased结果。图2.PAL模型示意图(来自文献[2])。另一种具有类似想法的方案是使用级联模型[3]。该方案假设用户从前面位置到后面位置一个一个浏览item,那么是否点击某个位置的item与该位置的item以及之前的所有位置有关。令E_q和C_q分别代表物品在位置q处曝光和被点击的概率。级联模型描述用户行为发生的关系如下:其中,第三个方程假设一旦用户点击了位置q处的item,阅读过程将终止,不再进行进一步的浏览,否则用户会继续往下浏览。该方案还假设在每个浏览过程(session)中,最多只能有一次点击。级联模型对每个位置的E_q和C_q进行建模,同样以去极化后的r_uq,i作为实际排序依据。曝光建模的思路有两个缺点。一是点击行为中间过程的拆分需要大量的数据来支撑模型学习,尤其是user-item之间的数据比较稀疏。现场使用困难;二是引入人为假设。如果假设不正确,最终的结果将与预期完全不同。ExposureBias曝光偏差(exposurebias)发生在需要使用用户的隐式反馈进行建模的场景中。用户的显式行为(如点击、评论、收藏)只会发生在极少数的item上,因为用户只会接触到极少数的item。因此,将没有观察到交互行为的项目视为来自用户的负面反馈会导致偏差(positive-unlabelledproblem)。另一方面,高热度项目比中长尾项目获得更多曝光,更容易产生具有明显积极行为的样本。因此,观测数据中的正向行为是非随机缺失(Missing-not-at-Random,MNAR问题),与真实分布不一致。因为暴露偏差的直接原因是滥用了不真实的负样本。在这些负样本中,无法直接区分哪些是曝光但用户不感兴趣的,哪些是实际没有曝光的。那么,如果可以对item是否暴露进行建模,然后弱化那些暴露概率低的负样本的权重,就会降低bias的影响。具体来说,训练模型学习一个项目是否暴露给用户的概率。项目曝光的概率越高(相应地,项目在客户端显示的次数越多),该项目对应的隐式反馈样本的置信度也越高。大。因此,可以将模型学习到的曝光概率赋值给损失函数中样本的权重。前期受到简单WMF思想的影响,研究者考虑在矩阵分解的过程中加入item是否暴露给用户的隐变量O_ui,通过模型学习O_ui更好的辅助权重分配损失函数[12],称为ExMF(ExposureMatrixFactorization,包括曝光的矩阵分解)方法。具体考虑如下概率生成过程:其中N表示高斯分布,Bern表示伯努利分布,μ_u,i是itemi暴露给useru的概率,U,V分别是存储uservector和itemvector的矩阵,表示用户u对项目i的偏好;表明用户u在被物品i暴露后是否对物品有明确的积极行为;两者都是表示高斯分布方差的超参数。确定用户和物品矩阵U、V和曝光矩阵μ,需要用最大似然法最大化以下概率:由于曝光{o_u,i}是否为隐变量,类似EM的算法需要用到不断更新参数,最后可以得到E[Ou,i|Yu,i=0]的先验概率给损失函数中的样本置信度赋值。样本权重调整样本权重调整的思路在逻辑上很直观:在有偏差的场景下,一些样本携带的信息可信度较低,但又不能完全丢弃,因此赋予较小的权重,使其对模型更重要。整体影响降低;或者,对于展示给用户的同一个item,有些item的曝光概率更高,正反馈比例更高,因此应该削弱它们的正样本权重,同时增加其他item的正反馈样本权重。位置偏差倾向得分(positionbiasPropensityScore,倾向得分,以下简称PS)是纠正位置偏差的通用方法[4]。在计算每个样本的损失时,每个样本都会根据其位置重新加权。这个重量与位置有关。本方案将正样本对应的损失函数修改为:对应样本(u,i)在模型f下的损失;ρ(q)是倾向得分(即PS),只与位置q有关,这也是倾向得分方法中的一个重要假设。如果一个item显示在更高的位置,它的PS就更高,这个sample对应的loss下降得更厉害。同时,可以对后面位置展示的物品的丢失进行加权。由于倾向评分方法做了一个很强的假设(倾向得分只与位置相关,与用户和物品无关),估计每个位置的PS就变得非常简单。一个很直接的做法是结果随机化:将模型排序的结果打乱,展示在用户面前,然后收集每个位置的用户点击率。因为在每个位置,item和user的相关性已经相等,所以不同位置的点击率是对每个位置倾向得分的无偏估计。但是,这种方法人为地干扰了自然推荐的结果,损害了用户体验,不是最优方法。除了这种简单粗暴的结果随机化之外,还提出了一些基于模型的方法来学习每个位置的倾向得分。将物品是否被用户注意到作为潜在变量,设计了一种包括倾向评分模型和推荐模型的EM算法来解决这个问题。[5,6]ExposureBias在使用隐式反馈的场景下,为了提取负反馈的信息,一般将没有观察到显式反馈的item视为负例,然后给予一定的置信度每一个反面例子。相应的损失函数表示为:是推荐模型r估计的正向行为的概率;W_ui是表示置信度的权重;δ是损失函数(如交叉熵代价函数)的具体表达。模型训练中debias的思路一般围绕着如何给隐式反馈的负例分配合适的权重。Heuristicweightadjustment调整隐式反馈负例的权重,更多的是针对positive-unlabeled问题。早期天真的想法是加权分解矩阵(简称WMF)[8]。这个想法是使用:样本降权。这种方法背后的动机是在不观察积极行为的情况下无法确定用户是否真的不喜欢样本,因此需要降低样本的置信度。在此基础上,使用更多的用户信息或物品信息,提出的其他方案包括:使用用户活动来分配权重:因为具有更多积极行为的用户对其对应的样本具有更大的信心[9];利用item的热度来分配权重,因为item越受欢迎,曝光的概率越高,样本的置信度应该越大[10];使用用户和项目之间的特征相似性来确定权重[11]。虽然方法很多,但是启发式权重调整仍然是一个比较难的解决方案。一是确定用户和物品之间隐式反馈样本的置信度,这需要大量的数据和计算资源;另一个是权重的设置,还介绍了人为的经验和假设。如果人为的经验有偏差,就会加剧偏差。损失函数被重新定义。在基于曝光的模型方案中,项目的曝光概率越高,对应样本的置信度越高。但它没有处理另一个问题,该问题在隐式反馈建模中并非随机缺失。曝光概率高的物品一般都是高知名度的物品。通过增加样本的权重,模型将偏向于更准确地学习高人气项目,而在中长尾项目上学习更差。因此,将曝光和曝光后是否发生显式反馈这两个变量进一步解耦,重新定义损失函数,使其完全依赖于客观的用户-项目相关性,是一种更进一步的思路[13]。基于上述动机,研究人员将显式反馈的发生同时解耦为“曝光”(O_u,i=1)和“符合用户偏好的项目”(R_u,i=1)。分别表示物品i暴露给用户u的概率,以及物品i符合用户u偏好的概率(也称为物品与用户的相关性)。如果将模型的评价指标拟合到点击数据上:其中δ(·)为具体的损失函数(如交叉熵代价函数);模型估计的用户u与物品i的相关性;括号中的两项分别表示与用户相关或不相关的项的估计损失。可以证明,上述两种方法(HeuristicWeighting和Exposure-basedmodel)定义的损失函数并不是上述理想损失函数的无偏估计。实际上可以证明,理想损失函数的无偏估计表达式为:那么,问题就转移到如何估计物品i对用户u的曝光概率,这是一个倾向评分的估计问题。最简单的方法是用item的相对流行程度来估计倾向得分,即分母是积极行为次数最多的item对应的总次数,分子是积极行为的次数当前项目的。?≤1作为超参数调整曝光概率的大小,因为相对于统计得到的后验点击率,曝光概率应该大于后验点击率。需要注意的是,这个预估对用户来说是无所谓的,有一定的局限性。(文献[13]中的方法)更多倾向评分的估计思路,可以参考上述“启发式权重调整”。评价指标的偏倚包括样本层面的偏倚。如果人们不加区别地将所有样本加入到模型的评价指标中,也会造成评价指标的偏差,因此需要对评价指标的偏差进行修正。更直接的方法是使用逆倾向得分(reciprocalpropensityscore,以下简称IPS)来修正评价指标的偏差[7]。直观理解IPS的方法,就是对那些出现频率高的item降低权重,对那些出现频率低的item进行加权。对于推荐系统,理想的评价指标可以表示为如下形式:U为用户u的集合,c(·)为待评价指标的具体表达,与指标的定义有关,如至于AUC,它的表达方式是:表示用户对暴露的物品有积极行为的物品集合;指标的下标AOA表示Average-over-all。可以发现,在实际的评价指标中,该指标还受到曝光变量O的影响。曝光变量O_ui,即itemi是否被用户u曝光,并不是无偏的,往往热点items是更容易暴露给用户。具体来说,会导致当数据量n极大时指标会收敛到这个框架,问题转化为如何估计IPS,成为一个比较开放的问题。各种解决方案。(参考上文“启动式调权”)参考文献[1]陈嘉伟,董汉德,王翔,冯富丽,王萌,何向南。2020.推荐系统中的偏差和去偏差:调查和未来方向。[2]郭慧峰,于金凯,刘庆,唐瑞明,张玉洲。2019.PAL:实时推荐系统中用于CTR预测的位置偏差感知学习框架。[3]NickCraswell、OnnoZoeter、MichaelTaylor和BillRamsey。2008.点击位置偏差模型的实验比较[4]AmanAgarwal、KentaTakatsu、IvanZaitsev和ThorstenJoachims。2019.反事实学习排序的通用框架。[5]QingyaoAi、KepingBi、ChengLuo、JiafengGuo和WBruceCroft。2018.无偏学习排名与无偏倾向估计。[6]ThorstenJoachims、AdithSwaminathan和TobiasSchnabel。2017.无偏见的学习排名与有偏见的反馈。[7]LongqiYang、YinCui、YuanXuan、ChenyangWang、SergeBelongie和DeborahEstrin。2018.无偏离线记录对非随机缺失隐式反馈的监督评估。[8]YifanHu、YehudaKoren和ChrisVolinsky。2008.隐式反馈数据集的协同过滤[9]潘榕和马丁·舒尔茨。2009.注意差距:在大规模一类协同过滤中加权未知数。[10]XiangnanHe、HanwangZhang、Min-YenKan和Tat-SengChua。2016.带有隐式反馈的在线推荐的快速矩阵分解[11]李亚恩、贾虎、翟承祥、陈叶。2010.通过整合丰富的用户信息改进一类协同过滤[12]DawenLiang、LaurentCharlin、JamesMcInerney和DavidMBlei。2016.推荐中的用户曝光建模。[13]斋藤裕太。2020.从有偏见的隐式反馈中进行无偏见的成对学习。