A recommender system is a system that predicts ratings or preferences a user might give to an item. Often these are sorted and presented as top-N
recommendations. Also known as recommender engines, recommendation systems or recommendation platforms.
Recommender systems are completely data driven. They find relationships between users and between items just based on actions. Usually there is no human curation involved at all. For example if you were to purchase a gaming system on a website like amazon you would see products like controllers, games or a headset recommended to you. The recommender system understands statistically people who buy a gaming system also buy controllers and it can use those historical patterns to show customers things before they even want it.
Recommender systems are everywhere and can have a significant impact on a companies sales.
Its all about understanding the user, visitor or customer. A recommender system with some sort of data about every user that it can use to figure out that users individual tastes and preferences. Then it can merge the data about you along with the collective behaviour's or everyone else's similar to you to then recommend things you may be interested in.
There are $2$ main ways to understand your users or customers through feedback:
An example of explicit ratings would be asking a customer to rate a product or service $1$ to $5$ stars or rating content they see with a like or dislike. In these cases you are explicitly asking you customers do you like this content your looking at or did you enjoy this product or service. You would then use this data to build a profile of the users interest.
The drawback from explicit ratings is that it requires extra work from your users. Not everyone will want to be bothered with leaving a rating on everything they see from you business so this data is often very sparse. When the data is to sparse it diminishes the quality of you recommendations. Also people have different standards, meaning a $4$ start review may mean different things between $2$ different people. There could also be cultural differences in ratings between countries.
Implicit ratings look at the things you naturally do when browsing and using products and services and interpreting them as indications of interest or disinterest. For example clicking a link on a web page and the content it points to could be considered a positive implicit rating or clicking on an ad may tell an ad network that you might find similar ads appealing.
Click data is great because often there is lots of it but clicks aren't always a reliable indication of interest. People often click on things by accident or may be lured into clicking on something because of the image associated with it. Click data is also highly susceptible to fraud because of the amount of bots that exist on the internet doing various things that could pollute your data.
Things you purchase are a strong indication of interest because actually spending your money is a strong indication that you are interested in something. Using purchases as positive implicit ratings is also very resistant to fraud. Someone trying to manipulate a recommender system based on purchase behavior will find it extremely expensive because of the amount of stuff that would have to be bought to effect its results.
Things you consume is also great for implicit ratings. For example YouTube uses minutes watched heavily as an indication of how much you enjoyed a video. Consumption data doesn't require your money but it does require your time so its also a more reliable indication of interest compared to click data.
Content-based Filtering: Content-based filtering uses item features (attributes that best describe that item) to recommend other items similar to what the user has purchased or liked, based on their previous actions or implicit/explicit feedback.
Collaborative Filtering: Collaborative filtering uses similarities between users and items simultaneously to provide recommendations. This allows for serendipitous recommendations; that is, collaborative filtering models can recommend an item to user $A$ based on the interests of a similar user $B$.
Top N recommenders produce a finite list of items to display to a given user or customer. Many recommender systems research tends to focus on predicting the ratings good or bad that a user will give to items they haven't seem yet. Customers don't want to see your ability to predict their ratings on items. Ultimately the goal is to put the best content in front of customers helping them to find things they need or will enjoy.
Mean absolute error MAE:
$$ \mathrm {MAE} ={\frac {\sum _{i=1}^{n}\left|y_{i}-x_{i}\right|}{n}}$$MAE Example:
Predicted Rating | Actual Rating | Error |
---|---|---|
5 | 3 | 2 |
4 | 1 | 3 |
5 | 4 | 1 |
1 | 1 | 0 |
Root Mean Square Error (RMSE):
$$ \operatorname {RMSE} ={\sqrt {\frac {\sum _{i=1}^{n}({y}_{i}-x_{i})^{2}}{n}}} $$RMSE Example:
Predicted Rating | Actual Rating | $\text{Error}^2$ |
---|---|---|
5 | 3 | 4 |
4 | 1 | 9 |
5 | 4 | 1 |
1 | 1 | 0 |
Hit Rate (HR):
$$ \frac{hits}{users}$$You generate top-N recommendations for all users in your test set. If one of the recommendations in a users top-N recommendations is something they actually rated you consider that a hit.
You add up all the hits for all the users in your test set and divide by the number of users
Measuring Hit Rate:
Leave-one-out cross-validation:
Average reciprocal hit rate (ARHR):
$$ \text{ARHR} = \frac{\sum_{i=1}^{n} \frac{1}{rank_{i}}}{Users} $$Example:
Rank | Reciprocal Rank |
---|---|
3 | 1/3 |
2 | 1/2 |
1 | 1 |
Cumulative hit rate (cHR):
Hit Rank | Reciprocal Rank |
---|---|
4 | 5.0 |
2 | 3.0 |
1 | 5.0 |
10 | 2.0 |
Hit Rank | Reciprocal Rank |
---|---|
4 | 5.0 |
~2~ | ~3.0~ |
1 | 5.0 |
~10~ | ~2.0~ |
Rating hit rate (rHR):
Rating | Hit Rate |
---|---|
5.0 | 0.001 |
4.0 | 0.004 |
3.0 | 0.030 |
2.0 | 0.001 |
1.0 | 0.0005 |
Coverage:
Diversity:
$$(1 -S)$$Example:
Novelty:
Churn:
Responsiveness:
Online A/B Test: