在构建智能推荐系统时,协同过滤(Collaborative Filtering,CF)算法是一个常用的技术。 本篇文章主要介绍协同过滤算法的基本思想及其应用。
一、协同过滤算法简介
之前看到过一篇文章用“「物以类聚,人以群分」”来形容协同过滤算法,我觉得非常贴切。
协同过滤算法可以分为基于用户的协同过滤算法和基于商品的协同过滤算法。
「基于用户的协同过滤算法」:针对一个特定的用户,在用户集合中筛选出与该特定用户相似的用户群体,然后利用这些相似用户对商品的喜好程度来给特定用户进行商品推荐
「基于商品的协同过滤算法」:针对一个特定用户,首先计算商品之间的相似度,然后基于用户对相似商品的打分来预估用户对该商品的喜好程度并进行推荐。
我们首先解释基于用户的协同过滤算法。假设我们现在总共有5个用户和5个商品,我们可以构建用户对商品的行为矩阵
其中矩阵的每一行代表用户对每个商品的打分,得分的高低代表用户对该商品的喜好程度,上面矩阵中的打分是一个「显式的打分」。但是在一些场景下,用户不会对一个商品进行这种显式的打分,比如说用户不会对一个短视频打个具体的分数。在这样的情况下,我们可以构建「隐式的行为矩阵」,比如里面的值是用户观看该视频的时长,或者用户是否点击了该视频等等。
参考资料:
推荐系统入门(六)|协同过滤(CF)算法