Author: Jason Brownlee
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.
Tutorial Overview
This tutorial is divided into three parts; they are:
- Papers on Recommender Systems
- Books on Recommender Systems
- 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:
- Amazon.com Recommendations: Item-to-item Collaborative Filtering, 2003.
- Matrix Factorization Techniques for Recommender Systems, 2009.
- Recommender Systems, 2012.
- Recommender Systems Survey, 2013.
- Advances in Collaborative Filtering, 2015.
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
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:
- Recommender Systems Handbook, 2015.
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:
- MovieLens
- Yahoo datasets (music, urls, movies, etc.)
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:
- Surprise: A Python scikit for building and analyzing recommender systems
- Case Recommender: A Flexible and Extensible Python Framework for Recommender Systems
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.
The post How to Get Started With Recommender Systems appeared first on Machine Learning Mastery.