您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

手把手教你解决推荐系统中的位置偏差问题

时间:2024-03-11 11:39:49  来源:51CTO  作者:

作者 | 汪昊

审校 | 重楼

推荐系统最早的算法是1992 年发明的协同过滤。自协同过滤算法诞生之日起,人们便与推荐系统中的各种不公平现象作斗争。虽然推荐系统中的不公平现象广泛存在,并且严重影响了推荐系统的生态健康发展,这些现象真正引起人们关注却要等到2017年之后。2017 年,在人类的人工智能发展历程中有个里程碑事件,就是国际学术会议 FacCT 的创建。这个会议专门针对人工智能伦理,可以说把人工智能中的道德问题,包括推荐系统中的不公平性问题,暴露给了全世界的研究者。

那么问题来了,什么是推荐系统的不公平性?推荐系统作为一种算法,主要为用户推荐它可能感兴趣的物品。该算法会出现过度推销热门产品、在推荐列表顶部推荐的物品过热等等一系列不公平问题。其中在推荐列表顶部推荐的物品过热的问题,被称为位置偏差问题(Position Bias Problem),引起了学者的广泛关注。

我们利用正则化的方式来处理位置偏差问题。首先,我们把矩阵分解算法作为原生算法。矩阵分解算法的损失函数定义如下:

矩阵分解的本质就是利用降维手段修复原始矩阵中的缺失值。在损失函数的定义里,R 就是原始矩阵中已知的评分数据,U 是用户特征向量,而 V 是物品特征向量。在实际的使用过程中,损失函数需要进行处理才能使用。处理之后的损失函数如下:

经过处理之后,算法可以避免数据出现异常值。我们可以从另外一个角度去看这个问题,我们可以认为其实矩阵分解是保角降维运算(Angle-preserving Dimensionality Reduction)。而 U 和 V 就是从高维空间降维处理过之后的向量空间。

我们假设在推荐系统中,系统给每个用户都推荐了一个物品列表。这个物品列表中所有的物品都被排列上了。因此,最差的曝光情况就是一个物品被排在了列表最低端。所以,我们可以利用这一点,设计出一个正则化项,用来惩罚损失函数 L :

其中position 是物品在推荐列表中的位置,而 m 是所有物品的数量。因为推荐列表中存在幂律效应,也就是越热门的物品越容易出现在列表的上方,而这类物品用户评分往往很高。因此我们把损失函数 L 修正成如下的形式:

下面我们用随机梯度下降方法来对损失函数 L 进行求解,得到了如下公式:

以及:

以上就是整个算法的流程。该算法由Ratidar Technologies LLC (北京达评奇智网络科技有限责任公司) 发表于国际学术会议CE.NET 2023。论文标题为Mitigating Position Bias with

Regularization for Recommender Systems。论文可以在arXiv.org 上进行下载:https://arxiv.org/ftp/arxiv/papers/2401/2401.16427.pdf 。

下面我们讨论一下该算法在不同的数据集合上的表现:作者采用了两个不同的数据集合进行算法测评:MovieLens 1 Million Dataset (6040 名用户,3706 部电影) 和LDOS-CoMoDa Dataset (121 名用户,1232 部电影)。算法测试结果如下面6张图所示:

图1 至图 3 分别是该算法和另外几种算法在MovieLens 数据集上的测评效果,可以看到,不管是在准确率(测评指标为 Mean Absolute Error),热度偏差指标还是位置偏差指标的测评上,该算法均表现优异。

图4 到图6 展示的是算法在 LDOS-CoMoDal 数据集合上的表现。与上一组数据相似,该算法的性能表现出众,能够很好的解决位置偏差问题。

推荐系统中的不公平现象由来已久,随着近些年来人们对于推荐系统的关注度不断地提升。推荐系统公平性问题也引起了越来越多人的关注。推荐系统中关注最多的不公平性问题其实是流行度偏差(Popularity Bias)。早在2017 年,Alex Beutel 等人就提出了 Focused Learning, 用于解决该问题。

后期大多数跟进工作主要采用正则化项的方式进行。2020 年,国际学术会议 ICBDT 2020 的最佳论文报告奖MatRec 另辟蹊径,利用了类似SVDFeature 的方式将用户和物品排名作为变量,嵌入到矩阵分解算法中,取得了不俗的成绩。本文所介绍的算法,沿用了传统的正则化项的思路,利用了推荐系统中的幂律现象,成功对推荐系统中的位置偏差进行建模,较为令人满意的解决了该问题。

随着商品化大潮愈演愈烈,以及最近几年的全球经济不景气。越来越多的企业主开始关注自己的短期利益,而忽略所谓人工智能伦理等短期收益似乎不如传统方法,但是长期收益却能使公司建立起完善的生态体系和卓越的品牌效应的技术方向。如果我们不解决推荐系统的马太效应,我们会发现推荐系统的生态会变差:比如在游戏中,我们给用户推荐玩家联盟。最有效的方式其实可能是推荐人数最多的前3 个联盟,但如果我们为了追求点击率就这么做,毫无疑问会把剩下的联盟全部搞死,整个产品的生态也就完了。所以有的时候,我们就算是牺牲了由点击率提升带来的经济效益,也应该把产品的口碑和生态搞好。而本文介绍的算法,就提供了这样一种思路。

作者简介

汪昊,前 Funplus 人工智能实验室负责人。曾在 ThoughtWorks、豆瓣、百度、新浪等公司担任技术和技术高管职务。担任过创业公司CTO 和技术VP。在互联网公司金融科技、游戏等公司任职 13 年,对于人工智能、计算机图形学和区块链等领域有着深刻的见解和丰富的经验。在国际学术会议和期刊发表论文 42 篇,获得IEEE SMI 2008 最佳论文奖、ICBDT 2020 / IEEE ICISCAE 2021 / AIBT 2023 / ICSIM 2024最佳论文报告奖。



Tags:推荐系统   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
手把手教你解决推荐系统中的位置偏差问题
作者 | 汪昊审校 | 重楼推荐系统最早的算法是1992 年发明的协同过滤。自协同过滤算法诞生之日起,人们便与推荐系统中的各种不公平现象作斗争。虽然推荐系统中的不公平现象广...【详细内容】
2024-03-11  Search: 推荐系统  点击:(14)  评论:(0)  加入收藏
面向推荐系统的深度强化学习算法研究与应用
随着互联网的快速发展,推荐系统在各个领域中扮演着重要的角色。传统的推荐算法在面对大规模、复杂的数据时存在一定的局限性。为了解决这一问题,深度强化学习算法应运而生。本...【详细内容】
2024-01-04  Search: 推荐系统  点击:(87)  评论:(0)  加入收藏
如何打造一个直播商城开发中个性化推荐系统
在直播商城开发中,个性化推荐系统是一个非常重要的工具。通过了解用户行为和兴趣,直播商城可以向他们提供更加精准和符合他们需要的商品推荐。本文将为您介绍如何打造一个高效...【详细内容】
2023-05-04  Search: 推荐系统  点击:(130)  评论:(0)  加入收藏
微信基于 PyTorch 的大规模推荐系统训练实践
本文将介绍微信基于 PyTorch 进行的大规模推荐系统训练。推荐系统和其它一些深度学习领域不同,仍在使用 Tensorflow 作为训练框架,被广大开发者诟病。虽然也有使用 PyTorch 进...【详细内容】
2023-04-04  Search: 推荐系统  点击:(236)  评论:(0)  加入收藏
揭秘短视频推荐系统的技术架构及四大模块
作者:张哲来源:华章科技 01 推荐系统技术架构下面来看下短视频社区平台的推荐系统架构是如何划分的,由底层往上分别是日志信息层、模型策略层、数据计算层、数据结果层与用户交...【详细内容】
2022-08-07  Search: 推荐系统  点击:(640)  评论:(0)  加入收藏
从算法到工程,推荐系统全面总结
最近读了本好书-《深度学习推荐系统》,读完不觉全身通畅,于是就有了写这篇文章的想法,把自己的理解和总结分享给大家。 本文将按照从算法到工程的顺序,先介绍一下推荐系统整体...【详细内容】
2022-07-05  Search: 推荐系统  点击:(258)  评论:(0)  加入收藏
推荐系统整体架构与算法流程详解
推荐算法的理解如果说互联网的目标就是连接一切,那么推荐系统的作用就是建立更加有效率的连接,推荐系统可以更有效率的连接用户与内容和服务,节约了大量的时间和成本。如果把推...【详细内容】
2022-05-12  Search: 推荐系统  点击:(470)  评论:(0)  加入收藏
5年迭代5次,抖音推荐系统演进历程
2021 年,字节跳动旗下产品总 MAU 已超过 19 亿。在以抖音、今日头条、西瓜视频等为代表的产品业务背景下,强大的推荐系统显得尤为重要。Flink 提供了非常强大的 SQL 模块和有状态计算模块。目前在字节推荐场景,实时简单...【详细内容】
2021-10-25  Search: 推荐系统  点击:(345)  评论:(0)  加入收藏
推荐一个国人开源的推荐系统
今天,要和大家推荐一个Go 编写的开源推荐系统——Gorse。 Gorse 旨在成为一个通用的开源推荐系统,可以快速引入各种在线服务。通过将商品、用户和交互数据导入 Gors...【详细内容】
2021-08-02  Search: 推荐系统  点击:(806)  评论:(0)  加入收藏
推荐系统概述和主流模型介绍
Hello,大家好,欢迎来到“自由技艺”的知识小馆,今天我们来聊一聊推荐算法。在广告、电商、信息流分发等业务场景中,推荐算法发挥着至关重要的作用,好的推荐算法能够把用户牢牢抓...【详细内容】
2021-06-08  Search: 推荐系统  点击:(392)  评论:(0)  加入收藏
▌简易百科推荐
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(5)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(12)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(8)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(10)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(8)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
Kubernetes 究竟有没有 LTS?
从一个有趣的问题引出很多人都在关注的 Kubernetes LTS 的问题。有趣的问题2019 年,一个名为 apiserver LoopbackClient Server cert expired after 1 year[1] 的 issue 中提...【详细内容】
2024-03-15  云原生散修  微信公众号  Tags:Kubernetes   点击:(5)  评论:(0)  加入收藏
站内最新
站内热门
站内头条