风也温柔

计算机科学知识库

协同过滤类别的推荐算法做原理总结,你了解多少?

  推荐算法有很多应用场景和商业价值,值得研究推荐算法。推荐算法的种类很多,但使用最广泛的推荐算法应该是协同过滤类。本文将对协同过滤推荐算法做一个大概的总结,也将在未来总结一些典型的协同过滤推荐算法的原理。

  1. 推荐算法概述

  推荐算法非常古老,在机器学习出现之前就有了需求和应用。从广义上讲,它可以分为以下5种类型:

  1)基于内容的推荐:这个类别一般依赖于一些自然语言处理NLP的知识。通过对文本的TF-IDF特征向量进行挖掘,得到用户的偏好,进而进行推荐。这类推荐算法能找到用户独特的小众偏好,具有较好的可解释性。由于这一类需要NLP的基础,所以本文就不多讲了,等我专门讲NLP的时候再讨论。

  2)协同过滤推荐:本文稍后将讨论的内容。协同过滤是目前最主流的推荐算法类型,模式种类繁多,在业界得到广泛应用。它的优点是不需要太多特定领域的知识,并且可以通过基于统计的机器学习算法获得更好的推荐结果。最大的优点是在工程上易于实现,可以很方便地应用到产品中。目前实际应用中的推荐算法多为协同过滤推荐算法。

  3)混合推荐:这类似于我们机器学习中的集成学习。它有很多人才。通过多种推荐算法的组合,得到了一个比较好的推荐算法,起到了三鞋匠一诸葛亮的作用。. 例如,通过建立多种推荐算法的模型,最后采用投票的方式确定最终的推荐结果。混合推荐理论上不比任何单一的推荐算法差,但是混合推荐的使用增加了算法的复杂度并在实际应用中使用,但没有单一的协同过滤推荐算法,例如逻辑回归等。二分类推荐算法被广泛使用。

  4)基于规则的推荐:这类算法比较常见,比如基于最多用户点击、最多用户浏览等,是一种流行的推荐方式,在当前大数据时代并不主流。

  5)基于人口统计信息的推荐:这个类别是最简单的推荐算法。它只是根据系统用户的基本信息,找出用户的相关度,然后进行推荐。目前,它在大型系统中相对容易。谨慎使用。

  

  2. 协调过滤建议概述

  协同过滤( )是最经典的推荐算法类型,包括在线协同过滤和离线过滤。所谓线上协同,就是通过线上数据找到用户可能喜欢的商品,而线下过滤就是过滤掉一些不值得推荐的数据,比如推荐值不高的数据,或者用户购买过的数据。虽然推荐值很高。.

  协同过滤的模型一般是 m 个项目和 m 个用户的数据。只有部分用户和部分数据有评分数据,其他部分为空白。这时候,我们利用一些现有的稀疏数据来预测那些空白item和数据之间的评分关系,找到评分最高的item,推荐给用户。

  一般来说,协同过滤推荐分为三种类型。第一个是基于用户的协同过滤,第二个是基于项目的协同过滤,第三个是基于模型的协同过滤。

  基于用户的协同过滤主要考虑用户之间的相似性。只要找到相似用户喜欢的商品,并预测目标用户对相应商品的评分,就可以找到评分最高的商品。项目被推荐给用户。基于物品的协同过滤与基于用户的协同过滤类似,只不过这时候我们转向寻找物品与物品之间的相似度,只有找到目标用户对某些物品的评分,然后我们才会将相似度高的物品可以预测相似度,将评分最高的几个相似项目推荐给用户。比如你在网上买了一本机器学习相关的书,网站马上就会给你推荐一堆机器学习和大数据相关的书。

  我们可以简单的对比一下基于用户的协同过滤和基于物品的协同过滤:基于用户的协同过滤需要在网上找到用户和用户的相似关系,计算复杂度肯定比基于物品的协同过滤要高。但是有一些惊喜可以帮助用户找到新的类别。对于基于item的协同过滤,由于考虑的item的相似度在一段时间内不会发生变化,所以离线很容易计算出来,准确率一般可以接受,但就推荐的多样性而言,很难给用户惊喜。. 一般来说,对于小型推荐系统,基于项目的协同过滤肯定是主流。但如果是大型推荐系统,

  基于模型的协同过滤是目前最主流的协同过滤类型,我们的很多机器学习算法也可以在这里找到用处。下面我们重点介绍基于模型的协同过滤。

  3. 基于模型的协同过滤

  基于模型的协同过滤是目前最主流的协同过滤类型,其相关算法可以写成一本书。当然,我们这里主要是对其思想进行分类和概括。我们的问题是在m个项目和m个用户的数据中,只有部分用户和部分数据有评分数据,其他部分是空白的。这时候,我们利用已有的部分稀疏数据来预测那些空白物品和数据之间的评分关系,找到评分最高的物品并推荐给用户。

  针对这个问题,采用机器学习的思想进行建模求解。主流方法可以分为:使用关联算法、聚类算法、分类算法、回归算法、矩阵分解、神经网络、图模型和潜在语义模型来求解。下面我们将分别介绍。

  3.1 与关联算法的协同过滤

  一般我们可以找出用户购买的所有物品的数据中的频繁项集和实时序列,进行频繁集挖掘,找到满足支持度阈值的相关物品的频繁N项集或序列。如果用户购买了 N 个频繁项集或序列中的某些项协同过滤类别的推荐算法做原理总结,你了解多少?,那么我们可以根据一定的评分标准向用户推荐该序列中的频繁项集或其他项,包括支持度、置信度和改进度。等待。

  常用的关联推荐算法有 FP Tree 和 . 如果你对这些算法不熟悉,可以参考我的其他文章:

  算法原理总结:算法原理总结-刘建平-博客园

  FP Tree算法原理总结:FP Tree算法原理总结 - 刘建平 - 博客园

  算法原理总结:算法原理总结-刘建平-博客园

  3.2 协同过滤与聚类算法

  使用聚类算法进行协同过滤有点类似于之前基于用户或物品的协同过滤。我们可以根据某个距离度量按用户或按项目进行聚类。如果基于用户聚类,可以按照一定的距离度量方法将用户划分为不同的目标群体,将同一目标群体中评分高的物品推荐给目标用户。基于物品聚类,将用户评分高的相似物品推荐给用户。

  常用的聚类推荐算法有K-Means、BIRCH和谱聚类。如果你对这些算法不熟悉,可以参考我的其他文章:

  K-Means聚类算法原理:K-Means聚类算法原理-刘建平-博客园

  BIRCH聚类算法原理:BIRCH聚类算法原理-刘建平-博客园

  密度聚类算法:密度聚类算法-刘建平-博客园

  谱聚类原理总结(下):谱聚类原理总结(下)

  3.3 协同过滤与分类算法

  如果我们根据用户评分的高低将分数分成几部分,这个问题就变成了分类问题。例如,最直接的方法是设置评分阈值。如果分数高于阈值,建议使用。如果分数低于阈值,则不推荐。我们把这个问题变成一个二分类问题。虽然分类问题的算法有很多,但目前使用最广泛的是逻辑回归。为什么它是逻辑回归而不是看起来更高的东西,比如支持向量机?因为逻辑回归更具有解释性,所以我们对每个项目是否被推荐有一个明确的概率。同时,我们可以对数据的特性进行工程化,以达到调优的目的。现在,

  常见的分类推荐算法包括逻辑回归和朴素贝叶斯,两者都具有可解释性强的特点。如果你对这些算法不熟悉,可以参考我的其他文章:

  回归原理总结:回归原理总结-刘建平-博客园

  朴素贝叶斯算法原理总结:朴素贝叶斯算法原理总结 - 刘建平 - 博客园

  3.4 带有回归算法的协同过滤

  与回归算法协同过滤似乎比分类算法更自然。我们的评级可以是连续值而不是离散值。通过回归模型,我们可以得到目标用户对某个项目的预测评分。

  常用的回归推荐算法包括岭回归、回归树和支持向量回归。如果你对这些算法不熟悉,可以参考我的其他文章:

  线性回归原理总结:线性回归原理总结-刘建平-博客园

  决策树算法原理(二):决策树算法原理(二)-刘建平-博客园

  支持向量机原理(五)线性支持回归:支持向量机原理(五)线性支持回归-刘建平-博客园)

  3.5 矩阵分解的协同过滤

  具有矩阵分解的协同过滤是一种广泛使用的方法。由于传统的奇异值分解SVD要求矩阵不能有缺失数据且必须是稠密的,而我们的用户项目评分矩阵是一个典型的稀疏矩阵,直接使用传统的SVD进行协同过滤就比较复杂了。

  目前主流的矩阵分解推荐算法主要是SVD的一些变种,如SVD++和SVD++。这些算法与传统SVD的最大区别在于不再需要将矩阵分解为UΣVT

  , 而变量是两个低秩矩阵 PTQ

  产品形式。对于矩阵分解的推荐算法,我稍后会从它开始。

  3.6 神经网络协同过滤

  使用神经网络甚至深度学习进行协同过滤应该是未来的趋势。目前,使用两层神经网络的主流推荐算法是受限玻尔兹曼机(RBM)。在当前的算法竞赛中,RBM算法的表现非常出色。当然协同过滤推荐算法java,使用深度神经网络进行协同过滤应该会更好。大型厂商使用深度学习方法进行协同过滤应该是未来的趋势。以后我会专门讲RBM。

  3.7 与图模型的协同过滤

  当使用图模型进行协同过滤时,图模型中考虑了用户之间的相似性。常用的算法有级数算法和马尔科夫模型算法。对于级数算法,基本思想是相似对象引用的两个对象也具有相似性。算法思想与著名的算法思想有些相似。马尔可夫模型算法当然是基于马尔可夫链的,其基本思想是寻找基于电导率的普通距离度量算法难以找到的相似度。以后我会从一系列算法开始。

  3.8 与潜在语义模型的协同过滤

  潜在语义模型主要基于 NLP,涉及对用户行为的语义分析,用于评分和推荐。主要方法包括潜在语义分析LSA和潜在狄利克雷分布LDA,后面会在NLP上讨论。

  4. 协同过滤的一些新方向

  当然,推荐算法的改革也在进行中,就连最流行的基于逻辑回归的推荐算法也面临着换代。什么算法可以取代传统的协同过滤,比如逻辑回归?以下是我的理解:

  a) 基于集成学习的方法和混合推荐:这和混合推荐也结合在一起。由于集成学习的成熟协同过滤推荐算法java,它在推荐算法上也有不错的表现。一种可能取代逻辑回归的算法是 GBDT。目前GBDT在很多算法比赛中都有不错的表现,并且有工业级的并行化实现类库。

  b) 基于矩阵分解的方法:矩阵分解,由于其简单性而一直受到青睐。目前越来越流行的矩阵分解方法有分解机( )和张量分解( )。

  c) 基于深度学习的方法:目前两层神经网络RBM已经取得了非常好的推荐算法效果。随着深度学习和多层神经网络的兴起,未来推荐算法有没有可能成为深度学习的天下?目前最流行的推荐算法是基于CNN和RNN。

  5. 协同过滤总结

  作为经典的推荐算法,协同过滤在业界得到广泛应用。优点很多,模型通用,不需要太多相应数据领域的专业知识,项目实现简单,效果好。这些都是它受欢迎的原因。

  当然,协同过滤也有一些无法回避的问题,比如麻烦的“冷启动”问题。当我们没有任何新用户的数据时,我们不能很好地为新用户推荐商品。同时,它没有考虑到情况的差异,比如根据用户的场景和用户当前的心情。当然,不可能得到小众的一些独特偏好,后者更擅长基于内容的推荐。

  以上就是对协同过滤推荐算法的总结,希望可以帮助大家对推荐算法有更深入的了解,祝大家新年快乐!

  来源:协同过滤推荐算法总结——刘建平

  文章来源:https://zhuanlan.zhihu.com/p/25069367