當前位置:
首頁 > 新聞 > 資源 | LibRec:領先的推薦系統開源庫

資源 | LibRec:領先的推薦系統開源庫

機器之心發布

作者:LibRec



LibRec 是一個領先的推薦系統開源演算法庫,它覆蓋了 70 余個各類型的推薦演算法,有效地解決了評分預測和物品推薦兩大關鍵的推薦問題。該項目結構清晰、代碼風格良好、測試充分、注釋與手冊完善,基於 GPL3.0 協議代碼開源。

LibRec官網:http://www.librec.net

GitHub 鏈接: https://github.com/guoguibing/librec

近年來,推薦系統取得了快速發展,數以百計的新演算法、新模型不斷湧現。然而,這不但給剛剛接觸推薦演算法的新人造成無所適從,而且也給那些有經驗的人士帶來不少困擾。不同的人對演算法的理解可能大相徑庭,更不用說是具體的實現了。因此,為了解決演算法實現和共享的問題,LibRec 團隊設計實現了基於 Java 的跨平台推薦框架,並以 GPL3.0 協議在 GitHub 上開源共享。

經過幾年的發展,團隊成員上千次的代碼提交,最新的版本代碼是 2.0。到目前為止,LibRec 包含了矩陣分解、概率圖模型等多種類型的 70 余個推薦演算法,10 個相似度度量方法,4 個 rating 評估指標與 10 個 ranking 評估指標,5 大類數據的分割方式以及 2 種不同格式的數據讀取,滿足絕大部分推薦系統的需求。因此,LibRec 具有演算法豐富、易於擴展、簡單易用等突出特點。

資源 | LibRec:領先的推薦系統開源庫

LibRec 項目的系統結構如圖所示。其中,Data Structure 包括常用的數據結構,如 SparseMatrix、SparseVector 等;Data Model 主要負責數據的讀取、分割、導入其他數據如社交關係等;Recommender 主要負責模型的訓練 (Inference),預測 (Prediction),相似度衡量 (Similarity),以及模型的持久化 (Persistence);最終結果可以進行評估,或者過濾之後輸出到文件。總體來說,LibRec 項目擁有良好的結構,不同模塊之間耦合度非常低,針對某個模塊的開發通常無需關心其他模塊的實現。以實現新的分割方式為例,用戶只需繼承 Splitter 介面抽象類,根據相應的邏輯重寫 splitData() 方法即可。

資源 | LibRec:領先的推薦系統開源庫

基於 LibRec 來運行推薦演算法就如同搭積木一樣簡單,其工作流程如上圖所示。首先設置好相關參數配置,然後實例化數據並測試分割,調用推薦演算法訓練學習,最後對推薦結果進行過濾和評估。示常式序如下所示:

public static voidmain(String[] args) throwsException {

// build data model

Configuration conf = newConfiguration();

conf.set("dfs.data.dir", "path/to/data/folder/");

Randoms.seed(1);

TextDataModel dataModel = newTextDataModel(conf);

dataModel.buildDataModel();

// build recommender context

RecommenderContext context = newRecommenderContext(conf, dataModel);

// build similarity

conf.set("rec.recommender.similarity.key","item");

RecommenderSimilarity similarity = newPCCSimilarity();

similarity.buildSimilarityMatrix(dataModel);

context.setSimilarity(similarity);

// build recommender

conf.set("rec.neighbors.knn.number", "5");

Recommender recommender = newItemKNNRecommender();

recommender.setContext(context);

// run recommender algorithm

recommender.recommend(context);

// evaluate the recommended result

RecommenderEvaluator evaluator = newRMSEEvaluator();

System.out.println("RMSE:"+ recommender.evaluate(evaluator));

}

這段示常式序調用了 ItemKNN 演算法,採用 RMSE 對結果進行評估。用戶也可以根據實際應用,採用其他演算法與評估器來進行推薦計算。LibRec 的參數配置是在配置文件中設定的,主要分為兩部分。一部分是流程控制參數(默認載入),與推薦演算法無關;另一部分是與推薦演算法相關的參數。LibRec 項目仍在快速開發中,未來會繼續增強核心模塊的功能,添加與深度學習相關的演算法實現,並擴展至 Spark 等平台。

歡迎關注公眾號【LibRec】,獲取 LibRec 和推薦系統相關的研究進展。公眾號會定期推送最新的開發進展,近期還推出了「每周演算法」欄目,解讀推薦領域比較重要的研究工作和技術發展,廣受讀者朋友們的喜愛。也歡迎大家多多貢獻代碼演算法,提交 pullRequest。LibRec 的發展離不開大家的關注和支持,也希望聚合眾人的力量在推薦系統領域創建合作共享、協同創新的開源氛圍,推動推薦演算法的進一步實際應用和推廣。

資源 | LibRec:領先的推薦系統開源庫

相關鏈接:

Librec 通識篇: https://mp.weixin.qq.com/s/AB39ihVWXYHRbeODbGO-2g

LibRec 工程導入: https://mp.weixin.qq.com/s/OyYn5_4GYAbF0L0SFgsHVQ

LibRec 命令行操作: https://mp.weixin.qq.com/s/xnkg6BGyUUKmbs009p8XCw

Librec 團隊一周年紀: https://mp.weixin.qq.com/s/vDnca1FMW9vVrFDgti_1IA

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

1萬8千塊GPU:橡樹嶺實驗室即將推出Summit超級計算機
出門問問攜手中科院自動化研究所,共建語言智能與人機交互實驗室
深度神經網路全面概述:從基本概念到實際模型和硬體基礎
機器人控制領域新進展:用磁場控制的軟體機器人
Facebook提升數十億用戶體驗的秘密武器:梯度提升決策樹

TAG:機器之心 |

您可能感興趣

Qualcomm宣布業界領先企業將打造驍龍支持的Windows 10 PC
領先 iPhone - 中國廠商 Vivo 於 WMC 展示全新「隱形指紋技術」
三星搶先在印度推出Samsung Pay 領先蘋果和谷歌
分析師指 iPhone X 的 TrueDepth 鏡頭為 Apple 帶來 2.5 年領先優勢
Illumina 新創加速器,強化 Illumina 在基因定序產業的領先地位
OLED助力OPPO和vivo贏得領先優勢
全面領先Facebook google,中國明年開始發射衛星建造天基互聯網 組圖
iPhone 8問題頻出 iPhone X原深感相機將領先安卓2年
iPhone X Face ID傲視Android群雄:領先兩年半
AMD 32核Naples處理器沒什麼創新:Intel單核領先
AMD再次公開Vega顯卡性能,Deepbench大幅領先Tesla P100
Mellanox攜手ADINNO打造業內領先的IP雲化傳輸媒體解決方案
看好 iPhoneX,掀換機,分析師:TrueDepth 相機領先安卓 2.5年
專註健身 Apple Watch趕超Fitbit領先全球可穿戴市場
J-S Cournoyer:加拿大,領先的人工智慧樞紐的興起
【行業】iPhoneX的Face ID領先安卓18個月?區別到底在哪
領先業界vivo Xplay6竟暗藏此項Wi-Fi黑科技
Galaxy Note8進一步鞏固三星創新的領先地位
CA Technologies得到領先獨立研究公司認可