LIBPMF -- A Library for Large-scale Parallel Matrix Factorization
Version 1.1 is released on April 27, 2013. We improve the efficiency, fix the compile issue on Mac machines, and support arbitrary input ordering of ratings.
The Program
LIBPMF implements the CCD++ algorithm, which aims to solve large-scale matrix factorization problems for recommender systems.
Download
We implemented the CCD++ in C++ with OpenMP.
Download the targball and extract the files. On a UNIX system with GCC 4.0 or above, compile the program using the provided Makefile
> make
[Usage]: omp-pmf-train [options] data_dir [model_filename]
options:
-s type : set type of solver (default 0)
0 -- CCDR1 with fundec stopping condition
-k rank : set the rank (default 10)
-n threads : set the number of threads (default 4)
-l lambda : set the regularization parameter lambda (default 0.1)
-t max_iter: set the number of iterations (default 5)
-T max_iter: set the number of inner iterations used in CCDR1 (default 5)
-e epsilon : set inner termination criterion epsilon of CCDR1 (default 1e-3)
-p do_predict: do prediction or not (default 0)
-q verbose: show information or not (default 0)
For example, to train with the data toy-example/ with 4 threads, you can use
> ./omp-pmf-train -n 4 toy-example/
Please see REAEME attached in the tarball for more details.
Please acknowledge the use of the code with a
citation.
Scalable Coordinate Descent Approaches to Parallel Matrix Factorization for Recommender Systems,
Hsiang-Fu Yu, Cho-Jui Hsieh, Si Si, and Inderjit S. Dhillon
IEEE International Conference of Data Mining, 2012.
Download:
[pdf]
@inproceedings{hfy12a,
title ={Scalable Coordinate Descent Approaches to Parallel
Matrix Factorization for Recommender Systems},
author={Hsiang-Fu Yu and Cho-Jui Hsieh and Si Si and Inderjit S. Dhillon},
booktitle = {IEEE International Conference of Data Mining},
year = {2012}
}
Bug reports and comments are
always appreciated. We would like to know who showed interest in our
work, feel free to contact us.