Mahout协同过滤推荐
来源:互联网 发布:贵港市政网络问政平台 编辑:程序博客网 时间:2024/05/18 03:38
协同过滤 —— CollaborativeFiltering
协同过滤简单来说就是根据目标用户的行为特征,为他发现一个兴趣相投、拥有共同经验的群体,然后根据群体的喜好来为目标用户过滤可能感兴趣的内容。
协同过滤推荐——
协同过滤推荐是基于一组喜好相同的用户进行推荐。它是基于这样的一种假设:为一用户找到他真正感兴趣的内容的最好方法是首先找到与此用户有相似喜好的其他用户,然后将他们所喜好的内容推荐给用户。这与现实生活中的“口碑传播(word-of-mouth)”颇为类似。
协同过滤推荐分为三类:
- 基于用户的推荐(User-basedRecommendation)
- 基于项目的推荐(Item-basedRecommendation)
- 基于模型的推荐(Model-basedRecommendation)
基于用户的协同过滤推荐 ——User CF
原理:基于用户对物品的喜好找到相似邻居用户,然后将邻居用户喜欢的物品推荐给目标用户
上图示意出UserCF的基本原理,假设用户A喜欢物品A和物品C,用户B喜欢物品B,用户C喜欢物品A、物品C和物品D;从这些用户的历史喜好信息中,我们可以发现用户A和用户C的口味和偏好是比较类似的,同时用户C还喜欢物品D,那么我们可以推断用户A可能也喜欢物品D,因此可以将物品D推荐给用户A。
实现:将一个用户对所有物品的偏好作为一个向量(Vector)来计算用户之间的相似度,找到K-邻居后,根据邻居的相似度权重以及他们对物品的喜好,为目标用户生成一个排序的物品列表作为推荐,列表里面都是目标用户为涉及的物品。
基于物品的协同过滤推荐 ——Item CF
原理:基于用户对物品的喜好找到相似的物品,然后根据用户的历史喜好,推荐相似的物品给目标用户。与UserCF类似,只是关注的视角变成了Item。
假设用户A喜欢物品A和物品C,用户B喜欢物品A、物品B和物品C,用户C喜欢物品A,从这些用户的历史喜好可以分析出物品A和物品C是比较类似的,喜欢物品A的人都喜欢物品C,基于这个数据可以推断用户C很有可能也喜欢物品C,所以系统会将物品C推荐给用户C。
实现:将所有用户对某一个物品的喜好作为一个向量来计算物品之间的相似度,得到物品的相似物品后,根据用户历史的喜好预测目标用户还没有涉及的物品,计算得到一个排序的物品列表作为推荐。
相似度的计算 ——Similarity Metrics Computing
关于相似度的计算,现有的几种基本方法都是基于向量(Vector)的,其实也就是计算两个向量的距离,距离越近相似度越大。在推荐的场景中,在用户-物品偏好的二维矩阵中,我们可以将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,或者将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度。下面我们详细介绍几种常用的相似度计算方法:
- 欧几里德距离(EuclideanDistance)
可以看出,当 n=2时,欧几里德距离就是平面上两个点的距离。
当用欧几里德距离表示相似度,一般采用以下公式进行转换:距离越小,相似度越大
- 皮尔森相关系数(PearsonCorrelation Coefficient)
- Cosine 相似度(CosineSimilarity)
相似邻居的计算
邻居就是上文说到的“兴趣相投、拥有共同经验的群体”,在协同过滤中,邻居的计算对于推荐数据的生成是至关重要的,常用的划分邻居的方法有两类:
- 固定数量的邻居:K-neighborhoods或者 Fix-size neighborhoods
- 基于相似度门槛的邻居:Threshold-basedneighborhoods
Threshold-basedneighborhoods要表现的就是“宁缺勿滥”,在数据稀疏的情况下效果是非常明显的。Mahout对这两类邻居的计算给出了自己的实现,分别是NearestNUserNeighborhood和ThresholdUserNeighborhood,从名字就可以看出它们的对应关系
0 0
- Mahout协同过滤推荐
- Mahout 物品推荐 协同过滤
- Mahout--(二)协同过滤推荐
- mahout调用协同过滤
- Mahout协同过滤
- 基于 Apache Mahout 实现高效的协同过滤推荐
- 【Machine Learning】Mahout基于协同过滤(CF)的用户推荐
- 用R解析Mahout用户推荐协同过滤算法(UserCF)
- 用R解析mahout用户推荐协同过滤算法
- 用R解析Mahout用户推荐协同过滤算法(UserCF)
- 用R解析Mahout用户推荐协同过滤算法(UserCF)
- Mahout系列之推荐算法-基于用户协同过滤
- Mahout系列之推荐算法-基于物品协同过滤实践
- 推荐引擎相关算法 - 协同过滤 及 Mahout的应用
- Mahout的协同过滤推荐的关键概念与理论
- **基于 Apache Mahout 实现高效的协同过滤推荐电影**
- mahout 协同过滤 参数大全
- 协同过滤算法mahout实现
- 指针和指针变量
- linux系统停留在登入界面,登入失败问题
- iOS8 定位问题
- 集群
- win tcp socket
- Mahout协同过滤推荐
- 2013年海康威视校园招聘笔试题
- 第十一周 项目七:太乐了(泰勒公式)
- Ubuntu下hive的配置1(derby模式)
- sed语法
- ioctl()函数详解
- android 安全退出应用程序的几种方法
- JS集锦
- 关于input标签获取焦点并检测及内容的方法