Intro to Recommendation Engines & how they work? [Practical Guide] — Part I
Series Structure
Building a Recommendation engine is not an easy task, but with the right resources, it can be done. This article is meant to be a light introduction to the topic and provide readers an insight into building a recommendation system for an e-Learning environment based on student’s preferences. The structure of the series will be as follows:
- Part I: Intro to Recommendation systems
- Part II: Modeling a personalized recommendation system for eLearning
- Part III: Build a Recommendation System with Collaborative Filtering for eLearning
- Part IV: Measuring the performance of recommendation system: Metrics
So without further ado, let’s try to understand what is a recommendation engine, its various types and define how to make it work?
Introduction — What is a recommendation system?
A recommender system is a type of information filtering system. By drawing from huge data sets, the system’s algorithm can pinpoint accurate user preferences. Once you know what your users like, you can recommend them new, relevant content. And it can be applied to everything from movies and music, to news & articles to online education.
Netflix, YouTube, Tinder, and Amazon are all examples of recommender systems in use. The systems entice users with relevant suggestions based on the choices they make.
Now that we know what are recommendation engines, now let’s look at various types of recommendation systems.
Various types of recommendation system
There are basically three important types of recommendation engines:
- Collaborative filtering
- Content-Based Filtering
- Hybrid Recommendation Systems
Collaborative Filtering (#1)
If Ross and Rachel have liked similar things in the past, let’s take some of Rachel’s favorite movies that Ross hasn’t seen and recommend them to him.
These two users are deemed “similar” if their ratings have a strong correlation with one another and the ratings can be implicit or explicit:
- Implicit (Binging) — Ross and Rachel both spent all weekend binging an old season of ‘Friends.’ Even though neither one of them gave it a “thumbs up,” we’re pretty sure they liked it (and they may have a bit of an ego).
- Explicit (Likes) — Ross and Rachel each gave the show a thumbs up.
There are 2 types of collaborative filtering: memory-based (user-user, user-item) and method based.
Content-based Filtering (#2)
Using the explicit tags (genre, actors, etc.) from content you’ve liked in the past, recommends new content to you that has similar tags. For example, If Ross likes action movies; recommending movies in the same action genre to Ross is called a content-based recommendation
Hybrid Recommendation Systems (#3)
It combines collaborative and content-based recommendations. Netflix is a good example of the use of hybrid recommender systems. It makes recommendations by comparing the watching and searching habits of similar users (i.e., collaborative filtering) as well as by offering movies that share characteristics with films that a user has rated highly (content-based filtering).
How does a Recommendation system work?
This can be broken down into 3 steps.
Step 1: Collecting the Data
The first step in creating a recommendation engine is gathering data. It all starts with you! ( Your Data ). Data about you can be collected in two different ways:
Recommendation Systems cannot produce good result until it has good data to work with. LOTS OF IT!! Amazon has so much implicit data that it doesn’t need better algorithms! Even simple algorithms work like charm when we have a huge amount of data.
Step 2: Storing the Data
Since you will be playing with a lot of Data, choose to use a NoSQL database for storage.
Step 3: Analyzing the Data (Building framework)
In this blog, we will not discuss much on how to build a recommendation system framework but will give you a simple idea on how to build it. Python code for the very good recommendation system is also available.
- surpriselib is a good library to work on Recommendation systems
- Even though surpriselib is a good package, we need to build on top of it so that our algorithms can attain more flexibility.
- For more details, click here — Link1 Link2 Link3
Benefits
A recommendation system can help you boost revenues, CTRs, conversions, and other important metrics. Apart from this, they can also help in having a positive effect on the user experience as well, such as customer satisfaction and retention.
I hope this case study was useful in helping you understand the basics of the recommendation system. Now continue on to Part II: Modelling a personalized recommendation system for eLearning