CF4J: Collaborative Filtering for Java

A Java's Collaborative Filtering library to carry out experiments in research of Collaborative Filtering based Recommender Systems

Overview

CF4J provides an object-oriented Java framework designed for the trial and error process for Collaborative Filtering research. It has been created to facilitate the experimentation of new Collaborative Filtering based recommendation algorithms. Its flexibility allows researchers to modify any Collaborative Filtering component or step. CF4J includes multiple published methods to be used as baselines. CF4J has been designed to simplify experiments codification. CF4J has been designed from researchers to researchers.

Features

In memory data storage
Information required by Collaborative Filtering (i.e. users, items and ratings) is stored in memory using efficient data structures.
Extensible pipeline
Collaborative Filtering execution pipeline can be easily extended using the abstract classes and methods provided.
Benchmark datasets
Most popular datasets used in Collaborative Filtering research has been preloaded.
Hyperparameter optimization
Models' hyperparameter can be quickly tuned using the included grid search utility.
Data and results analysis
Experimental results can be efficiently analyzed using the amazing plots.
State of the Art baselines
Some of the most referenced recommendations models has been included.
Compiles and runs with Java 8
Fully support of Java 8.
Open to the community
As an open source project, the repository in GitHub is fully available for other developers to extend and improve the library.

Citations