Music Recommendation System using Bayesian Personalized Ranking and Autoencoders
Authors: Meghan Patil, Sainaya Brid, Stuti Dhebar
A recommendation system is based on two filtering methods:
· Content Filtering — creates a profile for each user or product to characterize its nature (Success Case: Music Genome Project)
· Collaborative Filtering — analyses relationships between users and inter-dependencies among products to identify new user-item associations (Success Case: Tapestry). Generally, more accurate then content filtering however, it suffers from cold start problem.
Cold start problem: If new user exist sand does not have any inter-dependencies among others, we can’t recommend anything
Collaborative filtering has two methods:
· Neighborhood Method — computing the relationships between items or, alternatively, between users (user base). Example: KNN
· Matrix Factorization Method — each row in matrix represents each user, while each column represents different music. Characteristic features of matrix:
i. Matrix is sparse because not everyone listens to every music
ii. can incorporate implicit feedback, information that are not directly given but can be derived by analyzing user behavior.
Example: SVD, PLSA
There are two types of data on which we can gather information about the likes and dislikes of users:
· Explicit Data: data where we have some sort of rating. Here we know how much a user likes or dislikes an item.
· Implicit Data: data we gather from the user’s behavior, with no ratings or specific actions needed like how many times a user played a song etc.
Since users might not spend the time to rate items or your app might not work well with a rating approach in the first place most systems usually go for implicit data but the downside for this data is that it’s noisier and not always apparent what it means.
1) Bayesian Personalized Ranking (BPR):
· BPR looks at the user, one item the user interacted with and one item the user did not (the unknown item). This gives us a triplet (u, i, j) of a user (u), one known item (i) and one unknown item (j).
· We will implement BPR using matrix factorization which means taking the interaction matrix R of size (all users x all items) and factoring it into matrix U of size (all users x latent features) and V of size (latent features x all items).
· We will use Stochastic Gradient Descent (SGD) to perform optimization.
- takes into consideration the unknown items or missing values i.e. the items a user has not interacted with yet.
- involves pairs of items (the user-specific order of two items) to come up with more personalized rankings for each user.
- Tackles the problem of overfitting.
- Logic based on Naïve Bayes hence it assumes that all users act independently with each other.
-The ordering of each pair of items (i, j) for a specific user is independent.
· Uses Collaborative filtering
· Autoencoder vs deep autoencoder — it contains more hidden layers which provides for the Autoencoder to learn mathematically more complex underlying patterns in the data.
· It is used to learn a representation (encoding) for a set of input data, usually to a achieve dimensionality reduction. (encode the input data to reduce dimension)
· It is a feedforward neural network having an input layer, one hidden layer and an output layer
· It uses unsupervised learning i.e.; labelled data is not necessary to learn and only a set of input data instead of input-output pairs.
- Performs dimensionality reduction
- Can handle heterogeneous data sources and is more adaptable in multi-media scenarios
- Has a better understanding of the user demands and item features, thus leading to higher recommendation accuracy
- Handles input noise than traditional recommendation models
- No interpretability: This kind of deep NN makes it impossible to explain the results.
-Complex to implement
To find the dataset used to implement the codes:
Kaggle is the world’s largest data science community with powerful tools and resources to help you achieve your data…
To find the codes for music recommendation system using BPR and Autoencoders:
Music Recommendation system using BPR and Autoencoders. You can visit…
[ Paper Summary ] Matrix Factorization Techniques for Recommender Systems
ALS Implicit Collaborative Filtering
Continuing on the collaborative filtering theme from my collaborative filtering with binary data example i’m going to…
Implicit Bayesian Personalized Ranking (in Tensorflow)
Recently I’ve had time to read some more papers on recommender systems so I thought it might be time to write a couple…