This page contains Recommendation Systems glossary terms. For all glossary terms, click here.

## C

## candidate generation

The initial set of recommendations chosen by a
**recommendation system**. For example, consider a
bookstore that offers 100,000 titles. The candidate generation phase creates
a much smaller list of suitable books for a particular user, say 500. But even
500 books is way too many to recommend to a user. Subsequent, more expensive,
phases of a recommendation system (such as **scoring** and
**re-ranking**) whittle down those 500 to a much smaller,
more useful set of recommendations.

## collaborative filtering

Making **predictions** about the interests of one user
based on the interests of many other users. Collaborative filtering
is often used in **recommendation systems**.

## I

## item matrix

In **recommendation systems**, a
matrix of **embeddings** generated by
**matrix factorization**
that holds latent signals about each **item**.
Each row of the item matrix holds the value of a single latent
feature for all items.
For example, consider a movie recommendation system. Each column
in the item matrix represents a single movie. The latent signals
might represent genres, or might be harder-to-interpret
signals that involve complex interactions among genre, stars,
movie age, or other factors.

The item matrix has the same number of columns as the target matrix that is being factorized. For example, given a movie recommendation system that evaluates 10,000 movie titles, the item matrix will have 10,000 columns.

## items

In a **recommendation system**, the entities that
a system recommends. For example, videos are the items that a video store
recommends, while books are the items that a bookstore recommends.

## M

## matrix factorization

In math, a mechanism for finding the matrices whose dot product approximates a target matrix.

In **recommendation systems**, the target matrix
often holds users' ratings on **items**. For example, the target
matrix for a movie recommendation system might look something like the
following, where the positive integers are user ratings and 0
means that the user didn't rate the movie:

Casablanca | The Philadelphia Story | Black Panther | Wonder Woman | Pulp Fiction | |
---|---|---|---|---|---|

User 1 | 5.0 | 3.0 | 0.0 | 2.0 | 0.0 |

User 2 | 4.0 | 0.0 | 0.0 | 1.0 | 5.0 |

User 3 | 3.0 | 1.0 | 4.0 | 5.0 | 0.0 |

The movie recommendation system aims to predict user ratings for
unrated movies. For example, will User 1 like *Black Panther*?

One approach for recommendation systems is to use matrix factorization to generate the following two matrices:

- A
**user matrix**, shaped as the number of users X the number of embedding dimensions. - An
**item matrix**, shaped as the number of embedding dimensions X the number of items.

For example, using matrix factorization on our three users and five items could yield the following user matrix and item matrix:

User Matrix Item Matrix 1.1 2.3 0.9 0.2 1.4 2.0 1.2 0.6 2.0 1.7 1.2 1.2 -0.1 2.1 2.5 0.5

The dot product of the user matrix and item matrix yields a recommendation
matrix that contains not only the original user ratings but also predictions
for the movies that each user hasn't seen.
For example, consider User 1's rating of *Casablanca*, which was 5.0. The dot
product corresponding to that cell in the recommendation matrix should
hopefully be around 5.0, and it is:

(1.1 * 0.9) + (2.3 * 1.7) = 4.9

More importantly, will User 1 like *Black Panther*? Taking the dot product
corresponding to the first row and the third column yields a predicted
rating of 4.3:

(1.1 * 1.4) + (2.3 * 1.2) = 4.3

Matrix factorization typically yields a user matrix and item matrix that, together, are significantly more compact than the target matrix.

## R

## recommendation system

A system that selects for each user a relatively small set of desirable
**items** from a large corpus.
For example, a video recommendation system might recommend two videos
from a corpus of 100,000 videos, selecting *Casablanca* and
*The Philadelphia Story* for one user, and *Wonder Woman* and
*Black Panther* for another. A video recommendation system might
base its recommendations on factors such as:

- Movies that similar users have rated or watched.
- Genre, directors, actors, target demographic...

## re-ranking

The final stage of a **recommendation system**,
during which scored items may be re-graded according to some other
(typically, non-ML) algorithm. Re-ranking evaluates the list of items
generated by the **scoring** phase, taking actions such as:

- Eliminating items that the user has already purchased.
- Boosting the score of fresher items.

## S

## scoring

The part of a **recommendation system** that
provides a value or ranking for each item produced by the
**candidate generation** phase.

## U

## user matrix

In **recommendation systems**, an
**embedding** generated by
**matrix factorization**
that holds latent signals about user preferences.
Each row of the user matrix holds information about the relative
strength of various latent signals for a single user.
For example, consider a movie recommendation system. In this system,
the latent signals in the user matrix might represent each user's interest
in particular genres, or might be harder-to-interpret signals that involve
complex interactions across multiple factors.

The user matrix has a column for each latent feature and a row for each user. That is, the user matrix has the same number of rows as the target matrix that is being factorized. For example, given a movie recommendation system for 1,000,000 users, the user matrix will have 1,000,000 rows.

## W

## Weighted Alternating Least Squares (WALS)

An algorithm for minimizing the objective function during
**matrix factorization** in
**recommendation systems**, which allows a
downweighting of the missing examples. WALS minimizes the weighted
squared error between the original matrix and the reconstruction by
alternating between fixing the row factorization and column factorization.
Each of these optimizations can be solved by least squares
**convex optimization**. For details, see the
Recommendation Systems course