Recommender systems capture the patterns of people’s behavior and use it to predict what else they might want or like.
Why recommender systems ?
- Broader exposure
- Possibility of continual usage or purchase of products
- Provides better experience
- Build a recommender system/systems for various use cases of a podcast system.
- Come up with new ideas to enhance the user experience while interacting with the system.
Types of recommender systems we will look at
- Content-based : Tries to figure out what a user’s favourite aspects of an item is, and then recommends items that present those aspects.
- Collaborative : Finds similar groups of users, and provides recommendations based on their taste.
First let us consider a scenario where we have 6 podcasts out of which our user has heard three. This is a use case in which we look at the current preferences of a current user and recommend more podcasts to that user. We will cover new users later.
So we have
6 podcasts and 3 have been heard by the user
We can work with the genres of the podcasts and with the reactions(ratings,duration of listening,number of episodes heard, etc) by the user.
We will create an input user ratings vector which will have the ratings(or other metrics mentioned above in numerical form).
Next, we will one-hot encode the user rated podcasts into its respective genres.
Let’s assume the user gave ratings for podcasts 1 to 3 as follows:
Now we will multiply our input user ratings matrix with the podcast matrix as above
We get the weighted genre matrix:
This matrix shows the interest of the user in each genre based on the podcasts listened to by the user.
We will not aggregate the weighted genre matrix and normalize it.
We have the user profile matrix
Now let’s tackle the remaining 3 podcasts which the user hasn't interacted with...yet.
One-hot encode the remaining 3 podcasts as above.
Now if we aggregate or sum over the podcasts based on the above table we get the following vector
Therefore, podcast 4 is most probably likeable by our user.
This was an example of content-based recommendation.
I will be writing about collaborative filtering soon! ;)