Build a recommendation engine using Django & a Machine Learning technique called Collaborative Filtering.
Users will rate movies and the system will automatically recommend new ones. These recommendations will be done in batches (ie not in real time) to unlock a more scalable system for training and helping thousands and thousands of users.
For this course, we’ll use a real dataset called MovieLens; this dataset is downloaded in CSV and is used on all kinds of machine learning tutorials. What’s special about this course is you’ll load this dataset into a SQL database through a Django model. This alone might be worth watching the course as SQL databases are far more powerful than CSV files.
To do the batch inference we implement the incredibly powerful background worker process called Celery. If you haven’t used Celery before, this will be an eye opening experience and when you couple it with Django you have a truly powerful worker process that can run tasks in the background, run tasks on a schedule, or a combination of both. Tasks in Celery are simply Python functions with a special decorator.
The recommendation engine in Django is really a collection of 3 parts:
- Web Process: Setup up Django to collect user’s interest and provide recommendations once available.
- Machine Learning Pipeline: Extract data from Django, transform it, and train a Collaborative Filtering model.
- Worker Process: This is the glue. We’ll use Celery to schedule/run the trained model predictions and update data for Django-related user recommendations.
- Python 3.6+ (such as 30 Days of Python)
- Django 3.2+ (such as Your First Django Web Project or Try Django 3.2)
- Celery with Django (such as Time & Tasks 2 or this blog post)
Who this course is for:
- Beyond the basics Django Developers (ie you completed a Try Django course)
- Anyone interested in building powerful ML-heavy Web Applications
- Anyone looking to learn about Python Celery for Worker processes
- Anyone interested in building workflows that need to run along side of Django.
- Experience Python 3.6+ (such as the first 15/16 days from my course 30 Days of Python)
- Django 3.2+ experience (such as my course Your First Django Web Project or any of the Try Django series)
- Celery experience is a plus! (Such as my Time & Tasks 2 course)
- Machine learning experience is a plus but not required (checkout my Hello World of Machine Learning Course)
- Pandas basics is a plus but not required (checkout my Try Pandas Course)
Last Updated 2/2023