How to Get Started With Recommender Systems

Recommender systems may be the most common type of predictive model that the average person may encounter.

They provide the basis for recommendations on services such as Amazon, Spotify, and Youtube.

Recommender systems are a huge daunting topic if you’re just getting started. There is a myriad of data preparation techniques, algorithms, and model evaluation methods.

Not all of the techniques will be relevant, and in fact, the state-of-the-art can be ignored for now as you will likely get very good results by focusing on the fundamentals, e.g. treat it as a straightforward classification or regression problem.

It is important to know the basics and have it all laid out for you in a systematic way. For this, I recommend skimming or reading the standard books and papers on the topic and looking at some of the popular libraries.

In this tutorial, you will discover resources you can use to get started with recommender systems.

After completing this tutorial, you will know:

  • The top review papers on recommender systems you can use to quickly understand the state of the field.
  • The top books on recommender systems from which you can learn the algorithms and techniques required when developing and evaluating recommender systems.
  • The top Python libraries and APIs that you can use to prototype and develop your own recommender systems.

Let’s get started.

How to Get Started With Recommender Systems

How to Get Started With Recommender Systems
Photo by Paul Toogood, some right reserved.

Tutorial Overview

This tutorial is divided into three parts; they are:

  1. Papers on Recommender Systems
  2. Books on Recommender Systems
  3. Recommender Systems Libraries

Papers on Recommender Systems

Research papers on recommender systems can help you very quickly get up to speed on the state of the field.

Specifically, review papers that use precise language to define what a recommender system is, the algorithms that can be used, standard datasets and metrics for comparing algorithms, and hints at the state of the art techniques.

By skimming or reading a handful of review papers on recommender systems, you can quickly develop a foundation from which to dive deeper and start developing your own systems.

The field does not change that quickly, and techniques from 10 or 20 years ago will give you solid results.

Review papers on recommender systems I recommended to establish a foundational understanding include:

Matrix Factorization Techniques for Recommender Systems

Matrix Factorization Techniques for Recommender Systems

Once you have questions about specific techniques, you can then find papers that focus on those techniques and dive deeper.

You can search for papers on specific techniques here:

Do you know of additional good review papers on recommender systems?
Let me know in the comments below.

Books on Recommender Systems

Books on recommender systems provide the space to lay out the field and take you on a tour of the techniques and give you the detail you need to understand them, with more breadth and detail than a much shorter review paper.

Again, given that the field is quite mature, older books, such as those published a decade ago, should not be immediately neglected.

Some top textbooks published by key researchers in the field include the following:

I own a hard copy of “Recommender Systems: An Introduction” and cannot recommend it highly enough.

This book offers an overview of approaches to developing state-of-the-art recommender systems. The authors present current algorithmic approaches for generating personalized buying proposals, such as collaborative and content-based filtering, as well as more interactive and knowledge- based approaches. They also discuss how to measure the effectiveness of recommender systems and illustrate the methods with practical case studies.

Recommender Systems: An Introduction, 2010.

The table of contents for this book is as follows:

  • Chapter 1: Introduction
  • Chapter 2: Collaborative recommendation
  • Chapter 3: Content-based recommendation
  • Chapter 4: Knowledge-based recommendation
  • Chapter 5: Hybrid recommendation approaches
  • Chapter 6: Explanations in recommender systems
  • Chapter 7: Evaluating recommender systems
  • Chapter 8: Case study: Personalized game recommendations on the mobile Internet
  • Chapter 9: Attacks on collaborative recommender systems
  • Chapter 10: Online consumer decision making
  • Chapter 11: Recommender systems and the next-generation web
  • Chapter 12: Recommendations in ubiquitous environments
  • Chapter 13: Summary and outlook
Recommender Systems: An Introduction

Recommender Systems: An Introduction

It can be good to get a handbook on the topic with chapters written by different academics summarizing or championing their preferred techniques and methods.

I recommend this handbook:

If you are looking for a more hands-on book, I recommend:

Have you read one of these books? Or do you know another great book on the topic?
Let me know in the comments below.

Recommender Systems Libraries

You probably don’t need to dive into the start of the art, at least not immediately.

As such, standard machine learning libraries are a great place to start.

For example, you can develop an effective recommender system using matrix factorization methods (SVD) or even a straight forward k-nearest neighbors model by items or by users.

As such, I recommend starting with some experiments with scikit-learn:

You can practice on standard recommender system datasets if your own data is not yet accessible or available, or you just want to get the hang of things first.

Popular standard datasets for recommender systems include:

If you are ready for state-of-the-art techniques, a great place to start is “papers with code” that lists both academic papers and links to the source code for the methods described in the paper:

There are a number of proprietary and open-source libraries and services for recommender systems.

I recommend sticking with open-source Python libraries in the beginning, such as:

Have you used any of these libraries to develop a recommender system?
Let me know in the comments below.

Summary

In this tutorial, you discovered resources you can use to get started with recommender systems.

Specifically, you learned:

  • The top review papers on recommender systems you can use to quickly understand the state of the field.
  • The top books on recommender systems from which you can learn the algorithms and techniques required when developing and evaluating recommender systems.
  • The top Python libraries and APIs that you can use to prototype and develop your own recommender systems.

Do you have any questions?
Ask your questions in the comments below and I will do my best to answer.

14 Responses to How to Get Started With Recommender Systems

  1. Avatar
    Elie January 22, 2021 at 5:23 am #

    Hi Jason,

    Planning to write a book on recommenders? Would really like to see you tackle implicit methods

    • Avatar
      Jason Brownlee January 22, 2021 at 7:26 am #

      I’d like to in the future… I’ve coded a few in my time.

  2. Avatar
    Vahab January 22, 2021 at 4:35 pm #

    This useful page are mainly python based but can say that,
    There are some other cloud based systems like amazon personalized, googlecloud ML, recommation ai , etc, too

  3. Avatar
    Jeharul January 22, 2021 at 9:10 pm #

    Hi Jason,

    I have already purchased the Bundle from your site. I have slowly started to get get a hang of those books (one by one).

    My question is, can I go ahead and buy “Practical Recommender Systems, 2019” to improve my knowledge on the most commonly used (in the e-commerce segment, coz I can associate myself with hat area a lot) ML concept ?

    • Avatar
      Jason Brownlee January 23, 2021 at 7:04 am #

      That book will help you with recommender systems. Not sure it is specific to e-commerce.

  4. Avatar
    Deep Learner January 23, 2021 at 6:07 am #

    Hi Jason,
    Excellent and very timely article for me as I’m diving in the topic. You wrote: “I own a hard copy of “Recommender Systems: An Introduction” and cannot recommend it highly enough.” is the pub intended? In any case iglf you write a book on recommended systems I’m sure I’ll buy it and will “recommend” it to people interested in the topic.
    Thanks.

    • Avatar
      Jason Brownlee January 23, 2021 at 7:11 am #

      Thanks!

      Pun not intended 🙂 I’m a simple literal guy!

      Great suggestion.

  5. Avatar
    Jason Brownlee January 27, 2021 at 6:16 am #

    Great tip!

  6. Avatar
    Nejood December 17, 2021 at 6:15 pm #

    Thank you very much. It’s useful information. I’m looking for code for recommender systems using machine learning.
    could you help me to get that?
    kinds regards

    • Adrian Tam
      Adrian Tam December 19, 2021 at 1:35 pm #

      At the end of this post, there are links to github. These should good for you to have a quick start.

    • Avatar
      James Carmichael December 21, 2021 at 11:40 am #

      Hello Nejood…Please provide more information regarding your particular application and we can go from there.

      Regards,

  7. Avatar
    capt price May 20, 2023 at 3:23 pm #

    Hey so i was hoping to code a good personal project based on recommender systems both as a personal interest as well as something to brighten up my resume

    I am a student and i have some free time on my hands so should i go through all those papers and those 2 books as pre requisite??

    I would really appreciate ur advice

    • Avatar
      James Carmichael May 21, 2023 at 12:59 pm #

      Hi capt price…I would recommend that you do so. Then feel free to let us know if you have any questions regarding the application of the tutorial content.

Leave a Reply