Introduction to recommendation systems and How to design Recommendation system,that resembling the Amazon

Madasamy M
5 min readFeb 16, 2019

--

It`s all starts with a simple question:

Why do we need recommendation systems?

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

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

Bookstore image

On above image book 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 kind of strategies as recommendation systems, The product owner can recommend items that customers might also liked and required

What is Recommendation system?

A recommendation system is an extensive class of web applications that involves predicting the user responses to the options.

A recommendation system has been a hot topic for a long time. A recommendation system

Often termed as Recommender Systems, they are simple algorithms which aim to provide the most relevant and accurate items to the user by filtering useful stuff from of a huge pool of information base. Recommendation engines discovers data patterns in the data set by learning consumers choices and produces the outcomes that co-relates to their needs and interests.

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

You could have seen below image example for amazon recommendation system,

Image result for amazon recommendation system
for books

Netflix, using for suggesting recommendation engine might also like, eventually the goal is same for all giants to accomplish the recommendation for their items to customers

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 same authors videos or same publications videos.

  1. popularity based
  2. classification based
  3. collaborative filtering

i.Nearest neighbor

ii.Matrix factorization

I will explain each method as short manner in order you to understand over all idea about designing recommendation systems

  1. Popularity based:

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,

Example, In shopping store we can suggest popular dresses by purchase count.

2.Classification based

Second way to build a recommendation system is 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 .

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 product to a customer

Collaborative filtering:

collaborative filtering models which are based on 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 these type of recommendation systems are recommending based on nearest neighbors, nearest neighbor approach used to find out either similar users or similar products,

It can be looked at two ways,

i.User based filtering

ii.Item based filtering

Nearest neighbor collaborative filtering

Above image source from https://medium.com/@cfpinela/recommender-systems-user-based-and-item-based-collaborative-filtering-5d5f375a127f

User-based collaborative filtering:

Find the users who have similar taste of products as the current user , similarity is based on 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 the important technique in recommendation system.

let me give an abstractive explanation for matrix factorization,

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

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

further more information on matrix factorization kindly refer http://www.quuxlabs.com/blog/2010/09/matrix-factorization-a-simple-tutorial-and-implementation-in-python/

Hybrid Recommendation systems:

Hybrid Recommendation systems are combining collaborative and content-based recommendation can be more effective. Hybrid approaches can be implemented by making content-based and collaborative-based predictions separately and then combining them.

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

prebuilt reccomendation services also availlable like, Recombee https://www.recombee.com/

Thanks for Reading!.

References:

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

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

--

--

Madasamy M

FullStack Developer at AX2 Technologies pvt Ltd, Working in Web Application Development, Chatbot Development