重庆三环建设监理咨询有限公司网站,建设银行网上交管网站,建设网站花都,seo自媒体培训在现今的推荐技术和算法中#xff0c;最被大家广泛认可和采用的就是基于协同过滤的推荐方法。本文将带你深入了解协同过滤的秘密。 1 什么是协同过滤 协同过滤是利用集体智慧的一个典型方法。要理解什么是协同过滤 (Collaborative Filtering, 简称 CF)#xff0c;首先想一个简… 在现今的推荐技术和算法中最被大家广泛认可和采用的就是基于协同过滤的推荐方法。本文将带你深入了解协同过滤的秘密。 1 什么是协同过滤 协同过滤是利用集体智慧的一个典型方法。要理解什么是协同过滤 (Collaborative Filtering, 简称 CF)首先想一个简单的问题如果你现在想看个电影但你不知道具体看哪部你会怎么做大部分的人会问问周围的朋友看看最近有什么好看的电影推荐而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。 换句话说就是借鉴和你相关人群的观点来进行推荐很好理解。 2 协同过滤的实现 要实现协同过滤的推荐算法要进行以下三个步骤 收集数据——找到相似用户和物品——进行推荐 收集数据 这里的数据指的都是用户的历史行为数据比如用户的购买历史关注收藏行为或者发表了某些评论给某个物品打了多少分等等这些都可以用来作为数据供推荐算法使用服务于推荐算法。需要特别指出的在于不同的数据准确性不同粒度也不同在使用时需要考虑到噪音所带来的影响。 找到相似用户和物品 这一步也很简单其实就是计算用户间以及物品间的相似度。以下是几种计算相似度的方法 欧几里德距离 皮尔逊相关系数 Cosine 相似度 Tanimoto 系数 进行推荐 在知道了如何计算相似度后就可以进行推荐了。 在协同过滤中有两种主流方法基于用户的协同过滤和基于物品的协同过滤。具体怎么来阐述他们的原理呢看个图大家就明白了 基于用户的 CF 的基本思想相当简单基于用户对物品的偏好找到相邻邻居用户然后将邻居用户喜欢的推荐给当前用户。计算上就是将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度找到 K 邻居后根据邻居的相似度权重以及他们对物品的偏好预测当前用户没有偏好的未涉及物品计算得到一个排序的物品列表作为推荐。 下图给出了一个例子对于用户 A根据用户的历史偏好这里只计算得到一个邻居 - 用户 C然后将用户 C 喜欢的物品 D 推荐给用户 A。 基于物品的 CF 的原理和基于用户的 CF 类似只是在计算邻居时采用物品本身而不是从用户的角度即基于用户对物品的偏好找到相似的物品然后根据用户的历史偏好推荐相似的物品给他。从计算的角度看就是将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度得到物品的相似物品后根据用户历史的偏好预测当前用户还没有表示偏好的物品计算得到一个排序的物品列表作为推荐。下图给出了一个例子对于物品 A根据所有用户的历史偏好喜欢物品 A 的用户都喜欢物品 C得出物品 A 和物品 C 比较相似而用户 C 喜欢物品 A那么可以推断出用户 C 可能也喜欢物品 C。 总结 以上两个方法都能很好的给出推荐并可以达到不错的效果。但是他们之间还是有不同之处的而且适用性也有区别。下面进行一下对比 计算复杂度 Item CF 和 User CF 是基于协同过滤推荐的两个最基本的算法User CF 是很早以前就提出来了Item CF 是从 Amazon 的论文和专利发表之后2001 年左右开始流行大家都觉得 Item CF 从性能和复杂度上比 User CF 更优其中的一个主要原因就是对于一个在线网站用户的数量往往大大超过物品的数量同时物品的数据相对稳定因此计算物品的相似度不但计算量较小同时也不必频繁更新。但我们往往忽略了这种情况只适应于提供商品的电子商务网站对于新闻博客或者微内容的推荐系统情况往往是相反的物品的数量是海量的同时也是更新频繁的所以单从复杂度的角度这两个算法在不同的系统中各有优势推荐引擎的设计者需要根据自己应用的特点选择更加合适的算法。 适用场景 在非社交网络的网站中内容内在的联系是很重要的推荐原则它比基于相似用户的推荐原则更加有效。比如在购书网站上当你看一本书的时候推荐引擎会给你推荐相关的书籍这个推荐的重要性远远超过了网站首页对该用户的综合推荐。可以看到在这种情况下Item CF 的推荐成为了引导用户浏览的重要手段。同时 Item CF 便于为推荐做出解释在一个非社交网络的网站中给某个用户推荐一本书同时给出的解释是某某和你有相似兴趣的人也看了这本书这很难让用户信服因为用户可能根本不认识那个人但如果解释说是因为这本书和你以前看的某本书相似用户可能就觉得合理而采纳了此推荐。 相反的在现今很流行的社交网络站点中User CF 是一个更不错的选择User CF 加上社会网络信息可以增加用户对推荐解释的信服程度。