Hello everyone and welcome to the recommender systems lecture and this lecture points to discuss the
different types of recommender systems and how we're going to approach creating a recommendation system
with Python.
Let's go ahead and get started.
As far as a reading assignment there is no section on recommendation systems.
In the introduction to the school learning book.
So in case you are further interested in recommendation systems and what we're going to cover in this
course I suggest you take a look at the textbook recommender systems by Janick and sinker.
It's a really great textbook on this topic.
If you want to get a deeper understanding a recommender systems and the mathematics behind them.
Let's go ahead and discuss how we're actually going to approach recommender systems in this course of
fully developed in the recommendation system is actually extremely complex and resource intensive because
of this.
We're going to have two notebooks for this section of the course.
We have the recommender systems of Python notebook and the advanced recommender systems Python notebook
since a fully implemented recommendation system actually requires a heavy linear algebra background
as far as knowledge is concerned.
The advanced recommender system notebook is provided as an optional resource for you.
You should only take a look at this notebook if you feel comfortable with advanced linear algebra.
Well we're going to do for this course show you a simpler version of creating a recommendation system
using items similarity for the project.
Let's go ahead and give you a light background and recommender systems theory in general.
The two most common types of recommender systems are content based and collaborative filtering collaborative
filtering produces recommendations based on the knowledge of users attitude to items.
That is it uses the wisdom of the crowd to recommend items you can think of this as something like Amazon
where based on other people's shopping experiences Amazon will suggest items that it believes you will
enjoy.
Content based recommendation systems focus on the attributes of the items and give you recommendations
based on the similarity between items.
The basic difference here is filtering based on user preferences or filtering based off of the similarity
between the items.
Generally speaking in the real world collaborative filtering or C-f is more commonly used in content
based systems because it usually gives better results and it's actually relatively easy to understand
from an overall implementation perspective.
Provided that you have that linear algebra background the collaborative filtering algorithm actually
has the ability to do feature learning on its own which means that it can start to learn for itself
what features to use when recommending certain items.
C-f can also be divided into two subcategories.
Memory based collaborative filtering and model based collaborative filtering.
Now if you feel comfortable if advanced linear algebra in that advanced notebook tutorial what we end
up doing is implementing model based C-f by using singular value decomposition and memory based C-f
by computing co-signers similarity for implementation in Python that we're going to walk you through
what we will do is create a content based recommender system for a data set of movies.
This movie dataset is usually a student's first dataset.
When beginning to learn about recommender systems you may have heard of it before.
It's called the movie lens dataset.
It's actually quite large compared to some of the other datasets we've worked with.
But in general recommender systems in real life usually deal with much larger data sets than this one
.
There won't be a full exercise of questions for this topic.
Instead what you'll have is the option to work through the advanced notebook.
If you feel like you have the necessary linear algebra background there's lots of text explanations
in that notebook so there won't be a video guide through that notebook because it's not relevant.
Everyone given the background required to actually understand the mathematics in that notebook.
Well we're going to go ahead and do now is get started for own Python implementation and walk through
an example project using that movie dataset to actually provide recommendations based on the similarity
of movies.
Let's go ahead and get started.
I'll see that the next lecture