MyMediaLite 3.11
December 31, 2015
This is mainly a bugfix and maintenance release. Thanks go to Nicolas Hug, Chris Newell, Jessica Tölke, and Greg Najda for reporting and fixing issues.
Details can be found in the Changes file.
MyMediaLite 3.10
September 23, 2013
This is mainly a bugfix release. Thanks go to KwangSeob Kim, Tobias Lang, Roberto Abalde, Chris Newell, jkleint, and guoguibing for reporting and fixing issues.
Details can be found in the Changes file.
MyMediaLite 3.09
June 22, 2013
Changes:
- command-line tools
- make sure that --online-evaluation is used together with either --test-file, --test-ratio, or --cross-validation; make sure it is not combined with --find-iter; make sure that --find-iter has something to evaluate on (based on a report by Lina Weichbrodt)
- move more CheckParameter() code to the common CommandLineProgram class
- #413: Add missing reference to System.Data (Roland Richter)
- make MyMediaLite.Random a true (per-thread) singleton
MyMediaLite 3.08
April 15, 2013
Important changes:
- remove obsolete/incomplete/unmaintained functionality
- SlopeOne: cut the rating prediction to the allowed range (reported by Simon Dooms)
- WRMF: faster training, support incremental updates
- command-line tools: improved usage information
- --test-no-ratings: allow test files without rating column (suggested by Michael Ekstrand)
- evaluation: shuffle candidate items to avoid biased results for recommenders that return the same score for many items for --overlap-items and --all-items (reported by Pieter-Jan Perbruggen)
- fix counting in the Ratings data structure, which caused a crash when performing incremental updates for BiasedMatrixFactorization with FrequencyRegularization=true (reported by Jia Huang)
More details can be found in the Changes file.
MyMediaLite 3.07
February 4, 2013
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
More details can be found in the Changes file.
MyMediaLite 3.06
December 18, 2012
Important changes:
- fold-in support for UserKNN for item recommendation
- less verbose evaluation output
- tons of bug fixes
More details can be found in the Changes file.
MyMediaLite 3.05
October 23, 2012.
Important changes:
- 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)
More details can be found in the Changes file.
MyMediaLite 3.04
October 14, 2012.
Important changes:
- 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.
More details can be found in the Changes file.
MyMediaLite 3.03
September 9, 2012.
Improvements and new features:
- 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
More changes and details can be found in the Changes file.
BBC R+D uses MyMediaLite for Privacy-Respecting Recommender
August 17, 2012
Sibyl, a recommendation system prototype by BBC is based on the Java version of MyMediaLite. It uses an attribute-based model is computed by MyMediaLite.
The actual recommendations are computed by the client, so that no user data is transferred to the server.
MyMediaLite 3.02
July 23, 2012.
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.
MyMediaLite as a REST Service
July 23, 2012
Mark Graus has combined MyMediaLite and ServiceStack to create a recommender web service. According to his blog post, he was quite happy with the resulting performance.
MyMediaLite 3.01
May 31, 2012.
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.
MyMediaLite 3.0
April 5, 2012.
Highlights of this version:
- 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
- ... plus much, much more: See the Changes file for details and further improvements.
MyMediaLite 2.99
March 2, 2012.
Highlights of this version:
- 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
- ... plus much, much more: See the Changes file for details and further improvements.
MyMediaLite on the Russian Coding 4 Fun blog
January 15, 2012. MyMediaLite is featured on the Russian Coding 4 Fun blog on MSDN.
MyMediaLite 2.03
January 14, 2012.
Some highlights of this version:
- similarity computations are now faster and consume less memory
- new rating prediction evaluation criterion: CBD (capped binomial deviance)
- new recommenders:
- MultiCoreBPRMF
- LogisticRegressionMatrixFactorization
- bug fixes and other improvements for the following recommenders: BPRMF, MultiCoreMatrixFactorization, TimeAwareBaseline, UserItemBaseline (thanks to Tom Tung), ItemKNNCosine
- average rating predictors now also support incremental updates
See the Changes file for details and further improvements. Download it.
MyMediaLite 2.02
November 29, 2011.
- 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: CoClustering
- bug fixes and other improvements for the following recommenders: BPRMF, MultiCoreMatrixFactorization, TimeAwareBaseline, KNN
See the Changes file for details and further improvements. Download it.
Interview on Large Scale Machine Learning Blog
November 14, 2011. Zeno Gantner, MyMediaLite's main developer, gave an interview about MyMediaLite to Danny Bickson on his blog Large Scale Machine Learning. Working at Carnegie Mellon University on the GraphLab project, Danny was particularly interested in the multi-core matrix factorization recommender we recently added to MyMediaLite.
MyMediaLite Featured in Channel 9 Coding4Fun Blog
November 14, 2011. MyMediaLite was featured in the Coding4Fun blog on MSDN Channel 9.
MyMediaLite 2.01
November 13, 2011.
This release fixes a crash of the item recommendation tool. There are no new features.
MyMediaLite 2.0
November 10, 2011.
New features:
- 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.
See the Changes file for details and further improvements. Download it.
MyMediaLite at ACM Recommender Systems 2011 in Chicago
October 31, 2011. We presented a poster about MyMediaLite at the 5th ACM Conference on Recommender Systems (RecSys 2011) in Chicago. Click on the image below to see the poster.
MyMediaLite was mentioned on the Nuit Blanche blog
October 14, 2011. Igor Carron mentioned MyMediaLite in his weekly Matrix Factorization This Week post. Thanks!
MyMediaLite 1.99
October 8, 2011.
There are many major upgrades:
- 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
: parallel 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
See the Changes file for details and further improvements. Download it.
MyMediaLite 1.05
September 1, 2011. Changes since the last release:
- 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
- ISplit: use IList
- 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. Download it.
MyMediaLite 1.04
August 3, 2011. New features:
- 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. Download it.
Google Group for MyMediaLite
June 30, 2011. We have started a Google Group for MyMediaLite. Join the group to ask questions about MyMediaLite, get announcement of new versions, and discuss the library's future development with us.
MyMediaLite 1.03
June 22, 2011. 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. Download it.
MyMediaLite 1.02
May 24, 2011. This is mostly a bugfix release:
- Fixed broken save/load mechanism for two recommenders.
- Fixed the Doxygen documentation, which was configured wrongly.
MyMediaLite 1.01
May 19, 2011. Version 1.01 of MyMediaLite has been released.
- BiasedMatrixFactorization now can optionally use the bold driver heuristics for learning rate adaptation.
- BPRMF has gotten a significant training speed-up.
- The command-line programs now use Mono.Options for command line parameter processing.
- There is now one program for each of the KDD Cup 2011 tracks.
MyMediaLite 1.0
March 19, 2011.
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.
Download it.
MyMediaLite 0.11
March 4, 2011. This version contains 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 incremental update functionality of the matrix factorization recommenders.
- We now support the MovieLens 1M/10M ratings format.
MyMediaLite at CeBIT
February 25, 2011. MyMediaLite will be presented at this year's CeBIT in Hanover, Germany, from March 1 to March 5. CeBIT is Germany's largest computer trade shows, and one of the biggest events of that kind in the world.
Visit us in hall 9 at booth 24. For free tickets, send an e-mail to cebit@ismll.de.
MyMediaLite 0.10
February 9, 2011. Version 0.10 has been on the server since FOSDEM, so this announcement is a little bit late. There have been several improvements:
- 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.
You can have a look at the slides of the MyMediaLite presentation at the FOSDEM 2011 Data Analytics devroom on SlideShare.
Now on Twitter
February 1, 2011.
You can now follow us on Twitter (@mymedialite
) to get the latest updates on MyMediaLite.
MyMediaLite 0.09
January 12, 2011.
As always, this is the best version of MyMediaLite ever.
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 predictor, and initial support for crossvalidation.
See the Changes file for more.
Download it.
MyMediaLite 0.08
December 9, 2010.
There have been several changes:
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.
See the Changes file for details.
Download it.
MyMediaLite 0.07
November 18, 2010. This is a small bugfix release that considers some issues we found immediatly after releasing 0.06. You only need to update if you have problems with release 0.07. See the Changes file for details. Download it.
MyMediaLite 0.06
November 17, 2010. 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 datasets plus movie attribute data from IMDB.com
- a portable test suite for the command line tools (should run on every Unix system)
MyMediaLite 0.05
November 2, 2010. The new release contains mostly bug fixes and improvements under the hood:
- command-line tool: fix the output of rating predictions - map the user/item IDs back to the original IDs (reported by Thorsten Angermann)
- unit tests for basic datatypes (Christina Lichtenthäler)
- examples for using MyMediaLite with IronPython
MyMediaLite 0.04
October 21, 2010. The new release contains many bug fixes, improvements, and some new features:
- Support for recommenders that use relations over users and/or items. To demonstrate the new interfaces, we implemented SocialMF, based on the ACM RecSys 2010 Best Paper by Jamali and Ester.
- Additional measure for item prediction evaluation: mean average precision (MAP)
MyMediaLite successfully used in live evaluation
September 30, 2010. MyMediaLite developers Zeno Gantner and Steffen Rendle, supervised by Lars Schmidt-Thieme, received two awards at the Context-aware Movie Recommendation Challenge (CAMRa), which was held at the ACM Conference on Recommender Systems in Barcelona.
Goal of the challenge was to recommend individual movies for visitors of the moviepilot.de website in a certain period, e.g. the Christmas week. In the 'Live Evaluation' track, the quality of the recommendations was judged by moviepilot.de users after watching the movies. This is in contrast to the usual evaluation in such challenges, which is often based on simulated users and records of past user behavior.
The method used for the 'Live Evaluation' track was the MyMediaLite recommender BPR-MF, matrix factorization optimized for Bayesian Personalized Ranking, described in this UAI 2009 paper.