recommender system library for the CLR (.NET)
C# Perl Shell Makefile


MyMediaLite - a recommender system algorithm library

 - Dozens of different recommendation methods,
   - methods can use collaborative, attribute/content, and relational data,
 - support for incremental training for most models.
 - Ready to use:
   - Includes evaluation routines for rating and item prediction;
     quality measures MAE, NAME, RMSE, CBD, AUC, MAP, precision@N, recall@N,
     NDCG, MRR; and
   - command line tools that read a simple text-based input format.
 - Compactness: Core library is about 275 KB "big".
 - Portability: Written in C#, for the .NET platform;
   runs on every architecture where Mono works: Linux, Windows, Mac OS X.
 - Freedom: Free/Open Source software, distributed under the terms of the
            GNU General Public License (GPL).

Feedback and Contributions
We are always happy about feedback, and encourage MyMediaLite's users to
contribute code to the project.

Just fork it on GitHub and send pull requests!

Bugs and feature requests can be reported on our mailing list or in our issue

See doc/Installation for installation instructions.

See doc/ and the website for more documentation.


Citing MyMediaLite
If you use MyMediaLite for your research, it would be nice to acknowledge it
in your papers by citing the following paper:

Zeno Gantner, Steffen Rendle, Christoph Freudenthaler, Lars Schmidt-Thieme:
MyMediaLite: A Free Recommender System Library. RecSys 2011

  author    = {Zeno Gantner and Steffen Rendle and Christoph Freudenthaler and Lars Schmidt-Thieme},
  title     = {{MyMediaLite}: A Free Recommender System Library},
  booktitle = {5th ACM International Conference on Recommender Systems (RecSys 2011)},
  year      = 2011,
  location  = {Chicago, USA}

Please inform us about if you have a publication that uses
this software, so we can list it on MyMediaLite's website:
Just send an e-mail to

Thanks to the following people, who provided valuable feedback, code, or other
kinds of assistance:
Roberto Abalde, Nicholas Ampazis, Thorsten Angermann, Suhrid Balakrishnan,
Alejandro Bellogín, Christian Brauch, Fu Changhong, Subramanyeshwar Cherukuri,
Simon Dooms, Lucas Drumond, Michael Ekstrand, Christoph Freudenthaler,
Zeno Gantner, Jagadeesh Gorla, Josif Grabocka, Mark Graus, Guibing Guo,
Andreas Hoffmann, Tomas Horvath, Kenneth Hoste, Frantisek Hrdina, Jia Huang,
Nicolas Hug, Dominik Imrich, Dietmar Jannach, Peng Jiang, KwangSeob Kim,
Artus Krohn-Grimberghe, Tobias Lang, Christina Lichtenthäler, Damir Logar
Marcelo Manzato, Brian McFee, Greg Najda, Chris Newell, Thai-Nghe Nguyen,
Dimitris Paraschakis, Simon Renaud, Steffen Rendle, Marco Ribeiro,
Roland Richter, Saurabh S., Sebastian Schelter, Lars Schmidt-Thieme, Yue Shi,
Jordan Silva, Jessica Tölke, Tom Tung,Pieter-Jan Verbruggen, Julien Verplanken,
Elvio Vicosa, João Vinagre, Oleksandr Vitvitskyi, Yongfeng Wang,
Lina Weichbrodt, Cees Wesseling, Yong Zheng, GitHub users jkleint and NEBabylon.

This work was funded by the European Commission FP7 project MyMedia
(Dynamic Personalization of Multimedia,
under the grant agreement no. 215006.

Copyright & Licensing
Copyright (C) 2010, 2011, 2012, 2013, 2015, 2016 The MyMediaLite contributors

MyMediaLite is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

MyMediaLite is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with MyMediaLite.  If not, see <>.

This package contains Mono.Options, C5, the Math.NET Numerics library,
a C# port of LIBSVM, and NUnit.

The original packages can be found here:

See doc/ComponentLicenses for more information about their licensing terms.