From RecSysWiki
Jump to navigation Jump to search

mrec is a BSD licenced Python package developed at Mendeley to support recommender systems development and evaluation.

The package contains implementations of methods which work well in the most common real world recommendation scenario i.e. top-n recommendation based on implicit feedback. It also supplies tools for consistent and reproducible evaluation of recommendations produced using mrec itself or with any other framework. Last but not least it offers an example of how to use IPython.parallel to run the same code in parallel either on the cores of a single machine or on a cluster.

mrec includes base class implementations designed to make it very easy to add further recommender algorithms based either on matrix factorization or item similarity computation. Please do contribute!


  • a (relatively) efficient implementation of the SLIM item similarity method.<ref>Mark Levy, Kris Jack (2013). Efficient Top-N Recommendation by Linear Regression. In Large Scale Recommender Systems Workshop in RecSys'13</ref>
  • an implementation of Hu, Koren & Volinsky's WRMF weighted matrix factorization for implicit feedback.<ref>Hu, Y., Koren, Y., & Volinsky, C. (2008). Collaborative filtering for implicit feedback datasets. In IEEE ICDM'08</ref>
  • a matrix factorization model that optimizes the Weighted Approximately Ranked Pairwise (WARP) ranking loss.<ref>Weston, J., Bengio, S., & Usunier, N. (2010). Large scale image annotation: learning to rank with joint word-image embeddings. Machine learning, 81(1), 21-35</ref>
  • a hybrid model optimizing the WARP loss for a ranking based jointly on a user-item matrix and on content features for each item.
  • utilities to train models and make recommendations in parallel.
  • utilities to prepare datasets and compute quality metrics.

Documentation for mrec can be found at

The source code is available at