Skip to content

Implementations of RecSys algorithms described in research papers including mine.

License

Notifications You must be signed in to change notification settings

wubinzzu/RecSys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RecSys

The RecSys library implements different RecSys algorithms described in research papers including mine. The library is written in C# for the .NET platform (https://github.com/Microsoft/dotnet), and runs on Windows, Linux, and MacOS X.

What is special about this library?

Most libraries are trying to put all algorithms into a unified framework with deep class inheritance and highly modularized. This will make the libraries very "Object Oriented" and but difficult to read by new users as you will need to jump between multiple files to understand one single algorithm.

The good news is, the RecSys tries to put each algorithm into a single self-contained source file and even implemented in single function when possible. In other words, you only need to open the source file of the algorithm you are interested in and read it from top to bottom in a linear manner.

Implemented Algorithms

These algorithms are aimed to be implemented in the same way they are described in the authors' papers, however, differences may still exist.

  • Matrix Factorization [1]:
    • the standard and popular matrix factorization approach to collaborative filtering.
  • UserKNN [2]:
    • the standard and popular K-Nearest Neighbors approach to collaborative filtering.
  • PrefUserKNN [3]:
    • UserKNN plus accepting preference relations as input to perofrm top-N recommendation.
  • PrefNMF Matrix Factorization [4]:
    • Matrix Factorization plus accepting preference relations as input to perofrm top-N recommendation.
  • Ordinal Matrix Factorization [5]:
    • exploits ordinal properties of ratings.
    • produce a full distributino over the ratings instead of a point estimate.
  • Ordinal Random Fields [6]:
    • a combination of Markov Random Fields and Ordinal Matrix Factorization techniques.
    • exploits both Global and Local structures in the rating matrix.
    • exploits ordinal properties of ratings.
  • Preference Random Fields [7]:
    • exploits both Global and Local structures in the rating matrix.
    • takes preference relations as input to perofrm top-N recommendation.

Installation

Coming soon.

References

  1. Koren, Y., Bell, R., & Volinsky, C. (2009). Matrix factorization techniques for recommender systems. Computer, (8), 30-37. [PDF]
  2. Konstan, J. A., Miller, B. N., Maltz, D., Herlocker, J. L., Gordon, L. R., & Riedl, J. (1997). GroupLens: applying collaborative filtering to Usenet news. Communications of the ACM, 40(3), 77-87. [PDF]
  3. Brun, A., Hamad, A., Buffet, O., & Boyer, A. (2010, September). Towards preference relations in recommender systems. In Workshop on Preference Learning, European Conference on Machine Learning and Principle and Practice of Knowledge Discovery in Databases (ECML-PKDD 2010). [PDF]
  4. Desarkar, M. S., Saxena, R., & Sarkar, S. (2012). Preference relation based matrix factorization for recommender systems. In User Modeling, Adaptation, and Personalization (pp. 63-75). Springer Berlin Heidelberg. [PDF]
  5. Koren, Y., & Sill, J. (2011, October). OrdRec: an ordinal model for predicting personalized item rating distributions. RecSys 2011 (pp. 117-124). ACM. [PDF]
  6. S.-W. Liu, T. Tran, G. Li and Y, Jiang. Ordinal Random Fields for Recommender Systems. In Proceedings of the Sixth Asian Conference on Machine Learning (ACML 2014), pp. 283–298, 2014. [PDF]

About

Implementations of RecSys algorithms described in research papers including mine.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages