CF4J: Collaborative Filtering for Java
Fernando Ortega, Bo Zhu, Jesus Bobadilla, Antonio Hernando
TL;DR
Recommender system research faces high costs to prototype and compare collaborative filtering methods. The paper introduces CF4J, a Java library that provides an in-memory data model, parallelized CF pipelines, and extensible components for both model-based and memory-based CF. It includes built-in baselines, quality measures, and a workflow that loads ratings, runs predictions, and exports results, with examples using MovieLens. Comparative analysis against LibRec and Mahout argues CF4J is particularly well-suited for CF research due to its extensibility, parallel framework, and accessibility for trial-and-error experimentation. The work has practical impact by reducing development time and enabling rigorous, repeatable CF experiments.
Abstract
Recommender Systems (RS) provide a relevant tool to mitigate the information overload problem. A large number of researchers have published hundreds of papers to improve different RS features. It is advisable to use RS frameworks that simplify RS researchers: a) to design and implement recommendations methods and, b) to speed up the execution time of the experiments. In this paper, we present CF4J, a Java library designed to carry out Collaborative Filtering based RS research experiments. CF4J has been designed from researchers to researchers. It allows: a) RS datasets reading, b) full and easy access to data and intermediate or final results, c) to extend their main functionalities, d) to concurrently execute the implemented methods, and e) to provide a thorough evaluation for the implementations by quality measures. In summary, CF4J serves as a library specifically designed for the research trial and error process.
