Tuesday, 2 September 2014

Recommender System Series: Part 1

Having recently completed my MSc thesis on recommender systems I thought I would share some experiences of the 12 week journey. During this time I researched, designed and developed a recommender system and evaluation framework from the ground up. Overall, the project had over 10,000 lines of code and a 79 page thesis as a write up. In this series I want to summarise some of the key points I picked up along the way and hope this can help all who are interested in this area.

Part 1. Recommender systems overview

What is a recommender system? What do they do? Why are they worth thinking about? These are typically the first questions that are asked when you introduce the concept of a recommender system to someone for the first time.

What is a recommender system?
Simply put, a recommender system is a piece of software that tries to predict items that a user might like, given their personal preferences. This sounds quite straight forward, however, there are a number of issues which make this a pretty complex problem to solve.

What do they do?
Recommender systems come in all shapes and sizes, and appear in a number of different settings. The most common systems that someone would recognise are that of Amazon.com. If you have seen Amazon's "Users who bought this item also bought these..." or "Users who viewed this item also viewed these...", then you have seen a recommender system in action. Another common application of recommender system is to recommend news stories i.e "Other articles you might like...". However, recommender systems are pretty much used in all corners of the web, from music to movie recommenders, job searching to online dating and of course social networking (recommending friends and connections). 

The real difference between a mediocre recommender system and a great recommender system lies in the items it ends up showing to the end user as a recommendation. 

For example, if a user visits a bicycle website and puts a new set of tyres into their basket, a mediocre recommender system might recommend the user to by a pump or some inner tubes. These items may seem like a good recommendation because they are closely related to bicycle tyres, however, the question is: without the recommender system could the user have found these items anyway? The answer in this example is of course, in fact, inner tubes would probably be next on that users list to add to the basket. 

A real recommendation list from Wiggle.co.uk shopping basket when containing a bicycle tyre only.
Are these good recommendations?

Consider this, what if instead of recommending very similar items such as inner tubes, the recommender system was able to contextualise the intention to buy new bicycle tyres with someone who does a lot of cycling. In this case maybe the recommender could recommend a book of great cycle routes in that user's country. Or maybe the user frequently commutes to work on a bike, in which case maybe recommend some bicycle baggage or a new gadget to help commuters become more visible to other road users. What if the recommender system was able to explain why it was making the recommendation as well? Well, explanations can help to build user trust in the system, and trust is important, especially when the user is parting with their cash.

In this second example the recommender systems shows items that the user might like but might not have discovered before. This is what separates a mediocre recommender system from a great one.

So what do recommender systems do? Good ones try to predict items that a user might like but might not have discovered on their own, then they suggest them to the user. Great recommender systems then also try to explain why they are recommending those items.  

Why are they worth thinking about? 
Think about the last example in the section above. If you run an online business and a recommender system is successful in selling items to users that they might not have discovered but actually really like then you will increase your revenue by increasing the popularity of your "long tail" items (see image below). This is really good news.

An diagram showing the meaning of "long tail" items. 

Apart from making more money, if you can make good recommendation then your customers/users will come back and enjoy their experience on your website. Again, this is really good news. 

So why are recommender systems worth thinking about: Well they can make you more money, and increase the user engagement and satisfaction on your website, thats why. 

Final thoughts
Recommender systems have become part of everyday life for most people (whether they know it or not) and for businesses. However, getting recommender systems right is really difficult (more about that later in this series). They have the power to delight users, but they also have the power to destroy trust and frustrate users. This has been a very brief overview of recommender systems and there has been a huge amount of detail left out. As this series progresses I will dive into greater detail so stay tuned.

No comments: