SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Music	Entertainment	System
Collaborative Recommender
System for Music
Valentin Nagacevschi
What to listen next …..
Music	Entertainment	System
Why Recommender Systems?
• Information overload too many choices
• Help users find items of their interest
• Help item providers deliver items to right users
• Help platforms build user engagement
Music	Entertainment	System
What is a Recommender System?
• Most successful and widespread application of ML in business.
• Many users interact with many items: predict items for users
• Applied Movies, Books, Music, Retail, etc.
The Goal of Recommender System
Relevance Novelty
Serendipity Diversity
Music	Entertainment	System
Domains
• Media
News, videos, movies, music
• eCommerce
Product recommendation
• Jobs
Personalised job boards, newsletters with best matching jobs
• Travel & Real Estate
Events, Places, Hotels, Restaurants, Flights, Car Rentals
• Education
Personalised education - materials, courses, specialisations, skills
Music	Entertainment	System
Types of Recommender Systems
• Content-based recommendation systems
• Item bases / User based
• Need information for items or users to calculate similarities
• Collaborative recommendation system
• People like
• things similar to other things they like
• things that are liked by other people with similar taste
Collaborative Filtering
Memory based approach
Model based approach
Find similar users based on cosine
similarity or Pearson correlation and
use weighted average of ratings
Use machine learning to find user
ratings of unrated items using Matrix
Factorization and Neural Networks
Music	Entertainment	System
Matrix Factorization
Music	Entertainment	System
Ratings vs. Interactions
• Ratings
• Normally 1 - 5
• Unreliable and biased
• Interactions
• Normally 0 - 1
• Cannot capture dislikes
Music	Entertainment	System
Music Interactions Dataset
user_id track_id gt30 lt30 rating
0 133575735 15717314 1 0
1 133575735 29494564 3 1
2 133575735 31531850 1 0
3 133575735 37472673 2 0
4 133575735 42984237 0 1
Music	Entertainment	System
Prepare Music Data
• No ratings, but better than interactions
• Labels standard: 30 seconds threshold
• Derived ratings:
3 + (gt30 - lt30) if (gt30 - lt30) >= 0
2 + (gt30 - lt30) if (gt30 - lt30) < 0
Rating - Before and After
Music	Entertainment	System
Why PyTorch ?
• Dynamic approach to Graph Computation
• Increased developer productivity
• Easier to learn and simpler to code
• Easy to debug
• Simplicity and transparency
Music	Entertainment	System
Matrix Factorization Model
import torch.nn as nn
import torch.optim as optim
class MatrixFactorization(nn.Module):
def __init__(self, n_users, n_items, n_factors=20):
super().__init__()
self.user_factors = nn.Embedding(n_users, n_factors, sparse=True)
self.item_factors = nn.Embedding(n_items, n_factors, sparse=True)
self.user_biases = nn.Embedding(n_users, 1, sparse=True)
self.item_biases = nn.Embedding(n_items, 1, sparse=True)
def forward(self, user, item):
dot = (self.user_factors(user) * self.item_factors(item)).sum(1)
bias = self.user_biases(user) + self.item_biases(item)
return dot + bias
Music	Entertainment	System
Model and Data Preparation
model = MatrixFactorization(1000, 1000)
loss_func = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=1e-6)
# shuffle training data
rows, cols = ratings.nonzero()
p = np.random.permutation(len(rows))
rows, cols = rows[p], cols[p]
Music	Entertainment	System
Train the Model
for row, col in zip(*(rows, cols)):
# Turn data into variables
rating = Variable(torch.FloatTensor([ratings[row, col]]))
row = Variable(torch.LongTensor([np.long(row)]))
col = Variable(torch.LongTensor([np.long(col)]))
# Predict and calculate loss
prediction = model(row, col)
loss = loss_func(prediction, rating)
# Backpropagate
loss.backward()
# Update the parameters
optimizer.step()
Music	Entertainment	System
SpotLight Library
dataset = get_music_dataset(variant=‘100K')
train, test = random_train_test_split(dataset)
model = ExplicitFactorizationModel(
loss=‘regression', # loss function
embedding_dim=40, # latent dimensionality
n_iter=12, # number of epochs of training
batch_size=1024, # minibatch size
l2=1e-9, # strength of L2 regularization
learning_rate=0.1)
model.fit(train)
train_rmse = rmse_score(model, train) # 0.907
test_rmse = rmse_score(model, test) # 0.946
Maciej Kula
Music	Entertainment	System
Neural Collaborative Filtering
Layer 1
Layer 2
Layer x
0 0 0 0 0 0 ……
Item Latent Vector
0 0 0 0 0 0 ……
User Latent Vector
Y
^
ui Yui
Training TargetOutput Layer
Neural CF Layers
Embeddings Layers
Input Layers
Dr. Xiangnan He - 2017
Music	Entertainment	System
Layer 1
Layer 2
Layer x
0 0 0 0 0 0 ……0 0 0 0 0 0 ……
Y
^
ui Yui
Training
MF User Vector MLP User Vector MF Item Vector MLP Item Vector
MF Layer
NeuMF Layer
Concatenation
Dot Product
Concatenation
Dr. Xiangnan He - 2017
Music	Entertainment	System
def __init__(self, config):
super(NeuMF, self).__init__()
self.dim_mf = config[‘dim_mf']
self.dim_mlp = config[‘dim_mlp']
#mf part
self.user_mf = nn.Embedding(num_embeddings=self.num_users, embedding_dim=self.dim_mf)
self.item_mf = nn.Embedding(num_embeddings=self.num_items, embedding_dim=self.dim_mf)
#mlp part
self.user_mlp = nn.Embedding(num_embeddings=self.num_users, embedding_dim=self.dim_mlp)
self.item_mlp = nn.Embedding(num_embeddings=self.num_items, embedding_dim=self.dim_mlp)
self.fc_layers = nn.ModuleList()
for (in_size, out_size) in enumerate(zip(config['layers'][:-1], config['layers'][1:])):
self.fc_layers.append(nn.Linear(in_size, out_size))
self.logist = nn.Linear(in_features=config['layers'][-1] + self.dim_mf, out_features=1)
self.sigmoid = nn.Sigmoid()
Music	Entertainment	System
def forward(self, user, item):
user_embedding_mlp = self.embedding_user_mlp(user)
item_embedding_mlp = self.embedding_item_mlp(item)
user_embedding_mf = self.embedding_user_mf(user)
item_embedding_mf = self.embedding_item_mf(item)
#### mf part
mf_vector =torch.mul(user_embedding_mf, item_embedding_mf)
#### mlp part
mlp_vector = torch.cat([user_embedding_mlp, item_embedding_mlp], dim=-1)
for idx, _ in enumerate(range(len(self.fc_layers))):
mlp_vector = self.fc_layers[idx](mlp_vector)
mlp_vector = nn.ReLU()(mlp_vector)
vector = torch.cat([mlp_vector, mf_vector], dim=-1)
logits = self.logist(vector)
output = self.sigmoid(logits)
return output
Music	Entertainment	System
Next Steps
• Group Collaborative Recommender System
• Collaborative Recommender for Playlists
• Add meta content into mix, such as genre, artist, album, year
• Consider audio features: Tempo, Time signature, Mode, Key,
Loudness, Danceability, Energy, Timbre, Beat, Mel spectrogram.
Music	Entertainment	System
Takeaways
• Collaborative Recommender - perfect for user/item interactions
(explicit or implicit)
• Matrix Factorization models performs good in most of the cases
• MF - a particular case for Neural Collaborative Filtering
• Combine pre-trained MF and NCF for even better performance
• PyTorch is the best choice for both research and production
Thank	you	!
linkedin.com/in/vnagacevschi/

Weitere ähnliche Inhalte

Was ist angesagt?

Recommendation system
Recommendation system Recommendation system
Recommendation system Vikrant Arya
 
Tutorial on sequence aware recommender systems - UMAP 2018
Tutorial on sequence aware recommender systems - UMAP 2018Tutorial on sequence aware recommender systems - UMAP 2018
Tutorial on sequence aware recommender systems - UMAP 2018Paolo Cremonesi
 
Recommendation System
Recommendation SystemRecommendation System
Recommendation SystemAnamta Sayyed
 
Recommendation System Explained
Recommendation System ExplainedRecommendation System Explained
Recommendation System ExplainedCrossing Minds
 
Context-aware Recommendation: A Quick View
Context-aware Recommendation: A Quick ViewContext-aware Recommendation: A Quick View
Context-aware Recommendation: A Quick ViewYONG ZHENG
 
Recommendation system
Recommendation systemRecommendation system
Recommendation systemDing Li
 
Interactive Recommender Systems
Interactive Recommender SystemsInteractive Recommender Systems
Interactive Recommender SystemsRoelof van Zwol
 
Recommendation system
Recommendation systemRecommendation system
Recommendation systemRishabh Mehta
 
Recommender Systems (Machine Learning Summer School 2014 @ CMU)
Recommender Systems (Machine Learning Summer School 2014 @ CMU)Recommender Systems (Machine Learning Summer School 2014 @ CMU)
Recommender Systems (Machine Learning Summer School 2014 @ CMU)Xavier Amatriain
 
genetic algorithm based music recommender system
genetic algorithm based music recommender systemgenetic algorithm based music recommender system
genetic algorithm based music recommender systemneha pevekar
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender SystemsChu-Yu Hsu
 
Recommendation Systems
Recommendation SystemsRecommendation Systems
Recommendation SystemsRobin Reni
 
Graph Neural Networks for Recommendations
Graph Neural Networks for RecommendationsGraph Neural Networks for Recommendations
Graph Neural Networks for RecommendationsWQ Fan
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systemsinovex GmbH
 

Was ist angesagt? (20)

Recommendation system
Recommendation system Recommendation system
Recommendation system
 
Recommender systems
Recommender systemsRecommender systems
Recommender systems
 
Tutorial on sequence aware recommender systems - UMAP 2018
Tutorial on sequence aware recommender systems - UMAP 2018Tutorial on sequence aware recommender systems - UMAP 2018
Tutorial on sequence aware recommender systems - UMAP 2018
 
Recommender system
Recommender systemRecommender system
Recommender system
 
Recommendation System
Recommendation SystemRecommendation System
Recommendation System
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender Systems
 
Recommendation System Explained
Recommendation System ExplainedRecommendation System Explained
Recommendation System Explained
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender Systems
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender Systems
 
Context-aware Recommendation: A Quick View
Context-aware Recommendation: A Quick ViewContext-aware Recommendation: A Quick View
Context-aware Recommendation: A Quick View
 
Recommendation system
Recommendation systemRecommendation system
Recommendation system
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender Systems
 
Interactive Recommender Systems
Interactive Recommender SystemsInteractive Recommender Systems
Interactive Recommender Systems
 
Recommendation system
Recommendation systemRecommendation system
Recommendation system
 
Recommender Systems (Machine Learning Summer School 2014 @ CMU)
Recommender Systems (Machine Learning Summer School 2014 @ CMU)Recommender Systems (Machine Learning Summer School 2014 @ CMU)
Recommender Systems (Machine Learning Summer School 2014 @ CMU)
 
genetic algorithm based music recommender system
genetic algorithm based music recommender systemgenetic algorithm based music recommender system
genetic algorithm based music recommender system
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender Systems
 
Recommendation Systems
Recommendation SystemsRecommendation Systems
Recommendation Systems
 
Graph Neural Networks for Recommendations
Graph Neural Networks for RecommendationsGraph Neural Networks for Recommendations
Graph Neural Networks for Recommendations
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 

Ähnlich wie Collaborative Recommender System for Music using PyTorch

Recsys2016 Tutorial by Xavier and Deepak
Recsys2016 Tutorial by Xavier and DeepakRecsys2016 Tutorial by Xavier and Deepak
Recsys2016 Tutorial by Xavier and DeepakDeepak Agarwal
 
Data science essentials in azure ml
Data science essentials in azure mlData science essentials in azure ml
Data science essentials in azure mlMostafa
 
[系列活動] 資料探勘速遊 - Session4 case-studies
[系列活動] 資料探勘速遊 - Session4 case-studies[系列活動] 資料探勘速遊 - Session4 case-studies
[系列活動] 資料探勘速遊 - Session4 case-studies台灣資料科學年會
 
Movie Recommender System Using Artificial Intelligence
Movie Recommender System Using Artificial Intelligence Movie Recommender System Using Artificial Intelligence
Movie Recommender System Using Artificial Intelligence Shrutika Oswal
 
Practical Recommendation System - Scalable Machine Learning
Practical Recommendation System - Scalable Machine LearningPractical Recommendation System - Scalable Machine Learning
Practical Recommendation System - Scalable Machine LearningSon Phan
 
Rokach-GomaxSlides.pptx
Rokach-GomaxSlides.pptxRokach-GomaxSlides.pptx
Rokach-GomaxSlides.pptxJadna Almeida
 
Rokach-GomaxSlides (1).pptx
Rokach-GomaxSlides (1).pptxRokach-GomaxSlides (1).pptx
Rokach-GomaxSlides (1).pptxJadna Almeida
 
A business level introduction to Artificial Intelligence - Louis Dorard @ PAP...
A business level introduction to Artificial Intelligence - Louis Dorard @ PAP...A business level introduction to Artificial Intelligence - Louis Dorard @ PAP...
A business level introduction to Artificial Intelligence - Louis Dorard @ PAP...PAPIs.io
 
Build a Neural Network for ITSM with TensorFlow
Build a Neural Network for ITSM with TensorFlowBuild a Neural Network for ITSM with TensorFlow
Build a Neural Network for ITSM with TensorFlowEntrepreneur / Startup
 
From Data to Artificial Intelligence with the Machine Learning Canvas — ODSC ...
From Data to Artificial Intelligence with the Machine Learning Canvas — ODSC ...From Data to Artificial Intelligence with the Machine Learning Canvas — ODSC ...
From Data to Artificial Intelligence with the Machine Learning Canvas — ODSC ...Louis Dorard
 
IntroductionRecommenderSystems_Petroni.pdf
IntroductionRecommenderSystems_Petroni.pdfIntroductionRecommenderSystems_Petroni.pdf
IntroductionRecommenderSystems_Petroni.pdfAlphaIssaghaDiallo
 
Telecom datascience master_public
Telecom datascience master_publicTelecom datascience master_public
Telecom datascience master_publicVincent Michel
 
powerpoint presentation on movie recommender system.
powerpoint presentation on movie recommender system.powerpoint presentation on movie recommender system.
powerpoint presentation on movie recommender system.amanpandey7656
 
Machine learning @ Spotify - Madison Big Data Meetup
Machine learning @ Spotify - Madison Big Data MeetupMachine learning @ Spotify - Madison Big Data Meetup
Machine learning @ Spotify - Madison Big Data MeetupAndy Sloane
 
Recommendation Systems Roadtrip
Recommendation Systems RoadtripRecommendation Systems Roadtrip
Recommendation Systems RoadtripThe Real Dyl
 
System Analysis and Design.pptx
System Analysis and Design.pptxSystem Analysis and Design.pptx
System Analysis and Design.pptxssuserf8714c
 
Movie Recommendation System.pptx
Movie Recommendation System.pptxMovie Recommendation System.pptx
Movie Recommendation System.pptxCbra2
 
Teacher training material
Teacher training materialTeacher training material
Teacher training materialVikram Parmar
 

Ähnlich wie Collaborative Recommender System for Music using PyTorch (20)

Recsys2016 Tutorial by Xavier and Deepak
Recsys2016 Tutorial by Xavier and DeepakRecsys2016 Tutorial by Xavier and Deepak
Recsys2016 Tutorial by Xavier and Deepak
 
Data science essentials in azure ml
Data science essentials in azure mlData science essentials in azure ml
Data science essentials in azure ml
 
[系列活動] 資料探勘速遊 - Session4 case-studies
[系列活動] 資料探勘速遊 - Session4 case-studies[系列活動] 資料探勘速遊 - Session4 case-studies
[系列活動] 資料探勘速遊 - Session4 case-studies
 
Movie Recommender System Using Artificial Intelligence
Movie Recommender System Using Artificial Intelligence Movie Recommender System Using Artificial Intelligence
Movie Recommender System Using Artificial Intelligence
 
Practical Recommendation System - Scalable Machine Learning
Practical Recommendation System - Scalable Machine LearningPractical Recommendation System - Scalable Machine Learning
Practical Recommendation System - Scalable Machine Learning
 
Rokach-GomaxSlides.pptx
Rokach-GomaxSlides.pptxRokach-GomaxSlides.pptx
Rokach-GomaxSlides.pptx
 
Rokach-GomaxSlides (1).pptx
Rokach-GomaxSlides (1).pptxRokach-GomaxSlides (1).pptx
Rokach-GomaxSlides (1).pptx
 
A business level introduction to Artificial Intelligence - Louis Dorard @ PAP...
A business level introduction to Artificial Intelligence - Louis Dorard @ PAP...A business level introduction to Artificial Intelligence - Louis Dorard @ PAP...
A business level introduction to Artificial Intelligence - Louis Dorard @ PAP...
 
Analytics in Online Retail
Analytics in Online RetailAnalytics in Online Retail
Analytics in Online Retail
 
Build a Neural Network for ITSM with TensorFlow
Build a Neural Network for ITSM with TensorFlowBuild a Neural Network for ITSM with TensorFlow
Build a Neural Network for ITSM with TensorFlow
 
Deep Learning Recommender Systems
Deep Learning Recommender SystemsDeep Learning Recommender Systems
Deep Learning Recommender Systems
 
From Data to Artificial Intelligence with the Machine Learning Canvas — ODSC ...
From Data to Artificial Intelligence with the Machine Learning Canvas — ODSC ...From Data to Artificial Intelligence with the Machine Learning Canvas — ODSC ...
From Data to Artificial Intelligence with the Machine Learning Canvas — ODSC ...
 
IntroductionRecommenderSystems_Petroni.pdf
IntroductionRecommenderSystems_Petroni.pdfIntroductionRecommenderSystems_Petroni.pdf
IntroductionRecommenderSystems_Petroni.pdf
 
Telecom datascience master_public
Telecom datascience master_publicTelecom datascience master_public
Telecom datascience master_public
 
powerpoint presentation on movie recommender system.
powerpoint presentation on movie recommender system.powerpoint presentation on movie recommender system.
powerpoint presentation on movie recommender system.
 
Machine learning @ Spotify - Madison Big Data Meetup
Machine learning @ Spotify - Madison Big Data MeetupMachine learning @ Spotify - Madison Big Data Meetup
Machine learning @ Spotify - Madison Big Data Meetup
 
Recommendation Systems Roadtrip
Recommendation Systems RoadtripRecommendation Systems Roadtrip
Recommendation Systems Roadtrip
 
System Analysis and Design.pptx
System Analysis and Design.pptxSystem Analysis and Design.pptx
System Analysis and Design.pptx
 
Movie Recommendation System.pptx
Movie Recommendation System.pptxMovie Recommendation System.pptx
Movie Recommendation System.pptx
 
Teacher training material
Teacher training materialTeacher training material
Teacher training material
 

Kürzlich hochgeladen

Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfLars Albertsson
 
Week-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionWeek-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionfulawalesam
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Delhi Call girls
 
100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptx100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptxAnupama Kate
 
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779Delhi Call girls
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxolyaivanovalion
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxolyaivanovalion
 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxolyaivanovalion
 
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxBPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxMohammedJunaid861692
 
Call Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girl
Call Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girlCall Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girl
Call Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girlkumarajju5765
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxolyaivanovalion
 
Zuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptxZuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptxolyaivanovalion
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxolyaivanovalion
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFxolyaivanovalion
 
{Pooja: 9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...
{Pooja:  9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...{Pooja:  9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...
{Pooja: 9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...Pooja Nehwal
 
Introduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptxIntroduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptxfirstjob4
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...amitlee9823
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxolyaivanovalion
 

Kürzlich hochgeladen (20)

Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdf
 
Week-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionWeek-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interaction
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
 
100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptx100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptx
 
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptx
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFx
 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptx
 
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxBPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
 
Sampling (random) method and Non random.ppt
Sampling (random) method and Non random.pptSampling (random) method and Non random.ppt
Sampling (random) method and Non random.ppt
 
Call Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girl
Call Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girlCall Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girl
Call Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girl
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptx
 
Zuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptxZuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptx
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptx
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFx
 
{Pooja: 9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...
{Pooja:  9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...{Pooja:  9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...
{Pooja: 9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...
 
Introduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptxIntroduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptx
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptx
 

Collaborative Recommender System for Music using PyTorch

  • 2. What to listen next …..
  • 3. Music Entertainment System Why Recommender Systems? • Information overload too many choices • Help users find items of their interest • Help item providers deliver items to right users • Help platforms build user engagement
  • 4. Music Entertainment System What is a Recommender System? • Most successful and widespread application of ML in business. • Many users interact with many items: predict items for users • Applied Movies, Books, Music, Retail, etc.
  • 5. The Goal of Recommender System Relevance Novelty Serendipity Diversity
  • 6. Music Entertainment System Domains • Media News, videos, movies, music • eCommerce Product recommendation • Jobs Personalised job boards, newsletters with best matching jobs • Travel & Real Estate Events, Places, Hotels, Restaurants, Flights, Car Rentals • Education Personalised education - materials, courses, specialisations, skills
  • 7. Music Entertainment System Types of Recommender Systems • Content-based recommendation systems • Item bases / User based • Need information for items or users to calculate similarities • Collaborative recommendation system • People like • things similar to other things they like • things that are liked by other people with similar taste
  • 8. Collaborative Filtering Memory based approach Model based approach Find similar users based on cosine similarity or Pearson correlation and use weighted average of ratings Use machine learning to find user ratings of unrated items using Matrix Factorization and Neural Networks
  • 9.
  • 11. Music Entertainment System Ratings vs. Interactions • Ratings • Normally 1 - 5 • Unreliable and biased • Interactions • Normally 0 - 1 • Cannot capture dislikes
  • 12. Music Entertainment System Music Interactions Dataset user_id track_id gt30 lt30 rating 0 133575735 15717314 1 0 1 133575735 29494564 3 1 2 133575735 31531850 1 0 3 133575735 37472673 2 0 4 133575735 42984237 0 1
  • 13. Music Entertainment System Prepare Music Data • No ratings, but better than interactions • Labels standard: 30 seconds threshold • Derived ratings: 3 + (gt30 - lt30) if (gt30 - lt30) >= 0 2 + (gt30 - lt30) if (gt30 - lt30) < 0
  • 14. Rating - Before and After
  • 15. Music Entertainment System Why PyTorch ? • Dynamic approach to Graph Computation • Increased developer productivity • Easier to learn and simpler to code • Easy to debug • Simplicity and transparency
  • 16. Music Entertainment System Matrix Factorization Model import torch.nn as nn import torch.optim as optim class MatrixFactorization(nn.Module): def __init__(self, n_users, n_items, n_factors=20): super().__init__() self.user_factors = nn.Embedding(n_users, n_factors, sparse=True) self.item_factors = nn.Embedding(n_items, n_factors, sparse=True) self.user_biases = nn.Embedding(n_users, 1, sparse=True) self.item_biases = nn.Embedding(n_items, 1, sparse=True) def forward(self, user, item): dot = (self.user_factors(user) * self.item_factors(item)).sum(1) bias = self.user_biases(user) + self.item_biases(item) return dot + bias
  • 17. Music Entertainment System Model and Data Preparation model = MatrixFactorization(1000, 1000) loss_func = nn.MSELoss() optimizer = optim.SGD(model.parameters(), lr=1e-6) # shuffle training data rows, cols = ratings.nonzero() p = np.random.permutation(len(rows)) rows, cols = rows[p], cols[p]
  • 18. Music Entertainment System Train the Model for row, col in zip(*(rows, cols)): # Turn data into variables rating = Variable(torch.FloatTensor([ratings[row, col]])) row = Variable(torch.LongTensor([np.long(row)])) col = Variable(torch.LongTensor([np.long(col)])) # Predict and calculate loss prediction = model(row, col) loss = loss_func(prediction, rating) # Backpropagate loss.backward() # Update the parameters optimizer.step()
  • 19. Music Entertainment System SpotLight Library dataset = get_music_dataset(variant=‘100K') train, test = random_train_test_split(dataset) model = ExplicitFactorizationModel( loss=‘regression', # loss function embedding_dim=40, # latent dimensionality n_iter=12, # number of epochs of training batch_size=1024, # minibatch size l2=1e-9, # strength of L2 regularization learning_rate=0.1) model.fit(train) train_rmse = rmse_score(model, train) # 0.907 test_rmse = rmse_score(model, test) # 0.946 Maciej Kula
  • 20. Music Entertainment System Neural Collaborative Filtering Layer 1 Layer 2 Layer x 0 0 0 0 0 0 …… Item Latent Vector 0 0 0 0 0 0 …… User Latent Vector Y ^ ui Yui Training TargetOutput Layer Neural CF Layers Embeddings Layers Input Layers Dr. Xiangnan He - 2017
  • 21. Music Entertainment System Layer 1 Layer 2 Layer x 0 0 0 0 0 0 ……0 0 0 0 0 0 …… Y ^ ui Yui Training MF User Vector MLP User Vector MF Item Vector MLP Item Vector MF Layer NeuMF Layer Concatenation Dot Product Concatenation Dr. Xiangnan He - 2017
  • 22. Music Entertainment System def __init__(self, config): super(NeuMF, self).__init__() self.dim_mf = config[‘dim_mf'] self.dim_mlp = config[‘dim_mlp'] #mf part self.user_mf = nn.Embedding(num_embeddings=self.num_users, embedding_dim=self.dim_mf) self.item_mf = nn.Embedding(num_embeddings=self.num_items, embedding_dim=self.dim_mf) #mlp part self.user_mlp = nn.Embedding(num_embeddings=self.num_users, embedding_dim=self.dim_mlp) self.item_mlp = nn.Embedding(num_embeddings=self.num_items, embedding_dim=self.dim_mlp) self.fc_layers = nn.ModuleList() for (in_size, out_size) in enumerate(zip(config['layers'][:-1], config['layers'][1:])): self.fc_layers.append(nn.Linear(in_size, out_size)) self.logist = nn.Linear(in_features=config['layers'][-1] + self.dim_mf, out_features=1) self.sigmoid = nn.Sigmoid()
  • 23. Music Entertainment System def forward(self, user, item): user_embedding_mlp = self.embedding_user_mlp(user) item_embedding_mlp = self.embedding_item_mlp(item) user_embedding_mf = self.embedding_user_mf(user) item_embedding_mf = self.embedding_item_mf(item) #### mf part mf_vector =torch.mul(user_embedding_mf, item_embedding_mf) #### mlp part mlp_vector = torch.cat([user_embedding_mlp, item_embedding_mlp], dim=-1) for idx, _ in enumerate(range(len(self.fc_layers))): mlp_vector = self.fc_layers[idx](mlp_vector) mlp_vector = nn.ReLU()(mlp_vector) vector = torch.cat([mlp_vector, mf_vector], dim=-1) logits = self.logist(vector) output = self.sigmoid(logits) return output
  • 24. Music Entertainment System Next Steps • Group Collaborative Recommender System • Collaborative Recommender for Playlists • Add meta content into mix, such as genre, artist, album, year • Consider audio features: Tempo, Time signature, Mode, Key, Loudness, Danceability, Energy, Timbre, Beat, Mel spectrogram.
  • 25. Music Entertainment System Takeaways • Collaborative Recommender - perfect for user/item interactions (explicit or implicit) • Matrix Factorization models performs good in most of the cases • MF - a particular case for Neural Collaborative Filtering • Combine pre-trained MF and NCF for even better performance • PyTorch is the best choice for both research and production