Press "Enter" to skip to content

推荐系统中的偏差问题

写作背景

 

写本文主要是因为最近要做ctr模型,建模涉及到样本构建的问题,光在样本构建中就要做许多工作,样本的好坏很大程度上能决定最终模型有多大程度接近特征决定的天花板。

 

在电商的点击率模型中,正样本与负样本的差距是比较大的,一般采用负采样的方式进行解决。那幺如何进行负采样?考虑到推荐系统中存在各种偏差,如位置偏差,选择性偏差以及长尾问题等,仅仅采用简单的负采样会有很多问题。

 

于是我就开始思考,如何在采样阶段尽量使得整个数据集更加合理,更有代表性?在研究的过程中看到了推荐系统中关于偏差的综述《Bias and Debias in Recommender System: A Survey and Future Directions》。我想看完应该会给我不少启发,同时也能够为我后面模型选择及评价提供思路。接下来就介绍推荐系统中的偏差问题。

 

推荐系统整个反馈回路存在的问题

 

将推荐系统的整个反馈回路抽象为三个关键的组件:用户、模型、数据。

 

图2:推荐系统整个反馈回路,及偏差发生的各个阶段

从上图左边部分可以看到,整个反馈回路可以分为下面三个阶段:

用户-> 数据(收集) :从用户行为中收集用户数据
数据->模型(建模) :根据收集到的模型训练数据
模型->用户(服务) :通过训练得到的模型部署上线,在用户访问时给用户推荐合适的内容

通过上述反馈流程,用户和推荐系统处于一个相互动态演化的过程中,用户的个人兴趣和行为通过推荐得到更新,推荐系统可以利用更新的数据训练新的模型,形成自我强化模式。

 

7种偏差介绍

 

数据偏差(data bias)

 

由于在推荐系统中,训练数据通常是通过用户行为得到,这样的训练数据不可避免的受到很多因素的影响,如:推荐系统的推荐机制、热点内容、舆论等,使得训练样本偏离真实场景中的数据分布,不可避免的,以此数据训练得到的模型是有偏的,这就是数据偏差。数据偏差有以下几种:

 

图5:四种数据偏差的的因果图

选择性偏差(Selection Bias)

 

选择性偏差通常发生在需要对内容进行打分的场景,如:电影评分,用户的行为存在选择偏差:

 

 

    1. 用户倾向于选择和评价他们喜欢的内容

 

    1. 用户更有可能评价特别差或好内容

 

 

上述说明,选择偏差是行为数据中(观察数据)必然存在,因为打分的内容并不是随机出现在用户行为中,而是用户选择导致的。

 

因果关系理论解释选择性偏差:图5中的a展示了评分数据的生成过程,U,I为用户表示和内容表示,R为用户对内容的打分分值,链(U,I) -> R 表示U,I对标签R的因果影响,就是我们模型要拟合的部分。但在观察性研究中,行为数据并不是随机出现的,变量U,I,R受到是否观察这一因素S的影响(S=1,观察;S=0,未观察)。这种机制使观察到的评分数据的分布(即 )与理想测试分布(即 )不一致,直接使用观察数据训练的模型效果会受到影响。从另一个角度来看,因果图显示了原因( , )和结果 之间的两个关联来源:1)理想的因果关系(U,I) -> R 2) 一条意外的路径(U,I) -> S <-R,表示U、I与R的关系收到他们S=1(条件)的共同影响。基于条件S=1所分析得到的(U,I) -> R的关系是一种伪的关系。因此根据观察数据训练得到的模型将会捕获这种倾斜关系。

 

曝光偏差(Exposure Bias)

 

曝光偏差发生在隐式反馈中,所谓的隐式反馈指的是用户不直接打分的场景,一般在推荐中比较常见,它反映了用户的自然行为,如购买、浏览、点击等。 与提供评分的显式反馈不同,隐式反馈仅提供部分正面信号。 由于无法获得关于用户不喜欢什幺的信息,因此学习必须依赖于未观察到的内容,从中挖掘负面信号。 曝光偏差发生在这样的一类数据中,主要是因为曝光给用户的内容是推荐系统推荐的一小部分内容,对于那些未被曝光的内容,并不能表示用户不喜欢。

 

用户与内容没有发生交互主要有两个原因:1)用户的兴趣与内容不match 2)用户没有注意到该内容。因此对于负样本其实很难定义,因为我们没有办法区分用户是真的不喜欢(如:曝光未点击),还是喜欢但是没有看到(未曝光),在曝光基础上建立的模型必然是有偏差的。

 

推荐系统中的曝光受到以下几个方面的影响:

 

 

    1. 曝光受到以前推荐系统的影响,因此在有些文章中又将 “exposure bias” 称为 “previous model bias” 。

 

    1. 由于用户可能会主动搜索并找到感兴趣的内容,因此用户的选择是决定曝光的一个因素,使相关内容更有可能被曝光。 在这种情况下,“曝光偏差”被称为“用户选择偏差”。

 

    1. 用户社会背景是影响曝光的另一个因素,例如社区中的朋友、他们所属的社区和地理位置。

 

    1. 热门商品更有可能被用户看到。 因此,这种“popularity bias ”是另一种形式的“曝光偏差”。

 

 

从图5b中的因果图可以看到:链(U,I) -> R 为我们模型真正要学习的因果影响,链接 → (表示有交互) 展示了隐式反馈的弊端——只能确认正反馈 ( = 1| = 1) = 1(即有交互,必然被隐式反馈认为喜欢,即 = 1)。从路径 ( , ) → → 上看,其中用户/内容特征会影响内容是否曝光给用户(标记为变量 ); 并且 会进一步扭曲分布 ( | , ),因为用户只能在曝光的内容上生成交互,即 ( = 0| = 0) = 1(即没有曝光,必然不会有交互)。

 

从另一个角度来看,变量 ( , ) 与 的相关性受到两方面的影响:1) ( , ) → → 这是我们理想中的情况,用户(U)因为对一个内容(I)感兴趣(R),而进行产生了交互(S);2)由( , ) → → 这条链路形成的伪关联,用户(U),商品(I)通过影响曝光,最终影响到交互的产生。

 

一致性偏差(Conformity Bias)

 

又称从众偏差,顾名思义,对于打分类内容,用户的打分也容易受到其他用户影响,比如大家都给差评的时候,用户可能也会被带偏给出同样的差评。此外,从众偏差可能是由社会影响引起的,其中用户倾向于与他们的朋友行为相似。 因此,观察到的交互是有偏差的,可能无法反映用户对项目的真实偏好。同理,其因果关系受到从众因素的示意图参考图5中的c,这里不再具体展开。

 

位置偏差(Position Bias)

 

位置偏差在推荐中很常见,尤其是在广告系统或搜索引擎

 

 

    1. 用户倾向与列表头部的内容交互,而不太管这些内容是否真的是自己喜欢的,这就导致了明显的position bias。

 

    1. 一项眼动追踪研究表明,用户不太可能浏览在垂直列表中排名较低的内容,基本只注意到头部内容。

 

    1. 而且,用户也比较相信列表头部的一些结果,不再对全部结果进行评估。

 

 

因此,从用户对推荐列表的反馈中收集的数据可能无法忠实地反映用户偏好。同理,其因果关系图参考图5中的d,这里不再具体展开。

 

模型偏差(Bias in Model)

 

偏见并不总是有害的。事实上,在模型设计中故意添加了一些归纳偏差,以实现一些理想的特性.

 

归纳偏差(Inductive Bias)

 

模型训练过程中添加的 一些假设 ,以便更好地学习目标函数,得到更好的泛化性。对未知样本的预测能力是机器学习的核心。如果不对数据或模型进行假设,则无法实现泛化,因为未见过的示例可能具有任意输出空间。同样,构建推荐系统需要对目标函数的性质添加一些假设。例如,采用神经网络作为其更好的泛化。除了目标函数外,其他方面还增加了归纳偏置。一个例子是自适应负采样器,它旨在对“困难”实例进行过度采样以提高学习速度,即使最终的损失函数将与原始损失函数有很大不同。另一个例子是离散排序模型,它将用户和内容embedding为二进制代码以提高推荐效率,这是以牺牲表示能力为代价的。

 

推荐结果中隐含着偏差(Bias and Unfairness in Results)

 

除了上述数据或模型的偏差外,还研究了推荐结果中的两个重要偏差:流行度偏差和不公平性。

 

流行度偏差(Popularity Bias)

 

在推荐系统中经常会出现这样的情况:受欢迎的内容被推荐的频率甚至超过了它们的受欢迎程度。长尾现象在推荐中很常见,部分高热的内容占据了大部分曝光/点击,模型在训练这样的数据的时候会对高热内容给出更高的分,而简单把不流行的内容打为负例。

 

Fig. 6. Item popularity VS. recommendation frequency (Biased-MF [90] and User-CF [9]), where items were classified into three different groups: H denoting the set of most popular items that take up around 20% entire ratings, T denoting the set of most unpopular items that take up

图 6 显示了内容流行度和推荐频率之间的关系。 我们可以发现大部分推荐的内容都位于高人气区域(H),事实上,它们的推荐程度甚至比它们最初的受欢迎程度要高得多。

 

忽略流行度偏差会产生以下几个问题:

 

 

    1. 降低了个性化程度,使得结果不再具有偶然性,由于不同用户的喜好不同,总是推荐热门内容会损害用户体验,尤其是小众偏好的用户。

 

    1. 降低了推荐结果的公平性:流行的不一定是高质量的,那些与用户偏好更匹配的内容反倒得不到曝光,这是不公平的。

 

    1. 加剧马太效应:流行偏差会进一步增加流行内容的曝光机会,使流行内容更受欢迎——收集到的用于未来训练的数据变得更加不平衡。

 

 

不公平性(Unfairness)

 

对部分人有歧视,偏袒另一部分人。基于种族、性别、年龄、教育水平或财富等属性,不同的用户群体在数据中的被展现的机会通常是不平等的。这种不平衡又会被模型学到,进而可能导致系统性的歧视,降低弱势群体的被关注度。

 

例如,在工作推荐系统中,女性看到高薪工作和职业指导服务的广告较少,这是由性别失衡造成的。类似地,社交图中的朋友推荐可能会强化对多数人的历史偏见,并阻止少数人成为具有高影响力的社会影响者。书籍推荐系统更常见会推荐男性写的书等。因此,在推荐系统中重视和关注不公平性是相当重要的。

 

反馈回路放大偏差(Feedback Loop Amplifies Biases)

 

前面介绍的偏差的存在,使得现实世界中的推荐系统的整个反馈回路走向偏差放大的方向。为了更好地理解这种影响,图 7 说明了七种偏差的关系。数据偏差会导致/加剧数据不平衡,加剧推荐结果中的偏差问题(数据偏差→数据不平衡→结果偏差);而有偏的推荐结果反过来会影响用户的决策、曝光和选择,加强用户未来行为的偏差(结果偏差→数据偏差)。以位置偏差为例,排名靠前的项目通常会从更大的流量中受益,这反过来又会增加它们的排名使得它们获得更多的流量,从而导致富人变得更富的场景。许多研究人员还研究了反馈回路对流行偏差的影响 ,他们的模拟结果表明,反馈循环会放大流行度偏差,流行商品变得更加流行,而不流行商品变得更不流行。这些放大的偏差也会降低多样性并加剧用户的同质化。

 

Fig. 7. Relations between seven types of biases.

有趣的是,图 7 还显示了一些数据偏差可以自我强化(数据偏差 → 数据不平衡 → 数据偏差)。 以从众偏差为例,由于用户的行为倾向于与群体相似,数据不平衡的程度会随着时间的推移而增加,进而影响和加剧从众偏差。 类似的情况适用于同样受数据不平衡影响的选择偏差和曝光偏差。

 

偏差解决方案

 

目前,针对前面的7种偏差已经有了很多解决方案,按照他们解决的偏差类型及采用的方法进行分类,结果整理在下表中,并列举了他们各自的优缺点。

 

Table 2. A lookup table for the reviewed methods for recommendation debiasing.

解决选择性偏差的方法

 

在观察到的评分数据上训练和测试推荐模型会受到选择偏差的影响,因为观察到的评分并不能代表所有评分。这里首先介绍存在选择性偏差的情况下,模型效果的评估问题;再介绍四种在训练过程中减少选择性偏差影响的方法。

 

Debiasing in evaluation

 

通常我们评价模型好坏的指标有Mean Absolute Error (MAE), Mean Squared Error (MSE), Discounted Cumulative Gain@k (DCG@k) or Precision (Pre@k),用公式表示如下:

 

(4)

 

其中, 根据不同的评价指标可采用不同的计算逻辑, 是真实值, 为模型的预测值:

 

(5)

 

(6)

 

(7)

 

(8)

 

由于这里样本集由观测到的数据组成,常规评估通常仅使用观察到的样本的平均值作为评价标准:

 

(9)

 

代表数据被观测到, 并不是 的无偏估计

 

(10)

 

这种差距是由选择性偏差造成的,因为观察到的打分不能代表整体打分。 两种方案用以解决上面问题。

 

Propensity Score(倾向分)

 

参考文章[143],里面提出使用倾向分抵消选择偏差对模型评估带来的影响,倾向分表示一个确定的(u,i)对被观察到评分的边缘概率( )修改后的评价指标如下:

 

(11)

 

它是 的一个无偏估计

 

(12)

 

只有当真实倾向分可用时,才能保证基于 IPS 的估计器的无偏性[140]。但实际过程中,我们很难得到倾向分,通过模型预估又会引入偏差。

 

ATOP. 文章[143]提出了另外一种无偏估计的方法-ATOP,该方法基于以下两个假设:

 

 

    1. 相关性高(评分分值大)的样本是随机缺失的

 

    1. 其他评分值允许以任意方式缺失,只要它们的的缺失率高于高分值样本

 

 

这两个假设实际上较难同时符合,因此 ATOP 的应用也较少。

 

(13)

 

(14)

 

(15)

 

其中 为用户 u 已观测到的相关性(高分)内容的个数, 为在 TopK个内容中相关内容的个数,作者证明 ATOP 是对平均召回率的无偏估计,并与用户的平均精度成正比。

 

Debiasing in model training.

 

接下来介绍四种在训练过程中减少选择性偏差影响的方法。

 

Joint Generative Model.

 

选择偏差产生的主要原因是用户可以自由地选择要评价的内容。因此,减轻选择偏差一个直接能想到的方案就是联合建模,同时考虑评分预测任务(“用户会给内容打多少分”,即 )和缺失数据预测任务(“用户选择哪些内容进行评分”,即 )。这些论文 [30, 66, 87, 115, 116, 178, 189] 中提出联合建模评分值和缺失机制的生成过程。整个数据生成过程可以用图 5(a) 来描述,用户对某个内容的的评分值( )决定了用户选择该内容的概率( )。这样,用户的偏好不仅可以从评分值中学习,还可以从缺失的机制中学习。

 

虽然这种方法具有可解释性,并且在某些场景中是有效的,但是联合建模缺失的机制和评分值会导致模型非常复杂,难以训练。更糟糕的是,数据缺失模型的架构通常是启发式设计的,实际情况下这种分布假设可能不成立。

 

数据插补(Data Imputation).

 

上面联合建模说到,同时考虑评分预测任务以及缺失数据预测任务会导致非常复杂的方案,所以目前非常多的工作采用启发式的优化方案,例如数据插值方法[149,150,140,176,],最简单的就是对未观察到打分值的样本对直接赋予一个固定分值 ,其损失函数就变成了如下公式:

 

(16)

 

表示真实观察到的打分值和人工处理插入的打分值, 就是模型预测值, 被引入用来降低人工插入这部分样本的权重。

 

然而,由于缺失数据模型(哪些user item对被捞回来进行人工赋值)或打分预估值(这些被捞回来的user item对具体打多少分)是以启发式方式指定的,这类方法会因缺失数据模型的指定不当或估算的评分值不准确而出现经验误差。

 

为了解决启发式问题,[140] 提出了一种学习插值打分值的框架,额外训练两个模型(A1,A2)用来生成伪数据,在前面模型训练得到的分值上面训练最终的模型A0。[140] 中提出的理论分析表明,所提出的方法优化了理想损失函数的上限。 然而,该框架的性能取决于预训练预测器 A2 的训练效果,而准确的A2 本身很难从有偏差的数据中获得。 但是,基于模型的插补策略是减轻选择性偏差一个有前途的方向,值得未来探索。

 

倾向分(Propensity Score)

 

除了在模型效果评估中用到倾向分之外,在模型创建的过程中也可以使用倾向分以减少选择性偏差的影响[140,143,177],实现方式是在损失函数中加入倾向分

 

(17)

 

直接以基于IPS的无偏估计量使得,加上倾向分的损失函数是真实损失函数的无偏估计:

 

(18)

 

上述方法有两个较大问题:

 

 

    1. 准确的Propensity score是很难得到,基于IPS的模型的性能依赖于propensities的准确性。

 

    1. 基于Propensity score的方法会受到高方差的影响,最终导致非最有的结果。

 

 

Doubly Robust Model

 

由于上面说到的Data Imputation和Propensity Score都存在一定问题,Doubly rost model[176]将上述的两种方案通过某种方式结合,只要上面的两种操作有一种是准确的,则模型保持整体无偏能力,使其具有期望的双重鲁棒性。其损失函数定义如下:

 

(19)

 

尽管此类方法比单个模型更加鲁棒,但是它也需要准确的propensity score或者imputation数据

 

解决从众偏差的方法

 

从众偏差[37,110,215,217]的产生是因为用户通常会受到他人评分的影响而对内容的打分偏离自己真实的兴趣偏好。目前有两种方法处理从众偏差。

 

第一种方法比较简单,将内容i的历史打分人数 (样本数量) 、 历史平均分( )、得分分布( ),都作为建模的输入信号,用一个拟合器去拟合去偏后的修正得分值。本质上就是希望把“社会因素“作为考虑的一部分。公式如下:

 

(20)

 

另一种方式 [24, 112, 155, 172] ,将用户的评分只作为用户喜好和social影响的综合结果。很多工作直接利用base推荐模型的social因子来生成最终的预测结果,与此同时,引入特定的参数来控制一致性偏差的影响。

 

解决曝光偏差

 

产生曝光偏差的原因前面已经说过,这里就不在重复。

 

Debiasing in evaluation

 

在解决曝光偏差对模型评价带来的影响时,直接能想到的办法就是与选择性偏差一样使用倾向分[192],将IPS框架用于传统放入评价指标如AUC,DCG@K,Recall@K来解决模型评估上的偏差问题,其公式如下:

 

(21)

 

其中, 表示模型的预测值, 表示用户u的所有行为item,函数 表示不同的评价函数,例如:

 

(22)

 

(23)

 

(24)

 

(25)

 

由于曝光偏差的存在,用户喜欢的item只有部分被曝光,导致模型的评估受到该偏差的影响,公式如下:

 

(26)

 

表示曝光给用户u的item集合,由于曝光偏差的存在, 。而与选择偏差一样使用曝光的倾向分[190]生成的每个样本的权重,可以使得整个估计与 无偏,即 。

 

(27)

 

Debiasing in model training

 

为了处理曝光偏差并从隐式反馈中提取负面信号,传统的策略是将所有未观察到的交互视为负面并指定它们的置信度。 大多数此类方法的目标函数可以总结如下:

 

(28)

 

其中 表示十分观察到u-i对有交互, 表示置信权重,它控制用户-项目对u-i的反馈应该被预测为 的置信度。置信权重的规范对模型性能至关重要,大致可以分为三种类型:

 

启发式权重(Heuristic Weighting)

 

第一种是启发式策略。 例如,经典的加权分解矩阵 (WMF) [68] 和动态 MF [45] 使用简单的启发式方法,将未观察到交互的样本分配一个均匀较低权重,例如:当 , ; 时, .因为,未观察到的数据相对不可靠,可以认为不喜欢或者用户没看到; 一些研究人员[128,129]根据用户活跃程度,即 ,因为用户行为的item越多,信息越可靠; 类似地,item的受欢迎程度也可以用来指定置信权重 [65, 194],因为越受欢迎的item越有可能被曝光; 此外,还考虑了用户item特征相似性[100]来定义置信度。

 

然而,用启发式的方式解决曝光偏差问题,很大程度依赖于人的专业性,且不同的user-item对有着不同的最佳权重参数,人工设置达不到这幺高的精度,而粗粒度的置信权重会在估计用户偏好时产生经验偏差。

 

采样(Sampling)

 

解决曝光偏差的另外一个方式是采样,采样决定了使用什幺样的数据,以什幺样的权重更新模型,即对数据分布进行了缩放。假设一个实例的采样概率是 ,那幺学习一个带采样的推荐模型就相当于用以下加权目标函数学习模型:

 

(29)

 

可以看到,采样分布其实可以当成置信度权重,采样策略因其效率而被广泛应用。例如,Logistical matrix factorization [38]、BPR [77] 和大多数基于神经的推荐模型(例如 CDAE [164]、NCF [39]、LightGCN [165])都采用均一负采样器;[194]采用的是对流行的item的负样本进行过采样,因为它们有更多的曝光机会。但是这些启发式采样器其实也不知道真实的负样本是哪些。因此,一些研究人员探索利用边界信息来辅助采样,[46, 47] 利用已查看但未点击的数据来评估用户的曝光率,[32]在采样分布中用到了社交网络信息,[175]构造基于item的图网络,并且在图网络上采样。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注