Exploration makes surprise

A Java Library for Recommender Systems


Recommender systems have been well recognized as a typical application of Big Data and Machine Learning. LibRec is a GPL-licensed Java library (Java version 1.7+ required), aiming to solve two classic tasks in recommender systems, i.e., rating prediction and item ranking by implementing a suite of state-of-the-art recommendation algorithms. It has been listed by the RecSys Wiki (see the LibRec page).

LibRec Modules Fig.1 LibRec Modules

The general procedure of LibRec can be illustrated as follows.
LibRec Procedure Fig.2 LibRec Processing Flow


Rich Algorithms
More than 70 recommendation algorithms have been implemented, and more will be added in the LibRec.
Module Composition
LibRec has six main components including data split, conversion, similarity, algorithms, evaluators and filters.
Flexible Configuration
LibRec is based on low coupling, flexible and either external textual or internal API configuration.
High Performance
LibRec has more efficient implementations than other counterparts while producing comparable accuracy.
Simple Usage
LibRec can get executed in a few lines of codes, and a number of demos are provided for easy start.
Easy Expansion
LibRec provides a set of recommendation interfaces for easy expansion to implement new recommenders.


Research Publications

A number of papers adopting LibRec can be found here.

  • Guibing Guo, Jie Zhang, Zhu Sun and Neil Yorke-Smith, LibRec: A Java Library for Recommender Systems, in Posters, Demos, Late-breaking Results and Workshop Proceedings of the 23rd Conference on User Modelling, Adaptation and Personalization (UMAP), 2015.
  • G. Guo, J. Zhang and N. Yorke-Smith, TrustSVD: Collaborative Filtering with Both the Explicit and Implicit Influence of User Trust and of Item Ratings, in Proceedings of the 29th AAAI Conference on Artificial Intelligence (AAAI), 2015, 123-129.
Industrial Application
Please contact us for an industrial application of LibRec via guogb@swc.neu.edu.cn

Follow Us

For those who prefer to chat via WeChat:
For those who prefer to chat via Weibo: