Building blocks for recommender systems

The important application of machine learning is Recommender Systems. What the big websites like Amazon, Netflix, flipkart , eBay does is that, they recommend best products that suits your requirements. Amazon tries to recommend books; Netflix tries to recommend movies; eBay tries to recommend clothing. They do this based on the past rating of your products. So recommender systems are responsible for their company’s revenue. These recommender systems are good at learning, the features provided than any other machine learning algorithms.

Buliding blocks for recommender system 8 (i2tutorials)

So, without any further delay we will get into the problem formulation of recommender system in movies review domain where we have collected ratings of five different movies from four different persons as follows

Buliding blocks for recommender system 1 (i2tutorials)

Let’s say you own a company that provides steaming services to the people where your users can view and rate different movies on a scale of 0-5 rating .The above table represents the rating of different users on different movies where “0” implies they didn’t like the movie and “5” implies they are amazed and “-” shows that they didn’t watched the movie and by the name we can categorize the movies

Buliding blocks for recommender system 2 (i2tutorials)

 

n – no.of users

m – no. of movies

r(i,j)=1 if user ‘j’ has rated movie ‘i’

y(i,j)=(0-5)rating given by user ‘j’ to movie ‘i’(defined only if r(i,j) = 1)

 

If we observe the rating table first two users gave high rating to the romantic movies, whereas other two are quite opposite they gave high rating to the action movies. So, the problem statement for  recommender system  is given these table of r(i,j) and y(i,j) we have to compute the rating of the movies that are not seen by the users(-) and based on that rating we have to suggest the best movie to the user. So, our task is to build a recommender system to come up with a learning algorithm that can automatically fill the missing values and based on them we can recommend user what else he might be interested to watch. Let’s say for each movie we have set of features as shown below. In particular where ‘x1’ measures the degree to which a movie is romantic movie and ‘x2’ measures the degree to which a movie belongs to action genre.

Buliding blocks for recommender system 3 (i2tutorials)

These are the features we defined and we add an intercept term ‘1’ for every movie then we get a feature vector for every movie as followsBuliding blocks for recommender system 4 (i2tutorials)

Buliding blocks for recommender system 5 (i2tutorials)

Buliding blocks for recommender system 6 (i2tutorials)

Thus we predict that Rohith may rate the movie cute puppies as 4.95.which is is a reasonable one because as we see Rohith rated more for romantic genre movie.

 

Buliding blocks for recommender system 7 (i2tutorials)