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

1. SVDFeature

上海交通大学 Apex实验室 【C++】

项目主页:http://svdfeature.apexlab.org/wiki/Main_Page

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

2. LibMF

台湾国立大学 【C++】

项目主页:http://www.csie.ntu.edu.tw/~cjlin/libmf/

项目内容:作者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

德国Konstanz大学 【C++】

项目主页:http://www.libfm.org/

项目内容: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

美国明尼苏达大学 GroupLens团队【Java】

项目主页:http://lenskit.grouplens.org/

项目内容:这个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

美国卡耐基·梅隆大学【C++】

项目主页:GraphLab - Collaborative Filtering

项目内容: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

Apache Software Foundation 【Java】

项目主页:http://mahout.apache.org/

项目内容: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

Mahout变种 【Java】

项目主页:http://myrrix.com/

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

8. EasyREC

Austrian Federal Ministry of Science and Research 【Java】

项目主页:http://easyrec.org/

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

9. Waffles

【C++】

项目主页:http://waffles.sourceforge.net/

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

10. RapidMiner

【Java】

项目主页:http://rapidminer.com/

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

十大开源推荐系统简介 [转自oschina]相关推荐

  1. 巨杉斩获“中国十大开源软件”,开源与企业级结合商业路线得到认可

    随着开源软件在行业中的地位不断深入,越来越多的企业开始将开源软件.分布式计算等新技术提升到了企业IT的战略层面.那么开源软件未来的发展趋势如何?整体行业如何保持旺盛的生命力与创新?这些都是很多厂商与用 ...

  2. 十大开源ERP点评 献给深水区的中小企业和CIO们

    原文地址:http://www.oschina.net/news/58437/top-10-erp-software 如今,企业资源规划(ERP)和客户关系管理(CRM)系统的必要性已经被各种组织和企 ...

  3. 视频相关十大开源项目

    视频相关十大开源项目 1. OpenH323项目 (★★★★★) 上榜理由:最著名的H.323开源协议栈,视频会议开发必备协议栈,强烈推荐 最著名的H.323开源协议栈,包含了全部的H.323协议功能 ...

  4. ML:从工程化思维分析—机器学习团队十大角色的简介(背景/职责/产出物):产品经理、项目经理、业务咨询顾问、数据科学家、ML研究员、数据工程师、ML工程师、DevOps/软件开发/交付工程师

    ML:从工程化思维分析-机器学习团队十大角色的简介(背景/职责/产出物):产品经理.项目经理.业务咨询顾问.数据科学家.ML研究员.数据工程师.ML工程师.DevOps/软件开发/交付工程师 背景:在 ...

  5. 十大开源项目_2014年十大开源项目

    十大开源项目 每年,我们都会收集Opensource.com涵盖的最佳开源项目中的最佳项目. 去年的10个项目清单在2014年全年指导着对技术有兴趣的人.现在,我们将为您设置2015年全新的开源项目清 ...

  6. 2023年十大开源php部落格系统有哪些? 【推荐】

    博客,又译为网络纪录文件.博客或部落阁等,是一种通常由个人管理.不定期张贴新的文章的网站. 那么怎么搭建部落格? PHP博客系统有哪些? 哪个博客系统好用? 下面PHP中文网就来给大家总结分享十大开源 ...

  7. 十大开源安卓应用程序的开发框架

    此文章来源于:http://os.51cto.com/art/201602/505169.htm,点击打开链接. 本文介绍了十款与安卓兼容的最佳移动应用程序框架.为了满足我的要求,它们必须支持HTML ...

  8. android开源2016_2016年十大开源项目

    android开源2016 每年涌现,壮大,改变和发展的精彩的开源项目继续给我们留下深刻的印象. 从我们的年度最佳项目清单中选出10个绝非易事,当然,这份简短的清单也不能囊括每个值得开展的项目. 为了 ...

  9. 视频会议十大开源编解码项目排行

    在视频会议领域,有许多可以值得参考的开源项目,这些开源项目有的是协议栈.有的是编码器或者是传输协议,由于视频会议系统是一个综合性的应用系统,里面包含功能较多,如能把这些开源项目选择性的加入我们的视频会 ...

最新文章

  1. 终于能用Google的TPU跑代码了,每小时6.5美元
  2. position属性及实现图片垂直居中
  3. 公司的API接口被刷了,那是因为你没这样做!
  4. getplotlyoffline(‘http://cdn.plot.ly/plotly-latest.min.js‘)无法下载如何解决
  5. 游戏场景中的建筑设计,专访暴雪娱乐首席美术师 PhilipKlevestav
  6. [Swift通天遁地]七、数据与安全-(12)使用Instruments Leaks工具检测内存泄露
  7. 香港中文大学(深圳)吴保元教授课题组博士后招聘
  8. 模块和包——Python
  9. 中南大学 科学计算与MATLAB语言 11矩阵求值
  10. IMDB TOP 250 电影榜单
  11. 爬虫实战——QQ空间自动点赞!这个脚本值三千五你信吗?
  12. eclipse-登录注册web项目-练
  13. 代码版本控制用SVN还是Git好?
  14. python 双冒号_python双冒号
  15. 有趣的 Google command line shell
  16. 无限循环 for(;;) 与 while(true) 的区别
  17. java超市购物系统类图,UML实例(四):在线购物系统顺序图
  18. 国内外常用数据库介绍
  19. 第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛错题笔记
  20. 【新媒体】现阶段新闻聚合的玩法 1

热门文章

  1. SRM6.1安装配置指南
  2. ops中set_sysclk set_clkdiv set_pll详解
  3. 利用 squid 反向代理提高网站性能
  4. hdu 1087 Super Jumping! Jumping! Jumping! 动态规划
  5. 几种常用范数与距离的关系
  6. Lucene.Net如何实现搜索结果分类统计功能
  7. 前端编码规范,个人感觉bootstrap总结的不错,拿出来给大家分享
  8. php魔术方法__SET __GET
  9. nginx upstream setting
  10. 通过一组RESTful API暴露CQRS系统功能