LibRec: 基於機器學習的大資料推薦系統

LiuXiaozeeee發表於2017-02-13

簡介:
LibRec 是領先的推薦系統Java開源演算法工具庫,覆蓋了70餘個各型別推薦演算法,有效解決評分預測和物品推薦兩大關鍵的推薦問題。推薦系統是機器學習和大資料技術的經典實際應用,旨在提供高效準確的個性化物品推薦,是現代Web應用的重要元件。
專案結構清晰,程式碼風格良好,測試充分,註釋與手冊完善。目前專案使用GPL3.0協議開源在github中,歡迎大家試用。

Librec: http://www.librec.net/
Github Repo: https://github.com/guoguibing/librec
Doc Link: http://wiki.librec.net/doku.php

特色功能:
 豐富的演算法集
截止到目前,LibRec已經整合了70餘個各型別推薦演算法。具體來說,分為基準演算法、協同過濾演算法、基於內容的演算法、情景感知演算法、混合演算法和其它擴充套件演算法等。在2.0版本中,增加了40餘個新演算法,包括概率圖模型、張量分解模型、因子分解機、基於評論的模型、深度學習模組(RBM)等新穎的演算法。團隊的每個核心開發人員往往負責某一型別演算法的開發和測試工作。
 良好的模組化
相對於LibRec 1.x,新版本在底層結構上做了非常深入的優化,尤其是模組化方面。新版本的推薦庫可分為以下三部分:資料預處理、推薦演算法和訓練後處理。在資料預處理模組,主要是資料的轉換與分割。支援兩種格式資料的輸入和轉換,一個是常見的 User-Item-Rating 格式,另一個是更通用的ARFF格式,使用者還可以擴充套件新型別的資料以增強現有的ARFF格式。在資料分割方面,支援按Ratio,Given-N,k-fold Cross validation, Leave-one-out等方式。在推薦模型模組,包括情景感知和演算法整合。情景感知指的是演算法依賴的情景資訊,如使用者相似度;演算法整合則是演算法的邏輯實現。在模型訓練之後,LibRec支援兩種操作:一是對測試集進行評估,得到如MAE、RMSE、AUC、MAP、NDCG等測試結果;二是對給定的使用者(或情景)進行評分預測或物品推薦等查詢操作,使用者可以通過實現filter介面自定義更多的過濾操作。
 靈活的框架配置
LibRec新版本承襲了基於配置的特點,但是有所更新和發展。新的配置實現參考了其它知名資料探勘工具庫的實現特點,在靈活性上得到了有效的提高。具體來說,我們抽取出很多公共的配置項,也為獨立的演算法保留了特定的配置引數。為了提高演算法的易配置性,我們為大多數演算法保留了可用的供參考配置設定。
 高效的執行效能
LibRec一直非常注重演算法執行的高效性,並儘可能地優化框架結構和演算法實現。與其它的推薦演算法庫相比,LibRec能夠在得到相當的推薦效能的前提下,在更短的時間內執行完成。
 簡單的框架用法
LibRec早期版本只能獨立執行,難以整合在其它工程中使用。由於良好的模組結構,新版本既可以單獨執行,也能夠作為依賴庫應用於其它工程中
 良好的可擴充套件性
良好的易擴充套件性。LibRec提供了很好的公共介面以便使用者進行個性化擴充套件。包括資料型別、推薦演算法、輸出型別、評估因子、過濾器等的擴充套件介面。使用LibRec開發新演算法,使用者通常只需要關注新演算法的邏輯實現,而不需要擔心其它部分的實現。

結構示意:
圖片描述

流程示意:
圖片描述

相關連結:
Librec 2.0 通識篇:
https://mp.weixin.qq.com/s/AB39ihVWXYHRbeODbGO-2g
匯入LibRec至Eclipse平臺:
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

歡迎關注Librec微信公眾號:
圖片描述

相關文章