Understanding Recommender Systems: Introductionvibhor nigamBlockedUnblockFollowFollowingJun 6Recommender Systems are one of the most rapidly growing branch of A.
and have become a part of our daily life.
From personalized ads to results of a search query to recommendations of items bundled together, each and every aspect of our life is being touched by recommender systems in one way or the other.
This article is an attempt to decode the basic blocks on which such systems are built and to provide a base to the enthusiasts who want to delve deeper into the world of recommender systems.
Recommender SystemsThe goal of a Recommender System is to generate meaningful recommendations to a collection of users for items or products that might interest them.
Suggestions for books on Amazon, or movies on Netflix, are real world examples of the recommender systems operating in the industry.
Recommender systems are broadly classified into personalized and non-personalized recommender systems.
As is evident from the name itself, a non-personalized recommender system is a generic recommender system which provides recommendations based on the opinions and feedbacks of the other users.
An example of such a system would be any retail website such as Amazon or Macy’s which shows a list of products as recommended items for purchase when you land on their home page (without logging in)A personalized recommendation system on the other hand maintains a user profile and tries to match the items with the taste profile of a user before presenting them as a recommendation to the user.
A prime example of such a recommender system would be Netflix, which presents a list of different recommendations to each user based on their taste.
Building Blocks of a Recommender SystemNon-PersonalizedAny recommender system requires these 3 basic building blocks: users, items and ratings.
To understand this better, let’s pick up the most basic form of non personalized recommender system which suggests movies to a user based on ratings provided by the other users in the community.
Let’s take a look at the example below.
The matrix contains of items (movies in this case) as columns/features and users as rows.
Each row is indicative of the rating that a user provided for that particular movie.
For instance in this case user 756 has given a rating of 1 to Star WarsRow 24 in the image represents the mean ratings sorted in descending order and and row 26 represents the count of users who rated a particular movie.
Now to build a very basic recommender system we can pick up the top 5 movies with highest mean ratings and present them as a recommendation to a new user who has not seen these movies.
Such a recommender system will not be very effective though as it does not have a mechanism in built to incorporate for the taste difference amongst users vis a vis movies.
To overcome this problem lets now take a look into a basic personalized recommender system.
PersonalizedA personalized recommender system takes into consideration users different tastes and preferences by creating an individual user profile for each user.
Each item is expressed in terms of attributes.
Each attribute represents a dimension in the attribute space.
An item is then represented as a vector in this item space with attributes as dimensions.
A basic user profile is created based on likes and dislikes of items by a user, which is then projected into the attribute space.
The distance between the item vector and the projected user vector determines the likelihood of recommendation, with the basic assumption being, items having a higher chance of being liked by a user will be closer to the projected vector of user profile.
Let’s try to understand this with the example below.
In the example above, the columns represent attributes (what the article is about like politics, sports etc.
) and the rows represent the article.
Each of the cell represents a weighted value of that topic for that article.
The two columns user1 and user2 contains information about whether the user liked or disliked the particular article.
User profiles are the projections of the user taste in the attribute space, which is obtained as a dot product between the attribute matrix and the user vector.
For eg: the value in B27 gives the overall importance of baseball for user1, which is obtained by a dot product of the baseball vector (B2:B21) and user vector (O2:O21).
The prediction value (pred1 and pred2) is then calculated by taking a dot product between the user profile and the document profile.
For eg, the value in R2 is obtained by a dot product between doc1 (B2:K2) and user1 (B27:K27)The higher is the prediction value the more likely it is that the user will like that particular document.
Types of Recommender SystemsRecommendation being an important area, a lot of variations of recommender systems have developed each suitable for different variations of problems in which recommender systems can be utilized.
Here, we will take a look at some of the most common type of recommender systems.
Content Based RecommendersPic Credit GoogleAs name suggests this family of recommenders depend on some type of content in the form of reviews or descriptions and uses that data in conjunction with the user profile to develop a recommender system.
The key ideas are: i) Model items according to relevant attributes derived from the content, ii) Develop a user profile either from there implicit actions (clicks, time spend on a video etc.
), explicit actions(purchase, rating etc.
) or by combining both implicit and explicit, and lastly, iii) use these profiles to provide recommendations.
The example explained above for personalized recommenders is actually an example of content basedCase Based RecommendersPic from GoogleCase bases recommenders are a subset of content based recommenders with a key difference being that attributes are not extracted from the content but are pre-defined and stored in a knowledge base.
For instance, a restaurant recommender system which uses the attributes like price, ambience, cuisine, location etc as attributes for providing building user profiles and providing recommendations is a perfect example of case base recommendersKnowledge Based RecommendersPic Credit GoogleThis branch of recommenders are developed on an approach of memory based reasoning and uses the past problems and their solutions to solve new problems.
A problem, in here is basically any new search query entered by the user.
These recommender systems also operate in a pre-defined vector space of attributesSuch a system works in following basic steps i) User enters a query, ii) Relevant attributes are parsed from the query to project it in the vector space of attributes, iii) Similar cases are searched for in the knowledge database, and lastly, iv) Recommendations are send to the user based on these search results.
The system described above is known as single shot recommendation system.
Another type is called conversational/dialogue based recommenders.
These basically follow all the steps of a single shot recommenders but also have the option of taking in user recommendation, factoring it in and presenting the user with improved recommendations based on the feedback.
LimitationsAll these recommender systems are based on Vector Space Model.
In a vector space model, user preferences are represented as a scalar value for each attribute or tag.
Which means there is not a very clear way to differentiate between liking and preference.
Assumes independence of attributes which might not always be the case.
Is not able to take in the context of the rating or review.
Scoring FunctionsA recommender system basically performs 2 tasks, calculates rating prediction and provides recommendation based on some ordered form of rating predictions.
Each of these tasks need separate scoring functions to calculate accurate predictions and recommendations.
A full scoring function for prediction/ordering is defined as:S(i,u,q,x)/O(i,u,q,x)i: item to scoreu: active userq: user queryx: the current contextDifferent types of recommender systems use different variations of this function, for instances(i,u): traditional recommenders(i,q): traditional searchs(i,u,q): personalized searchs(i,u,x): context-aware recommenders(i,u,q,x): context- aware personalized searchA common approach for providing recommendations is to provide top N recommendations but they might not always be useful and hence different variations and approaches are tried to make it more relevant.
A detailed discussion of them is out of scope of this article.
Hope this article provides a good introduction to recommendation systems.
Feel free to drop any questions or queries in the comment box.
pdfIntroduction To Recommender Systems — Courserahttp://infolab.