Collaborative Filtering (CF) Algorithms in Go!

Go Recommend

Recommendation algorithms (Collaborative Filtering) in Go!


Collaborative Filtering (CF) is oftentimes used for item recommendations for users, and many libraries exist for other languages (popular implementations include Mahout, Prediction.IO, Apache MLLib ALS etc..). As there are very few machine learning packages out there for Go, I decided to put together some model based CF algorithms that I thought were interesting.

Collaborative Filters inside this package. See each folder for examples/specifications

  • Alternating Least Squares (more info here ) for both the Implicit and Explicit Case
    • Tests now complete
    • Use the implicit case for a confidence rating; explicit for predicting ratings
  • Simple Bayesian Collaborative Filtering Algorithm, see details here
    • Tests complete
  • Similarity/Memory-based (using correlation, cosine and jaccard similarity) based CF, which incorporates a nearest neighbor type metric can be found in the CF folder.
    • Tests complete
    • See README for more details
    • Todo: consider approximate nearest neighbors algorithm.

Most of the recommendation algorithms in this package are briefly outlined in this article


  • If you have any questions/comments, please feel free to reach me at tim [dot] kaye [at] lytics [dot] io