分享协同过滤思想简介 什么是协同过滤?( 七 )


1.完全个性化推荐(范式)
完全个性化推荐是为每个用户推荐不一样的标的物推荐列表, 我们在第二节中所讲解的两类协同过滤算法即是完全个性化推荐的方法, 所以协同过滤可以用于该场景中 。 我们在第三、第四节中也非常明确地给出了从工程上实现完全个性化推荐的思路 。
下图是电视猫电影猜你喜欢推荐, 这是一类完全个性化推荐范式, 这类推荐可以基于协同过滤算法来实现 。

分享协同过滤思想简介 什么是协同过滤?

文章插图
图12:电视猫完全个性化推荐:电影猜你喜欢
2.标的物关联标的物推荐(范式)
虽然第二节没有直接讲标的物关联标的物的算法, 但是讲到了怎么计算两个标的物之间的相似度(即图2中评分矩阵的列向量之间的相似度), 我们利用该相似度可以计算某个标的物最相似的K个标的物(在第三节1中我们给出了实现标的物相似性的工程实现, 在第四节4中我们也给出了近实时计算标的物相似度的实现方案) 。 那么这K个最相似的标的物就可以作为该标的物的关联推荐 。
下图是电视猫相似影片推荐, 是一类标的物关联标的物推荐范式, 这类推荐可以基于协同过滤算法中间过程中的标的物topN相似度计算来实现 。

分享协同过滤思想简介 什么是协同过滤?

文章插图
图13:电视猫标的物关联标的物推荐:相似影片
3.其他应用形式及场景
在协同过滤算法的讲解中, 我们可以将用户或者标的物用向量表示(用户行为矩阵中的行向量和列向量), 有了用户和标的物的向量表示, 我们就可以对用户和标的物做聚类了 。
对用户聚类后, 当然可以用于做推荐, 将同一类中其他用户操作过的标的物推荐给该用户就是一种可行的推荐策略 。 同时, 用户聚类后, 也可以用于做lookalike类的商业化(如广告)尝试 。
对标的物聚类后, 也可以用于做标的物关联推荐, 将同一类中的其他标的物作为关联推荐结果 。 另外, 标的物聚类后, 这些类可以作为专题供编辑或者运营团队来作为一种内容分发的素材 。
六、协同过滤算法的优缺点前面对协同过滤算法做了比较完备的讲解, 也提到了协同过滤算法的一些特点, 这里我们简单罗列一些协同过滤算法的优缺点, 方便大家更进一步深入了解协同过滤算法 。
1.优点
协同过滤算有很多优点, 总结下来最大的优点有如下几个:
(1) 算法原理简单、思想朴素从前面的几节讲解中不难看出, 协同过滤算法的实现非常简单, 只要懂简单的四则混合运算, 了解向量和矩阵的基本概念就可以理解算法的原理 。 估计在整个机器学习领域, 没有比这个算法更直观简单的算法了 。
协同过滤的思想是简单的”物以类聚“、”人以群分“的思想, 相信大家都可以理解, 正因为思想朴素, 所以算法原理简单 。
(2) 算法易于分布式实现、可以处理海量数据集我们在第三、第四节分别讲解了协同过滤算法的离线和实时工程实现, 大家应该很容易看到, 协同过滤算法可以非常容易利用Spark分布式平台来实现, 因此可以通过增加计算节点很容易处理大规模数据集 。
(3) 算法整体效果很不错协同过滤算法是得到工业界验证过的一类重要算法, 在Netflix、Google、Amazon及国内大型互联网公司都有很好的落地和应用 。
(4) 能够为用户推荐出多样性、新颖性的标的物前面讲到协同过滤算法是基于群体智慧的一类算法, 它利用群体行为来做决策 。 在实践使用中已经被证明可以很好的为用户推荐多样性、新颖性的标的物 。 特别是当群体规模越大, 用户行为越多, 推荐的效果越好 。
(5) 协同过滤算法只需要用户的行为信息, 不依赖用户及标的物的其他信息从前面的算法及工程实践中大家可以知道, 协同过滤算法只依赖用户的操作行为, 不依赖具体用户相关和标的物相关的信息就可以做推荐, 往往用户信息和标的物信息都是比较复杂的半结构化或者非结构化的信息, 处理起来很不方便 。 这是一个极大的优势, 正因为这个优势让协同过滤算法在工业界大放异彩 。
2.缺点
除了上面介绍的这些优点外, 协同过滤算法也存在一些不足的方面, 具体来说, 在下面这些点, 协同过滤算法存在软肋, 有提升和优化的空间 。
(1) 冷启动问题协同过滤算法依赖用户的行为来为用户做推荐, 如果用户行为少(比如新上线的产品或者用户规模不大的产品), 这时就很难发挥协同过滤算法的优势和价值, 甚至根本无法为用户做推荐 。 这时可以采用基于内容的推荐算法作为补充 。

推荐阅读