`
gaojingsong
  • 浏览: 1182122 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【10大开源的推荐系统简介】

阅读更多

最 近这两年推荐系统特别火,本文搜集整理了一些比较好的开源推荐系统,即有轻量级的适用于做研究的SVDFeature、LibMF、LibFM等,也有重 量级的适用于工业系统的 Mahout、Oryx、EasyRecd等,供大家参考。PS:这里的top 10仅代表个人观点。

#1.SVDFeature

主页:http://svdfeature.apexlab.org/wiki/Main_Page 语言:C++
一个feature-based协同过滤和排序工具,由上海交大Apex实验室开发,代码质量较高。在KDD Cup 2012中获得第一名,KDD Cup 2011中获得第三名,相关论文 发表在2012的JMLR中,这足以说明它的高大上。
SVDFeature 包含一个很灵活的Matrix Factorization推荐框架,能方便的实现SVD、SVD++等方法,  是单模型推荐算法中精度最高的一种。SVDFeature代码精炼,可以用 相对较少的内存实现较大规模的单机版矩阵分解运算。另外含有Logistic  regression的model,可以很方便的用来进行ensemble。

#2.LibMF

主页:http://www.csie.ntu.edu.tw/~cjlin/libmf/ 语言:C++
作者Chih-Jen Lin来自大名鼎鼎的台湾国立大学,他们在机器学习领域享有盛名,近年连续多届KDD Cup竞赛上均 获得优异成绩,并曾连续多年获得冠军。台湾大学的风格非常务实,业界常用的LibSVM, Liblinear等都是他们开发的,开源代码的效率和质量都非常高。
LibMF 在矩阵分解的并行化方面作出了很好的贡献,针对SGD(随即梯度下降)优化方法在并行计算中存在的locking problem和memory  discontinuity问题,提出了一种 矩阵分解的高效算法FPSGD(Fast Parallel  SGD),根据计算节点的个数来划分评分矩阵block,并分配计算节点。系统介绍可以见这篇 论文(ACM Recsys 2013的 Best paper Award)。

#3.LibFM

主页:http://www.libfm.org/ 语言:C++
作者是德国Konstanz大学的Steffen Rendle,他用LibFM同时玩转KDD Cup 2012 Track1和Track2两个子竞赛单元,都取得了很好的成绩,说明LibFM是非常管用的利器。
LibFM 是专门用于矩阵分解的利器,尤其是其中实现了MCMC(Markov Chain Monte  Carlo)优化算法,比常见的SGD优化方法精度要高,但运算速度要慢一些。当然LibFM中还 实现了SGD、SGDA(Adaptive  SGD)、ALS(Alternating Least Squares)等算法。

#4.Lenskit

主页:http://lenskit.grouplens.org/ 语言Java

这个Java开发的开源推荐系统,来自美国的明尼苏达大学的GroupLens团队,也是推荐领域知名的测试数据集Movielens的作者。
该源码托管在GitHub上,https://github.com/grouplens/lenskit。 主要包含lenskit-api,lenskit-core,  lenskit-knn,lenskit-svd,lenskit-slopone,lenskit-parent,lenskit-data- structures,lenskit-eval,lenskit-test等模块,主要实现了k-NN,SVD,Slope-One等  典型的推荐系统算法。

#5.GraphLab

主页:GraphLab - Collaborative Filtering 语言:C++
Graphlab 是基于C++开发的一个高性能分布式graph处理挖掘系统,特点是对迭代的并行计算处理能力强(这方面是hadoop的弱项),由于功能独 到,GraphLab在业界名声很响。 用GraphLab来进行大数据量的random  walk或graph-based的推荐算法非常有效。Graphlab虽然名气比较响亮(CMU开发),但是对一般数据量的应用来说可能还用不上。
GraphLab 主要实现了ALS,CCD++,SGD,Bias-SGD,SVD++,Weighted-ALS,Sparse-ALS,Non-negative  Matrix Factorization,Restarted Lanczos Algorithm等算法。

#6.Mahout

主页:http://mahout.apache.org/ 语言:Java
Mahout  是 Apache Software Foundation (ASF)  开发的一个全新的开源项目,其主要目标是创建一些可伸缩的机器学习算法,供开发人员在 Apache 在许可下免费 使用。Mahout项目是由  Apache Lucene社区中对机器学习感兴趣的一些成员发起的,他们希望建立一个可靠、文档翔实、可伸缩的项目,在其中实现一些常见的用于  聚类和分类的机器学习算法。该社区最初基于 Ngetal. 的文章 “Map-Reduce for Machine Learning on  Multicore”,但此后在发展中又并入了更多广泛的机器学习 方法,包括Collaborative  Filtering(CF),Dimensionality Reduction,Topic Models等。此外,通过使用 Apache  Hadoop 库,Mahout 可以有效地扩展到云中。
在Mahout的Recommendation类算法中,主要有User-Based CF,Item-Based CF,ALS,ALS on Implicit Feedback,Weighted MF,SVD++,Parallel SGD等。

#7.Myrrix

主页:http://myrrix.com/ 语言:Java
Myrrix 最初是Mahout的作者之一Sean  Owen基于Mahout开发的一个试验性质的推荐系统。目前Myrrix已经是一个完整的、实时的、可扩展的集群和推荐系统,主要  架构分为两部分:服务层:在线服务,响应请求、数据读入、提供实时推荐;计算层:用于分布式离线计算,在后台使用分布式机器学习算法为服务层更新机器学习   模型。Myrrix使用这两个层构建了一个完整的推荐系统,服务层是一个HTTP服务器,能够接收更新,并在毫秒级别内计算出更新结果。服务层可以单独使 用,无需 计算层,它会在本地运行机器学习算法。计算层也可以单独使用,其本质是一系列的Hadoop jobs。目前Myrrix以被  Cloudera 并入Oryx项目。

#8.EasyRec

主页:http://easyrec.org/ 语言:Java
EasyRec 是一个易集成、易扩展、功能强大且具有可视化管理的推荐系统,更像一个完整的推荐产品,包括了数据录入模块、管理模块、推荐挖掘、离线分析等。  EasyRec可以同时给多个不同的网站提供推荐服务,通过tenant来区分不同的网站。架设EasyRec服务器,为网站申请tenant,通过 tenant就可以很方便的集成到  网站中。通过各种不同的数据收集(view,buy.rating)API收集到网站的用户行为,EasyRec通过离线分析,就可以产生推荐信息,您的 网站就可以通过 Recommendations和Community Rankings来进行推荐业务的实现。

#9.Waffles

主页:http://waffles.sourceforge.net/ 语言:C++
Waffles 英文原意是蜂蜜甜饼,在这里却指代一个非常强大的机器学习的开源工具包。Waffles里包含的算法特别多,涉及机器学习的方方面面,推荐系统位于  其中的Waffles_recommend  tool,大概只占整个Waffles的1/10的内容,其它还有分类、聚类、采样、降维、数据可视化、音频处理等许许多多工具包,估计  能与之媲美的也就数Weka了。

#10.RapidMiner

主页:http://rapidminer.com/ 语言:Java
RapidMiner(前 身是Yale)是一个比较成熟的数据挖掘解决方案,包括常见的机器学习、NLP、推荐、预测等方法(推荐只占其中很小一部分),而且带有GUI的  数据分析环境,数据ETL、预处理、可视化、评估、部署等整套系统都有。另外RapidMiner提供commercial  license,提供R语言接口,感觉在向着一个商用的 数据挖掘公司的方向在前进。
======================================分割线======================================

开 源的推荐系统大大小小的还有很多,以上只是介绍了一些在学术界和工业界比较流行的TOP  10,而且基本上都是用C++/Java实现的,在参考资料[1]、[2]中还提  到的有Crab(Python)、CofiRank(C++)、MyMediaLite(.NET/C#)、PREA(Java)、Python- recsys(Python)、Recommendable(Ruby)、Recommenderlab(R)、  Oryx(Java)、recommendify(Ruby)、RecDB(SQL)等等,当然GitHub上还有更多。。。即有适合单机运行的,也有适 合集群的。虽然使用的编程语言不同,但实现 的算法都大同小异,主要是SVD、SGD、ALS、MF、CF及其改进算法等。

0
0
分享到:
评论

相关推荐

    18个Java开源CMS系统一览.doc

    - **简介**: Magnolia是一款基于Java的开源Web内容管理系统,遵循Java内容知识库标准(JSR-170)。 - **特点**: - 支持多种语言,包括英语和中文在内的14种语言。 - 集成了本地搜索功能,方便用户快速查找所需内容...

    开源团主机管理系统cmstuan-host.zip

    开源团主机管理系统cmstuan-host是一款专为管理服务器和虚拟主机设计的开源软件。这款系统旨在简化主机服务提供商的工作流程,提高效率,并提供用户友好的界面来管理各种服务器资源。以下是对该系统的详细分析和相关...

    MTCEOA免费开源文库系统v2.4【百度文库风格】

    10.ucenter整合中,加入了论坛头像,只要开启ucenter,则直接调用论坛头像! 11.积分系统,后台设置积分规则,并且可以由其他系统积分进行兑换 12.后台支持缓存清理 13.后台支持数据库备份与还原 14.支持淘宝、腾讯...

    PHP实例开发源码——迅睿PHP开源视频电影CMS系统.zip

    1. **内容管理**:系统应该提供一个友好的后台界面,允许管理员轻松添加、编辑和删除电影信息,包括电影标题、简介、海报图片、演员列表、导演信息以及影片时长等。 2. **视频播放**:系统支持在线视频播放,这通常...

    全新SF授权系统源码 V3.7全开源无加密版本

    2023全新SF授权系统源码 V3.7全开源无加密版本。网站搭建很简单,大致看来一下应该域名解析后上传源码解压,访问域名/install就能直接安装。 程序功能简介: 1.盗版入库(26种) 2.快捷登录 3.采用layuiadmin框架 4....

    ASPCMS开源企业网站管理系统 UTF8 v2.7.3.zip

    ASPCMS 开源企业网站建设系统简介 ASPCMS开源企业网站建设系统是由上谷网络开发的全新内核的开源企业建站系统,能够胜任企业多种建站需求,并且支持模版自定义、支持扩展插件等等,能够在短时间内完成企业建站。 ...

    YidaCMS免费开源网站管理系统 JS1.8.2 build20180718

    YidaCMS免费开源网站管理系统,是一款简单、实用、高效的网站建站软件。YidaCMS免费开源网站管理系统是基于微软的WINDOWS IIS平台,采用ASP语言ACCESS和MSSQL双数据库开发完成。整体系统采用强大的HTML引擎,模板...

    星益云聚合收银台系统v1.45三网合一收款码源码全开源完整版

    《星益云聚合收银台系统v1.45三网合一收款码源码解析》 星益云聚合收银台系统v1.45是一款针对现代商业环境...然而,使用开源系统的同时,也需要关注安全性问题,定期更新和修复潜在的安全漏洞,以保护用户资金安全。

    ershouche_Seven_车二次贷款_二手车开源系统_

    开源系统则意味着所有源代码都可以公开查看、修改和分发,这为开发者提供了极大的灵活性和定制性,可以针对特定需求进行二次开发和优化。 在【压缩包子文件的文件名称列表】中,我们可以看到以下几个关键文件: 1....

    C#开源资源大汇总很不错

    ### C# 开源资源大汇总知识点 ...以上就是关于 C# 开源资源大汇总中的各个方面的详细介绍,这些资源涵盖了 AOP、Ajax、工作流、编辑器、博客系统、压缩以及图表等多个方面,对于 .NET 开发者来说是非常宝贵的资源。

    FOXPHP开源威客系统 v3.01.zip

    FOXPHP开源威客系统简介 FoxPHP威客系统是大型多用户多店铺,B2B,C2C,O2O悬赏系统,服务商(威客卖家)网上提供服务,雇主(买家)付费购买服务的在线交易平台。 FoxPHP威客系统应用于设计行业、程序开发、推广、起名、包...

    开源webgis:MapServer简介及其开发

    MapServer是一款强大的开源WebGIS(Web地理信息系统)服务器,它允许开发者将地图数据通过Web发布,使得用户可以通过网络浏览器访问并交互地图。MapServer的主要功能包括地图渲染、地理编码、查询服务以及WMS(Web ...

    开源GIS视频教程优化版

    课时10:3.PostGIS简介 课时11:4.PostGIS实践操作 课时12:课件资料 课时13:1.PostgreSQL扩展 课时14:2.PostgreSQL索引和PG的GIST注意事项 课时15:3.PostGIS raster 课时16:4.PostGIS开源开发 课时17:5.PostGIS...

    开源硬件入门指南之——树莓派(Raspberry Pi)系统安装

    ### 开源硬件入门指南之——树莓派(Raspberry Pi)系统安装 #### 知识点一:树莓派简介与应用领域 - **定义**:树莓派是一款微型计算机,具备完整操作系统,最初设计目的是为了教育目的而开发。 - **应用场景**:...

    DSO2O外卖订餐开源系统源码 v4.1.0.zip

    DSO2O外卖订餐开源系统是一款用于搭建在线订餐平台的开源软件,适用于毕业设计、计算机案例研究或建站模板。源码的版本为v4.1.0,这通常意味着它包含了开发者社区的最新改进和修复。下面将详细讨论这个系统的一些...

    。net开源项目。net开源项目

    - **简介**:DNN 是一个基于 ASP.NET 的开源内容管理系统 (CMS)。 - **功能**:支持网站构建、管理和维护。 - **官网**:[DotNetNuke](https://www.dotnetnuke.com/),[中国官网](http://www.dnnchina.net/)。 - **...

    开源搜索框架lucene介绍

    Lucene是一款非常优秀且成熟的开源全文索引检索工具包,它完全采用Java语言编写,由Doug Cutting于1999年创建,并于2001年10月捐赠给了Apache基金会,成为Apache基金的一个子项目。Lucene不仅开源免费,而且具有很高...

    IdeaCMS开源企业网站系统 v6.3.7 UTF8.zip

    IdeaCMS开源网站管理系统简介 IdeaCMS是由天一方网络科技有限公司基于Asp Access/Mssql环境下开发的快速建站系统。系统内置单页、新闻、图片、视频、下载、产品、招聘七大内容模型,可以满足目前多类网站,特别是...

    Asp.net校友录(同学录)系统源码_开源会员交友系统.rar

    【Asp.net校友录(同学录)系统源码】是一个基于.NET框架的开源会员交友平台,主要用于构建在线社交网络,让校友或者具有共同兴趣的人能够相互联系、分享信息和交流。该系统的核心功能包括用户注册、登录、个人信息...

    开源cms网站系统

    功能简介: 1、支持一键生成html; 2、支持google和百度地图生成; 3、RSS生成 4、URL自定义 5、增加按指定日期生成内容 6、自定义生成目录、文件名称 7、分类自定义模板、内容自定义模板 8、分类访问权限控制 9、...

Global site tag (gtag.js) - Google Analytics