Beer Recommendation Engine using PredictionIO

The Problem:

We all love beers. And today, we face an unprecedented variety of options. We are overwhelmed by too many choices and couldn’t decide: What should I drink next?

My Solution:

In our Hack Reactor thesis project, I build a machine learning server using PredictionIO as a recommendation engine for beer. Boardly speaking, the app is based on the following two strategies:

  1. Content filtering appoach — using each beer to charactize its nature. For example, we use breweryDB to find out the style of a specific beer, alcohol by volume (abv) and the International Bittering Units (ibu). Then we query the database to find beers with a similar style.
  2. Collaborative filtering approach — replies only on past user behaviour, i.e. your beer ratings. It is based on matrix factorization techniques with alternating least squares (ALS) algorithm. We characterize both beers and users by vectors of factors inferred from beer rating patterns. High correspondence between beer and user factors leads to a recommendation.

The advantage of using matrix factorization is that it allows incorperation of additional information. When explicit feedback is not availabe (i.e. your ratings), we can infer user preferences using implicit feedback, such as your browsing history and search pattern.

As a result, OnTapp matches you with beers that suit your taste. To get a recommendation of beer and try our our demo, plesae visit:

Originally published at on January 20, 2015.

By Victor Leung

Experience in software development, consulting services and technical product management. Understanding of business and technology with an MBA in Finance and a Master degree in Computer Science. AWS Certified Solution Architect with experience in building products from scratch and serving as a charismatic leader.

Leave a comment

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: