揭秘推荐系统流行度偏差放大:谱视角分析与纠偏策略

研究揭示推荐系统流行度偏差放大的谱视角原因,提出ReSN纠偏方法,提升推荐准确性和公平性。

原文标题:WSDM 2025 | 从谱视角揭开推荐系统流行度偏差放大之谜

原文作者:数据派THU

冷月清谈:

本文深入探讨了推荐系统中流行度偏差放大的问题,研究发现推荐模型的评分矩阵的最大奇异向量与物品流行度向量高度相似,导致流行度信息几乎完全由主特征向量捕获,即“流行度记忆效应”。此外,用户和物品 Embedding 的低秩设定以及优化过程中的维度缩减进一步加剧了流行度偏差,即“流行度放大效应”。

为了解决此问题,研究者提出了一种基于正则项的方法——ReSN,通过在推荐模型的损失函数中引入谱范数正则项,约束评分矩阵的谱的权重(最大奇异值),从而缓解了流行度偏差。实验结果表明,ReSN 在多个真实数据集上均优于其他方法,在推荐准确性和纠偏性方面表现突出。

本研究不仅揭示了推荐系统流行度偏差放大的深层原因,还提供了高效的纠偏策略,为推荐系统的优化提供了重要思路和有效的解决方案。

怜星夜思:

1、文章提到推荐系统存在“信息茧房”问题,过度推荐热门物品,那么除了流行度偏差,推荐系统还可能存在哪些其他类型的偏差,这些偏差又会带来什么负面影响?
2、ReSN方法通过正则化谱范数来抑制流行度偏差,文章中提到计算谱范数面临计算资源和时间成本高的挑战,那么除了文中的简化方法,还有没有其他降低计算复杂度的思路?
3、文章中提到ReSN是一种直接在训练中去偏的方法,那么除了这种方法,还有哪些常见的推荐系统纠偏策略?它们的优缺点是什么?

原文内容

本文共1800字,建议阅读9分钟

我们的研究不仅揭示了推荐系统流行度偏差放大的深层原因,还提出了高效的纠偏策略,为推荐系统的优化提供了重要思路和有效解决方案。


©PaperWeekly 原创 · 作者 | 林思仪

单位 | 浙江大学

研究方向 | 推荐系统


INTRO(太长不看版)


本文揭示了推荐系统流行度偏差放大的原因,我们发现: 


1. 流行度存储效应:推荐模型的评分矩阵的最大奇异向量(第一主成分)与物品的流行度向量高度相似,流行度信息几乎完全由主特征向量所捕获。 


2. 流行度放大效应:维度缩减现象加剧了流行度偏差的“放大效应”,主要源于推荐模型中用户和物品 Embedding 的低秩设定以及优化过程中的维度缩减。 


为了解决这个问题,我们提出了一种基于正则项的方法——ReSN,通过在推荐模型的损失函数中引入谱范数正则项,约束评分矩阵的谱的权重(最大奇异值),从而缓解流行度偏差。



论文题目:

How Do Recommendation Models Amplify Popularity Bias? An Analysis from the Spectral Perspective


论文地址:

https://arxiv.org/abs/2404.12008


一、研究动机


推荐系统是基于用户的历史行为数据进行个性化推荐的核心技术。但你知道吗?推荐系统往往“偏爱”热门内容! 


比如,在 Douban 数据集中,前 0.6% 热门物品占模型推荐物品的超过 63%,前 20% 的热门物品占了推荐列表的 99.7%!这导致冷门物品几乎无缘被推荐,用户陷入“信息茧房”,无法发现更多新鲜、有趣的内容。



这要从数据的长尾分布开始说起,用户行为数据和物品的流行度通常呈现长尾分布,而推荐模型在这样长尾分布的数据上训练学习,不仅会继承这种倾斜的分布,甚至会放大,导致热门物品被过度推荐。


而推荐系统为什么会放大流行度偏差呢?请接着往下看,本文会给你一个答案!


二、核心发现


1. 流行度记忆效应:推荐模型的评分矩阵的最大奇异向量(第一主成分)与物品的流行度向量高度相似,最大奇异向量几乎完全捕获了物品的流行度特性。


实验发现,多个推荐模型的评分矩阵的最大奇异向量(第一主成分)与物品的流行度向量的余弦相似度超过 98%!



我们也从理论证明了以上现象,感兴趣的同学们可以看原文。


2. 流行度放大效应:维度缩减现象加剧了流行度偏差的“放大效应”。


维度缩减现象主要来源于两个方面: 


1. 推荐模型中用户和物品 Embedding 通常设置为低维(低秩),这种低秩设定会放大评分矩阵中最大奇异值的相对重要性,进而加剧流行度偏差;


2. 优化过程中,最大奇异值增长优先且迅速,其他奇异值增长缓慢,导致模型更多依赖最大奇异特征(即流行度特征),从而进一步增强热门物品在推荐列表中的比例。


实验发现当 Embedding 维度减少时,主奇异值的相对重要性显著上升,推荐结果中热门物品的比例也随之增加。


实验还发现训练过程中的奇异值分布动态:早期主奇异值快速增长,这与热门物品的优先推荐趋势一致。随着训练继续,尾部奇异值增长滞后,流行度偏差仍保持较高水平。



我们也从理论角度建立了奇异值分布与推荐中热门物品比例之间的关系,感兴趣的同学们可以看原文。


三、新方法:基于约束谱范数的纠偏方法ReSN


我们的解决方法——ReSN (Regulating with Spectral Norm),核心是通过正则化谱范数(主奇异值)来抑制流行度偏差,优化目标函数如下所示:

Image


其中,  代表原始推荐损失,  表示矩阵的谱范数(用于衡量主奇异值),  则是用于控制正则化项权重的参数。

然而,在实际计算过程中,面临着诸多严峻挑战。一方面,预测分数矩阵   通常具有庞大的规模(n×m 维),这使得直接计算其谱范数所需的计算资源和时间成本极高,几乎难以实现。另一方面,传统计算谱范数梯度的方法大多是迭代式的,这无疑进一步加重了计算开销,导致模型训练效率极为低下。

改进策略

简化谱范数计算:利用主奇异向量与物品流行度向量之间的对齐关系,将复杂的矩阵谱范数计算转化为相对简单的向量 L2 范数计算。

挖掘矩阵   低秩特性:通过约束矩阵   的(其中   和   分别表示用户和物品的嵌入矩阵)谱范数来避免直接处理庞大的矩阵,从而提高计算效率。
优化后的损失函数为:


ReSN 方法不依赖后处理,直接在训练中去偏,从源头解决问题。


高效轻量,避免了庞大矩阵的直接计算,训练效率高!


四、实验亮点



在七个真实数据集上的实验验证中,ReSN 全面优于其他方法。

主性能实验:ReSN 在推荐整体准确性和纠偏性两方面都表现突出。


帕累托曲线:深入探究准确性-公平性之间的权衡。


五、总结

我们的研究不仅揭示了推荐系统流行度偏差放大的深层原因,还提出了高效的纠偏策略,为推荐系统的优化提供了重要思路和有效解决方案。感兴趣的同学可以移步论文细读。

编辑:黄继彦



关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军。




新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU

文章说的是流行度偏差,这会导致长尾的冷门物品几乎没机会被推荐,用户可能会错过很多个性化的、但现在不热门的内容。其他偏差比如:

* 同质性偏差:推荐的内容过于相似,缺乏多样性,用户可能会觉得无聊。
* 协同过滤偏差:如果用户A和B的历史行为相似,系统会给A推荐B喜欢的东西,反之亦然,这个策略本身没问题,但如果A、B本身就处于同一个圈子里,可能会加剧圈层效应。
* 曝光偏差:之前被推荐过的东西更容易被再次推荐,没被推荐过的就更没机会了,马太效应。

这些偏差都会让推荐结果不够个性化,最终降低用户满意度,甚至可能导致用户流失。

我从一个更宏观的角度来谈这个问题。纠偏策略的选择,实际上反映了我们对推荐系统目标的不同理解。

如果我们认为推荐系统的目标是最大化用户的短期满意度,那么我们可能会更倾向于推荐热门物品,因为它们更容易获得用户的点击和购买。但如果我们认为推荐系统的目标是最大化用户的长期价值,那么我们可能会更倾向于推荐一些冷门但高质量的物品,帮助用户发现新的兴趣和需求。

不同的目标会影响我们对偏差的容忍程度,以及我们选择的纠偏策略。因此,在设计推荐系统时,我们需要首先明确我们的目标,然后才能选择合适的纠偏策略。

推荐系统可能存在的偏差还是挺多的,我补充几个楼上的观点:

* 位置偏差:用户通常更关注搜索结果或推荐列表的顶部,这可能导致排名靠前的物品获得更多的曝光,而与物品本身质量无关。
* 选择偏差/反馈循环偏差:用户只能对他们看到的物品进行互动,而推荐系统会根据这些反馈进行调整,这可能导致系统只关注于已经流行的或已经被推荐的物品。
* 社会经济偏差:推荐系统可能会无意中加剧社会经济差距,例如,如果某个地区的居民主要使用低端设备,推荐系统可能会更多地推荐适合这些设备的低质量内容。

这些偏差会限制用户的选择范围,损害用户体验,甚至可能对社会公平产生负面影响。我觉得还是应该尽可能地利用一些技术手段来缓解这些问题,比如在推荐的目标函数中加入一些与公平性相关的约束项。

谢邀,人在图书馆,刚下飞船。

我来从一个更抽象的角度谈谈这个问题。所有的推荐系统,本质上都是在构建一个用户和物品之间的匹配模型。既然是模型,就不可避免地会有偏差。这种偏差可能来自于数据本身(比如长尾分布),也可能来自于模型的假设(比如低秩假设)。

更进一步说,推荐系统也是一种“价值判断”。它会告诉用户,什么是有价值的,什么是值得关注的。如果我们不加干预,这种价值判断很可能会放大现有的社会偏见,导致“强者恒强,弱者恒弱”的局面。所以,推荐系统的设计者需要有意识地去纠正这些偏差,追求更加公平、多元的推荐结果。

那可太多了,我说几个常见的:

1. 后处理方法:在推荐结果生成之后,对结果进行调整,比如重新排序,降低热门物品的排名。优点是简单易用,不影响模型的训练过程;缺点是效果可能有限,而且可能会牺牲一定的准确性。
2. 重采样方法:在训练数据中,对冷门物品进行过采样,增加它们在训练过程中的权重。优点是可以直接在数据层面解决问题;缺点是可能会引入额外的偏差,而且需要仔细调整采样比例。
3. 集成学习方法:训练多个不同的推荐模型,每个模型关注不同的方面,然后将它们的推荐结果进行集成。优点是可以综合利用不同模型的优势;缺点是增加了模型的复杂性,需要更多的计算资源。

具体用哪个策略,还是得结合实际情况来选择。

这个思路可以有很多啊,我提供几个方向:

1. 采样方法:没必要每次都计算完整的矩阵谱范数,可以随机抽取一部分样本进行计算,降低计算量。
2. 分布式计算:把计算任务分发到多个节点上并行处理,提高计算效率。
3. 近似算法:使用一些近似算法来估计谱范数,虽然精度可能会有所损失,但可以大幅降低计算复杂度。
4. 增量更新:当数据发生变化时,没必要重新计算所有的谱范数,可以只更新发生变化的部分。

具体用哪个方法,还得看实际的应用场景和数据规模。

提供一个偏工程的思路:

可以考虑使用GPU加速计算。谱范数的计算涉及到大量的矩阵运算,而GPU在处理这类运算时具有天然的优势。通过将计算任务转移到GPU上,可以显著提高计算速度。现在很多深度学习框架(如TensorFlow、PyTorch)都提供了GPU加速的支持,可以很方便地实现这一点。

另外,还可以尝试使用一些专门用于矩阵计算的库,比如cuBLAS、cuSPARSE等,这些库对底层的矩阵运算进行了高度优化,可以进一步提高计算效率。

我来补充一下,从优化目标上来说,还可以考虑以下策略:

* 基于排序的损失函数:传统的推荐模型通常使用点预测的损失函数(比如均方误差),可以考虑使用基于排序的损失函数(比如BPR、RankNet),这些损失函数更关注物品之间的相对顺序,而不是绝对分数,从而可以缓解流行度偏差。
* 引入公平性约束:在优化目标中加入与公平性相关的约束项,比如确保每个物品都有相似的曝光机会,或者确保不同用户群体之间的推荐质量差异不大。这种方法需要在准确性和公平性之间进行权衡。

总的来说,纠偏策略的选择是一个trade-off,需要在不同的指标之间进行权衡。

谱范数的计算确实是个麻烦事。除了文章里提到的方法和楼上说的,我再补充一个:

* 利用谱方法的性质:谱方法在某些特定类型的矩阵(例如稀疏矩阵或Toeplitz矩阵)上具有高效的计算方法。如果推荐矩阵具有这些特性,可以考虑利用这些方法来加速谱范数的计算。

但总的来说,降低计算复杂度的关键在于找到谱范数和其他易于计算的量之间的关系,并利用这些关系进行近似计算。