We're all using any platform which has some items and these items are made for us, for users. In general, we use some of them and get suggestions for other items as well, but what suggestions are they, how do they even know what to suggest, which type of items each user likes and what is the probability, that they are going to like something platform suggests?
Recommendation systems are created just for this. Let's take Netflix as an example. It has a lot of movies and users watch them on their platform. When each user watches any movie, Netflix suggests other movies relevant to the user or the item, which the user has watched.
Nowadays almost all platforms like Facebook, Youtube, Twitter, Pinterest, Amazon, etc. use recommendation systems, to suggest relevant content to their users. It gives good growth in terms of revenue or other business metrics, which is important to the company.
Now let's formulate a recommendation system and show how it's going to suggest content relevant to users.
Let's assume we have multiple users and movies. Each user has watched any movie and liked it. It means different movies can be liked by the same person and different users can like the same movie. It kind of like a matrix for users and items. This matrix will contain users and movies as rows and columns and each (i,j) position of the matrix will correspond to the rating of the movie or user has liked it or not. Something like this.
It is a sparse matrix. If the user has not watched the movie, then the corresponding place of this matrix will be undefined. Our goal is to find a model, which will fill all missing places in the matrix we showed above.
Find more about collaborative filtering and matrix factorization in the Following Article