Types of Recommender Systems

Jackson Wu
6 min readMay 27, 2019

This is the second article in our series on recommender systems. If you haven’t read Tumas Račkaitis’ introductory article, I would start there. If you already know what recommender systems are, go ahead.

We know from Tumas’ article what recommender systems are and why they are important. But what do these recommender systems look like in practice? What design choices do developers make to address to tackle the task of recommending items to user in their domain?

This is a big question– one that will address case by case over this series of articles. The first step, however, is understanding the fundamental ideas and strategies that all recommender systems are built on.

This article will provide a brief overview of the data typically used in recommender systems and the models of recommender systems. Many of them are basic in concept, but can be quite sophisticated in implementation, depending on what features developers add to optimize the model. We will see more of this as we cover specific models in depth.

About Rating Systems

To understand how recommender systems recommend items, one must first understand the types of ratings they use.

You can think of any demonstration of affinity or interest for an item as a rating.

All ratings can put into two categories: explicit and implicit. There are a few main types of explicit ratings:

Explicit Ratings

An intervalic rating system

Rating systems that ask users to pick a value on some finite scale of points are called intervallic rating systems. They often represent these scales ({1,2,3,4,5} or {-3,-2,-1,0,1,2,3}) as stars or other representative objects (five star scale or seven star scale). How these points are interpreted ({-2,1,0,1,2} or {1,2,3,4,5} also impacts the recommender system.

Ordinal rating systems essentially intervallic systems with words such as “heavily agree” or “strongly dislike” mapped to each interval. This can help to clarify the meaning of each intervallic rating (3/5 stars could mean “no strong feelings” or “pretty good” depending on the context).

Continuous systems are less common. They give a bounds, 1 to 10 for instance, and allow users to pick a real number within those bounds. Predicting a continuous rating on a large scale is often computationally expensive. Sometimes the best option is just to convert them to intervallic

A special case of an interval or ordinal system might be a binary rating system, where users can rate an item either one or zero. This might correspond to like or dislike.

All of the rating systems mentioned so far are explicit rating systems, meaning they are a user’s intentional evaluation of an item . They reflect how much a user approves of an item. However, you can think of any demonstration of affinity for an item as a kind of rating.

Implicit Ratings

Recommender systems can also use implicit ratings, which are defined indirectly through a user’s interactions for items. For example, a website might keep track of where a certain user tends to click, or how much time they spend on a page. These ratings often come in the form of unary ratings.

The most famous implicit rating

The most common type of implicit rating system is unary, where an object is either rated or not rated. Viewing a video or clicking on a link might be considered a unary rating. These can also used in the context of explicit ratings, like when user interfaces have a “like” button, but no dislike button.

In addition to the rating strategies used to determine user interest, many advanced recommender systems use additional context dimensions in their data. Context like the time and date of the rating, location, and user demographics can affect the content the user is likely to interact with.

Not every recommender system works with every type of rating, so you might have to wrangle your ratings into another format.

The big, interesting question in recommender systems is how to use ratings and contextual information to predict items that the user is likely to enjoy. I’ve created an overview of some most common strategies:

Collaborative Filtering

The key concept in collaborative filtering methods is that they are collaborative, i.e. they leverage other user’s ratings. If you are trying to guess whether or not you will like a certain movie, you might ask people with similar taste what they thought of that movie. You also might ask these people what other movies they liked and gather a list of recommendations. Collaborative filtering methods predict the target user’s rating of a given item using similar users’ ratings of that item.

There are two ways to approach collaborative filtering:

  1. Memory-based or neighborhood-based methods are a simple way of harnessing the ratings of others users to predict ratings. They themselves come in two varieties: user-based and item-based. User-based collaborative filtering forms a pool of similar users and averages of their ratings of the target item. Item-based collaborative filter forms a pool of similar items, and averages the target user’s ratings of those items. For an in-depth at neighborhood-based methods and how to optimize them, check out these next few articles in this series on recommender systems.
  2. Model-based methods take collaborative filtering a step farther, and uses machine learning and probabilistic models. Some examples we’ve covered in this series include decision trees, latent-factor models, and neural networks as classification black boxes.

Content-based Recommender Systems

Unlike collaborative filtering methods, content-based recommender systems do not use other user’s ratings at all. Instead, they utilize descriptive keywords associated with each item to make recommendations. This is quite useful, because the only rating history we need to make predictions is that of the target user.

You might be able to see how recommending items like this might conflict with our goal of serendipity (recommending the user a variety of items) we talked about earlier. For example, if item has no keywords in common with any item the user has rated, that item will never be recommended. I go into greater detail on content-based recommender systems here and implement an example with association rules here.

Knowledge-based Recommender Systems

Knowledge-based recommender systems are similar to content-based recommender systems in that they construct a personalized model for each user and use it to find relevant items for them. However, instead of using the rating history of the user to construct that model, they require the user to explicitly state their preferences, perhaps through keywords or a series of requirements. They are useful in a cold start scenario, or in a complex item domain with many attributes, where a user might not immediately know what they want.

Hybrid Recommender Systems

These basic types of recommender system are rarely, if ever used in isolation. Most recommender systems used in practical applications are combinations of models, or hybrid models.

These hybrid models could be as taking the weighted average of several models, or as complex as large monolithic systems that blur lines between models.

This is a especially rich and useful topic to explore, as many of the best recommender systems get their edge from how they use models collectively. Learn about the various types of hybrid recommender systems here.

Thanks for checking out our series on recommender systems! I highly recommend clicking on one (or more)of the links above and exploring some of the implementations we’ve done. You can find the link to the entire series here.

--

--