Skip to content

MaurizioFD/RecSys_Course_2017

Repository files navigation

RecSys Course 2017

This is the official repository for the 2017 Recommender Systems course at Polimi.

This repo is obsolete, please refer to the updated version HERE

This repo contains a Cython implementation of:

  • 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

This repo contains a Python implementation of:

  • 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

This repo also provides an implementation of:

  • 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.

In "all_algorithms.py" you can see how to use every model.

About

DEPRECATED This is the official repository for the 2017 Recommender Systems course at Polimi.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published