< 上一个 | 内容 | 下一个 >

3.3.3 协同过滤算法的优缺点

前面对协同过滤算法做了比较完备的讲解,也提到了协同过滤算法的一些特点,这里我们简单罗列一些协同过滤算法的优缺点,方便大家更进一步深入了解协同过滤算法。

优点:

协同过滤算有很多优点,总结下来最大的优点有如下几个

1)算法原理简单、思想朴素

从前面的几节讲解中不难看出,协同过滤算法的实现非常简单,只要懂简单的四则混合运算,了解向量和矩阵的基本概念就可以理解算法的原理。估计在整个机器学习领域,没有比这个算法更直观简单的算法了。

协同过滤的思想是简单的“物以类聚,人以群分”的思想,相信大家都可以理解,正因为思想朴素,所以算法原理简单。

2)算法易于分布式实现、可以处理海量数据集

协同过滤算法可以非常容易利用 Spark 分布式平台来实现,因此可以通过增加计算节点很容易处理大规模数据集。

3) 算法易于工程化实现

协同过滤算法是得到工业界验证过的一类重要算法,在 NetflixGoogleAmazon

及国内大型互联网公司都有很好的落地和应用。

4)能够为用户推荐出多样性、新颖性的物品

前面讲到协同过滤算法是基于群体智慧的一类算法,它利用群体行为来做决策。在实践中已经被证明可以很好地为用户推荐多样性、新颖性的标的物。特别是当群体规模越大,用户行为越多,推荐的效果越好。

5) 协同过滤算法只需要用户的行为信息,不依赖用户及标的物的其他信息

从前面的算法及工程实践中大家可以知道,协同过滤算法只依赖用户的操作行为,不依赖具体用户相关和标的物相关的信息就可以做推荐,往往用户信息和标的物信息 都是比较复杂的半结构化或者非结构化的信息,处理起来很不方便。这是一个极大的 优势,正因为这个优势让协同过滤算法在工业界大放异彩。

缺点:

除了上面介绍的这些优点外,协同过滤算法也存在一些不足的方面,具体来说,在下面这些点,协同过滤算法存在软肋,有提升和优化的空间。

1)冷启动问题

协同过滤算法依赖用户的行为来为用户做推荐,如果用户行为少(比如新上线的产品或者用户规模不大的产品),这时就很难发挥协同过滤算法的优势和价值,甚至根本无法为用户做推荐。这时可以采用基于内容的推荐算法作为补充。

另外,对于新入库的标的物,由于只有很少的用户操作行为,这时相当于用户行 为矩阵中该标的物对应的列基本都是零,这时无法计算出该标的物的相似标的物,同 时,该标的物也不会出现在其他标的物的相似列表中,因此无法将该标的物推荐出去。这时,可以采用人工的策略将该标的物在一定的位置曝光,或者强行以一定的比例或 者概率加入推荐列表中,通过收集该标的物的行为解决该标的物无法被推荐出去的问 题。

2)稀疏性问题

对于现代的互联网产品,用户基数大,标的物数量多(特别是新闻、UGC 短视频类产品),一般用户只对很少量的标的物产生操作行为,这时用户操作行为矩阵是非常稀疏的,太稀疏的行为矩阵计算出的标的物相似度往往不够精准,最终影响推荐结果的精准度。