2.1. 协同过滤¶
协同过滤(Collaborative Filtering)是推荐系统中最基础的技术之一。它的核心思想基于一个朴素的假设:相似的用户会喜欢相似的物品。具体而言,如果两个用户在历史上对很多物品有相似的偏好,那么其中一个用户喜欢的新物品,另一个用户也很可能会喜欢;反之,如果两个物品被很多相同的用户喜欢,那么喜欢其中一个物品的用户也很可能喜欢另一个物品。
这个想法最早在1992年的Tapestry系统 (Goldberg et al., 1992) 中被提出,后来在Amazon、Netflix等公司得到了广泛应用。
协同过滤的工作过程可以简单描述为:首先收集用户的历史行为数据(如评分、点击、购买记录),然后计算用户之间或物品之间的相似度,最后基于这些相似度为用户生成推荐。
根据计算相似度的对象不同,协同过滤可以分为两种基本类型:
基于物品的协同过滤(Item-based CF) (2.1.1节):找到与用户历史喜欢物品相似的其他物品进行推荐。我们从ItemCF开始介绍,主要基于以下考虑:首先,ItemCF在工业界应用更广泛,Amazon早在2003年就将其成功应用于电商推荐;其次,物品数量通常少于用户数量且属性更稳定,相似度矩阵维护成本更低。Swing算法作为ItemCF的改进方法,通过分析用户-物品二部图结构来提升相似度计算的鲁棒性,我们将其作为ItemCF的自然延伸一并介绍。
基于用户的协同过滤(User-based CF) (2.1.2节):找到与目标用户兴趣相似的其他用户,然后推荐这些相似用户喜欢的物品。UserCF作为协同过滤的开山之作,奠定了通过用户相似性进行推荐的基础思路。相比ItemCF,UserCF更擅长发现用户的潜在兴趣和提供新颖性推荐,因为相似用户可能会喜欢目标用户从未接触过的物品类别。然而,UserCF在实际应用中面临更大的挑战:用户兴趣变化快、用户数量庞大导致计算复杂度高、用户行为稀疏性使得相似度计算不稳定。这些问题使得UserCF在大规模工业系统中的应用相对有限,但其“通过群体智慧进行推荐”的核心思想为后续的深度学习方法提供了重要启发。
矩阵分解(Matrix Factorization) (2.1.3节):不同于传统的U2U2I或I2I召回路径,矩阵分解直接建模用户-物品交互矩阵,通过学习用户和物品的低维向量表示来预测偏好,实现了U2I的直接召回。这标志着协同过滤从基于邻域的统计方法向基于模型的学习方法转变,其向量化表示的思想为后续的向量召回技术奠定了基础。我们将矩阵分解作为协同过滤技术演进的重要里程碑单独介绍。
接下来我们将详细介绍这些协同过滤方法的原理和实现,从基于邻域的统计方法到基于模型的学习方法,逐步展现协同过滤技术的演进历程。