协同过滤系统(Collaborative Filtering, CF)是一种推荐系统方法,它不依赖物品的内容特征,而是利用用户和物品之间的交互数据(如评分、点击、购买记录)来发现相似性并进行推荐。
1. 核心思想
“志同道合的人喜欢相似的东西。”
- 如果用户 A 和用户 B 的兴趣很相似,那么 A 喜欢的物品,B 也可能喜欢。
- 如果物品 X 和物品 Y 被很多相同用户喜欢,那么喜欢 X 的人也可能喜欢 Y。
2. 两大类型
(1) 基于用户的协同过滤(User-Based CF)
找到与目标用户兴趣相似的其他用户(邻居),推荐他们喜欢的物品。
例子:
- 你喜欢电影 A、B,有另一个用户也喜欢 A、B,而且他还喜欢 C → 推荐 C 给你。
(2) 基于物品的协同过滤(Item-Based CF)
找到与目标物品相似的其他物品,推荐这些物品给用户。
例子:
- 很多人看了电影 A 后还看了电影 B → 如果你看了 A,就推荐 B。
3. 优点
- 不需要物品内容信息(可以处理多媒体、文本等无法直接比较的内容)。
- 只依赖用户行为数据,容易实现。
- 可以发现意料之外的推荐(serendipity)。
4. 缺点
- 冷启动问题:新用户/新物品没有足够的交互数据时很难推荐。
- 稀疏性问题:用户-物品矩阵很稀疏时,找到相似用户/物品的难度大。
- 无法直接利用上下文信息(时间、地点等)。
5. 在工业界的变体
- 矩阵分解(Matrix Factorization):如 SVD、ALS,把用户和物品映射到同一个向量空间。
- 深度学习 CF:用 MLP、Embedding 代替传统相似度计算(比如 YouTube 双塔模型就是一种协同过滤思想的深度实现)。
📌 一句话总结
协同过滤就是用“人和人之间的兴趣相似度”或“物品和物品之间的相似度”来做推荐,它是现代深度推荐系统的理论基础之一。

![[算法]协同过滤系统](/images/banner7.webp)

说些什么吧!