Fairness in Recommendation: A Survey 阅读笔记

news2024/12/23 22:06:45

论文链接

搁置了许久的毕设,又要开始重新启航。
2022年的最后一段时间过得真是很崎岖,2023希望大家平安喜乐。
课设还未结束,但是毕设不能再拖,开工啦!

这又是一篇综述,有关推荐系统中的公平性,之前有两篇综述都更宏观,讲了机器学习领域的公平性,当然推荐系统也在其中,这次就读的细一点,从推荐系统方向来看,也许不久的将来我也会去做推荐系统与RL的交叉了。
写在前面:看这篇综述时,有参考这篇知乎内容。

摘要

关键内容是之前未有过系统的总结fairness in recommendation这一话题,很难让新的研究者了解到这一领域并展开研究。
本文先从机器学习领域的公平性谈起,有一个宏观的公平性研究概念,再介绍推荐系统中的公平性,重点关注当前公平性定义的分类、提高公平性的技术以及推荐系统中用于公平性研究的数据集。最后还探讨了公平性研究面临的挑战和机遇,以期促进公平推荐研究领域的发展。

引言

  1. 推荐系统的不公平现象:
    ① 工作推荐系统:种族/性别歧视
    ② 电子商务推荐系统:看popular
    ③ 新闻推荐系统:可能由于“回声室效应”
  2. 本文的脉络:
    ① 简明介绍ML中的公平性研究,尤其是分类与排序任务中;
    ② 从四个角度介绍推荐系统的公平性研究:分类,方法,数据集与挑战
  3. However, most of the works on bias in recommendation focus on improving the recommendation accuracy or robustness in out-of-distribution scenario through debiasing methods instead of promoting fairness.

机器学习中的公平性研究

不公平的原因

caused by various forms of biases

  1. 数据偏差
    统计偏差: 发生在数据收集存储阶段,由于实验设计或者数据处理时,往往会使得最终的数据并不能代表原始数据的真实分布。
    早已存在的偏差: 数据产生阶段存在偏见,即原始数据本身就反映了某种偏差。
  2. 算法偏差
    举例:
    Presentation Bias表示偏差
    当展示的信息以一种具有偏差性质的方法展示时,就会出现表示偏差
    例如,排序偏差,越靠前的位置会得到更多的曝光,导致更多的用户点击,而靠后的则相反,虽然这些靠后的物品和靠前的物品在相关度上可能相差无几;流行度偏差(在推荐系统中),即相比那些不那么受欢迎但同样相关甚至更相关的item,互动更多的item反而会被更频繁地推荐,获得更多曝光。
    Evaluation Bias评估偏差
    当在模型评估中使用不合适的benchmark时,通常会出现评估偏差

数据偏差和算法偏差其实形成了一个反馈环:用户行为本身具有一定偏见,导致收集的是本身自带偏差的数据,被用来训练算法(数据收集和存储阶段),用户行为又会受到有偏算法的影响,又会引入新的数据偏差(数据产生阶段)。面对相互交织在一起的偏差,理清彼此之间如何相互影响,并针对性解决是非常重要的。

  1. 其他原因
    例如,不同的公平要求相互冲突,即不能同时得到满足。
公平机器学习方法
  1. 预处理方法:针对训练数据进行去偏
    方法:①改变某些数据点的标签;②映射原始数据到新的无偏空间中。
    优点:转换后的数据可以用于训练任何下游(downstream)算法,而无需进行一定的假设。
    缺点:无法确保准确度;无法消除测试集数据上的不公平。
  2. 在处理方法through modifying the learning process
    将公平性指标纳入到学习任务的目标函数中;
    需平衡准确度与公平性;
    主要的缺点是这种方法通常会导致一个非凸的优化问题,而不能保证最优性。
  3. 后处理方法apply transformations to the model output
    优点:把中间推荐模型视作黑盒,具有模型无关的灵活性;不需要修改模型和数据,实现相对较好的准确度和公平。
    缺点:当测试阶段无法获得敏感信息(会引起偏见的那些特征,e.g.,性别、种族)时,那算法就不能应用。
公平性定义

no consensus on fairness definitions
三类定义:Group Fairness; Individual Fairness; and Hybrid Fairness

  1. Group Fairness组公平
    研究对象通常根据一定的分组方法被分为不同的组,最常见地,我们会根据某个敏感特征划分。组公平的基本思想是要保护组和优势组能够被平等对待。
    例如:研究在招聘决策系统中的性别歧视问题,首先将候选人根据他们的性别分到不同的组,然后以组的工资或招聘率来衡量组公平。
  2. Individual Fairness个体公平
    similar individuals should be treated similarly
    相似度是通过对象的特征或者特征组进行定义的

注意:组公平和个体公平定义是截然不同的两个概念。讨论个体公平时,我们会把相似个体分到一个组里,然后要求这个组里的个体都应该被公平对待;而组公平是要在组这个层面上,令不同组能够被公平对待。个体公平可能不会保证组公平,可能同一组的人得到公平的对待,但有些组比其他组好得多即无法保证组公平。反之亦然,因此到底要定义组公平还是个体公平,需要谨慎选择。

  1. Hybrid Fairness混合公平
    目的:multiple fairness definitions should be satisfied at the same time
    例如,both user-side and item-side 等。
    但,同公平定义可能是相互矛盾的。

分类任务中的公平性

推荐问题有时可以被建模为一个分类任务,例如,当我们试图预测用户是否会点击一个item时。
公平定义
  1. Group fairness组公平定义
    绝大多数关于公平性分类任务的定义都是限制在组公平定义上。
    组公平定义往往会涉及到分类算法预测的阳性率指标Pr( y ^ \widehat{y} y =1)和混淆矩阵相关指标(TPR,FPR,TNR,FNR),前者希望不同组的预测阳性率相同,后者希望能在更细粒度层面缩小不同组的差异。
    ① predicted positive rate-based metrics:
    Statistical Parity(Demographic Parity or No Disparate Impact);
    ② confusion matrix-based metrics:
    Equal Opportunity; Equalized Odds; Overall Accuracy Equality; Equalizing Disincentives; Treatment Equality;
    这些具体定义有在我的这篇博客另一篇综述里介绍,本次博客主要详细记录推荐系统的公平性研究。
  2. Individual fairness个体公平定义
    举例:
    ① Counterfactual Fairness 反事实公平
    对任意个体,在反事实世界和真实世界中,预测结果应该一样:
    在这里插入图片描述 常用的实现反事实公平的技术有:因果推断中的干预intervention、直接移除敏感属性以及其后代相关属性、变分编码器variation autoencoders、对抗学习adversarial learning、数据预处理、因果正则化causal regularization、数据增强等。
    ② Fairness Through Awareness
    要求任意两个非敏感特征相近的个体应该得到相似的预测结果
    个体之间的差异程度d(x1,x2)应该是预测结果差异值F( y 1 ^ \widehat{y_1} y1 , y 2 ^ \widehat{y_2} y2 )的上界:
    在这里插入图片描述
促进分类任务中公平性的方法
  1. 预处理阶段:
    massaging:将敏感特征S=s的个体标签从"-“改为”+“,其余S!=s的集合里中随机选取相同数量的个体,把”+“改为”-"
    re-weighting:减少敏感特征与标签之间的依赖关系。将S=s集合中标签为"+“的实例赋更高的权重(与S=s且标签为”-“的集合相比),而将S!=s集合中标签为”+“的实例赋更低的权重(与S!=s且标签为”-"的集合相比)
  2. 在处理阶段:
    对目标函数施以公平性约束条件
  3. 后处理阶段:
    常用方法有:调整分类阈值、特征重加权。
    特征重加权:需要找到影响公平性因素的特征,直接丢弃或者减小其权重。

排序任务中的公平性

Recommendation algorithms can usually be considered as a type of ranking problem.

排序任务中的公平定义
  1. 排序任务可分为两类:
    ① Score-based Ranking:score直接用给定的函数计算得到
    ② Learning to Rank:通过模型预估得到score
  2. 本节主要探讨Learning to Rank中的排序公平性问题
  3. 现有大多数公平排序方法都是用list-wise的定义,即衡量结果公平需要使用所有的结果列表。
  4. 基于概率的公平Probability-based Fairness:
    protected candidates在排序结果中的出现比例要在给定的最大/最小范围内(只能组公平角度考虑):
    在这里插入图片描述
  5. 基于曝光/注意的公平Exposure/Attention-based Fairness:
    既可以量化个体公平还可以量化组公平
    曝光资源是极其有限的,因此,基于曝光的公平指标是与不同组的曝光度相关的,理想情况是各组的曝光值正比于其与搜索词的相关度。
    基于曝光的组公平定义如下:
    在这里插入图片描述
    基于曝光的个体公平如下:
    在这里插入图片描述
方法
  1. 预处理阶段:
    常用方法为将用户记录映射到一个低秩表征空间中
    低秩表征可形式化为概率聚类问题,对于每个样本xi,xi被分配到某个簇的概率ui反应了该样本与簇之间的distance,因此各个样本的理想低秩表征即映射函数可以写为
    在这里插入图片描述追求公平即给定两样本 xi 和 xj,用 xi* 和 xj* 表示只包含非敏感特征的表征,那么要让:
    在这里插入图片描述公平目标可定为损失函数的形式:
    在这里插入图片描述

  2. 在处理阶段:
    从零开始学习一个公平的排名模型,例如在目标函数中加入公平限制项

  3. 后处理阶段:
    对排序结果进行重排序实现公平
    给定单个查询q,排序算法用于得出排序结果r,r对q的效用值记作U(r|q),公平排序是要把公平约束作为优化目标之一,然后模型最大化效用和公平值。
    一种方法是学习一个概率排序矩阵P,其中Pi,j表示第i个文档放在第j个位置的概率,这个矩阵需要满足行之和和列之和均为1,约束问题形式化如下:
    在这里插入图片描述公平约束是要以最优化某个公平定义为目标,论文中是以最简单的统计均等为例,希望各组的曝光期望相等。文档di的曝光值定义如下
    在这里插入图片描述
    其中vj表示第j个位置的权重大小。自然我们可以得到第Gk组的曝光和
    在这里插入图片描述
    那么统计均等就是
    在这里插入图片描述
    很多情况下,这种约束问题最终转化为了线性规划约束问题,需要依赖各种工具进行求解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/147369.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5.Isaac教程--创建Isaac应用

创建Isaac应用 本教程将指导您完成使用 Isaac SDK 创建机器人应用程序的过程,以视频输入的 OpenCV 边缘检测处理为例。 文章目录创建Isaac应用预安装显示相机源创建应用程序文件启用节点间通信配置组件创建 Bazel 构建文件运行应用程序查看相机源处理相机源添加边缘…

1.6日报

以redis为基础完成 addCacheData getCacheDataByUniqueId delCacheDataByUniqueId 并且测试通过。 升级getQRcodeAndScene接口,添加版本参数,实现“不同环境取不同小程序版本“功能 并添加扫码跳转页面功能。 遇到的问题及解决 加深对RequestBody…

性能优化系列之『HTTP-2 :升级HTTP-2的好处有哪些?如何升级?』

文章の目录一、HTTP/2 概念二、HTTP/2 优点三、HTTP/2 站点的优势四、在 Nginx 上启用 HTTP/21、升级 OpenSSL2、重新编译3、验证 HTTP/24、浏览器请求截图写在最后一、HTTP/2 概念 HTTP/2(超文本传输协议第2版,最初命名为 HTTP 2.0)&#x…

【Spring AOP】@Aspect结合案例详解(一): @Pointcut使用@annotation + 五种通知Advice注解

文章目录前言AOP与Spring AOPAspect简单案例快速入门一、Pointcutannotation二、五种通知Advice1. Before前置通知2. After后置通知3. AfterRunning返回通知4. AfterThrowing异常通知5. Around环绕通知总结前言 在微服务流行的当下,在使用SpringCloud/Springboot框…

分布式基础篇3——前端开发基础知识

前端技术对比一、ES61、简介2、什么是 JavaScript3、ES6新特性3.1 let3.2 const3.3 解构表达式3.4 字符串扩展3.5 函数优化3.6 对象优化3.7 map 和 reduce3.8 Promise3.9 模块化二、Vue1、MVVM 思想2、Vue 简介3、Vue 入门案例4、Vue 指令插值表达式v-text、v-htmlv-bindv-mode…

景区地图最短路径快速实现

1 前言以前粗略学习了一下在地图中实现最短路径,并在切图工具中实现了自动处理生成导航相关数据。https://blog.csdn.net/bq_cui/article/details/86795213最近发现工具实现的结果,错误一大堆。这次再详细捋一捋整个步骤,感兴趣的同学可以试一…

ctemplate 的安装和使用

ctemplate 用于linux下的web开发,可以动态生成一个html网页,这里的 “ 动态 ” 指的是网页的数据不是固定的,可以使用变量来填充网页内容。 目录 1、下载ctemplate 2、安装 ctemplate 3、使用ctemplate库 1、下载ctemplate 可以在gite…

前端对接微信公众号网页开发流程,授权对接

前面讲到 前端对接微信公众号网页开发流程,前期配置,本篇文章主要详细介绍关于公众号的授权对接。 一、引入微信js-sdk 在需要调用 JS 接口的页面引入如下 JS 文件 http://res.wx.qq.com/open/js/jweixin-1.6.0.js如需进一步提升服务稳定性&#xff0…

如何在windows上使用VMware安装macOS虚拟机

如何在windows上使用VMware安装macOS虚拟机一、准备工作1.1 安装 VMware1.2 下载macOS的安装包1.3 下载VMware虚拟机解锁安装苹果系统工具二、解锁VMware支持macOS安装2.1 关闭已经打开的VMware软件2.2 安装VMware Workstation Unlocker三、VMware创建虚拟机3.1 解压缩macOS的安…

【蓝桥杯】X 进制减法

难点一&#xff1a;base base * s[i] % mod;//***当前位乘以x&#xff0c;x要*s[i],一直要乘到个位的进制难点二&#xff1a;当当前该位的的进制位&#xff0c;为max(max(a[i]1, b[i]1), 2)的时候&#xff0c;结果最小ACcode:#include<iostream>using namespace std;con…

性能优化系列之『混合式开发: React Native内核及优势介绍』

文章の目录一、React Native愿景二、技术优势1、技术2、效率3、发版三、底层内核1、RN&#xff1a;helloWorld.jsx2、iOS&#xff1a;helloWorld.m3、Android&#xff1a;helloWorld.xml4、Web&#xff1a;helloWorld.html四、行业背景五、选型建议写在最后一、React Native愿景…

【计算机体系结构基础】指令流水线

单周期处理器 简要描述单周期处理器的执行过程&#xff1a; PC从指令存储器中读取指令 取指后译码得出相关的控制信号读取regfile&#xff08;寄存器堆&#xff09; 运算器对regfile中取出的操作数进行计算&#xff0c;将计算的结果写回通用寄存器堆或者得到访存指令的地址或…

边缘数据采集网关如何实现PLC远程上下载

边缘数据采集网关&#xff0c;又称边缘计算网关、工业物联网网关&#xff0c;是连接工业设备与通信网络的桥梁&#xff0c;可以实现不同协议之间的解析转换&#xff0c;打造高效实时的数据采集系统&#xff0c;并借助边缘计算规则对数据进行清洗过滤&#xff0c;适配云平台实现…

QT 学习笔记(十五)

文章目录一、UDP 通信过程1. Linux 下的 UDP 通信过程2. QT 下的 UDP 通信过程3. 在 QT 中实现 UDP 通信的流程4. TCP/IP 和 UDP的区别二、UDP 文本发送1. UDP 文本发送实例演示2. UDP 广播3. UDP 组播三、UDP 文本发送实现代码1. 主窗口头文件 widget.h2. 主窗口源文件 widget…

论文创新及观点

FEW-SHOT TEXT CLASSIFICATION WITH DISTRIBUTIONAL SIGNATURES 任务 Given an N-way K-shot classification task 论文设计图像 数据集 20 Newsgroups is comprised of informal discourse from news discussion forums (Lang, 1995).Documents are organized under 20 to…

数据分析-深度学习 Day2

目录&#xff1a;第一节 机器学习&深度学习介绍第二节 机器学习攻略一、机器学习的框架二、模型训练攻略三、针对Optimization Issue的优化&#xff0c;类神经网络训练不起来怎么办(一) 局部最优点和鞍点(二) 批处理和momentum(三) 自动调节学习率Learning rate(四) 损失函…

vue实现微信端和企业微信端扫码

前要&#xff1a;微信端调用微信的扫一扫和企业微信端调用企业微信的扫一扫获取订单码查询&#xff01;&#xff01; 一、微信端扫一扫 这里使用的是uniapp框架调用微信的内置sdk扫码防伪溯源&#xff01;http引入或者npm安装模块&#xff1a; //public/index.html <!DOCT…

《设计模式》命令模式

《设计模式》设计模式的基本原则 《设计模式》单例模式 《设计模式》工厂模式 《设计模式》原型模式 《设计模式》建造者模式 《设计模式》适配器模式 《设计模式》桥接模式 《设计模式》装饰者模式 《设计模式》组合模式 《设计模式》外观模式 《设计模式》享元模式 《设计模式…

【Java开发】Spring Cloud 03 :Spring Boot 项目搭建

为了体验从 0 到 1 的微服务改造过程&#xff0c;我们先使用 Spring Boot 搭建一个基础版的优惠券平台项目&#xff0c;等学习到 Spring Cloud 的时候&#xff0c;我们就在这个项目之上做微服务化改造&#xff0c;将 Spring Cloud 的各个组件像添砖加瓦一样集成到项目里。上一章…

jacoco:java代码覆盖率实践

文章目录一、jacoco基本了解二、实践准备三、jacoco使用3.1 插桩3.2 dump:覆盖率文件导出3.3 report:可视化报告3.4 merge:合并覆盖率文件四、相关命令扩展4.1 javaagent4.2 dump4.3 merge4.4 report五、资源链接一、jacoco基本了解 jacoco是一款面向java的代码覆盖率工具&…