日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

推荐系统——开源代码

發(fā)布時(shí)間:2025/3/16 windows 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 推荐系统——开源代码 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近這兩年推薦系統(tǒng)特別火,本文搜集整理了一些比較好的開源推薦系統(tǒng),即有輕量級(jí)的適用于做研究的SVDFeature、LibMF、LibFM等,也有重量級(jí)的適用于工業(yè)系統(tǒng)的 Mahout、Oryx、EasyRecd等

#1.SVDFeature

主頁:http://svdfeature.apexlab.org/wiki/Main_Page?語言:C++
一個(gè)feature-based協(xié)同過濾和排序工具,由上海交大Apex實(shí)驗(yàn)室開發(fā),代碼質(zhì)量較高。在KDD Cup 2012中獲得第一名,KDD Cup 2011中獲得第三名,相關(guān)論文 發(fā)表在2012的JMLR中,這足以說明它的高大上。
SVDFeature包含一個(gè)很靈活的Matrix Factorization推薦框架,能方便的實(shí)現(xiàn)SVD、SVD++等方法, 是單模型推薦算法中精度最高的一種。SVDFeature代碼精煉,可以用 相對(duì)較少的內(nèi)存實(shí)現(xiàn)較大規(guī)模的單機(jī)版矩陣分解運(yùn)算。另外含有Logistic regression的model,可以很方便的用來進(jìn)行ensemble。

#2.LibMF

主頁:http://www.csie.ntu.edu.tw/~cjlin/libmf/?語言:C++
作者Chih-Jen Lin來自大名鼎鼎的臺(tái)灣國(guó)立大學(xué),他們?cè)跈C(jī)器學(xué)習(xí)領(lǐng)域享有盛名,近年連續(xù)多屆KDD Cup競(jìng)賽上均 獲得優(yōu)異成績(jī),并曾連續(xù)多年獲得冠軍。臺(tái)灣大學(xué)的風(fēng)格非常務(wù)實(shí),業(yè)界常用的LibSVM, Liblinear等都是他們開發(fā)的,開源代碼的效率和質(zhì)量都非常高。
LibMF在矩陣分解的并行化方面作出了很好的貢獻(xiàn),針對(duì)SGD(隨即梯度下降)優(yōu)化方法在并行計(jì)算中存在的locking problem和memory discontinuity問題,提出了一種 矩陣分解的高效算法FPSGD(Fast Parallel SGD),根據(jù)計(jì)算節(jié)點(diǎn)的個(gè)數(shù)來劃分評(píng)分矩陣block,并分配計(jì)算節(jié)點(diǎn)。系統(tǒng)介紹可以見這篇?論文(ACM Recsys 2013的 Best paper Award)。

#3.LibFM

主頁:http://www.libfm.org/?語言:C++
作者是德國(guó)Konstanz大學(xué)的Steffen Rendle,他用LibFM同時(shí)玩轉(zhuǎn)KDD Cup 2012 Track1和Track2兩個(gè)子競(jìng)賽單元,都取得了很好的成績(jī),說明LibFM是非常管用的利器。
LibFM是專門用于矩陣分解的利器,尤其是其中實(shí)現(xiàn)了MCMC(Markov Chain Monte Carlo)優(yōu)化算法,比常見的SGD優(yōu)化方法精度要高,但運(yùn)算速度要慢一些。當(dāng)然LibFM中還 實(shí)現(xiàn)了SGD、SGDA(Adaptive SGD)、ALS(Alternating Least Squares)等算法。

#4.Lenskit

主頁:http://lenskit.grouplens.org/?語言Java

這個(gè)Java開發(fā)的開源推薦系統(tǒng),來自美國(guó)的明尼蘇達(dá)大學(xué)的GroupLens團(tuán)隊(duì),也是推薦領(lǐng)域知名的測(cè)試數(shù)據(jù)集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等模塊,主要實(shí)現(xiàn)了k-NN,SVD,Slope-One等 典型的推薦系統(tǒng)算法。

5.GraphLab


主頁:GraphLab - Collaborative Filtering?語言:C++
Graphlab是基于C++開發(fā)的一個(gè)高性能分布式graph處理挖掘系統(tǒng),特點(diǎn)是對(duì)迭代的并行計(jì)算處理能力強(qiáng)(這方面是hadoop的弱項(xiàng)),由于功能獨(dú)到,GraphLab在業(yè)界名聲很響。 用GraphLab來進(jìn)行大數(shù)據(jù)量的random walk或graph-based的推薦算法非常有效。Graphlab雖然名氣比較響亮(CMU開發(fā)),但是對(duì)一般數(shù)據(jù)量的應(yīng)用來說可能還用不上。
GraphLab主要實(shí)現(xiàn)了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) 開發(fā)的一個(gè)全新的開源項(xiàng)目,其主要目標(biāo)是創(chuàng)建一些可伸縮的機(jī)器學(xué)習(xí)算法,供開發(fā)人員在 Apache 在許可下免費(fèi) 使用。Mahout項(xiàng)目是由 Apache Lucene社區(qū)中對(duì)機(jī)器學(xué)習(xí)感興趣的一些成員發(fā)起的,他們希望建立一個(gè)可靠、文檔翔實(shí)、可伸縮的項(xiàng)目,在其中實(shí)現(xiàn)一些常見的用于 聚類和分類的機(jī)器學(xué)習(xí)算法。該社區(qū)最初基于 Ngetal. 的文章 “Map-Reduce for Machine Learning on Multicore”,但此后在發(fā)展中又并入了更多廣泛的機(jī)器學(xué)習(xí) 方法,包括Collaborative Filtering(CF),Dimensionality Reduction,Topic Models等。此外,通過使用 Apache Hadoop 庫(kù),Mahout 可以有效地?cái)U(kuò)展到云中。
在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開發(fā)的一個(gè)試驗(yàn)性質(zhì)的推薦系統(tǒng)。目前Myrrix已經(jīng)是一個(gè)完整的、實(shí)時(shí)的、可擴(kuò)展的集群和推薦系統(tǒng),主要 架構(gòu)分為兩部分:服務(wù)層:在線服務(wù),響應(yīng)請(qǐng)求、數(shù)據(jù)讀入、提供實(shí)時(shí)推薦;計(jì)算層:用于分布式離線計(jì)算,在后臺(tái)使用分布式機(jī)器學(xué)習(xí)算法為服務(wù)層更新機(jī)器學(xué)習(xí) 模型。Myrrix使用這兩個(gè)層構(gòu)建了一個(gè)完整的推薦系統(tǒng),服務(wù)層是一個(gè)HTTP服務(wù)器,能夠接收更新,并在毫秒級(jí)別內(nèi)計(jì)算出更新結(jié)果。服務(wù)層可以單獨(dú)使用,無需 計(jì)算層,它會(huì)在本地運(yùn)行機(jī)器學(xué)習(xí)算法。計(jì)算層也可以單獨(dú)使用,其本質(zhì)是一系列的Hadoop jobs。目前Myrrix以被 Cloudera 并入Oryx項(xiàng)目。

#8.EasyRec


主頁:http://easyrec.org/?語言:Java
EasyRec是一個(gè)易集成、易擴(kuò)展、功能強(qiáng)大且具有可視化管理的推薦系統(tǒng),更像一個(gè)完整的推薦產(chǎn)品,包括了數(shù)據(jù)錄入模塊、管理模塊、推薦挖掘、離線分析等。 EasyRec可以同時(shí)給多個(gè)不同的網(wǎng)站提供推薦服務(wù),通過tenant來區(qū)分不同的網(wǎng)站。架設(shè)EasyRec服務(wù)器,為網(wǎng)站申請(qǐng)tenant,通過tenant就可以很方便的集成到 網(wǎng)站中。通過各種不同的數(shù)據(jù)收集(view,buy.rating)API收集到網(wǎng)站的用戶行為,EasyRec通過離線分析,就可以產(chǎn)生推薦信息,您的網(wǎng)站就可以通過 Recommendations和Community Rankings來進(jìn)行推薦業(yè)務(wù)的實(shí)現(xiàn)。

#9.Waffles


主頁:http://waffles.sourceforge.net/?語言:C++
Waffles英文原意是蜂蜜甜餅,在這里卻指代一個(gè)非常強(qiáng)大的機(jī)器學(xué)習(xí)的開源工具包。Waffles里包含的算法特別多,涉及機(jī)器學(xué)習(xí)的方方面面,推薦系統(tǒng)位于 其中的Waffles_recommend tool,大概只占整個(gè)Waffles的1/10的內(nèi)容,其它還有分類、聚類、采樣、降維、數(shù)據(jù)可視化、音頻處理等許許多多工具包,估計(jì) 能與之媲美的也就數(shù)Weka了。

#10.RapidMiner


主頁:http://rapidminer.com/?語言:Java
RapidMiner(前身是Yale)是一個(gè)比較成熟的數(shù)據(jù)挖掘解決方案,包括常見的機(jī)器學(xué)習(xí)、NLP、推薦、預(yù)測(cè)等方法(推薦只占其中很小一部分),而且?guī)в蠫UI的 數(shù)據(jù)分析環(huán)境,數(shù)據(jù)ETL、預(yù)處理、可視化、評(píng)估、部署等整套系統(tǒng)都有。另外RapidMiner提供commercial license,提供R語言接口,感覺在向著一個(gè)商用的 數(shù)據(jù)挖掘公司的方向在前進(jìn)。
======================================分割線======================================

開源的推薦系統(tǒng)大大小小的還有很多,以上只是介紹了一些在學(xué)術(shù)界和工業(yè)界比較流行的TOP 10,而且基本上都是用C++/Java實(shí)現(xiàn)的,在參考資料[1]、[2]中還提 到的有Crab(Python)、CofiRank(C++)、MyMediaLite(.NET/C#)、PREA(Java)、Python-recsys(Python)、Recommendable(Ruby)、Recommenderlab(R)、 Oryx(Java)、recommendify(Ruby)、RecDB(SQL)等等,當(dāng)然GitHub上還有更多。。。即有適合單機(jī)運(yùn)行的,也有適合集群的。雖然使用的編程語言不同,但實(shí)現(xiàn) 的算法都大同小異,主要是SVD、SGD、ALS、MF、CF及其改進(jìn)算法等。




</div></div>

總結(jié)

以上是生活随笔為你收集整理的推荐系统——开源代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。