SVDFeature

From RecSysWiki
Revision as of 04:59, 2 November 2011 by Tqchen (talk | contribs)
Jump to navigation Jump to search

SVDFeature is a toolkit designed to solve the feature-based matrix factorization efficiently. Unlike traditional engineering approaches for collaborative filtering which requires writing specific code for each algorithm, SVDFeature develop new models just by defining new features. The feature-based setting allows us to include many kinds of information into the model, making the model informative. Using the toolkit, we can easily incorporate information such as temporal dynamics, neighborhood relationship, and hierarchical information into the model. Besides rating prediction, it is also capable of doing pairwise ranking tasks for item prediction.

Using the toolkit, we built the best single model reported in track 1 KDD Cup 2011. SVDFeature is distributed under the Apache License, Version 2.0.

Features

  • Large-scale data handling: The toolkit buffers the training data on disk thus memory cost is invariant to training data size. For track 1 of KDD Cup 2011, SVDFeature trains a very complex model using less than 2G memory.
  • Strong description ability: Many variants of matrix factorization can be described in feature-based matrix factorization. One can try new approaches by generating corresponding features, and no modification of code is required.

When to use SVDFeature

  • SVDFeature is not a toolkit implementing many specific matrix factorization models. Maybe it is not the best choice for users who are looking for a ready-to-use implementation of a specific algorithm. Some other toolkits (e.g LensKit, Mahout, or MyMediaLite) may be a better choice.
  • SVDFeature is a generic toolkit for developing new algorithms by defining features. If you want to research new algorithms for context-aware recommendation or compose some existing models together (such as SVD++, neighborhood-based models), you may want to use SVDFeature, since you only need to write a script for feature generation, and the new model can be learned using SVDFeature.

Usage Examples

External links