在經(jīng)過(guò)一年多的開(kāi)發(fā)工作之后,LibRec 3.0 版本終于發(fā)布了。LibRec是一個(gè)基于 Java 的開(kāi)源算法工具庫(kù),覆蓋了 70 余個(gè)各類型推薦算法,可以有效解決評(píng)分預(yù)測(cè)和物品推薦兩大關(guān)鍵的推薦問(wèn)題,目前已經(jīng)在 GitHub 上收獲了 1457 個(gè) Star,612 個(gè) Fork。
2012 年,還在新加坡南洋理工大學(xué)攻讀博士學(xué)位的郭貴冰開(kāi)始關(guān)注推薦系統(tǒng)。當(dāng)時(shí),MyMedialite 是最知名的推薦工具庫(kù)之一。作為初學(xué)者,郭貴冰一邊看論文,一邊看MyMedialite 的代碼,然后在它的基礎(chǔ)上實(shí)現(xiàn)我自己的研究算法。
然而,很快郭貴冰就意識(shí)到一個(gè)問(wèn)題,在 Linux 服務(wù)器上跑 MyMedialite 會(huì)非常麻煩,而且在并行計(jì)算的時(shí)候諸多限制(相對(duì)于 Windows 平臺(tái)),在跨平臺(tái)方面存在不足。不得已,郭貴冰只好把自己的程序改成熟悉的 Java 代碼,于是得到是最原始的 LibRec。隨著研究和學(xué)習(xí)的深入,更多的算法慢慢添加到了 LibRec 中,并托管到 GitHub 以便版本控制。
2015 年 11 月,郭貴冰以引進(jìn)人才的方式加入東北大學(xué)軟件學(xué)院,任職副教授。由于精力所限,郭貴冰開(kāi)始組建開(kāi)源團(tuán)隊(duì)。2016 年 1 月,郭貴冰、王宇峰等人組建起了最初的 LibRec 核心開(kāi)發(fā)團(tuán)隊(duì),并不斷擴(kuò)充團(tuán)隊(duì)。
2016 年 12 月,郭貴冰團(tuán)隊(duì)發(fā)布了 LibRec 2.0 版本。經(jīng)過(guò)一年多的開(kāi)發(fā)之后,郭貴冰團(tuán)隊(duì)又在今日發(fā)布了 LibRec 3.0 版本。
▌LibRec 的特點(diǎn)
LibRec是基于 Java 的開(kāi)源算法工具庫(kù),覆蓋了 70 余個(gè)各類型推薦算法,有效解決評(píng)分預(yù)測(cè)和物品推薦兩大關(guān)鍵的推薦問(wèn)題。
1)豐富的算法
截止到目前,LibRec已經(jīng)集成了70余個(gè)推薦算法。具體包括基準(zhǔn)算法,協(xié)同過(guò)濾算法,基于內(nèi)容的算法,基于情景感知的算法,混合算法以及其他擴(kuò)展算法等。同時(shí)算法中也包含了概率圖模型,張量分解模型,因子分解機(jī),深度學(xué)習(xí)中的 RBM 模塊等算法。LibRec 中包含的所有算法均已歸類并注明實(shí)現(xiàn)參考文獻(xiàn)。
2)良好的模塊化
目前LibRec中最主要的模塊為DataModel,Recommender,Evaluator與Filter,分別負(fù)責(zé)數(shù)據(jù)的預(yù)處理,推薦模型的訓(xùn)練,模型的執(zhí)行,輸出結(jié)果的過(guò)濾。
3)靈活的框架配置
不同算法的配置項(xiàng)因配置項(xiàng)不同,所以每一個(gè)推薦算法分別對(duì)應(yīng)一個(gè)配置文件。方便管理的同時(shí)也方便用戶根據(jù)算法的執(zhí)行結(jié)果來(lái)調(diào)參。目前 LibRec 已經(jīng)針對(duì)所有算法配置好了默認(rèn)參數(shù)。
4)簡(jiǎn)單的框架用法
LibRec 分別提供了 Linux 和 Windows 版本的命令行工具。用戶可以根據(jù) LibRec 提供的手冊(cè)來(lái)編寫配置文件,并使用命令行來(lái)執(zhí)行算法。最終評(píng)估結(jié)果在終端中輸出,推薦結(jié)果根據(jù)配置文件生成在相應(yīng)目錄下。
▌LibRec 3.0
經(jīng)過(guò)一年多的開(kāi)發(fā),LibRec 3.0 在原版本的基礎(chǔ)上增加了許多新特性,特別是對(duì)如今流行的深度學(xué)習(xí)、集成學(xué)習(xí)等算法的支持。
1)深度學(xué)習(xí)算法
深度學(xué)習(xí)能夠使用RNN循環(huán)神經(jīng)網(wǎng)絡(luò)對(duì)動(dòng)態(tài)或者序列數(shù)據(jù)進(jìn)行建模,并且可以更加準(zhǔn)確的學(xué)習(xí)user和item的特征。DeepLearning4J(DL4J)是一套基于Java語(yǔ)言的神經(jīng)網(wǎng)絡(luò)工具包,可以構(gòu)建、定型和部署神經(jīng)網(wǎng)絡(luò)。DL4J 與 Hadoop 和 Spark 集成,支持分布式 CPU 和 GPU,為商業(yè)環(huán)境(而非研究工具目的)所設(shè)計(jì)。結(jié)合 DL4J,郭貴冰團(tuán)隊(duì)開(kāi)發(fā)了深度學(xué)習(xí)算法模塊。
2)POI 算法
POI 算法主要是指對(duì)用戶興趣點(diǎn)推薦(Point Of Interest)。根據(jù)用戶在社交網(wǎng)絡(luò)中的興趣和地理位置信息,分析用戶的標(biāo)簽屬性和地理偏好,給用戶推薦合適的出行地點(diǎn)?;诘乩砦恢茫F冰團(tuán)隊(duì)實(shí)現(xiàn)了 POI 算法模塊。
3)增量更新算法
增量更新主要是提高推薦算法時(shí)效性,傳統(tǒng)的個(gè)性化推薦系統(tǒng),采用定期離線對(duì)數(shù)據(jù)進(jìn)行分析的做法來(lái)更新模型。實(shí)時(shí)個(gè)性化推薦實(shí)時(shí)分析用戶產(chǎn)生的數(shù)據(jù),可以更準(zhǔn)確地為用戶進(jìn)行推薦,同時(shí)根據(jù)實(shí)時(shí)的推薦結(jié)果進(jìn)行反饋,更好地改進(jìn)推薦模型。增量更新模塊實(shí)現(xiàn)了部分推薦算法的增量更新功能。
4)集成學(xué)習(xí)算法
集成學(xué)習(xí)在機(jī)器學(xué)習(xí)算法中具有較高的準(zhǔn)確率,不足之處就是模型的訓(xùn)練過(guò)程可能比較復(fù)雜,效率不是很高。集成學(xué)習(xí)是使用一系列學(xué)習(xí)器進(jìn)行學(xué)習(xí),并使用某種規(guī)則把各個(gè)學(xué)習(xí)結(jié)果進(jìn)行整合從而獲得比單個(gè)學(xué)習(xí)器更好的學(xué)習(xí)效果的一種機(jī)器學(xué)習(xí)方法。增量更新模塊實(shí)現(xiàn)了部分推薦算法的增量更新功能。
-
JAVA
+關(guān)注
關(guān)注
20文章
2989瀏覽量
109730 -
GitHub
+關(guān)注
關(guān)注
3文章
483瀏覽量
17686
原文標(biāo)題:集合70多種推薦算法,東北大學(xué)老師用Java寫了一個(gè)開(kāi)源庫(kù),在GitHub上收獲近1500個(gè)Star
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何使用mbedtls開(kāi)源庫(kù)
STM32 Foc開(kāi)源算法是什么
算法開(kāi)源相關(guān)資料下載
基于FCM算法的隱寫分析算法綜合評(píng)估
基于三元Golay隱寫碼的快速隱寫算法
Java數(shù)據(jù)庫(kù)連接及網(wǎng)絡(luò)程序設(shè)計(jì)
百度開(kāi)源項(xiàng)目推薦java圖標(biāo)庫(kù)

Oracle開(kāi)源Java EE
多種區(qū)塊鏈挖礦算法開(kāi)源硬件

評(píng)論