Giter Club home page Giter Club logo

recommenders's Introduction

Introduction

This project is a collection of the implementation of well-known recommendation algorithms and techniques that is currently documented in several publications.

Most of the code has been programmed with Java 8 and kotlin. We took advantage of many useful features of the language, such as the use of lambda functions, Stream's and facilities for automatic parallelization of the code.

The publicly available version of this project includes implementations of several recommendation algorithms. The modules published to date are the following:

  • FactorizationMachines -2d Factorization Machines for recommender systems optimized using BPR criterion.
  • ItemkNN -item-kNN (Similarities: Cosine, Binary Cosine, Pearson Correlation, Jaccard Coefficient)
  • To be uploaded - user-kNN (Similarities: Cosine, Binary Cosine, Pearson Correlation, Jaccard Coefficient)
  • itemkNNTemporalDecay -item-kNN-TD (Similarities: Cosine, Binary Cosine)
  • UserkNNTemporalDecay -user-kNN-TD (Similarities: Binary Cosine)
  • TimeSVD -timeSVD (adapted for top@N recommendation)
  • BPRMF - BPRMF
  • BiasedMatrixFactorization -Biased Matrix Factorization
  • WRMF -WRMF
  • WRMFwithSideInformation -WRMF with side information
  • SoftMarginRankingMF -Soft Margin Ranking Matrix Factorization
  • SoftMarginRankingMFwithSideInformation -Soft Margin Ranking Matrix Factorization side information
  • TimePop -TimePOP - Temporal Popularity baseline

Reference

If you publish research that uses one of these implementations please use the following two works:

@inproceedings{Anelli2019Local,
  author    = {Vito Walter Anelli and
               Tommaso Di Noia and
               Eugenio Di Sciascio and
               Azzurra Ragone and
               Joseph Trotta},
  title     = {Local Popularity and Time in top-N Recommendation},
  booktitle = {Proceedings of the 41st European Conference on Information Retrieval, 14th - 18th April 2019, Cologne, Germany},
  year      = {2019}
}

The full paper describing the overall approach is available here PDF

@inproceedings{Anelli2019Importance,
  author    = {Vito Walter Anelli and
               Tommaso Di Noia and
               Eugenio Di Sciascio and
               Azzurra Ragone and
               Joseph Trotta},
  title     = {The importance of being dissimilar in Recommendation},
  booktitle = {Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing (SAC '19), April 8--12, 2019, Limassol, Cyprus},
  year      = {2019},
  doi       = {10.1145/3240323.3240338},
  isbn      = {978-1-4503-5933-7/19/04}
}

The full paper describing the overall approach is available here PDF.

Credits

This algorithm has been developed by Vito Walter Anelli and Joseph Trotta while working at SisInf Lab under the supervision of Tommaso Di Noia.

Contacts

Tommaso Di Noia, tommaso [dot] dinoia [at] poliba [dot] it

Vito Walter Anelli, vitowalter [dot] anelli [at] poliba [dot] it

Joseph Trotta, joseph [dot] trotta [at] poliba [dot] it

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.