Recommendation is the next 'search'. Companies are trying hard to give people good recommendations - the web is becoming populated with music recommenders  such as last.fm, myStrands, Qloud, and iLike. Companies like netflix are offering million dollar prizes for improved recommendations.   If you are building a site with lots of content - whether it is music, video, blogs or dinner recipes - you will do well to include a recommender.  But where to start? How does one go about building a recommendation engine?

 One place to start is Taste - Taste is a collaborative filtering engine for Java developed by Sean Owen.  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. There's even a netflix data model so you can get a head start on the Netflix million dollar prize -  Sean is competing already as his own team, but he doesn't mind if others use Taste to compete, in fact he encourages it.

Remember, if you don't have a recommendation engine on your site, you don't have Taste. Seen on Geeking With Greg.

Comments:

Taste is honestly one of the best co. fi. library around. Another good one is Voogoo. (http://www.vogoo-api.com/) I'd love to know how well Taste scales up to the Netflix data set. It is a really massive data set compared to what we have had in recent years.

Posted by Daniel Lemire on December 06, 2006 at 12:00 AM EST #

Post a Comment:
Comments are closed for this entry.

This blog copyright 2010 by plamere