3 Approaches to Building Recommender Systems

A non-technical discussion

Harry Roper
Geek Culture

--

Photo by Tech Daily on Unsplash

Personalisation, an increasingly pursued strategy in the world of business and technology, refers to the notion of creating a bespoke customer experience by pointing users of a service in the direction of items they’re likely to enjoy.

Be it products on an e-commerce site, movies on a streaming platform, or articles on a news app, many companies utilise data on customer behaviour to build recommender systems with the goal of enhancing user experience through personalisation and, in turn, boosting product engagement.

This post will explore three commonly used approaches to building recommender systems, those being:

  1. Knowledge based
  2. Collaborative filtering
  3. Content based

Although the application of recommender systems is an altogether complex topic in the world of data science, this post aims to discuss the concepts in a non-technical setting.

To illustrate the concepts as we explore the different approaches, let’s imagine we run a platform on which writers can publish articles on a variety of topics. When a user registers on the platform, they can browse and read articles and, once they’ve done so, can rate them out of five in terms of how much they enjoyed the content.

We want to add a degree of personalisation to the platform so that our users find it more engaging. Let’s dive in!

Knowledge Based Recommendations

As we’ll discover when we discuss the two subsequent approaches, implementing personalisation requires data on a user’s behaviour as they interact with the product or service.

With this in mind, how do we make recommendations for new users when they first join our platform?

This is what’s referred to as the cold start problem, that being that we can’t make personalised recommendations for a user before we’ve observed some of their behaviour and gathered some data.

We could simply start by displaying our items in a random order and waiting for data to be generated on the new user once they start interacting with the platform. However, we might be able to build a more engaging experience by starting out with non-personalised recommendations using a knowledge based system.

This would involve ranking items based generally on the previous interactions of all of our other users.

To create such a rank, we’d need to choose a metric of success to determine the “popularity” of each item. In the context of our content platform, this could be the total number of times an article’s been read, the average rating it’s received, or a combination of the two.

When the new user registers on the platform, we could start by displaying, for example, the ten most popular articles. Once the user has started to interact with the content and some data has been generated, we can move onto implementing personalised systems.

Collaborative Filtering Recommendations

Collaborative filtering refers to the notion of selecting recommendations for a user based on the activity of other users.

To begin, we need to compare the behaviour of the user we want to make recommendations for to that of each of our other users. For instance, in each user<>user pair, are there articles that both users have read? If so, did both users like or dislike them, or did they have contrasting opinions?

Once we’ve identified users who exhibit similar behaviour to that of the user in question, we can take the items which have been enjoyed by the similar users but are new to the given user and display these as our recommendations.

For example, let’s say that we’re making recommendations for User A, who enjoyed an article they read about making pizza dough, but didn’t enjoy one on the subject of golf.

One of our other users, User B, also liked the pizza dough article and disliked the golf article. Furthermore, User B enjoyed an article about the origins of gnocchi, which User A hasn’t read yet.

Since Users A and B display similarities in their previous behaviour, we can wager that User A is also likely to enjoy the gnocchi article, so this is likely to be a successful recommendation.

In a wider sense, we can compare a single user to every other user of our platform, find those who behave most similarly, and recommend new items accordingly.

Collaborative filtering is an interesting approach in that it doesn’t actually require us to know anything about the characteristics of the items, since we’re only looking at which items users liked or disliked and finding correlations between them.

Content Based Recommendations

While collaborative filtering didn’t require any knowledge of the items themselves, content based systems, as the name might suggest, certainly do.

In this approach, we look at the items a given user has previously interacted with and enjoyed and recommend new items that share similar characteristics.

Specifically to our example, the characteristics of an article may include the topics it discusses, the writer who published it, or even the word count.

We can again use the example of recommending the gnocchi article after our user enjoyed the pizza dough article, as both items share the trait of discussing quintessential elements of Italian cuisine.

Since content based systems don’t require us to compare the user in question with other users, they can be useful in cases of users for whom we can’t find similar users when trying the collaborative filtering approach.

The downside to using an exclusively content based approach is that it may prevent discovery, in that it would only recommend articles to a user that are similar to those they’ve already read, and wouldn’t expose the user to new topics.

Closing Remarks

To sum up, we discussed three possible approaches to building recommender systems to make our fictitious content platform more engaging to the user.

Knowledge based systems are non-personalised and simply rank items based on a chosen metric, such as an article’s average rating. They’re useful for tackling the cold start problem.

Collaborative filtering involves matching a user to other users who share similar tastes, and subsequently recommending new items that the similar users enjoyed.

Content based systems seek to find items that share similar characteristics to those that a user has previously enjoyed.

In reality, companies tend to employ a variety of techniques when building personalisation into their services, often using a blend of the systems outlined above.

Recommender systems are a fascinating and ever-developing topic. Hopefully this post provided an interesting starting point at which to learn some of the basic concepts. Questions, feedback, and suggestions are always welcome!

--

--