What is Recommendation system?

Original article was published by Ratna Sankeerthan Reddy on Artificial Intelligence on Medium


Let’s start with a simple question:

Why do we need recommendation systems?

Traditionally, we would like to buy a product that friends or colleagues have suggested.

So let`s consider another example of a book store,

In the store, they had drawn special attention to New Collection books, popular books, etc.…

So the buyer can quickly choose a book,

In a digital world using these kinds of strategies as recommendation systems, the product owner can recommend items that customers might also like and required.

Real-time examples are like Amazon, Netflix, and Flipkart, etc.. they have been using a recommendation engine for suggesting the goods or products that customers might also like.

How to design a recommendation system?

Although machine learning (ML) is commonly used in building recommendation systems, it doesn’t mean it’s the only solution. There are many ways to build a recommendation system? simpler approaches, for example, we may have very few data, or we may want to build a minimal solution fast, etc..

Assume that, for simpler video recommendation, In such that case, based on videos a user has watched, we can simply suggest the same author’s videos or same publications videos.

1. popularity based

2. classification based

3. collaborative filtering

-Nearest neighbor

-Matrix factorization

I will explain each method in a short manner in the order for you to understand the overall idea about designing recommendation systems.

Popularity based:

The easiest way to build a recommendation system is popularity based, simply over all the products that are popular, So how to identify popular products, which could be identified by which are all the products that are bought most,

For example, In the shopping store, we can suggest popular dresses by purchase count.

Classification based

The second way to build a recommendation system is the classification model, In that use feature of both users as well as products in order to predict whether this product liked or not by the user.

When new users come, our classifier will give a binary value of that product liked by this user or not, In such a way that we can recommend a product to the user.

source: ceately.com Classifier

In above example using user features like Age, gender and product features like cost, quality and product history, based on this input our classifier will give a binary value user may like or not, based on that boolean we could recommend the product to a customer

Collaborative filtering:

Collaborative filtering models which are based on the assumption that people like things similar to other things they like, and things that are liked by other people with similar taste.

collaborative filtering models are two types,

I.Nearest neighbor

II. Matrix factorization

let me explain each method of collaborative filtering in a nutshell,

Nearest neighbor collaborative filtering:

In this type of recommendation, systems are recommending based on nearest neighbors, the nearest neighbor approach used to find out either similar users or similar products,

It can be looked at in two ways,

i.User-based filtering

ii.Item-based filtering

User-based collaborative filtering:

Find the users who have similar tastes of products as the current user, the similarity is based on the purchasing behavior of the user, so based on the neighbor purchasing behavior we can recommend items to the current user.

Item-based collaborative filtering :

Recommend Items that are similar to the item user bought,similarity is based on co-occurrences of purchases

Item A and B were purchased by both users X and Y then both are similar.

Matrix factorization:

It is basically model-based collaborative filtering and matrix factorization is an important technique in the recommendation system.

let me give an abstractive explanation for matrix factorization,

When a user gives feedback to a certain movie they saw (say they can rate from one to five), this collection of feedback can be represented in the form of a matrix. Where each row represents each user, while each column represents different movies. Obviously the matrix will be sparse since not everyone is going to watch every movie, (we all have different tastes when it comes to movies).

Reference :

http://www.quuxlabs.com/blog/2010/09/matrix-factorization-a-simple-tutorial-and-implementation-in-python/

https://www.kaggle.com/rounakbanik/movie-recommender-systems

https://www.youtube.com/watch?v=39vJRxIPSxw.

https://www.youtube.com/watch?v=ZspR5PZemcs

https://www.recombee.com/