Skip to content
Pablo Rodriguez

Making Recommendations

Recommender systems have “received quite a bit of attention in academia” but “the commercial impact and the actual number of practical use cases of recommended systems seems to me to be even vastly greater than the amount of attention it has received in academia.”

Common applications include:

  • Online shopping websites like Amazon
  • Movie streaming sites like Netflix
  • Food delivery apps and sites
  • Any platform that suggests items users may want to buy, watch, or try

The running example uses “predicting movie ratings” for a movie streaming website where users rate movies using “one to five stars” (actually “zero to five stars” for easier examples).

Users: Alice (1), Bob (2), Carol (3), Dave (4) Movies: Love at last, Romance forever, Cute puppies of love, Nonstop car chases, Sword versus karate

Sample ratings pattern:

  • Alice: Rates romantic movies highly (5 stars), action movies poorly (0 stars)
  • Bob: Similar to Alice with some variations
  • Carol: Opposite preference - loves action, dislikes romance
  • Dave: Similar to Carol
  • nu: “Number of users” (4 in example)
  • nm: “Number of movies” or “number of items” (5 in example)
  • r(i,j): ”= 1 if user j has rated movie i” and ”= 0 if user j has not rated movie i”
  • y(i,j): “Rating given by user j to movie i”

Important Note

“Not every user rates every movie and it’s important for the system to know which users have rated which movies.”

The framework approach is to “look at the movies that users have not rated” and “try to predict how users would rate those movies because then we can try to recommend to users things that they are more likely to rate as five stars.”

The initial approach makes “one very special assumption” - “we’re going to assume temporarily that we have access to features or extra information about the movies such as which movies are romance movies, which movies are action movies.”

The plan is to:

  1. Start with known movie features
  2. Develop the algorithm using these features
  3. Later address “what if we don’t have these features, how can you still get the algorithm to work then?”

This sets up the foundation for collaborative filtering where the goal is predicting user preferences to make targeted recommendations.