推荐系统中的公平性

Posted 白水baishui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐系统中的公平性相关的知识,希望对你有一定的参考价值。

文章目录

1. 推荐公平性是什么

推荐系统中的公平性是指确保推荐系统的推荐结果是基于无偏和公正的原则产生的。从用户侧考虑,推荐结果不应受到种族、性别、年龄或其他可能导致歧视或不平等待遇的用户特征(敏感属性)等因素的影响。从项目侧考虑,推荐系统中的公平性应确保具有相似特征的项目有平等的被推荐机会,并且不同类别的项目在推荐结果中的分布是均匀的。

2. 推荐公平性的分类和定义

2.1. 用户公平性 / 项目公平性

推荐系统是一个多利益方的相关系统,包括(但不限于)用户和项目两个相关方。其中,用户是指接受推荐结果的一方,项目是指被排名或推荐的一方。用户侧的公平性需求通常与推荐结果的质量相关,而项目侧的公平性考虑通常侧重于项目在推荐列表中的曝光机会。

对用户不公平的典例是冷启动不公平、主流不公平和敏感属性不公平。例如,新(冷启动)用户的推荐结果被已有用户主导,例如你刚注册微博时会强制你关注一些其他用户,然后将这些用户感兴趣的内容推荐给你,实际上你并不一定喜欢这些内容;还有例如,女性大多数喜欢看爱情片,于是系统对每一个女性用户都大量推荐爱情片,实际上有些女性可能不喜欢爱情片;还有例如推荐系统会根据用户的年龄推荐与本年龄段相关的内容,造成信息茧房。

对项目不公平的典例是由流行度偏差引起的曝光不公平,即流行的项目会获得比不流行的项目多得多的曝光机会,即使此时不流行的项目更符合用户兴趣或有更好的项目质量。

用户公平性和项目公平性的定义并非只有一种,但通常情况下我们讨论两者时,指的都是如下情况:

  • 用户公平性定义:推荐系统不使用用户的敏感属性或消除了敏感属性的影响。
    设用户有敏感属性 A A A,若满足: P ( R ∣ A ) = P ( R ∣ A = ∅ ) P(R|A)=P(R|A = \\varnothing) P(RA)=P(RA=)则称为满足用户公平性
  • 项目公平性定义:推荐系统对不同流行度的项目有相同的曝光机会。
    设项目集中任意两个项目 i i i j j j,若满足: P ( r e c o m m e n d e d ∣ p o p u l a r i t y ( i ) ) = P ( r e c o m m e n d e d ∣ p o p u l a r i t y ( j ) ) P(recommended |popularity(i))=P(recommended |popularity(j)) P(recommendedpopularity(i))=P(recommendedpopularity(j))则称为满足项目公平性。

用户公平性和项目公平性是推荐系统公平性研究的大方向,任何公平性研究都可以从这两个角度来讨论。另外,从更高的视角来看,接近满足用户或项目的单边公平性也许是不足够的,多边公平性的共同优化也是值得考虑的问题。

2.2. 群体公平性 / 个体公平性

顾名思义,在某种群体分类方法下(例如男/女、老/少……),群体公平要求某群体应与优势群体或整体拥有同等的对待,而个体公平则要求相似的个体都应被相似的对待。

  • 群体公平性定义
    人口统计均等(Demographic Parity):推荐系统对有不同敏感属性的群体给出相同的推荐结果.
    设某群体有敏感属性 A = 0 A=0 A=0,另一群体有敏感属性 A = 1 A=1 A=1,若满足: P ( R ∣ A = 0 ) = P ( R ∣ A = 1 ) P(R|A=0)= P(R|A=1) P(RA=0)=P(RA=1)则称该推荐系统是人口统计均等的。
    机会均等(Equality of Opportunity):推荐系统对有同样资格(或称价值,即真实交互结果)的群体给出相同的推荐结果,而不用管他们的敏感属性是否一致。
    设根据用户的真实交互结果划分群体,该群体有同样的真实交互结果 R t r u e = 1 R_true=1 Rtrue=1,若满足: P ( R ∣ A = 0 , R t r u e = 1 ) = P ( R ∣ A = 1 , R t r u e = 1 ) P(R|A=0,R_true=1)= P(R|A=1,R_true=1) P(RA=0,Rtrue=1)=P(RA=1,Rtrue=1)则称该推荐系统是机会均等的。
  • 个体公平性定义
    个体公平(Individual Fairness):推荐系统对相似的个体给出相似的推荐结果。
    设有个体 i i i j j j,它们都有同样的敏感属性 A A A,若满足: P ( R ∣ A ( i ) ) ≈ P ( R ∣ A ( j ) ) P(R|A(i))\\approx P(R|A(j)) P(RA(i))P(RA(j))则称该推荐系统是个体公平的。
    反事实公平(Counterfactual fairness):从因果角度考虑,推荐系统对个体给出推荐结果(果)不会受到敏感属性(因)的影响。
    设个体有敏感属性 A = a A=a A=a和非敏感属性 X = x X=x X=x,若在反事实(假设)环境下改变该敏感属性,使 A = a ′ A=a' A=a,若满足: P ( R A ← a ∣ X = x , A = a ) = P ( R A ← a ′ ∣ X = x , A = a ) P(R_A\\leftarrow a|X=x, A=a)=P(R_A\\leftarrow a'|X=x, A=a) P(RAaX=x,A=a)=P(RAaX=x,A=a)则称该推荐系统是反事实公平的。例如,“女性:如果我是男性,这一次我会拿到贷款吗?”,我们希望推荐系统将性别视为因果无关的属性,也即,如果该个体其他属性不变的情况下,改变性别得到的待遇应该不变。

2.3. 静态公平性 / 动态公平性

推荐系统通常是动态的交互式系统,因此,用户的偏好、活跃度,以及项目的流行度可能时刻在发生变化。仅考虑一次推荐中的公平性是不恰当的。强化学习可能是处理动态公平性的良好范式。

2.4. 短期公平性 / 长期公平性

短/长期公平是建立在静/动态公平之上的概念,短期公平就是静态公平,只需要考虑当前状态,实现一次性公平。 而动态公平可以是一种长期公平,因为动态只能发生在长期。 但是,长期公平涵盖的范围更广,它并不排斥短期公平,而是旨在当公平无法在短期实现时,通过长期战略来解决。

例如,当用户对推荐列表的顶部关注度高于底部的情况下(想象淘宝界面,通常我们会更加关注排在上面的商品),这时候即使推荐系统以均匀的概率曝光项目到推荐列表,由于用户的浏览习惯,仍然会导致我们无法在一次推荐中实现公平曝光,因为总是要有项目排在底部。这时候,我们希望可以通过改变项目在长期推荐中的位置来实现它们在多轮排名中的公平。

2.5. 全体公平性 / 个性化公平性

大多数公平性定义旨在为所有用户/项目实施相同的公平性定义,然而公平性需求也可能是十分个性化的,例如,一些用户可能对性别非常敏感,他们希望在性别特征上得到公平对待,而另一些用户可能不太关心性别,但他们对年龄非常敏感,他们不想受到年龄歧视。一种解决方法是,推荐系统可以允许用户激活或灭活某些敏感特征,以实现个性化公平性。

2.6. 黑盒公平性 / 可解释公平性

提供推荐系统的公平性是我们的一致目标,然而,更根本的问题是理解为什么推荐系统不公平,是什么原因导致推荐结果不公平。

理解“为什么”不仅在技术角度上有帮助,而且在社会角度上也有帮助。 从技术上讲,了解不公平的原因有助于推荐系统的设计师进行数据管理,以消除导致不公平的因素,也有助于他们开发有针对性的模型来缓解偏差。 从社会方面来讲,了解不公平的原因有助于推荐系统的设计师了解不公平的社会原因和影响,并制定预防性的策略以改善推荐效果。

可解释的公平性对于推荐系统的重要性不言而喻,因为推荐算法不得不处理大量(数千甚至数百万)隐式或显式的特征。 一方面,庞大的特征量使得设计师难以手动识别造成不公平的敏感特征; 另一方面,大多数特征对公平性的影响是微小、甚至是交叉影响的,错综复杂的关系导致即使这些特征被识别出来了也难以很好地处理; 最后,即使推荐算法完全不使用显式特征,仅使用用户行为进行模型训练,由于某些用户的偏好和选择会影响其他用户接收到的推荐结果(例如在协同过滤框架下),导致不公平的推荐。 因此,推荐系统非常需要可解释的公平性方案,以帮助检测和解释模型不公平的原因以及制定改进策略。

目前,关于可解释公平性的工作开展的十分缓慢,项目侧的可解释公平性要比用户侧的实现容易的多。

以上是关于推荐系统中的公平性的主要内容,如果未能解决你的问题,请参考以下文章

推荐系统中的公平性

DaisyRec:推荐系统基准的多维公平比较工具

Jain‘s Faireness index如何度量TCP公平性

公平分布式资源分配共识推荐算法

java线程 公平锁 ReentrantLock(boolean fair)

论文导读(AAAI)Achieving Counterfactual Fairness for Causal Bandit