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:
 High Level Approaches:
- Content Based
- Based on using weights across content features
- Collaborative Methods
- Based on an approach : “users who liked this also liked”
 Collaborative Filtering:
- Memory Based (e.g. K-nearest neighbors)
- Model Based (e.g. Matrix Factorization)
 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
 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.