Open Source Recommendation engine



Recommendation engine used in Amazon and Netflix use complex algorithms. We can use our own using some of the open source applications.

Apache Mahout is the best recommendation engine in Java I have found. But, there are recommendation engines as well in Java:

  • Apache Mahout
  • Duine
  • CoFE
  • Cofi
  • Weka




One place to start looking for a recommendation engine is Taste - Taste is a collaborative filtering engine for Java. Taste takes as input users' preferences for items and returns estimated preferences for other items. Taste includes a number of CF algorithms including Item-Item recommendations and user-based recommendations.

Taste is very well engineered with a very clean programming model. Here's an example of creating a Slope-One Recommender:

    DataModel model = new FileDataModel(new File("data.txt"));
    Recommender recommender = new SlopeOneRecommender(model, true);

Using the recommender is as easy as:

    List<RecommendedItem> recommendations = recommender.recommend(userID, 10);

There are a number of models and algorithms to try out.