4.6.2 缺点
除了上面介绍的这些优点以外,协同过滤算法也存在一些不足,具体来说,在下面这些问题上,协同过滤算法存在软肋,有提升和优化的空间,或者需要借助其他算法进行补充完善。
1.冷启动问题
协同过滤算法依赖用户的行为来为用户做推荐,如果用户行为少(比如新用户、新上线的产品或者用户规模不大的产品),这时就很难发挥协同过滤算法的优势和价值,甚至根本无法为用户做推荐。这时可以采用基于内容的推荐算法作为补充。
另外,对于新入库的标的物,由于只有很少的用户操作行为,因此相当于用户行为矩阵中该标的物对应的列基本都是零,这时无法计算出该标的物的相似标的物,同时,该标的物也很难出现在其他标的物的相似列表中,因此无法将该标的物推荐出去。这时,可以采用人工策略将该标的物在一定的位置曝光,或者强行以一定的比例或者概率加入推荐列表中,通过收集该标的物的行为(让用户行为矩阵中该标的物对应的列有更多的非零元素)解决该标的物无法被推荐出去的问题。
4.7.5节会更加详细地介绍协同过滤的冷启动解决方案。另外,第8章会专门讲解各类解决冷启动问题的技术方案。
2.稀疏性问题
对于现代互联网产品,用户基数大,标的物数量多(特别是新闻、UGC短视频类产品),一般用户只对很少量的标的物产生操作行为,这时用户操作行为矩阵是非常稀疏的,太稀疏的行为矩阵计算出的标的物相似度往往不够精准,最终影响推荐结果的精准度。
3.标的物时效性及快速增长问题
很多产品的标的物是有时效性的(比如新闻类APP),并且标的物数量是快速增长的(比如短视频类APP)。对于有时效性的标的物,在具体推荐时需要考虑到时效性。在为某个标的物计算最相似的标的物时,只计算在时效范围内的标的物,并以此作为相似列表即可,在进行推荐时会过滤不在时效范围内的标的物。对于标的物数量快速增长的情况,最好用近实时的协同过滤,以应对当天新增的标的物无法被推荐出去的问题。