Recommender Systems: Introduction and Examples
Last updated:- Introduction
- The User-item matrix
- Types of Recommender systems
- Memory-based vs model-based
- Main Techniques: Collaborative filtering
- Main Techniques: Content-Based Recommendations
- Topics in RS Research
- Example: Simple Collaborative Filter with Python's Surpriselib
WIP Alert This is a work in progress. Current information is correct but more content may be added in the future.
Introduction
TODO
Well then, aren't Recommender Systems just good old Machine Learning?
Technically yes, but the settings are very different; whereas users typically type stuff into forms and hit search buttons to view search results, recommendations are usually displayed without explicitly being requested by users and are highly context-dependent1
The User-item matrix
Element \(A_{ui}\) represents the rating
user \(u\) gave item \(i\).
Source: @connectwithghosh
Types of Recommender systems
Source: Wikipedia
Memory-based vs model-based
If you need to train your system, it's model-based.
TODO
Main Techniques: Collaborative filtering
Collaborative means that these methods use inputs from similar users too
Memory-based
- Item-based
- User-based
Model-based
- Matrix factorization approaches
- Other regular machine learning algorithms
Main Techniques: Content-Based Recommendations
- Basically information retrieval
Topics in RS Research
Scalability
TODO
Personalization vs Privacy concerns
TODO
Explicit vs Implicit Feedback
TODO
System Robustness / Defense against attacks
It's very likely that users may try to artificially increase their own products' popularity (product push) or decrease their competitors' (product nuke attack) once it's clear a rating system is in place.2
Relevance vs Diversity tradeoff
There is a tradeoff between how relevant and how diverse a given set of recommended items is.
This means that if you only recommend items with maximum relevance (for a particular user), it's very likely that all items will be very similar to each other, thus lacking in diversity.
The idea is that recommendations that balance relevance and accuracy may encourage user interaction and increase conversion rates for non-repeating customers4. You can think of it as a form of hedging your bets.
Example: If we apply a naïve CF algorithm, that only optimizes for accuracy it's very likely that we will recommend Rambo II, Rambo III and Rambo IV for users that have watched Rambo I.
Recommend relevant items only | Balance relevance and diversity |
---|---|
Using any RS technique, calculate the relevance of each movie with respect to a given user. Then, recommend the top \(k\) movies with the highest relevance. |
Using any RS technique, calculate the relevance of each movie with respect to a given user. Then, define a similarity function to measure how similar two movies are. Add the 1 most relevant movie to the recommendation set, but when selecting the other movies, skip items that are too similar with other items in the recommendation set. This will create a recommendation set which balances relevance and diversity. |
This is a topic that has been very intensely researched in the last years.3
Context-aware Recommendation
TODO
Location
Time
Cold start problem
TODO
Example: Simple Collaborative Filter with Python's Surpriselib
TODO
References
Koren et al. 2009: Matrix Factorization Techniques for Recommender Systems
Queirozf.com: Dr. Joseph Konstan's talk on Advanced Recommender Systems topics
Footnotes
1: For example, at the bottom of a product page on Amazon, you will likely be shown product recommendations related to the current product you're viewing.
2: There are many other forms of attacking a recommender system: Identifying Attack Models for Secure Recommendation
3: There was a full Workshop on this very topic in 2011. RecSys International Workshop on Novelty and Diversity in Recommender Systems
4: I.e. customers that don't often visit a given website/service.
Appendix: Matrix Factorization
the Item Matrix is an approximation of the rating user \(B\) would give item \(X\)
Source: @connectwithghosh