推荐系统是能够根据用户的行为、偏好或历史交互向其推荐项目的工具。它们帮助用户在无需手动搜索的情况下找到相关的产品、电影、歌曲或内容。此类系统广泛应用于 YouTube、Amazon 和 Netflix 等平台。
- 自动推荐项目
- 利用用户行为和模式
- 改善内容发现体验
- 常见于电子商务和娱乐应用程序
!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20250616170546348289/Recommender-Systems.webp">Recommender-Systems推荐系统
推荐系统的类型
让我们来看看几种不同的类型:
1. 基于内容的过滤: 基于内容的过滤通过分析项目特征和用户偏好档案,向用户推荐与其过去喜欢的项目相似的项目。
- 当用户拥有强烈且一致的偏好时非常有用。
- 常见于推荐同一类型或风格电影的电影应用中。
- 优势:无需其他用户的数据即可实现个性化。
- 局限:缺乏新颖性,因为它仅关注相似的项目。
2. 协同过滤: 协同过滤识别用户行为中的相似性,并基于从众多用户中得出的模式来推荐项目。
- 适用于包含大量用户交互的数据集。
- 应用于 Amazon 的“购买了此商品的用户也购买了”以及 Netflix 的推荐功能中。
- 优势:能够发现用户过往历史记录之外的新项目。
- 局限:面对新项目或新用户时存在冷启动问题。
3. 混合推荐系统: 混合系统结合了协同过滤和基于内容的方法,以提供更准确、更稳健的推荐。
- 适用于用户行为和项目特征都能提供价值的场景。
- 见于 Netflix 等结合了元数据和观看模式的平台。
- 优势:减少了单一方法的弱点,整体性能更好。
- 局限:复杂度增加,计算成本更高。
4. 基于知识的推荐系统: 基于知识的系统利用显式的领域知识和用户需求,而不是历史行为来推荐项目。
- 非常适合房地产或金融产品等高投入领域。
- 常见于旅行规划应用或贷款产品匹配工具。
- 优势:不需要过去的交互数据。
- 局限:构建特定领域的规则需要耗费精力。
5. 上下文感知推荐系统: 这些系统利用时间、地点、设备或情绪等上下文信息来进行个性化推荐。
- 在移动和基于位置的应用中非常有效。
- 例如根据一天中的时间或位置推荐餐厅。
- 优势:通过情境感知提供更高的相关性。
- 局限:捕获和处理上下文数据的复杂性较高。
工作原理
让我们看看推荐系统是如何工作的,
- 数据收集: 收集评分、点击、观看、购买、搜索以及项目元数据。
- 数据预处理: 清洗数据,处理缺失值,并准备用户-项目矩阵。
- 特征工程: 将用户和项目特征转化为有意义的向量。
- 模型训练 / 相似度计算: 使用协同过滤、基于内容的模型或深度学习等算法。
- 预测: 基于学习到的模式为未见过的项目生成相关性得分。
- 排序与推荐: 按预测的相关性对项目进行排序,并推荐排名靠前的项目。
- 反馈循环: 随着新的用户交互产生,持续更新模型。
实现方式
让我们通过一个电影推荐系统的示例来看看推荐系统是如何工作的,
> 使用的示例数据集可以从这里下载。
步骤 1:加载并检查数据集
我们将加载并检查数据集,
Python
CODEBLOCK_432fbd35
输出结果:
!Screenshot-2025-12-08-111954输出结果
步骤 2:构建用户-项目评分矩阵
- 将原始数据转换为协同过滤所需的矩阵。
- 缺失值(未评分)将被替换为零。
Python
CODEBLOCK_166853f4
输出结果:
!Screenshot-2025-12-08-111924输出结果