Chapter 2. User-Item Ratings and Framing the Problem

If you were asked to curate the selection for a cheese plate at a local café, you might start with your favorites. You might also spend a bit of time asking for your friends’ favorites. Before you order a large stock in these cheeses for the café, you would probably want to run a small experiment—maybe asking a group of friends to taste your selections and tell you their preferences.

In addition to receiving your friends’ feedback, you’d also learn about your friends and the cheeses. You’d learn which kinds of cheeses your friends like and which friends have similar tastes. You can also learn which cheeses are the most popular and which cheeses are liked by the same people.

This data would start to give you hints about your first cheese recommender. In this chapter, we’ll talk about how to turn this idea into the right stuff for a recommendation system. By way of this example, we’ll discuss one of the underlying notions of a recommender: how to predict a user’s affinity for things they’ve never seen.

The User-Item Matrix

It’s extremely common to hear those who work on recommendation systems talk about matrices, and in particular the user-item matrix. While linear algebra is deep, both mathematically and as it applies to RecSys, we will begin with simple relationships.

Before we get to the matrix forms, let’s write down some binary relationships between a set of users and a set of items. For the sake of this example, think of ...

Get Building Recommendation Systems in Python and JAX now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.