什么是协同过滤?

作者

Jacob Murel Ph.D.

Senior Technical Content Creator

Eda Kavlakoglu

Business Development + Partnerships

IBM Research

什么是协同过滤?

协同过滤是一种推荐系统。它根据相似行为对用户进行分组,并根据群组特征推荐新物品。

协同过滤是一种信息检索方法,它根据具有相似偏好和行为的其他用户与该物品的交互方式来向用户推荐该物品。换句话说,协同过滤算法根据行为对用户进行分组,并使用一般群组特征向目标用户推荐物品。协同推荐系统的运作原则是行为相似的用户具有相似的兴趣和品味。1

协同过滤与基于内容的过滤

协同过滤是两种主要推荐系统类型之一,另一种是基于内容的推荐系统。后一种方法利用商品特征,推荐那些与某个用户过去积极互动过的商品相似的商品。2协同过滤侧重于根据用户相似性来推荐商品,而基于内容的过滤则仅根据商品配置文件的特征来推荐商品。基于内容的过滤针对某个特定用户的偏好进行推荐,而不是像协同过滤那样针对某个群体或类型进行推荐。

近年来,从亚马逊等电子商务、社交媒体到流媒体服务,这两种方法在现实世界中得到了广泛应用。协作式系统和基于内容的系统共同构成了混合推荐系统。事实上,早在 2009 年,Netflix 就在其 Netflix 有奖竞赛中采用了混合推荐系统。

专家为您带来最新的 AI 趋势

获取有关最重要且最有趣的 AI 新闻的精选洞察分析。订阅我们的每周 Think 时事通讯。请参阅 IBM 隐私声明

谢谢!您已订阅。

您的订阅将以英语提供。您会在每份时事通讯中找到一个取消订阅链接。您可以在此处管理您的订阅或取消订阅。有关更多信息,请参阅我们的 IBM 隐私声明

协同过滤的工作原理

协同过滤使用矩阵来为其系统中的每个商品映射用户行为。然后,系统会从此矩阵中提取值以绘制为向量空间中的数据点。接着,各种指标会测量各点之间的距离,以此来计算“用户-用户”和“商品-商品”的相似性。

用户-商品矩阵

在协同过滤的标准设置中,我们有一组n 个 用户和一组x 个 物品。每个用户对每个物品的个人偏好都会显示在用户-物品矩阵(有时称为“用户评分矩阵”)中。在这里,用户以行表示,物品以列表示。在 R ij 矩阵中,给定的值表示用户 u 对物品 i 的行为。这些值可能是用户提供的连续数字(例如评分),也可能是二进制值(表示给定用户是查看还是购买了该物品)。以下是某书店网站的用户时间矩阵示例:

用户-物品矩阵表

该矩阵显示用户对现有不同书籍的评分。协同过滤算法比较用户对每本书的评分。通过根据这些评分识别类似的用户或商品,协同过滤算法可以预测目标用户未见过的书籍的评分(在矩阵中以空值表示),并据此向目标用户推荐(或不推荐)这些书籍。

此处使用的示例矩阵是完整的,因为它仅限于四个用户和四个商品。但是,在实际场景中,已知用户对商品的偏好往往有限,这使得用户-商品矩阵比较稀疏。3

相似性测量方法

协同推荐算法如何确定不同用户之间的相似性?如上所述,向量空间中的邻近性是一种主要方法。但是,用于确定邻近性的特定指标可能会有所不同。余弦相似度和 Pearson 相关系数就是两个此类指标。

余弦相似度

余弦相似度表示两个向量之间角度的测量值。比较向量包含给定用户或商品的评分子集。余弦相似度分数可以是介于 -1 到 1 之间的任何值。余弦分数越高,两个项目就越相似。一些资料推荐在高维特征空间中使用这个指标。在协同过滤中,向量点直接从用户-商品矩阵中提取。余弦相似度由以下公式表示,其中 xy 表示矢量空间中的两个矢量:4

余弦相似度公式图

Pearson 相关系数 (PCC)

PCC 通过计算两个用户或商品各自评分之间的相关性,帮助衡量商品或用户之间的相似度。PCC 介于 -1 到 1 之间,表示负相关和完全相同的相关性。与余弦相似度不同,PCC 使用给定用户或商品的所有评分。例如,在计算两个用户之间的 PCC 时,我们使用以下公式,其中 ab 表示不同的用户,rairbi 表示该用户对项目 i 的评分:5

Pearson 相关系数图

协同过滤推荐系统的类型

协同过滤系统主要有两种:一种基于内存,一种基于模型。

基于内存

基于内存的推荐系统或基于邻居的系统是 k 最近邻分类器的扩展,因为它们试图根据相似用户或一组商品来预测目标用户对给定商品的行为。基于内存的协同过滤系统可以分为两个子类型:

  • 基于用户的过滤根据行为用户的偏好向目标用户推荐商品。协同过滤推荐算法将目标用户过去的行为与其他用户进行比较。具体来说,系统会给每个用户分配一个权重,代表他们与目标用户(也就是目标用户的邻居)的相似度。然后,它会选择权重最高的 n 个用户,并计算出目标用户行为的预测值(例如电影评分、购买、不喜欢等)的加权平均值。然后,系统会根据这一预测向目标用户推荐商品。其原理是,如果目标用户过去的行为与这组用户类似,那么他们在使用未见过的商品时也会有类似的行为。基于用户的相似度函数是在用户-商品矩阵的各行之间计算得出的。6
  • 基于商品的过滤可根据目标用户对类似商品做出的行为来向该用户推荐新商品。但请注意,在比较商品时,协同过滤系统不会比较商品特征(如同基于内容的过滤),而是比较用户会如何与这些商品进行交互。例如,在电影推荐系统中,此算法可根据每部电影的所有用户评分之间的相关性(针对每个用户的平均评分进行纠正)来识别相似的电影。然后,该系统会根据相关评分向目标用户推荐一部新电影。即,如果目标用户对电影 ab 的评分较高,但没有看过电影 c,而对前两者评分较高的其他用户也对电影 c 给出了较高评分,系统则会向目标用户推荐电影 c。如此一来,基于商品的过滤功能便可通过用户行为来计算商品的相似度。基于商品的相似性函数会在“用户-商品”矩阵的各列之间进行计算。7

基于模型

有时,文献会将基于内存的方法描述为基于实例的学习方法。这指的是基于用户和物品的过滤如何针对特定的用户-物品交互实例做出预测,例如目标用户对未看过的电影的评分。

相比之下,基于模型的协同过滤方法则会创建数据的预测性机器学习模型。该模型使用用户-商品矩阵中的当前值作为训练数据集,并使用结果模型对缺失值进行预测。因此,基于模型的方法使用决策树贝叶斯分类器神经网络等数据科学技术和机器学习算法向用户推荐商品

矩阵分解是一种被广泛讨论的协同过滤方法,且通常被归类为一种潜在因子模型。作为一种潜在因子模型,矩阵分解功能会假设“用户-用户”或“商品-商品”相似性可通过选定数量的特征来确定。例如,可仅使用书籍类型和用户年龄或性别来预测用户的书籍评分。这种低维表示旨在通过从用户反馈数据中提取的少量特征来刻画商品和用户,从而解释例如图书评分等结果。9由于它减少了给定矢量空间的特征数,因此矩阵分解也可用作一种降维方法。10

Mixture of Experts | 12 月 12 日,第 85 集

解码 AI:每周新闻摘要

加入我们世界级的专家小组——工程师、研究人员、产品负责人等将为您甄别 AI 领域的真知灼见,带来最新的 AI 资讯与深度解析。

协同过滤的优缺点

优势

与基于内容的系统相比,协同过滤能更有效地为用户提供新颖的推荐。基于协作的方法是从与目标用户有共同兴趣的用户池中获取推荐。例如,如果一个用户组喜欢与目标用户相同的一组商品,但也喜欢目标用户不知道的另一个商品,因为它与前一组商品没有共同特征,那么协同过滤系统就会向用户推荐这个新商品。协作过滤可以推荐目标用户可能未曾考虑过但仍然吸引其用户类型的商品。11

缺点

冷启动问题可能是协同过滤系统最常被人提及的一项缺点。当新用户(甚至还可能是新商品)进入系统时,便会出现此问题。由于该用户缺少商品交互历史记录,系统便无法评估新用户与现有用户的相似性或关联性。相比之下,基于内容的系统则更擅长处理新商品,虽然此类系统在为新用户提供推荐方面也存在困难。12

数据稀疏是困扰协同过滤的推荐系统的另一主要问题。如前所述,协同过滤推荐系统通常缺少有关系统中大多数商品的用户偏好的数据。因此,系统的大部分特征空间均为空,而此情况便被称为“数据稀疏”。随着数据稀疏的加剧,各矢量点会变得差异很大,因而预测模型在识别解释模式方面会变得不太有效。13 这是矩阵分解以及相关的潜在因子方法(例如奇异值分解)在协同过滤中广为使用的一大原因,因为它可通过减少特征数来缓解数据稀疏问题。为解决此问题而实施的其他方法还可能涉及用户需自行评估并提供有关个人兴趣的信息;而随后,系统可使用这些信息来过滤推荐内容。

最近的研究

过去的研究将推荐作为一个预测或分类问题来处理,而近期的大量协同过滤推荐研究则认为,推荐应被理解为一个连续的决策问题。在这种范式中,强化学习可能更适合解决协同过滤推荐问题。这种方法主张根据用户与项目的互动实时更新推荐;当用户跳过、点击、评分、购买建议的项目时,该模型会根据这些反馈制定最佳策略来推荐新项目。14近期多项研究提出了各种强化学习应用程序来解决可变的长期用户兴趣,这对基于内容的过滤和协作过滤都带来了挑战。15

相关解决方案
IBM watsonx.ai

使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。

了解 watsonx.ai
人工智能 (AI) 解决方案

借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。

深入了解 AI 解决方案
AI 咨询与服务

通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。

深入了解人工智能服务
采取后续步骤

一站式访问跨越 AI 开发生命周期的功能。利用用户友好型界面、工作流并访问行业标准 API 和 SDK,生成功能强大的 AI 解决方案。

深入了解 watsonx.ai 预约实时演示