There are several approaches in building up a recommendation system. I have been intrigued at how we can connect the different approaches, and understand the pros and cons of each approach.
Here is a high-level overview of the approaches being used for solving the recommendation problem:
[1] High Level Approaches:
- Content Based
- Based on using weights across content features
- Collaborative Methods
- Based on an approach : “users who liked this also liked”
[2] Collaborative Filtering:
- Memory Based (e.g. K-nearest neighbors)
- Model Based (e.g. Matrix Factorization)
[3] Collaborative Filtering : Memory Based : K-nearest neighbors
- Key Intuition: “Take a local popularity vote among “similar” users”
- Need to quantify similarity, predict unseen rating.
- Can take 2 forms :
- Item-item collaborative filtering, or item-based, or item-to-item
- User-User collaborative filtering
[4] Collaborative Filtering : Model Based : Matrix Factorization.
- Key Intuition : Model item attributes as belonging to a set of unobserved topics
and user preferences across these topics
- Model quality of fit with squared-loss.
- There are 2 ways to do the loss optimization :
- Alternating Least Squares.
- Stochastic Gradient Descent.
References:
- https://en.wikipedia.org/wiki/Item-item_collaborative_filtering
- http://dl.acm.org/citation.cfm?id=372071