协同过滤是一种推荐技术,它通过分析用户和物品之间的交互来预测用户偏好。它基于这样的原则:过去意见一致的用户(例如,喜欢相似的电影)将来会再次意见一致,并且具有相似用户交互的物品可以分组。此方法不需要显式的物品特征(如类型或价格),而是依赖于用户行为数据,例如评分、点击或购买。例如,如果用户 A 和用户 B 都对五部动作电影给予了高度评价,则系统可能会向用户 A 推荐用户 B 喜欢的动作电影,即使这些电影的导演或发行年份不同。
有两种主要方法:基于用户和基于物品的过滤。基于用户的方法识别具有相似偏好的用户(邻居),并推荐这些邻居喜欢的物品。例如,如果三个喜欢科幻和喜剧的用户都对“火星救援”给予了高度评价,则系统可能会向第四个具有相似品味的用户推荐它。基于物品的方法侧重于物品的相似性。如果观看“盗梦空间”的用户也观看了“星际穿越”,则系统将这些电影视为相关,并向另一部电影的观看者推荐另一部电影。两种方法通常使用相似度度量,例如 Pearson 相关性或余弦相似度来量化关系。一个关键挑战是处理稀疏数据——当大多数用户与很少的物品交互时,用户-物品矩阵变得稀疏,从而降低了推荐准确性。
为了解决数据稀疏或“冷启动”问题(没有交互历史的新用户/物品)等限制,开发人员通常将协同过滤与其他技术相结合。例如,混合系统可能会将其与基于内容的过滤(使用物品特征,例如文本描述)混合,以引导新物品的推荐。像 Netflix 这样的平台使用这种混合方法,将观看历史(协作数据)与元数据(如类型或演员信息)相结合。此外,隐式反馈(例如,点击、花费的时间)可以补充显式评分,以提高覆盖率。虽然协同过滤可以很好地扩展到大型数据集,但高效的实现通常需要降维(例如,矩阵分解)或邻域修剪,以优化生产系统中的性能。