2.1.3. 总结

在本章中,我们学习了协同过滤的几种主要方法。协同过滤是推荐系统的基础技术,虽然看起来简单,但在实际应用中需要考虑很多问题。

我们首先学习了基于物品的协同过滤(ItemCF),它通过计算物品间的相似度来推荐与用户历史行为相似的物品。ItemCF在工业界应用更广泛,主要原因是历史累计用户数量通常比物品更多,维护一个庞大的用户相似度矩阵成本高昂。而且用户行为非常稀疏,导致很难为用户找到有足够多共同行为的“邻居”,使得用户相似度计算不稳定。而物品的属性相对稳定,尽管物品存在生命周期(如商品下架、视频沉淀),但物品相似度矩阵整体更新成本更低。Swing算法作为ItemCF的改进,通过分析用户-物品二部图的结构特征来减少噪音的影响,展示了如何通过更精细的数据分析来改进统计方法。

接着我们学习了基于用户的协同过滤(UserCF),它通过找到兴趣相似的用户来生成推荐。UserCF作为协同过滤的开山之作,其“用户可以用向量表示”的理念对后续方法影响深远。矩阵分解标志着协同过滤从邻域方法向向量化表示的范式转变。传统的UserCF和ItemCF在数据稀疏时效果不好,而矩阵分解通过学习用户和物品的隐向量表示,可以预测用户对没有交互过的物品的兴趣。FunkSVD和BiasSVD是两个典型的矩阵分解方法,它们通过训练得到用户和物品的向量表示,然后通过向量内积来进行推荐。

协同过滤方法也有一些明显的局限性。最大的问题是冷启动:对于新用户或新物品,由于缺乏历史数据,很难给出好的推荐。另外,传统的协同过滤方法主要依靠用户-物品的交互数据,很难利用其他有用的信息,比如用户的个人信息、物品的内容特征等。邻域方法还面临数据稀疏性的挑战,而矩阵分解虽然通过向量化表示缓解了这一问题,但其线性模型的表达能力仍然有限。

虽然有这些局限性,协同过滤的核心思想在现代推荐系统中仍然发挥着重要作用。特别是矩阵分解开启的向量化表示思想,为后续推荐技术的发展奠定了基础。在接下来的章节中,我们会看到许多新的方法都可以看作是这一思想的延续和发展:Item2Vec、EGES、Airbnb等方法继承了物品向量化的思想,DSSM、YouTubeDNN等方法则将用户和物品的向量表示与深度学习相结合。这些方法不断改进和扩展了向量化表示的应用,从简单的矩阵分解发展到复杂的深度模型,从静态表示发展到序列建模,极大地丰富了推荐系统的技术体系。