This is the official repository for the 2017 Recommender Systems course at Polimi.
This repo is obsolete, please refer to the updated version HERE
- SLIM BPR: Uses a Cython tree-based sparse matrix, suitable for datasets whose number of items is too big for the dense similarity matrix to fit in memory. Dense similarity is also supported.
- MF BPR: Matrix factorization optimizing BPR
- FunkSVD: Matrix factorization optimizing RMSE
- AsymmetricSVD
- Item-based KNN collaborative
- Item-based KNN content
- User-based KNN
- SLIM_RMSE: SLIM solver using ElasticNet. The solver fits every column in the similarity matrix independently
- Cosine Similarity, Adjusted Cosine, Pearson Correlation, Jaccard Correlation, Tanimoto Coefficient: Implemented both in Python and Cython with the same interface, Base.cosine_similarity and Base.Cython.cosine_similarity
- MAP, recall, precision, ROC-AUC, MRR, RR, NDCG to be used in testing
- Movielens10MReader: reads movielens 10M rating file, splits it into three URMs for train, test and validation.
Cython code is already compiled for Linux. To recompile the code just set the recompile_cython flag to True. For other OS such as Windows the c-imported numpy interface might be different (e.g. return tipe long long insead of long) therefore the code could require modifications in oder to compile.