Project details for MyMediaLite

Screenshot MyMediaLite 3.06

by zenog - December 28, 2012, 14:33:38 CET [ Project Homepage BibTeX BibTeX for corresponding Paper Download ]

view (36 today), download ( 3 today ), 1 subscription

Description:

MyMediaLite is a lightweight, multi-purpose library of recommender system algorithms.

It addresses the two most common scenarios in collaborative filtering:

  • rating prediction (e.g. on a scale of 1 to 5 stars), and
  • item recommendation from positive-only feedback (e.g. from clicks or purchase actions).

MyMediaLite gives you a choice of many recommendation methods:

  • dozens of different recommenders
  • methods can use collaborative and attribute/content data

MyMediaLite is ready to use:

  • MyMediaLite includes evaluation routines for rating prediction and item prediction; it can measure MAE, NMAE, RMSE, CBD, AUC, prec@N, MAP, NDCG, MRR.
  • It also comes with command line tools for both recommendation tasks that read a simple text-based files.

MyMediaLite is compact: The core library has a size of about 150KB.

Portability: Written in C#, for the .NET platform; runs on every architecture supported by Mono: Linux, Windows, Mac OS X.

Freedom: MyMediaLite is free software/open source software. It can be used, modified, and distributed under the terms of the GNU General Public License (GPL).

Additional features:

  • Serialization: save and reload recommender models
  • Real-time incremental updates for many recommenders
  • multi-core support
Changes to previous version:

Important changes:

  • fold-in support for UserKNN for item recommendation
  • less verbose evaluation output
  • tons of bug fixes
BibTeX Entry: Download
Corresponding Paper BibTeX Entry: Download
URL: Project Homepage
Supported Operating Systems: Linux, Windows, Solaris, Mac Os X
Data Formats: Csv, Tab Separated, Sql
Tags: Gradient Based Learning, Large Scale Learning, Algorithms, Data Mining, Evaluation, Supervised Learning, Collaborative Filtering, Matrix Factorization, Recommender Systems, Knn, Library, Dotnet, Mono
Archive: download here

Other available revisons

Version Changelog Date
3.10

Mostly bug fixes.

For details see: https://github.com/zenogantner/MyMediaLite/blob/master/doc/Changes

October 8, 2013, 22:29:29
3.07

Important changes:

  • new rating predictor GSVD++ (contributed by Marcelo Manzato)
  • new recommenders ExternalRatingPredictor and ExternalItemRecommender to evaluate external tools with the MyMediaLite evaluation framework
  • incremental update support for item recommendation UserKNN and ItemKNN (based on a pull request by João Vinagre)
  • --cross-validation support for the rating_based_ranking tool (as requested by Pieter-Jan Verbrugen)
  • removed the group recommendation code
  • cleaner item recommendation evaluation, with a bug fix in the cross-validation code and a complete rewrite of online evaluation
  • removed unused matrix and vector math, faster and simplified matrix code
February 9, 2013, 13:14:25
3.06

Important changes:

  • fold-in support for UserKNN for item recommendation
  • less verbose evaluation output
  • tons of bug fixes
December 28, 2012, 14:33:38
3.05
  • MatrixFactorization: fix bug related to the learn rate decay introduced in the last release (reported by Lucas Drumond and Josif Grabocka)
  • new item recommenders BPRSLIM and LeastSquareSLIM, based on an ICDM 2011 paper by Ning and Karypis (implemented by Lucas Drumond)
October 24, 2012, 09:18:28
3.04
  • kNN recommenders: bug fix for incremental updates when using asymmetric correlations
  • ItemKNN: fold-in rating prediction support
  • matrix factorization models: multiplicative learning rate decay
  • improved API doc for MatrixFactorization, BPRMF, and UserItemBaseline
  • WRMF: rename hyperparameter c_pos to alpha for better consistency with the original paper by Hu et al.
October 16, 2012, 14:28:34
3.03
  • The kNN-based recommenders have been completely refactored, and are now much more powerful and configurable.
  • several new correlation measures which can be used with kNN
  • a new incremental update API for item recommenders
  • fold-in support for BPR-MF
September 13, 2012, 11:32:20
3.02

New recommenders:

  • NaiveBayes for attribute-based rating prediction
  • MostPopularByItemAttributes

Improvements and bug fixes in WeightedBPRMF, SigmoidCombinedAsymmetricFactorModel, and ItemKNN.

Evaluation improvements:

  • bug fix in Map@k routine
  • improved support for Million Song Dataset Challenge data

More details can be found in the Changes file: http://www.ismll.uni-hildesheim.de/mymedialite/download/Changes

July 23, 2012, 22:33:33
3.01

Most prominenty, we have several new rating predictors, all of them variants of asymmetric factor models (AFMs). The new item recommender MostPopularByItemAttributes generalizes an idea presented by the organizers of the Million Song Database Challenge. We now have 27 different rating predictors and 18 different item recommenders in MyMediaLite.

Existing recommender have received significant improvements:

  • WRMF: support out-of-the-box multi-core learning (#233)
  • BiasedMatrixFactorization: 'naive' parallelization
  • (Sigmoid)SVDPlusPlus, SigmoidItemAsymmetricFactorModel: take the ratings that have to be predicted into account (transductive learning)

Evaluation improvements:

  • MyMediaLite.Extensions: parameter n (number of top-n predictions) for PredictItems() and ScoreItems() methods
  • rating prediction: detailed evaluation of cold-start events
  • remove ItemsFiltered class

Scripts:

  • add scripts for creating submissions, evaluation, and blending for the Million Song Dataset Challenge on Kaggle
  • add script for user-stratified crossvalidation
  • import_dataset.pl: more flexible ID mapping file format

Testing

  • NUnit tests now also run from the command line

More details can be found in the Changes file: https://github.com/zenogantner/MyMediaLite/blob/master/doc/Changes

May 30, 2012, 22:05:51
3.0
  • new rating predictor SigmoidItemAsymmetricFactorModel
  • improvements and bugfixes for SocialMF
  • speed-up for ItemKNN rating predictors
  • faster writing of item recommendations
  • fast (de)serialization of data sets
April 5, 2012, 01:49:29
2.99

Use float (32 bit) instead of double (64 bit) to store ratings and model parameters; Incremental update API now accepts several feedback events at once; New rating predictor SVD++; Merge LogisticRegressionMatrixFactorization and MultiCoreMatrixFactorization into BiasedMatrixFactorization; plenty of small enhancements, fixes, polishing

March 3, 2012, 10:32:37
2.03
  • similarity computations are now faster and consume less memory;
  • new rating prediction evaluation criterion: CBD (capped binomial deviance);
  • new recommenders: MultiCoreBPRMF and LogisticRegressionMatrixFactorization;
  • bug fixes and other improvements for the following recommenders: BPRMF, MultiCoreMatrixFactorization, TimeAwareBaseline, UserItemBaseline (thanks to Tom Tung), ItemKNNCosine
January 14, 2012, 17:51:00
2.02

MyMediaLite can now be built without an IDE.

command line tools: add scripts for easy deployment on Unix systems; change executable names to lower case; add option to ignore the first line of data files

new examples in F#, simplified examples in C#, Python, and Ruby

evaluation routines are now extension methods and return custom objects with overwritten ToString() methods, which makes evaluation methods much easier to call

new baseline rating predictor: co-clustering

bug fixes and other improvements for the following recommenders: BPRMF, MultiCoreMatrixFactorization, TimeAwareBaseline, KNN

November 29, 2011, 13:12:55
2.01

Bugfix release.

Fixed a crash in the item recommendation tool.

November 14, 2011, 11:48:20
2.0

Rating data with timestamps is now supported:

  • two time-aware baselineline recommenders TimeAwareBaseline and TimeAwareBaselineWithFrequencies (from the Netflix Grand Prize solution)
  • chronological splits

Some matrix functions are now implemented as extension methods, which makes them easier to use in many cases.

updated script download_movielens.sh because the download URLs have changed

Lots of improvements under the hood.

November 10, 2011, 16:07:18
1.99
  • MyMediaLite now needs Mono 2.8 or later, 2.10.x is recommended, or .NET 4.0
  • multi-core support for several components: item recommendation evaluation; cross-validation for rating prediction and item recommendation; MultiCoreMatrixFactorization: distributed SGD training for rating prediction matrix factorization
  • support long int user and item IDs
  • evaluation improvements: different modes for selecting candidate items now also work for cross-validation; new evaluation measure: mean reciprocal rank (MRR); move item recommender evaluation measures into their own classes; move online evaluation and cross-validation for both items and ratings into their own classes, respectively
  • numerous improvements in documentation, API, command-line tools, and helper scripts
October 8, 2011, 20:16:05
1.05

API changes:

  • ISplit: use IList instead of List for Train and Test; NumberOfFolds is now a uint instead of an int
  • Eval.Ratings and Eval.Items: replace DisplayResults by FormatResults new feature: recommendations for groups

new recommenders:

  • WeightedBPRMF (used for KDD Cup 2011, track 2)
  • SoftMarginRankingMF (item recommender inspired both by CofiRank, ranking loss, and BPR-MF, stochastic gradient descent learning)

evalation: k-fold cross-validation protocol for item prediction

numerous improvements in documentation, command-line tools, helper scripts

See the Changes file for details and further improvements.

September 1, 2011, 22:26:43
1.04
  • Simplified API for item recommendation and matrix factorization: nicer class names (Eval.Items and Eval.Ratings).
  • Merge MAE optimization as an option into the BiasedMatrixFactorization recommender, instead of having a separate recommender.
  • Rating prediction tool: allow user-defined formatting of prediction output.
  • Item prediction tool: allow specification of the set of items to consider for evaluation, the items in the training set (default), a given set (via --relevant-items=FILE), the ones in the test set(--test-items), or only those items in both the training and the test set --overlap-items); save time by evaluation on a random subset of the users (--num-test-users=N).
  • Fixed packaging/compilation on Windows/Microsoft .NET (thank you Artus).
  • Fixed KDD Cup examples (reported by Subramanyeshwar Cherukuri).

See the Changes file for details and further improvements.

August 3, 2011, 18:55:35
1.03

There are many new features:

  • A prototype SOAP web service for rating prediction. We plan to offer most of MyMediaLite's functionality using RESTful services in the future.
  • New recommenders: FactorWiseMatrixFactorization, BiasMatrixFactorizationMAE
  • Simplified interfaces IRatingPrediction and IItemRecommender
  • The library (and the command-line tools) now also offer an online evaluation protocol that uses incremental updates.

Important announcement: This may be the last version to support Mono 2.6. If you use MyMediaLite and rely on running it on Mono 2.6, please tell us so that we can figure out how you will be able to run future versions of MML.

See the Changes file for details and further improvements.

June 23, 2011, 08:52:08
1.02

This is mostly a bugfix release: - Fixed broken save/load mechanism for two recommenders. - Fixed the Doxygen documentation, which was configured wrongly. See the Changes file for details and further improvements.

May 24, 2011, 15:03:19
1.01

This is mostly a bugfix release: - Fixed broken save/load mechanism for two recommenders. - Fixed the Doxygen documentation, which was configured wrongly. See the Changes file for details and further improvements.

May 19, 2011, 23:44:53
1.0

Version 1.0 features major changes in the API and in the way the ratings/user feedback is stored internally. This makes it feasible to load big datasets like the ones from KDD Cup 2011 into main memory. We also ship extra code and a command-line program to handle the KDD Cup data, and some example Python scripts. See the Changes file for details and further improvements.

March 19, 2011, 22:16:30
0.11

Version 0.11 features a simple Gtk#-based demo of some of the library's functionality. Feedback and improvements are very welcome, as we are not GUI specialists (yet).

There have been the following improvements: SlopeOne is now much faster and consumes less memory. We fixed some bugs in the online update functionality of the matrix factorization recommenders. We now support the MovieLens 1M/10M ratings format.

March 6, 2011, 18:14:21
0.10

The command-line tools now use reflection to automagically find all relevant recommenders. This means you do not have to modify the command-line tools any more to use your newly implemented recommenders! The kNN-based methods are now faster and consume less memory because they take data sparsity better into account. A method for the diversification of result sets has been added to the experimental section of MyMediaLite. Some namespaces and types have been renamed to have nicer, more intuitive names.

February 9, 2011, 19:58:42
0.09

The most notable changes are support for reading data from SQL databases (and other data sources supporting the IDataReader interface), the addition of the Slope One rating prediction engine, and initial support for crossvalidation.

January 12, 2011, 15:13:17
0.08

Most notably, we now have the API documentation in the packages and on the website. Another programmer-visible change is that our namespaces now have CamelCase instead of lower_case names. This allows MyMediaLite to be called from IronRuby.

December 9, 2010, 21:42:30
0.07

The new release contains many bug fixes and new features, most notably:

  • also read comma-separated text files (like Mahout) and export Mahout-compatible item predictions (thanks to Damir Logar)
  • Makefile-based build system allows compilation without IDE and semi-automatic release management
  • scripts to automatically download MovieLens CF datasets plus movie attribute data from IMDB.com
  • a portable test suite for the command line tools (should run on every Unix system)

Version 0.07 was released shortly after 0.06 to fix some packaging problems.

November 18, 2010, 14:38:43
0.06

The new release contains many bug fixes and new features, most notably:

  • also read comma-separated text files (like Mahout) and export Mahout-compatible item predictions (thanks to Damir Logar)
  • Makefile-based build system allows compilation without IDE and semi-automatic release management
  • scripts to automatically download MovieLens CF datasets plus movie attribute data from IMDB.com
  • a portable test suite for the command line tools (should run on every Unix system)
November 18, 2010, 00:06:27
0.05

bugfixes and other improvements, most notably

  • command-line tool: fix the output of rating predictions - map the user/item IDs back to the original IDs
  • unit tests for basic data types
  • examples for using MyMediaLite with IronPython
November 3, 2010, 10:51:33
0.04

Initial Announcement on mloss.org.

October 28, 2010, 11:05:14

Comments

No one has posted any comments yet. Perhaps you'd like to be the first?

Leave a comment

You must be logged in to post comments.