Skip to main content Accessibility help
  • Print publication year: 2016
  • Online publication date: February 2016

2 - Classical Methods



A recommender system seeks to recommend a small set of items for each user visit to optimize one or more objectives in a given context. In this chapter, we review classical methods for making such recommendations.

In general, recommendations are made based on

• what we know about the items (Section 2.1)

• what we know about the user (Section 2.2)

• how users interacted with items (e.g., clicked or not) in the past

We represent information about a user i as a vector of user features and information about an item j as a vector of item features (examples of such feature vectors are given later). In this chapter, we review classical methods to compute a score ŷij for each (user i, item j) pair. The scores ŷij are usually computed in one of the following ways:

• similarity between feature vectors of user i and item j (Section 2.3)

• user i's past responses to items that are “similar” to item j and/or how other users “similar” to user i responded to item j in the past (Section 2.4)

• a combination of both of the preceding (Section 2.5)

Some methods leverage predefined similarity measures, whereas others seek to learn the similarity measure directly from data.

Classical methods serve as strong baselines for the more sophisticated methods described in later chapters. In this book, we only provide an overview of classical methods. For more details on classical methods, see Adomavicius and Tuzhilin (2005), Jannach et al. (2010), and Ricci et al. (2011).

Notation. We use i and j to denote a user and an item, respectively. Let yij denote the rating that user i gives to item j. Here we use the term rating in a general sense: it can be an explicit rating, such as a 5-star rating (on a movie, a book, or a product), or an implicit rating, such as a click (on a recommended item). We use Y = ﹛ yij : user i rated item j ﹜ to denote a set of observed ratings and call it a rating matrix. Notice that many entries of this rating matrix are unobserved. We let xi and xj denote the vector of features of user i and the vector of features of item j, respectively.