十个优秀开源推荐系统/算法/资源

推荐系统对用户而言,能帮助他们找到喜欢的产品、服务,帮助用户做出选择;对服务提供方而言,可以给用户提供个性化的服务,提高用户信任度和粘性,增加营收。

推荐系统的核心是推荐引擎,推荐引擎根据特定客户之前的购买历史过滤出他或她感兴趣或会购买的产品。关于客户的可用数据越多,建议就越准确。但如果客户是新客户,这种方法将失败,因为我们没有该客户以前的数据。因此,为了解决这个问题,就需改变策略,通常推荐最受欢迎的产品给客户不一定准确,因为对所有新客户推荐内容都是一样的。因此,一些APP会询问新客户的兴趣,以便他们可以更准确地推荐。

针对不同的客户或者产品,推荐引擎的过滤方式可以包括:基于内容的过滤、协同过滤、混合过滤等。

基于内容的过滤根据产品提供的描述或某些数据来查找产品之间的相似性。根据用户的先前历史,找到用户可能喜欢的类似产品。例如:如果用户喜欢“谍中谍”之类的电影,那么我们可以向他推荐“汤姆克鲁斯”的电影。

可以使用余弦相似度计算。如果“A”是用户向量,“B”是项目向量,则余弦相似度采用以下公式计算:

最后将余弦相似度矩阵中计算的值按降序排序,并推荐给该用户排在前面的一个或几个项目。

基于内容的过滤的优势是:

用户会被推荐他们喜欢的物品类型;

用户对推荐的类型感到满意;

只需要拥有新项目数据,就可以推荐新项目;

缺点是:

用户永远不会被推荐不同的项目;

由于用户不尝试不同类型的产品,业务无法扩展;

如果用户矩阵或项目矩阵发生变化,则需要重新计算余弦相似度矩阵;

协同过滤是根据用户的行为来执行的。用户的历史行为信息扮演着重要的角色。例如,如果用户“A”喜欢“Coldplay”、“TheLinkinPark”和“BritneySpears”,而用户“B”喜欢“Coldplay”、“TheLinkinPark”和“TaylorSwift”,则他们具有相似的兴趣。因此,存在用户“A”喜欢“TaylorSwift”并且用户“B”喜欢“BritneySpears”的巨大概率。这就是协同过滤的方式。

协同过滤技术包括:用户-用户协同过滤、项目-项目协同过滤。

(1)用户-用户协同过滤

用户向量包括用户购买的所有物品以及针对每个特定产品给出的评价。使用n*n矩阵计算用户之间的相似性,其中n是存在的用户的数量。相似度使用相同的余弦相似度公式计算。现在,计算推荐矩阵。在这种情况下,评级乘以购买该项目的用户与必须向其推荐项目的用户之间的相似性。为该用户的所有新项目计算这个值,并按降序排序。然后,将最重要的项目推荐给该用户。

如果有新用户到来,或者老用户改变了他对项目的评价,则推荐项目就可能改变。

(2)项目-项目协同过滤

在这种方式下,考虑的不是类似的用户,而是类似的项目。如果用户“A”喜欢“盗梦空间”,他可能会喜欢“火星人”,因为“盗梦空间”和“火星人”的某些方面是类似的。推荐矩阵是m*m矩阵,其中m是存在的项目的数量。

协同过滤算法的优势是:

可以向用户推荐新产品;

可以推广新产品,扩大业务;

需要用户以前的历史记录或产品数据;

如果没有用户购买或评价,则无法推荐新项目;

基于内容的推荐或者协同过滤算法各有优缺点。为了更准确地推荐产品,还可以使用混合推荐算法,即同时使用基于内容和协同过滤推荐产品。混合推荐算法具有更高的效率和更好的实用性。

为了进一步理解推荐系统,以下收集了一些用于学习或者开发的最佳开源项目,包括:学习资源、开发包、完整的推荐系统等。

GitHub(K):

语言:Python

这个库包含各种交互式深度学习书籍,多种框架代码,数学和讨论,其中也包含推荐系统算法。这个库已经被斯坦福大学、麻省理工学院、哈佛和剑桥在内的70个国家的500所大学采用。绝对是学习人工智能技术的好资源。

这个库的目的是:

所有人均可在网上免费获取;

提供足够的技术深度,从而帮助读者实际成为深度学习应用科学家:既理解数学原理,又能够实现并不断改进方法;

包含可运行的代码,为读者展示如何在实际中解决问题。这样不仅直接将数学公式对应成实际代码,而且可以修改代码、观察结果并及时获取经验;

允许我们和整个社区不断快速迭代内容,从而紧跟仍在高速发展的深度学习领域;

由包含有关技术细节问答的论坛作为补充,使大家可以相互答疑并交换经验。

该库包含构建推荐系统的各种示例和最佳实践,以Jupyternotebooks的形式提供。

下图描述了这个最佳实践示例是如何在推荐系统开发工作流程中帮助研究人员/开发人员的。

下面是examples目录下的子目录内容介绍。

语言:Go

Gorse是一个用Go语言编写的开源推荐系统。Gorse的目标是成为一个通用的开源推荐系统,可以快速引入各种在线服务。通过将项目、用户和交互数据导入到Gorse中,系统将自动训练模型,为每个用户生成推荐。

特点包括:

AutoML:可在后台自动搜索最佳推荐模型。

分布式预测:支持单节点训练,而在推理阶段支持横向伸缩。

RESTfulAPI:为数据CRUD和推荐请求提供RESTfulAPI。

在线评估:从最近新增的反馈中分析在线推荐性能。

仪表板盘:提供GUI用于数据管理、系统监控和集群状态检查。

Gorse系统将数据存储在MySQL、MongoDB或Postgres中,中间结果缓存在Redis、MySQL、MongoDB或Postgres中。支持在一个单节点训练,并在分布式环境允许推荐系统。管理员可以通过主节点上的仪表盘监控系统运行状态、执行数据导入导出等操作。

其分布式架构如下:

仪表盘界面如下:

LightFM是一个用Python实现的一种混合推荐算法。用于隐式和显式反馈的推荐算法项目,包括基于BPR和WARP损失算法的有效实现。它易于使用,快速(通过多线程模型估计),并能够产生高质量的结果。

它还可以将项目和用户元数据合并到传统的矩阵分解算法中。从而允许推荐推广到新项目(通过项目特征)和新用户(通过用户特征)。

这个项目提供了几种不同的流行推荐算法的快速Python实现,以及用于快速Python协作过滤的隐式数据集:

交替最小二乘法,如在论文中所述的协同过滤隐式反馈数据集和应用共轭梯度法隐式反馈协同过滤

贝叶斯个性化排名

逻辑矩阵分解

使用余弦、TFIDF或BM25作为距离度量的项-项最近邻模型。

Spotlight是个使用PyTorch构建的深度推荐模型。旨在成为推荐系统快速实践工具和新型推荐模型的原型。

EasyRec是一个阿里巴巴开源的大规模推荐算法框架。实现了用于常见推荐任务的最先进的深度学习模型:候选生成(匹配),评分(排名)和多任务学习。它通过简单的配置和超参数调整(HPO)提高了生成高性能模型的效率。

TensorFlowRecommenders是一个使用TensorFlow构建的推荐系统模型的库。这个项目可用于构建推荐系统的完整工作流程,包括:数据准备、模型制定、培训、评估和部署等环节。它建立在Keras框架之上,具备温和学习曲线,同时也支持灵活地构建复杂的模型。

TorchRec是一个PyTorch域库,旨在提供大规模推荐系统(RecSys)所需的常见稀疏并行原语。它允许作者使用跨多个GPU来训练模型。

TorchRec提供的内容包括:

使用混合数据并行性、模型并行性,轻松创作支持大型高性能多设备/多节点模型的并行性原语。

TorchRecSharder可以使用不同的分片策略对嵌入表进行分片,包括数据并行、表式、行式、表式行式、列式、表式列式分片。

TorchRec规划器可以自动为模型生成优化的分片计划。

流水线训练与数据加载设备传输(复制到GPU)、设备间通信(input_dist)和计算(向前、向后)重叠,以提高性能。

针对由FBGEMM提供支持的RecSys优化内核。

量化支持降低精度的训练和推理。

RecSys的通用模块。

用于RecSys的经过生产验证的模型架构。

RecSys数据集(点击日志和movielens)

端到端训练的例子,比如在criteoclicklogs数据集上训练的dlrm事件预测模型。

这是用于训练推荐系统(RS)的公共数据源。所有数据集都可以转换为原子文件,它是一个统一、全面、高效的推荐系统资源。转换为原子文件后的数据集,可以使用RecBole在这些数据集上测试不同推荐模型的性能。

提交成功!请耐心等待,我们的工程师会在24小时内联系您!

即时通讯云使用者请在应用详情页面咨询客服云使用者请进入管理员模式咨询

THE END
1.基于协同过滤算法的推荐系统推荐系统有着广泛的应用,电影推荐,商品推荐等都用到推荐系统。本文介绍协同过滤算法的基本原理,进而理解推荐系统的实现原理。 推荐系统的描述 我们以电影推荐系统来看一下怎么样以机器学习的角度来描述推荐系统。我们记 $n_u$ 为用户的数量,$n_m$ 为电影的数量,$r(i,j) = 1$ 表示用户 j 对电影 i 进行过...https://www.jianshu.com/p/9b06ef8c79fa
2.基于协同过滤算法图书推荐系统的设计与实现.pdf基于协同过滤算法图书推荐系统的设计与实现.pdf 原文免费试下载 想预览更多内容,点击免费在线预览全文 免费在线预览全文 本科毕业设计 论文题目:基于协同过滤算法的图书推荐系统的 设计与实现 摘要 随着网络和信息技术的飞速发展,电子图书资源的数量也在以惊人的速度增 ...https://max.book118.com/html/2024/0217/7053136045006042.shtm
3.协同过滤(基于用户)的推荐系统.zip本项目是一套基于协同过滤推荐算法的电影推荐系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战的python学习者。也可作为课程设计、期末大作业 包含:项目源码、数据库脚本、软件目实战练习的工具、项目说明等,该项目也可以直接作为毕设使用。 基于协同过滤的电影推荐系统下载即可使用,无需修改,确保可以直接运行...https://www.iteye.com/resource/qq_44593353-12488115
4.协同过滤算法深入解析:构建智能推荐系统的核心技术协同过滤算法是推荐系统中的一种核心技术,通过挖掘用户之间的相似性或物品之间的相似性,为用户推荐与其兴趣相关的物品。本文详细介绍了基于用户的协同过滤、基于物品的协同过滤以及矩阵分解方法等常见的协同过滤技术。 然而,协同过滤算法也存在一些局限性。例如,冷启动问题(Cold Start Problem),当新用户或新物品加入系统时...https://developer.aliyun.com/article/1267365
5.协同过滤推荐研究综述AET目前,应用于推荐系统的算法主要分三类:基于内容的过滤推荐算法、协同过滤推荐算法及混合推荐算法。 基于内容的过滤推荐算法[2]是对用户的兴趣进行分析,构成用户配置文件,并将其和文件集中的文件用共同的特征变量表示。最后比较两者的相似度来为用户进行推荐。随后,通过用户的反馈信息,不断更新用户配置文件,以此来动态地...http://www.chinaaet.com/article/212308
6.新传说之常见算法市面比较常用的推荐系统算法包括:一是基于内容的...新传说之常见算法 市面比较常用的推荐系统算法包括: 一是基于内容的推荐。这种推荐方法主要依赖于信息内容,推荐类似用户曾经感兴趣的信息内容; 二是协同过滤。这种推荐方法主要依赖于用户的行为,比如用户的点击、评论等,根据用户如果在某一方面有相似行为,那么他们在其他方面的行为也可能相似的假设,来进行推荐; 三是混合...https://wmjx.m.jxwmw.cn/topics/news/591192
7.相似度计算方法:余弦相似度基于用户的协同过滤算法是推荐系统中最古老的算法,这个算法是1992年提出的,是用在了邮件过滤系统中,后面被用到了新闻过滤系统中。简单的来说,推荐系统中,基于用户的协同过滤就是,先找到与目标用户兴趣相似的用户,然后把这些用户喜欢的推荐给目标用户,先找到与目标用户兴趣相似的用户就是计算用户之间的相似度,今天主要...https://www.imooc.com/article/254371
1.基于协同过滤的推荐系统腾讯云开发者社区基于协同过滤的推荐系统 推荐算法是对我们现实生活影响最大的计算机算法,它影响了我们看到的新闻、广告、以及我们身边现实环境的东西,这些最终决定了我们的态度和生活方式,尤瓦尔.赫拉利在《未来简史》中声明“算法会比我们更了解自己”。 本文介绍了一种较基础的推荐算法,协同过滤Collaborative Filtering。基于用户购买的...https://cloud.tencent.com/developer/article/1366089
2.基于协同过滤算法的图书推荐系统(源码+定制+开发)图书推荐平台优化...在这样的背景下,基于协同过滤算法的图书推荐系统应运而生,旨在为用户提供个性化的书籍推荐,从而提升阅读体验和效率。 该系统采用Spring Boot, Vue, MySQL, 爬虫技术和大数据处理技术,不仅优化了书籍的搜索和分类,还通过协同过滤算法推荐算法精准匹配用户偏好,实现个性化推荐。系统包括用户注册登录、个人信息管理、书籍收藏...https://blog.csdn.net/m0_64148096/article/details/143218511
3.基于协同过滤算法的论文推荐系统研究与设计基于上述问题,本文设计了一个论文推送系统。改进了传统基于用户的协同过滤算法,在计算用户与用户之间的相似度时加权融合了用户点击和搜索词的相似度,并且计算点击得分的时候会对点击文章的时间做衰减处理,进而更加精准地召回近邻用户。通过实验,本文选取多样性和准确率这两个指标来对本文所提出的论文推荐算法进行评价。https://cdmd.cnki.com.cn/Article/CDMD-10488-1018203115.htm
4.java代码实现协同过滤算法商品推荐基于协同过滤算法在推荐系统的众多方法之中,基于用户的协同过滤是诞最早的,原理也比较简单。基于协同过滤的推荐算法被广泛的运用在推荐系统中,比如影视推荐、猜你喜欢等、邮件过滤等。该算法1992年提出并用于邮件过滤系统,两年后1994年被 GroupLens 用于新闻过滤。一直到2000年,该算法都是推荐系统领域最著名的算法。 https://blog.51cto.com/u_16213604/10293525
5.武汉大学学报(理学版)推荐系统一直以来都是很活跃的研究方向。回顾了近5年来推荐系统涉及的数据集、算法、效果评估的研究发展状况,给出了推荐系统在互联网应用场景中的系统架构,从工业知识与经验以及工业生产工艺与工艺参数这两方面对推荐系统工业生产中的最新应用做了介绍。分析了推荐系统中http://xblx.whu.edu.cn/zh/article/20898290/
6.相似度算法(精选十篇)1.1基于语义资源的词语相似度算法 近年来, 一些诸如同义词词林、WordNet、知网这种大规模可量化的语言本体的诞生与发展, 为进行真实文本的语义分析和理解提供了强有力的资源支持。特别是最近几年“知网”等语义资源不断丰富发展, 中文语义研究方向逐渐增多。知网作为一个知识系统, 是一个网而不是树, 它主要反映概念...https://www.360wenmi.com/f/cnkeyytvb26n.html
7.推荐系统推荐系统简介分类以及长尾问题推荐系统简述 当下我们已经处于信息爆炸的时代,要从庞大的各类数据库中提取有用的信息,并能为目标用户提供他们需要的信息变得越来越困难。推荐系统正是为了解决这个问题所提出的。 推荐系统目前在很多领域都发挥着重要的角色,比如电子商务... 查看原文 推荐算法:基于物品的协同过滤算法 ...https://www.pianshen.com/article/85642112599/