推荐系统公平性之校准化推荐--calibrated recommendations

2023-10-23 12:30

本文主要是介绍推荐系统公平性之校准化推荐--calibrated recommendations,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

主要参考论文:论文1《Calibrated Recommendations》、论文2《Crank up the volume: preference bias amplification in collaborative recommendation》

推荐系统中的偏好放大现象(preference bias amplification)

你是否有过这样的经历:某天在淘宝搜索了一样东西后,接下了一段时间的推荐都是关于这个物品的,哪怕你已经购买了这个物品或者你只是简单地搜来瞧瞧;在抖音上给某些视频点了赞,后面抖音会疯狂推荐这类视频给你,尽管你已经不想看这类视频了。

再举个直观的例子,佩琪在购物网站上购买了3条裙子和1双鞋子,那么接下来推荐系统会怎么给她推荐呢?
在这里插入图片描述
有很大的可能是,推荐系统只给她推荐裙子,因为推荐系统放大了她对裙子的偏好,从而忽略了她对鞋子的偏好。这可能给佩琪带来不好的使用体验。
在这里插入图片描述
换句话说,推荐系统的这种偏好放大现象将逐渐缩小用户的兴趣范围,类似于回声室效应。这对于推荐系统中的各个利益相关者都是不利的:
对于用户来说会让他们看到的东西越来越单一,丧失了多元化,让用户看不到本来想要的东西或者未来会感兴趣的东西。
对于物品方而言,部分类别的物品,特别是小众的物品,可能很少会有展示的机会。
对于推荐平台,就意味着这款APP让用户觉得乏味,没有用户粘度,从而造成用户流失。

为什么会出现偏好放大现象

  1. 从类别不平衡的分类问题角度来看。在类别不平衡的分类问题中,如果我们没有其他可用的信息,那么将结果全部预测为最多的那一类就可以得到最高的准确率。对于推荐来说,继续用上面的例子,如果我们没有别的可用信息,只知道佩琪购买的物品中75%都是裙子,那么我们只推荐裙子给她就可以得到最好的准确率。

  2. 从模型训练的角度来看。以BPR训练为例,在训练过程中为每个用户采样正样本时,数量占比多的类别被采样到的概率更大,所以训练时这种偏差就刻入模型中了,但这本不是错,相反这恰恰是个性化推荐所需要的,但错在往往得到的推荐结果会过分放大这种偏差,而没有维持住原有的比例。

校准化推荐(calibrated recommendations)

由于推荐系统存在的偏好放大现象,我们需要让推荐系统的结果更加符合用户的原始偏好,校准化推荐应运而生。用论文1中的例子:假设在某个用户的观影记录中,有70部爱情类电影和30部动作类电影,那么在推荐列表中的爱情类电影应该占70%,同时动作类电影应该占30%,这样就与用户的偏好相符。我们把推荐列表的这种特性称为校准(calibration)。

规范化描述,校准推荐的目标是让推荐列表按照合适的比例反映用户的兴趣偏好。

校准(calibration)与多样性(diversity)

典型的多样性的优化目标是最小化推荐列表中各物品间的相似度,用上面的例子来说,一个多样性的推荐列表只需要保证同时有爱情类电影和动作类电影就好了,当然如果有其他类别的电影,也应该加入到列表中,而且最好每种类别数量相等。

但calibration强调的是推荐列表中的各类别的电影要满足一定的比例,即尽可能地吻合用户的兴趣偏好。但却不具备多样性那样可以发现用户潜在兴趣类别的性质。

如何度量校准(calibration metrics)

  1. 为了评估我们的推荐结果和用户原始的兴趣偏好间的差异,我们可以假设用户历史记录中类别的分布为,推荐列表中类别分布为,那么可以计算两个分布间的f-散度(f-divergence)来量化它们间差异,值越小说明分布越接近,calibration就做得越好。
    如上面与多样性的对比时所述,如果我们想要让推荐结果的类型不那么死板,希望稍微地引入一些其他类别,以发现用户的潜在兴趣,我们可以让没出现在用户历史中的类别所对应的不为零。

  2. 我更偏爱论文2采用的指标:bias disparity。其同样是通过计算输入数据中的偏好与系统输出中的偏好间的差异(公式具体见论文2)。它既可以用来计算推荐系统对所有用户的偏好放大情况,也可以分别推荐系统对计算不同组(如男性和女性)的用户的偏好放大情况,且计算简便。

如何实现校准

在训练的时候,很难将calibration加入优化目标,所以实做上大多采用简单地重排序(re-rank),即先从推荐系统中得到以准确率为优化目标的推荐结果,再利用前面提到的度量指标,通过重排序来权衡准确率和calibration。

文献链接

  1. 《Calibrated Recommendations》
  2. 《Crank up the volume: preference bias amplification in collaborative recommendation》

希望我的文章可以给你们的工作或者学习带来一丝灵感,共勉~

这篇关于推荐系统公平性之校准化推荐--calibrated recommendations的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/267836

相关文章

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Java日期类详解(最新推荐)

《Java日期类详解(最新推荐)》早期版本主要使用java.util.Date、java.util.Calendar等类,Java8及以后引入了新的日期和时间API(JSR310),包含在ja... 目录旧的日期时间API新的日期时间 API(Java 8+)获取时间戳时间计算与其他日期时间类型的转换Dur

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

MySQL 存储引擎 MyISAM详解(最新推荐)

《MySQL存储引擎MyISAM详解(最新推荐)》使用MyISAM存储引擎的表占用空间很小,但是由于使用表级锁定,所以限制了读/写操作的性能,通常用于中小型的Web应用和数据仓库配置中的只读或主要... 目录mysql 5.5 之前默认的存储引擎️‍一、MyISAM 存储引擎的特性️‍二、MyISAM 的主