Author Archive

Mahout – Taste :: Part Three – Estimators

July 8th, 2010 by Frank Scholten
(http://blog.jteam.nl/2010/07/08/mahout-%e2%80%93-taste-part-three-%e2%80%93-estimators/)

In Taste, estimators are the bridge between the generic item- or user recommendation logic and the specific similarity algorithm. Estimators are mainly used as part of the recommendation process, however, they are also used for evaluating recommenders. Additionally, the ‘recommended because’ feature is also powered by an estimator. This blog covers some Taste internals and shows you how estimators are used within Taste via a few code samples.

Read the rest of this entry »

Mahout – Taste at Lucene Eurocon and Berlin Buzzwords

July 1st, 2010 by Frank Scholten
(http://blog.jteam.nl/2010/07/01/mahout-taste-at-lucene-eurocon-and-berlin-buzzwords/)

A little while ago, I was delighted to present two introductory Mahout – Taste talks, at Lucene Eurocon and Berlin Buzzwords. I received quite a lot of good feedback about the presentations and have been asked by a few attendees to post them.

If you’re one of those attendees or you missed the presentation, you can download the slides here:

At Lucene Eurocon, the first European conference on Lucene and Solr there were interesting presentations, ranging from practical relevance to language analysis. For me it was fun to give a practical presentation about recommendations as a complementary feature to search applications. I hope you find the presentation useful if you’re trying to work out how to build a recommender – I used the movielens dataset as an example in the presentation and based the code on my earlier ‘getting started’ blog.

I also really enjoyed doing the Berlin Buzzwords presentation and meeting up with people from the Mahout community and other attendees. This conference focused mainly on NoSQL, scalability and Hadoop. However, from my talks with people there I sense that there’s growing interest in Mahout. You should find the presentation useful if you want to know more about different algorithms and how to evaluate them. I will blog about this topic in more detail soon.

Until then, I’d love to hear some feedback on what you think of the presentations!

Mahout – Taste :: Part Two – Getting started

April 15th, 2010 by Frank Scholten
(http://blog.jteam.nl/2010/04/15/mahout-taste-part-two-getting-started/)
This blog is a ‘getting started’ article and shows you how to build a simple web-based movie recommender with Mahout / Taste, Wicket and the Movielens dataset from Grouplens research group at the University of Minnesota. I will discuss which components you need, how to wire them up in Spring, and how to create a Wicket frontend for displaying movies and their recommendations. Along the way I give some tips and pointers about developing a recommender. Additionally I show the ResourceDataModel, a Mahout DataModel implementation which reads preferences from a Spring Resource.
Read the rest of this entry »

Mahout – Taste :: Part 1 – Introduction

December 9th, 2009 by Frank Scholten
(http://blog.jteam.nl/2009/12/09/mahout-taste-part-one-introduction/)

This post is the first in a series on Taste, a Java framework for providing personalized recommendations. Taste is part of the larger Mahout framework, which features various scalable machine-learning algorithms. In this post I introduce you to the concepts of personalized recommendations, also known as collaborative filtering. After this introduction, Taste’s architecture and extension points are explained. I finish this post by demonstrating and explaining the TanimotoCoefficientSimilarity, one of Taste’s implementations used for computing recommendations.
Read the rest of this entry »

Shebang! Birth of a Groovy script

May 12th, 2009 by Frank Scholten
(http://blog.jteam.nl/2009/05/12/shebang-birth-of-a-groovy-script/)

For a few days I have been browsing through Groovy in Action and wanted to give Groovy a try. So what should I code? I was busy with other stuff and while I was setting up a wicket project at home I wondered….what was the mvn wicket-quickstart syntax again?! I could have just pasted the command from the wicket site, but I decided to let Groovy handle this one. My first Groovy script was born. Read the rest of this entry »