基于协同过滤的推荐方法xxxxxxxx1x2xxxxxxx

协同过滤(CollaborativeFiltering,CF)是推荐系统广泛使用的一种技术,它主要通过考虑用户(User)与用户之间、物品(Item)与物品之间的相似度(Similarity),来向用户推荐物品,常被用在电商网站中。其中,在推荐系统中最常使用的协同过滤方法,有如下4种:

对象相似性度量

Mahout采用了log-likelihoodratio(LLR)的方法计算相似度,对于事件A和事件B,我们考虑两个事件发生的次数,具有如下事件矩阵:

下面,我们会对上面提到的4种协同过滤方法进行详细说明,其中会结合ApacheMahout,并给出相应的实现代码,以求能够更好地理解各种协同过滤方法。

基于用户的协同过滤推荐

基于用户的协同过滤推荐,比较适合于用户数量少于物品数量的应用,这样,通过更多的用户对物品的偏好行为历史数据,维护用户的相似关系,能够更好地计算出用户的相似性。

基于物品的协同过滤推荐

对于编号为200的用户,使用对数似然(PearsonCorrelationSimilarity)计算物品相似度,得到的Top10推荐物品及其评分列表,如下所示:

基于物品的协同过滤推荐,比较适合于物品远远少于用户的应用,这样可以更好地维护物品之间的相似关系。

基于模型的协同过滤推荐

我们选择使用MovieLens数据集,2亿的评分数据(大约有500多MB),首先将数据集进行分割:80%用作训练集,20%用作测试集,Mahout提供分割数据集的工具,分割执行如下命令:

这样,生成2个数据集:/test/shiyj/data/splitDS/probeSet和/test/shiyj/data/splitDS/trainingSet。

使用训练集/test/shiyj/data/splitDS/trainingSet来训练推荐模型,执行如下命令:

上面命令执行结果,数据会在/test/shiyj/data/output/als/目录下面,可以看到生成如下目录:

这些目录下的文件就是推荐模型对应的数据文件,可以用于后面步骤中的评估和最终推荐。

评估模型使用Mahout的evaluateFactorization命令,需要输入上一步生成的模型文件,如下所示:

可以看到,最后输出了RMSE,在文件/test/shiyj/data/output/als/rmse/rmse.txt中。

如果我们训练得到的模型在评估以后,误差能够满足实际推荐业务需要,则可以直接用于实际的推荐系统。Mahout提供了一个基于命令行的推荐方式,可以使用recommendfactorized命令,如下所示:

上面指定了,为每个用户选择Top10个物品作为推荐,并计算出了评分,执行上述命令,得到推荐结果,在目录/test/shiyj/data/output/als/recommendations中,该目录下的文件内容,示例如下所示:

实际应用中,为了加快在线上推荐系统的检索,这些结果,可以考虑将数据存储到ElasticSearch或者SolrCloud系统中,方便查询。

混合协同过滤推荐

我们可以想到,根据前面介绍的基本协同过滤推荐方法,作为入门,可以这样实现一个混合协同过滤系统:

THE END
1.相关商品推荐:基于协同过滤的推荐算法协同过滤推荐算法是一种根据用户之间的相互作用(例如购买、评分、喜好等)来推荐商品的算法。它可以分为基于用户的协同过滤和基于物品的协同过滤两种类型。 适用场景 协同过滤算法适用于很多领域,比如电商平台、社交网络、新闻推荐、音乐电影推荐等。通过分析用户的行为,协同过滤算法可以为用户提供个性化的推荐产品或内容,提...https://www.jianshu.com/p/396b7c403ee4
2.基于用户的协同过滤算法的理解与简单实现基于用户的协同过滤算法(User-CF)属于基于领域的算法。 基于用户的协同过滤算法主要包括两个步骤。 找到和目标用户兴趣相似的用户集合。 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户 相似度算法 步骤一的关键就是计算两个用户之间的相似度,以下列举两种比较常见的相似度计算方法。 给定用户u...https://www.imooc.com/article/69651
3.协同过滤推荐研究综述AET摘要:推荐技术是目前在很多领域中广泛使用的技术之一。而协同过滤推荐算法是应用在推荐技术中很成功的算法。主要介绍了协同过滤推荐技术,总结了当前推荐算法的传统方法、改进算法以及性能评测方法。同时,分析了协同过滤推荐算法中的问题以及相应的解决办法。最后阐述了协同过滤推荐系统中仍需解决的问题和未来可能的发展方向...http://www.chinaaet.com/article/212308
4.协同过滤算法深入解析:构建智能推荐系统的核心技术在这个实践案例中,我们使用surprise库快速实现了一个电影推荐系统。通过实践案例,你可以更加深入地理解协同过滤算法的原理和实现方法。当然,实际应用中的推荐系统可能需要考虑更多的因素,如数据的实时更新、推荐结果的多样性和解释性等。希望这个实践案例能为你在推荐系统领域的学习和探索提供一些启示。 https://developer.aliyun.com/article/1267365
5.大数据基础理论知识考核试题题库及答案.docx相关关系是一种与函数关系区别的非确定性关系,而相关分析就是研究事物或现象之间是否存在这种非确定性关系的统计方法,下列不属于相关性分析方法的是()[单选题]* A.Pearson相关系数 B.Spearman秩相关系数 C.Kendall相关系数 D.傅里叶系数√ 4.信息增益、增益率分别对可取值数目()的属性有所偏好[单选题]* A.较...https://max.book118.com/html/2022/1203/8072031031005017.shtm
1.传统推荐算法——协同过滤这就导致了一个比较严重的问题一热门的物品具有很强的头部效应,容易跟大量物品产生相似性;而尾部的物品由于特征向量稀疏,很少与其他物品产生相似性,导致很少被推荐。协同过滤的天然缺陷一推荐结果的头部效应较明显,处理稀疏向量的能力弱。 为解决上述问题,同时增加模型的泛化能力,矩阵分解技术被提出。该方法在协同过滤共...https://blog.csdn.net/weixin_55210809/article/details/143807593
2.淘宝和网易云怎样知道你喜欢什么?终于有人把推荐系统讲明白了...推荐系统具有不同的分类方法。常见的分类方法有:按照推荐结果因人而异分类、按照推荐方法分类、按照推荐模型构建方式分类。因为推荐算法是整个推荐系统中最核心部分,所以推荐系统还可以依据推荐算法分类。基于此,推荐系统可以分为基于内容的推荐、基于协同过滤的推荐以及混合推荐方法。 https://www.51cto.com/article/645404.html
3.在推荐系统中,我还有隐私吗?联邦学习:你可以有澎湃号·湃客经典的推荐算法大致分为三类:内容过滤(Content filtering)、协同过滤(Collaborative filtering,CF)和混合过滤(Hybrid filtering)。 内容过滤:这类算法侧重于通过将用户、item 划分为特定的信息特征来绘制用户肖像,从而直接建立对用户兴趣的理解。初期的推荐系统中多采用的是内容过滤的方法。例如,我在某宝上浏览了几件黑色...https://www.thepaper.cn/newsDetail_forward_10055057
4.基于用户关系网络表征学习的服务推荐方法Han等[30]提出了一种基于异质信息网络嵌入和卷积神经网络混合的表征学习方法,通过表征学习从用户与项目交互结构中获取用户和项目的特征表示;Wu等[31]提出一种利用知识图谱的表征学习方法,将现有的语义数据表征到低维语义空间,提高了协同过滤推荐在语义层面的效果;Shi等[32]提出基于元路径的随机游走策略来生成有意义的...http://qks.cqu.edu.cn/html/cqdxzrcn/2020/7/20200706.htm
5.基于知识图谱的推荐算法研究综述可解释推荐是指解释推荐理由问题的推荐算法,在向用户提供推荐结果的同时,还提供解释以阐明推荐的原因[23]。这样有助于提高推荐算法的多样性、有效性和准确性,有利于用户理解并采纳推荐结果[24-25]。 早期的推荐多数是基于内容的推荐或基于协同过滤的推荐,基于内容的推荐方法通过对用户或者项目的属性信息进行建模,是基...https://www.fx361.com/page/2023/0113/16791653.shtml
6.个性化推荐沙龙跨领域推荐,实现个性化服务的技术途径现有的单领域个性化推荐大多基于协同过滤推荐方法。协同过滤推荐方法的主要思想是,利用已有用户群过去的行为或意见预测当前用户最可能喜欢哪些东西或者对哪些东西感兴趣。单领域协同过滤推荐在过去取得了很好的效果,包括Amazon公司在内的很多互联网公司都采用了这样的协同过滤推荐。 https://cloud.tencent.com/developer/article/1063131
7.机器学习推荐算法原理入门及算法介绍消费金融风控联盟答:可以这样理解: 02 协同过滤(CF) 概述 协同过滤(Collaborative Filtering)是基于对用户历史行为数据的挖掘发现用户的喜好偏向,并预测用户可能喜好的产品进行推荐。它的主要实现由: 基于用户的协同过滤算法; 基于物品的协同过滤算法; 综合用户和物品的协同过滤算法,一般简称为ALS算法。 https://www.shangyexinzhi.com/article/7331518.html