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