技术细分|推荐系统——推荐系统中的偏差

news2024/11/17 3:29:52

一、背景

推荐系统中大量使用用户行为数据,作为系统学习的标签或者说信号。但用户行为数据天生存在各式各样的偏差(bias),如果直接作为信号的话,学习出的模型参数不能准确表征用户在推荐系统中的真实行为意图,造成推荐效果的下降。


因此,本篇聊一聊推荐系统中常见的偏差,与相应的去偏思路与方法。

Bias and Debias in Recommender System: A Survey and Future Directions

二、推荐的反馈闭环

推荐系统是由用户、数据、模型,三者互相作用产生的一个动态的反馈闭环。闭环分为三个阶段:

  • User -> Data

    • 用户会产生大量的 user-item(对抖音是用户-视频、对头条是用户-文章)交互数据,以及各类周边信息包括 user 特征、item 属性、交互上下文信息等。其中 user-item 交互数据中 user 集合被表示成 U={u1,...,un} ,item 集合被表示成 I={i1,...,im}
    • user 与 item 两者间互相作用形成反馈矩阵(feedback matrix),类型分为两种:
      • 隐式反馈:表示为 X=R^{n×m},矩阵中元素x_{u,i} 是二值化 0、1 取值表示 user u 是否发生与 item i 的交互行为(bool 类型,例如购买、点击、查看等行为)
      • 显式反馈:表示为 R=R^{n×m},矩阵中元素 r_{u,i} 是 user u 对 item i 的评分(float 类型,例如豆瓣评分
  • Data -> Model

    • 根据历史观测数据,训练模型预测 user 是否采纳 item 的程度。
  • Model -> User

    • 模型返回预测推荐结果给到用户,进一步影响用户的未来行为和决策。

三个阶段不断循环,在闭环中逐渐加剧各阶段的 bias,会造成更严重的问题。

三、常见偏差

3.1 数据偏差

1.显式反馈数据 - Selection Bias

定义:当用户可以自由选择 item 进行评分,可观测到的评分并不是所有评分的有代表性样本。换而言之,评分数据是“非随机缺失”(missing not at random, MNAR)的

这个偏差的来源比较好理解,我们也可以想想自己是不是也是这样: 倾向于评分喜爱的 item(例如,热衷粉丝的电影、歌曲等) ,倾向于评分特别好或者特别差的 item(例如,去看电影很想夸好片,很想喷烂片)

2. 显式反馈数据 - Conformity Bias

定义:用户评分倾向于与其他人相似,即使是完全基于他们自己的判断,也会受到影响

这个偏差是由从众心理导致的。对于大众一致喜欢/讨厌的 item,个体用户做判断时经常会受到外界声音的影响

3. 隐式反馈数据 - Exposure Bias

定义:仅有一部分特定 item 曝光给了用户,因此没有观测到的交互行为并不直接等同于是训练中的负例

可以想一想,对于没有产生交互行为(没有点击、购买等行为)的数据样本而言,其实是由 2 个原因造成:

  1. 用户的确不喜欢当前 item;
  2. 当前 item 没有曝光给用户(对于从没刷到过的视频,我们无法确定自己是否喜欢)

对于数据曝光问题,之前的研究有几个角度:

  1. 当前版本的曝光取决于上一个推荐系统版本的策略,决定了如何展现;
  2. 因为用户会主动搜索或寻找感兴趣的 item,因此用户选择成为了影响曝光的因素,使得高度相关/吸引力(例如标题党、美女图片类新闻)的 item 更容易被曝光;
  3. 用户的背景关系是影响曝光的一个因素,例如好友、社区、地理位置等因素会影响曝光;
  4. 流行的 item 会更容易曝光给用户,因此 Popularity Bias 是另一种形式 Exposure Bias

4. 隐式反馈数据 - Position Bias

定义:用户倾向于无视相关性地去对推荐列表中更高位置上的 item 产生交互行为

位置偏差在搜索系统中是一个经典并持续存在的偏差,同样在推荐系统中也会存在,用户普遍会对于头部观测到的 item 产生更多点击(还没有产生审美疲劳?)。尤其会对“用户点击行为”作为正例信号进行学习的模型,位置偏差会在训练、评估阶段产生错误影响

3.2 模型偏差

5. Inductive Bias

偏差不一定总是有害的,实际上一些归纳偏差被故意加入到模型设计中为了实现某些特性

定义:为了模型更好地学习目标函数并且泛化到训练数据上,会设置一些模型假设。假设未必都是准确的,会产生一些偏差

列举某些经典的假设(未必造成有害影响):
  1. 用户交互行为可以由向量内积表示(paper)
  2. Adaptive negative sampler 提出用于增加学习速度,即使结果损失函数不同于最初分布
  3. CNN 网络的局部特征重要性

3.3 推荐结果的偏差与不公平性

6. Popularity Bias

定义:流行的 item 会被更频繁地推荐、产生用户交互

长尾效应或者说二八定律带来了这个偏差,会降低个性化层次、用户对于平台的惊喜体验,造成马太效应

7. Unfairness

定义:整个系统不公平歧视某些群体用户

这个偏差的本质原因是数据的不平衡性,会带来社会性问题(年龄、性别、种族、社交关系多少等歧视)。不公平的数据,会造成更不公平的用户体验,产生恶循环

不公平性更多是由于系统数据分布不平衡造成的,例如某个基本由中老年用户组成的 app 较难对于年轻用户的行为进行建模,系统推荐出的视频会更倾向于有“年代感”

3.4 反馈闭环加剧各类偏差

User->Data->Model->User 的不断循环,会在已有偏差的基础上,进一步放大偏差

这篇文章简单介绍了一些推荐系统中常见的偏差 bias,并进行了一些简单的分类。这里的分类体系并非绝对合理但却具有一定代表性。后续文章中,会讨论如何解决这些偏差的常见方法与套路,会涉及更多的公式与计算方法。

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

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

相关文章

知虾:揭秘Shopee大数据采集及分析平台的全方位运营利器

Shopee是如今备受瞩目的电商平台之一,而要在这个竞争激烈的市场中脱颖而出,了解市场趋势、选择畅销商品、分析竞争对手等是至关重要的。这就是为什么Shopee推出了知虾,一个强大的大数据采集及分析平台。本文将详细介绍知虾的功能和优势&#…

如何解决跨国访问Microsoft 365网络卡顿问题?

作为主流的协调办公工具,Microsoft 365(旧称Office 365)是众多企业每天必须访问的应用,但由于多种原因,许多企业在跨区域访问Microsoft 365服务器时常面临卡顿、掉线等问题,对工作效率产生严重影响。 对此,连官方也专门…

python爬虫中 HTTP 到 HTTPS 的自动转换

前言 在当今互联网世界中,随着网络安全的重要性日益增加,越来越多的网站采用了 HTTPS 协议来保护用户数据的安全。然而,许多网站仍然支持 HTTP 协议,这就给我们的网络爬虫项目带来了一些挑战。为了应对这种情况,我们需…

双12电视盒子什么牌子好?数码小编力荐目前最强的电视盒子

最近想买电视盒子的网友非常多,小编收到了很多关于电视盒子方面的咨询,因此我特意整理了今年测评过的电视盒子,总结了五款目前最强的电视盒子,想知道双十二买电视盒子什么牌子好就赶紧收藏起来吧。 推荐一:泰捷WEBOX新…

【数据结构】深入浅出理解链表中二级指针的应用

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 (注:为方便演示本篇使用的x86系统,因此指针的大小为4个字节) 目录 📌形参的改变不影响实参! 1.调用函数更改整型时传值调用与传址调用的区别 🎏传值…

指令流信息记录

刚开始看指令流信息,还不太熟悉各个指令流表示的含义,这里做个记录 下面是用perf对一个简单的编译后的C程序进行的追踪结果 主体信息 上面都是16进制信息,先不用管 可以观察到每条指令流都由四部分组成,以分号作为分割(注意中间第三部分的时候他有冒号,但是不是分割) 真正追踪…

几款Java源码扫描工具(FindBugs、PMD、SonarQube、Fortify、WebInspect)

说明 有几个常用的Java源码扫描工具可以帮助您进行源代码分析和检查。以下是其中一些工具: FindBugs:FindBugs是一个静态分析工具,用于查找Java代码中的潜在缺陷和错误。它可以检测出空指针引用、资源未关闭、不良的代码实践等问题。FindBu…

Myatis 系列之 一对多、多对一 及 ResultMap的使用

我 | 在这里 🕵️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 🏠 工作 | 广州 ⭐ Java 全栈开发(软件工程师) 🎃 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 🏷️ 标签 | 男 自律狂人 目标明确 责任心强 ✈️公…

2015年2月4日 Go生态洞察:Go语言中的包命名艺术

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

使用 css 实现文字单行居右, 换行居左展示

给外层盒子设置居右展示, 子盒子设置居左。 原理是,如果子盒子没有换行,那么子盒子的长度就是内容的长度,它根本没有空间将字体移动居左,父盒子的居左样式就会生效,子盒子就会居左展示。 当子盒子里面的文字换行了&…

DLL劫持漏洞

以下是自己学习时做的一些笔记,希望对各位有所帮助 DLL劫持漏洞 为什么程序中会有dll的存在 对于 Windows 操作系统,操作系统的大部分功能都由 DLL 提供。 另外,当您在这些 Windows 操作系统之一上运行某一程序时,该程序的很多…

UEC++ day8

伤害系统 给敌人创建血条 首先添加一个UI界面用来显示敌人血条设置背景图像为黑色半透明 填充颜色 给敌人类添加两种状态表示血量与最大血量,添加一个UWidegtComponet组件与UProgressBar组件 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category "Enemy …

怎样通过代理ip提高上网速度

在当今互联网高度发达的时代,我们经常需要使用代理IP来隐藏自己的真实IP地址或提高网络连接速度。然而,有些用户可能会遇到代理IP无法提高网络速度的情况。那么,如何通过代理IP提高上网速度呢?以下是几个技巧: 1.选择…

oracle数据库巡检常见脚本-系列三

简介 作为数据库管理员(DBA),定期进行数据库的日常巡检是非常重要的。以下是一些原因: 保证系统的稳定性:通过定期巡检,DBA可以发现并及时解决可能导致系统不稳定的问题,如性能瓶颈、资源利用率…

G320E是一种低荣声、固定频率的电荷泵型DC/DC转换器

G320E 低噪声电荷泵DC/DC转换器 产品概述: G320E是一种低荣声、固定频率的电荷泵型DC/DC转换器,在输入电压范围在2.7V到5.0V的情况下,该器件可以产生5V的输出电压,最大输出电流达到300mA.G320E外部元件少,非常适合于…

LangChain 7 文本模型TextLangChain和聊天模型ChatLangChain

LangChain系列文章 LangChain 实现给动物取名字,LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索I…

虚拟机解决Linux中Uos和Deepin登录密码忘记的问题 标题Linux Uos Deepin

Uos是切换网络模式解决的(之前有绑定过用户) 因为之前用的是桥接模式登录的时候一直无法联网,改为Nat模式后可以和电脑共用一个网络ip,可以重置密码了,以此解决 ps: 特别说明rw single init/bin/bash 方法和systemd.debug-shell1方法已经失效,不要再做无谓的尝试了Deepin23社区…

人工智能:一种现代的方法 第十四章 概率推理

文章目录 人工智能:一种现代的方法 第十四章 概率推理本章前言14.1 不确定性问题域中的知识表示14.1.1 联合概率分布14.1.2贝叶斯网络 14.2 贝叶斯网络的语义14.2.1表示联合概率分布14.2.2 紧致性14.2.3 节点排序14.2.4 贝叶斯网络中的条件独立关系14.3 条件分布的有…

痤疮分级实验笔记-ResNet

组织数据集 方式1:根据txt文件分类的数据集组织形式(放弃) 你可以使用Python来读取txt文件中的训练集图片信息,并将这些图片从原始文件夹复制到目标文件夹中。 当程序无法找到标签对应的图片或者目标文件夹中已经存在同名图片时…

IT支持团队的绩效指标和最佳实践

一名员工在远程时因笔记本问题寻求IT支持,尽管他们多次尝试排除故障,但由于缺乏专业知识,最终还是无法访问工作所需的应用程序。这时,他们需要一名专业的 IT 技术人员来指导他们,但他们只能等待有人注意到并回应他们的…