SlideShare a Scribd company logo
Interactive
Recommender Systems
RecSys 2015
Harald Steck
Netflix Inc.
hsteck@netflix.com
Roelof van Zwol
Netflix Inc.
roelofvanzwol@netflix.com
Chris Johnson
Spotify Inc.
cjohnson@spotify.com
Outline
Introduction
Use cases
Netflix
Spotify
Challenges
Deep Dive
Netflix
Spotify
Insights
Discussion
Introduction
Section name 4
What are Interactive RSs?
Define Interactive:
Influencing or having an effect on each other.
Allowing a two-way flow of information
Responding to a user’s input
Forms of Interaction
Implicit vs explicit feedback
User experiences
SearchBrowse
Interactive
RS
Need for Interactive RSs?
To better serve the user’s (entertainment) needs
Fill the gap between browse and search
Lean-back vs precise need
To establish trust and credibility
Instant gratification
Interactive RS in practice?
Most online services offer different levels of personalization
Video: Netflix, YouTube, Hulu, Amazon Video, HBO, …
Browse (homepage/genre) and search
Music: Spotify, Pandora, Apple Music, Google Music, …
Browse, Radio, Search
Books/Apps/Shopping: Amazon, Apple, Google
(Video and Image) Search: Google, Bing, Yahoo
Left rail suggestions (explore), search completion
Travel: Booking.com, Kayak, Orbitz, Expedia, …
Guided experience: Pick destination —> pick flight and hotel, arrange local
transport, plan activities, go dining and sightseeing…
Research on Interactive RS
“A successful recommender system must balance the needs to explore user preferences
and to exploit this information for recommendation.”
Exploration in Interactive Personalized Music Recommendation: A Reinforcement Learning Approach. X.
Wang, Y. Wang, D. Hsu, Y. Wang (2013)
Active learning / Multi-Armed Bandits (𝜀-greedy, UCB, Thompson sampling)
Papers at RecSys this year and in the past :)
When do explicit taste preferences trump play data?
When we have insufficient knowledge about the user
When context changes
TasteWeights: A Visual Interactive Hybrid Recommender System. S. Bostandjiev, J. O’Donovan, T.
Höllerer (RecSys 2012)
When the user has a vague idea of what they want
IntRS: Workshop on Interfaces and Human Decision Making for Recommender Systems
Use-case:
Section name 10
Section name 11
Section name 12
Section name 13
Interactive RSs @ Netflix
Help user’s find a great video to watch as an alternative to
browse and search.
Address browse fatigue; failed search experience; or user has vague
notion of what to watch; watching with friends
Not for everyone, not all the time…
Max - Rating Game
Select a topic, rate some videos, get recommendations
Hot-or-Cold
Tell us what you’re into, one video at a time
Discover
Select one or more videos of interest to explore other similar options
Max - Rating Game
Hot or Cold Game
Discover App
Use-case:
Section name 19
Spotify in Numbers
Started in 2006, now available in 58 markets
75+ million active users, 20 million paying subscribers
30+ million songs, 20,000 new songs added per day
1.5 billion playlists
1 TB user data logged per day
1k node Hadoop cluster
10,000+ Hadoop jobs run every day
Challenge: 20 Million songs... how do we recommend
music to users?
Discover Weekly
Discover
Related Artists
Radio
Radio as an Interactive RS
User has a vague idea of what they would like to listen to
User starts a radio station seeded by an Artist, Album, Song,
Playlist, or Genre
Generally a lean back experience, but with the ability to tune
recommendations with (+) and (-) feedback ( )
Section name 27
SmartBox: fully interactive radio experience
Challenges
Challenges
Understanding when to present interactive experience
- Binging, trying to find something new, experiencing
browse fatigue
X
User Interaction Design
- UI affordance
- Messaging task
- Efficient mechanism to collect user input
- Instant gratification
- Choice penalty
- Navigation options (user control)
X X
Challenges
Workflow and Algorithmic Design
- Computational efficient
- Balancing relevancy, diversity and popularity of the
recommendations
- Support user navigation
- Allow for both exploration and exploitation, e.g. avoid
overfitting based on limited input from the user
X X
Deep Dive: Discover
Discover: Understanding the user
Meeting the users expectations
Introducing interactive RS as a full page experience or
integrate with other rows on the homepage?
Meeting the users expectations
Introducing interactive RS as a full page experience or
integrate with other rows on the homepage?
Avoid conflict: browse vs discovery mode
Browsing on the homepage is a lean-back experience
Discover, is interactive… that means work
Understanding the user’s need
Introducing Discover feature as a new destination
Allow users to quickly navigate to feature
Understanding the user’s need
Introducing Discover feature as a new destination
Help users find new feature through
messaging at top of homepage
At session start
After scrolling X rows down
After 45 secs
Understanding the user’s need
Introducing Discover feature as a new destination
Help users find new feature through:
messaging at top of homepage
invitation in row on homepage
Understanding the user’s need
Introducing Discover feature as a new destination
Help users find new feature through:
messaging at top of homepage
invitation in row
row-based invitation
In position of Nth row or as last row on homepage
Understanding the user’s need
Context is crucial for the success of the integration of interactive
experiences into the product
Never interrupt a user that knows what they want
Message at start of user session
Showing the invitation at the right moment (and place) is crucial
Allow the user to explore options on the homepage first
Challenge is to find the right trade-off between rate at which user
tries the interactive experience, versus success
Success rate can vary from 30-70%
Not a goal to reach all users, just need to reach those who need help
Discover: Inside the interactive RS
Section name 41
Section name 42
Interaction Workflow for Discover
Init - At start of new session, create an initial seed of videos to show to
the user
See Suggestions - After receiving input from the user (selected
videos), compute recommendations
Interaction Workflow for Discover
Need to find balance between relevancy, diversity and popularity
of the videos shown to the user
Videos in a Latent Space Representation
normalized item-vectors
Videos in a Latent Space Representation
user-vector in same space
Relevance Score
Diversity Score
note:
Popularity Score
“See Suggestions” step
Score of item i:
, for adjusting the balance
score(i) determined by “closest” item j in S
“diminishing returns”
“See Suggestions” step
Greedy computation of recommendation set S:
Interaction Workflow for Discover
See Suggestions - After receiving input from the user (selected videos),
compute recommendations
What if the selected videos cover more than 1 genre?
User may select diverse set of videos
Challenge:
Recommendations should reflect all genres of the shows
selected by user
Solution:
Multiple user-vectors, one per selected group of similar
shows (clustering)
Compute recommendations for each user vector
Display clusters in separate rows, or combine via reciprocal
rank aggregation
Interaction Workflow for Discover
Init - At start of new session, create an initial seed of videos to show to
the user
Show diverse set of recognizable videos that are familiar to
the user, and which is fresh across sessions
Producing the initial set of videos
Objective: Show diverse set of recognizable videos that are
familiar to the user, and which is fresh across sessions
How?
Sample videos from user’s play history
score: no popularity & relevance component
Sample shows from catalog with popularity bias
score: no relevance component
Randomize initial set for freshness
Learning the Latent Vectors
Learning the Latent Vectors
Use implicit feedback data
Compute item-item similarity matrix:
covariance matrix
transition matrix
…
Train (spectral) matrix factorization model
Graph Cut—Simplistic Example
Graph Cut—Simplistic Example
Graph Cut—Simplistic Example
Cut	
  here
…not	
  
similar	
  to	
  
Ballerina	
  
any	
  more
new	
  similar

of	
  Ballerina:
Graph Cut à Spectral Clustering
1. Graph à Affinity Matrix A	
  
2.	
  	
  	
  Laplacian:	
  	
   L =	
  	
  
D …	
  diagonal	
  matrix,	
  	
  D = sum (A )
popularity	
  removed	
  prior	
  to	
  factorization	
  
3.	
  	
  	
  factorize	
  the	
  Laplacian	
  L
4.	
  	
  	
  normalize	
  the	
  latent	
  vectors	
  
5.	
  	
  	
  (kmeans)	
  clustering	
  of	
  latent	
  vectors	
  
ii j ij
Graph Cut à Spectral Clustering
1. Graph à Affinity Matrix A	
  
2.	
  	
  	
  Laplacian:	
  	
   L =	
  	
  
D …	
  diagonal	
  matrix,	
  	
  D = sum (A )
popularity	
  removed	
  prior	
  to	
  factorization	
  
3.	
  	
  	
  factorize	
  the	
  Laplacian	
  L
4.	
  	
  	
  normalize	
  the	
  latent	
  vectors	
  
5.	
  	
  	
  (kmeans)	
  clustering	
  of	
  latent	
  vectors	
  
ii j ij
Graph Cut à Spectral Clustering
1. Graph à Affinity Matrix A	
  
2.	
  	
  	
  Laplacian:	
  	
   L =	
  	
  
D …	
  diagonal	
  matrix,	
  	
  D = sum (A )
popularity	
  removed	
  prior	
  to	
  factorization	
  
3.	
  	
  	
  factorize	
  the	
  Laplacian	
  L
4.	
  	
  	
  normalize	
  the	
  latent	
  vectors	
  
5.	
  	
  	
  (kmeans)	
  clustering	
  of	
  latent	
  vectors	
  
ii j ij
Graph Cut à Spectral Clustering
1. Graph à Affinity Matrix A	
  
2.	
  	
  	
  Laplacian:	
  	
   L =	
  	
  
D …	
  diagonal	
  matrix,	
  	
  D = sum (A )
popularity	
  (largely)	
  removed	
  prior	
  to	
  factorization	
  
3.	
  	
  	
  factorize	
  the	
  Laplacian	
  L
4.	
  	
  	
  normalize	
  the	
  latent	
  vectors	
  
5.	
  	
  	
  (kmeans)	
  clustering	
  of	
  latent	
  vectors	
  
ii j ij
Graph Cut à Spectral Clustering
1. Graph à Affinity Matrix A	
  
2.	
  	
  	
  Laplacian:	
  	
   L =	
  	
  
D …	
  diagonal	
  matrix,	
  	
  D = sum (A )
popularity	
  (largely)	
  removed	
  prior	
  to	
  factorization	
  
3.	
  	
  	
  factorize	
  the	
  Laplacian	
  L
4.	
  	
  	
  normalize	
  the	
  latent	
  vectors	
  
5.	
  	
  	
  (kmeans)	
  clustering	
  of	
  latent	
  vectors	
  
ii j ij
Graph Cut à Spectral Clustering
1. Graph à Affinity Matrix A	
  
2.	
  	
  	
  Laplacian:	
  	
   L =	
  	
  
D …	
  diagonal	
  matrix,	
  	
  D = sum (A )
popularity	
  (largely)	
  removed	
  prior	
  to	
  factorization	
  
3.	
  	
  	
  factorize	
  the	
  Laplacian	
  L
4.	
  	
  	
  normalize	
  the	
  latent	
  vectors	
  (remove	
  remaining	
  popularity)	
  
5.	
  	
  	
  (kmeans)	
  clustering	
  of	
  latent	
  vectors	
  
ii j ij
Graph Cut à Spectral Clustering
1. Graph à Affinity Matrix A	
  
2.	
  	
  	
  Laplacian:	
  	
   L =	
  	
  
D …	
  diagonal	
  matrix,	
  	
  D = sum (A )
popularity	
  (largely)	
  removed	
  prior	
  to	
  factorization	
  
3.	
  	
  	
  factorize	
  the	
  Laplacian	
  L
4.	
  	
  	
  normalize	
  the	
  latent	
  vectors	
  (remove	
  remaining	
  popularity)	
  
5.	
  	
  	
  (kmeans)	
  clustering	
  of	
  latent	
  vectors	
  
ii j ij
Example: Django
Movies similar to:
Viennese-born Christoph
Waltz won Oscar for best
supporting role
only play-data used, no
content information
Similar to Django via basic MF
Similar to Django via spectral MF
Example: Hercules in New York
Movies similar to:
Austrian-born Arnold
Schwarzenegger’s debut
movie
only play-data used, no
content information
Similar to Hercules in NY via basic MF
Similar to Hercules in NY via spectral MF
Deep Dive: Radio
Radio as an Interactive RS
User has a vague idea of what they would like to listen to
User starts a radio station seeded by an Artist, Album, Song,
Playlist, or Genre
Generally a lean back experience, but with the ability to tune
recommendations with (+) and (-) feedback ( )
Overview of Radio Dataflow
Step 1:
Train batch recommendation models
Implicit Matrix Factorization [1] 78
1 0 0 0 1 0 0 1
0 0 1 0 0 1 0 0
1 0 1 0 0 0 1 1
0 1 0 0 0 1 0 0
0 0 1 0 0 1 0 0
1 0 0 0 1 0 0 1
•Aggregate all (user, track) streams into a large matrix
•Goal: Approximate binary preference matrix by inner product of 2 smaller matrices by minimizing the
weighted RMSE (root mean squared error) using a function of plays, context, and recency as weight
X YUsers
Songs
• = bias for user
• = bias for item
• = regularization parameter
• = 1 if user streamed track else 0
•
• = user latent factor vector
• = item latent factor vector
[1] Hu Y. & Koren Y. & Volinsky C. (2008) Collaborative Filtering for Implicit Feedback Datasets 8th IEEE International Conference on Data Mining
Can also use Logistic Loss! [2] 79
1 0 0 0 1 0 0 1
0 0 1 0 0 1 0 0
1 0 1 0 0 0 1 1
0 1 0 0 0 1 0 0
0 0 1 0 0 1 0 0
1 0 0 0 1 0 0 1
•Aggregate all (user, track) streams into a large matrix
•Goal: Model probability of user playing a song as logistic, then maximize log likelihood of binary
preference matrix, weighting positive observations by a function of plays, context, and recency
X YUsers
Songs
• = bias for user
• = bias for item
• = regularization parameter
• = user latent factor vector
• = item latent factor vector
[2] Johnson C. (2014) Logistic Matrix Factorization for Implicit Feedback Data NIPS Workshop on Distributed Matrix Computations
NLP models on News, Blogs, and Text 80
81
NLP models also work on playlists!
Playlist itself is a
document
Songs in
playlist are
words
82
Deep Learning on Audio [3]
[3] http://benanne.github.io/2014/08/05/spotify-cnns.html
Songs in a Latent Space Representation
normalized item-vectors
Songs in a Latent Space Representation
user-vector in same space
Step 2:
Ensemble of batch models using
explicit thumbs data
Ensemble of Batch Models
Explicit feedback at the expense of presentation bias…
Augment explicit feedback with random negatives
Thumbs also carry a subjective bias…
Thumbs used to personally tune a user’s station
But with enough data, they’re a pretty good signal
Interesting fact…
Ratio of to does not always
correlate with user engagement!
Step 3:
Static song pools adaptively
personalized as user interacts
Should be Simple, fast, and instantly gratifying
Adaptive personalization
Probability of choosing song given user , station , at time
= global rank of track in song pool
= relevancy to user based on implicit CF vector
= relevancy to user based on explicit thumbs
= diversity of artist and album within radio session
Step 4:
Radio thumbs feed back into
ensemble!
Interactive feedback loop
Key Take Aways
Implicit feedback used to train batch recommendation models
Explicit feedback is augmented with random negatives and used as
training data to combine batch models (feedback loop)
Adaptive shuffling is a function of song pool rank, user’s implicit CF
relevancy, user’s thumbs relevancy, and diversity of artist and album
Interaction needs to be simple, fast, and instantly gratifying to the
user
Insights
Insights - User perspective
Positioning of interactive RS in a product is crucial to
success
Natural transition from browse and search to interaction
Interactive RS needs to be lightweight..
Most users prefer lean-back experience
Interaction means work —> instant gratification
Evidence helps build trust and transparency
Choice penalty
How much input is needed and how many results to return
Insights - Algorithmic perspective
Need to balance popularity, relevancy, and diversity of the
recommendations during different phases of the interactive
workflow.
Real-time scoring vs offline computation of recommendations
Video and music domain share many algorithmic characteristics,
yet the application requires vastly different implementation
On using implicit vs explicit feedback:
What users say they like is not always what they watch/
listen
Section name 100
Discussion

More Related Content

What's hot

Personalized Page Generation for Browsing Recommendations
Personalized Page Generation for Browsing RecommendationsPersonalized Page Generation for Browsing Recommendations
Personalized Page Generation for Browsing Recommendations
Justin Basilico
 
Personalized Playlists at Spotify
Personalized Playlists at SpotifyPersonalized Playlists at Spotify
Personalized Playlists at Spotify
Rohan Agrawal
 
Algorithmic Music Recommendations at Spotify
Algorithmic Music Recommendations at SpotifyAlgorithmic Music Recommendations at Spotify
Algorithmic Music Recommendations at Spotify
Chris Johnson
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
Yves Raimond
 
Homepage Personalization at Spotify
Homepage Personalization at SpotifyHomepage Personalization at Spotify
Homepage Personalization at Spotify
Oguz Semerci
 
Recent Trends in Personalization at Netflix
Recent Trends in Personalization at NetflixRecent Trends in Personalization at Netflix
Recent Trends in Personalization at Netflix
Förderverein Technische Fakultät
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
Justin Basilico
 
Contextualization at Netflix
Contextualization at NetflixContextualization at Netflix
Contextualization at Netflix
Linas Baltrunas
 
Recap: Designing a more Efficient Estimator for Off-policy Evaluation in Band...
Recap: Designing a more Efficient Estimator for Off-policy Evaluation in Band...Recap: Designing a more Efficient Estimator for Off-policy Evaluation in Band...
Recap: Designing a more Efficient Estimator for Off-policy Evaluation in Band...
Justin Basilico
 
An introduction to Recommender Systems
An introduction to Recommender SystemsAn introduction to Recommender Systems
An introduction to Recommender Systems
David Zibriczky
 
Recent Trends in Personalization: A Netflix Perspective
Recent Trends in Personalization: A Netflix PerspectiveRecent Trends in Personalization: A Netflix Perspective
Recent Trends in Personalization: A Netflix Perspective
Justin Basilico
 
Deeper Things: How Netflix Leverages Deep Learning in Recommendations and Se...
 Deeper Things: How Netflix Leverages Deep Learning in Recommendations and Se... Deeper Things: How Netflix Leverages Deep Learning in Recommendations and Se...
Deeper Things: How Netflix Leverages Deep Learning in Recommendations and Se...
Sudeep Das, Ph.D.
 
Past, Present & Future of Recommender Systems: An Industry Perspective
Past, Present & Future of Recommender Systems: An Industry PerspectivePast, Present & Future of Recommender Systems: An Industry Perspective
Past, Present & Future of Recommender Systems: An Industry Perspective
Justin Basilico
 
Netflix talk at ML Platform meetup Sep 2019
Netflix talk at ML Platform meetup Sep 2019Netflix talk at ML Platform meetup Sep 2019
Netflix talk at ML Platform meetup Sep 2019
Faisal Siddiqi
 
A Multi-Armed Bandit Framework For Recommendations at Netflix
A Multi-Armed Bandit Framework For Recommendations at NetflixA Multi-Armed Bandit Framework For Recommendations at Netflix
A Multi-Armed Bandit Framework For Recommendations at Netflix
Jaya Kawale
 
Artwork Personalization at Netflix
Artwork Personalization at NetflixArtwork Personalization at Netflix
Artwork Personalization at Netflix
Justin Basilico
 
Music Personalization At Spotify
Music Personalization At SpotifyMusic Personalization At Spotify
Music Personalization At Spotify
Vidhya Murali
 
Personalizing the listening experience
Personalizing the listening experiencePersonalizing the listening experience
Personalizing the listening experience
Mounia Lalmas-Roelleke
 
Recommending and Searching (Research @ Spotify)
Recommending and Searching (Research @ Spotify)Recommending and Searching (Research @ Spotify)
Recommending and Searching (Research @ Spotify)
Mounia Lalmas-Roelleke
 
Missing values in recommender models
Missing values in recommender modelsMissing values in recommender models
Missing values in recommender models
Parmeshwar Khurd
 

What's hot (20)

Personalized Page Generation for Browsing Recommendations
Personalized Page Generation for Browsing RecommendationsPersonalized Page Generation for Browsing Recommendations
Personalized Page Generation for Browsing Recommendations
 
Personalized Playlists at Spotify
Personalized Playlists at SpotifyPersonalized Playlists at Spotify
Personalized Playlists at Spotify
 
Algorithmic Music Recommendations at Spotify
Algorithmic Music Recommendations at SpotifyAlgorithmic Music Recommendations at Spotify
Algorithmic Music Recommendations at Spotify
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Homepage Personalization at Spotify
Homepage Personalization at SpotifyHomepage Personalization at Spotify
Homepage Personalization at Spotify
 
Recent Trends in Personalization at Netflix
Recent Trends in Personalization at NetflixRecent Trends in Personalization at Netflix
Recent Trends in Personalization at Netflix
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Contextualization at Netflix
Contextualization at NetflixContextualization at Netflix
Contextualization at Netflix
 
Recap: Designing a more Efficient Estimator for Off-policy Evaluation in Band...
Recap: Designing a more Efficient Estimator for Off-policy Evaluation in Band...Recap: Designing a more Efficient Estimator for Off-policy Evaluation in Band...
Recap: Designing a more Efficient Estimator for Off-policy Evaluation in Band...
 
An introduction to Recommender Systems
An introduction to Recommender SystemsAn introduction to Recommender Systems
An introduction to Recommender Systems
 
Recent Trends in Personalization: A Netflix Perspective
Recent Trends in Personalization: A Netflix PerspectiveRecent Trends in Personalization: A Netflix Perspective
Recent Trends in Personalization: A Netflix Perspective
 
Deeper Things: How Netflix Leverages Deep Learning in Recommendations and Se...
 Deeper Things: How Netflix Leverages Deep Learning in Recommendations and Se... Deeper Things: How Netflix Leverages Deep Learning in Recommendations and Se...
Deeper Things: How Netflix Leverages Deep Learning in Recommendations and Se...
 
Past, Present & Future of Recommender Systems: An Industry Perspective
Past, Present & Future of Recommender Systems: An Industry PerspectivePast, Present & Future of Recommender Systems: An Industry Perspective
Past, Present & Future of Recommender Systems: An Industry Perspective
 
Netflix talk at ML Platform meetup Sep 2019
Netflix talk at ML Platform meetup Sep 2019Netflix talk at ML Platform meetup Sep 2019
Netflix talk at ML Platform meetup Sep 2019
 
A Multi-Armed Bandit Framework For Recommendations at Netflix
A Multi-Armed Bandit Framework For Recommendations at NetflixA Multi-Armed Bandit Framework For Recommendations at Netflix
A Multi-Armed Bandit Framework For Recommendations at Netflix
 
Artwork Personalization at Netflix
Artwork Personalization at NetflixArtwork Personalization at Netflix
Artwork Personalization at Netflix
 
Music Personalization At Spotify
Music Personalization At SpotifyMusic Personalization At Spotify
Music Personalization At Spotify
 
Personalizing the listening experience
Personalizing the listening experiencePersonalizing the listening experience
Personalizing the listening experience
 
Recommending and Searching (Research @ Spotify)
Recommending and Searching (Research @ Spotify)Recommending and Searching (Research @ Spotify)
Recommending and Searching (Research @ Spotify)
 
Missing values in recommender models
Missing values in recommender modelsMissing values in recommender models
Missing values in recommender models
 

Similar to Interactive Recommender Systems with Netflix and Spotify

DeepakRawat_APMF.pdf
DeepakRawat_APMF.pdfDeepakRawat_APMF.pdf
DeepakRawat_APMF.pdf
Deepak Rawat
 
Introduction to recommendation system
Introduction to recommendation systemIntroduction to recommendation system
Introduction to recommendation system
Aravindharamanan S
 
[UMAP 2016] User-Oriented Context Suggestion
[UMAP 2016] User-Oriented Context Suggestion[UMAP 2016] User-Oriented Context Suggestion
[UMAP 2016] User-Oriented Context Suggestion
YONG ZHENG
 
Building Visual Thinking Communities Upload
Building Visual Thinking Communities   UploadBuilding Visual Thinking Communities   Upload
Building Visual Thinking Communities Upload
Ryan Coleman
 
Personalization Palooza 2016
Personalization Palooza 2016Personalization Palooza 2016
Personalization Palooza 2016
Pancrazio Auteri
 
Audience projection of target consumers over multiple domains a ner and baye...
Audience projection of target consumers over multiple domains  a ner and baye...Audience projection of target consumers over multiple domains  a ner and baye...
Audience projection of target consumers over multiple domains a ner and baye...
Data Science Milan
 
Beyond Usability
Beyond UsabilityBeyond Usability
Beyond Usability
Christina Wodtke
 
DataEngConf: Talkographics: Using What Viewers Say Online to Measure TV and B...
DataEngConf: Talkographics: Using What Viewers Say Online to Measure TV and B...DataEngConf: Talkographics: Using What Viewers Say Online to Measure TV and B...
DataEngConf: Talkographics: Using What Viewers Say Online to Measure TV and B...
Hakka Labs
 
God Mode for designing scenario-driven skills for DeepPavlov Dream
God Mode for designing scenario-driven skills for DeepPavlov DreamGod Mode for designing scenario-driven skills for DeepPavlov Dream
God Mode for designing scenario-driven skills for DeepPavlov Dream
Daniel Kornev
 
TTT 2012 slide deck
TTT  2012 slide deckTTT  2012 slide deck
TTT 2012 slide deck
CDI Apps for Good
 
How UX/UI Optimization Can Drive Revenue
How UX/UI Optimization Can Drive RevenueHow UX/UI Optimization Can Drive Revenue
How UX/UI Optimization Can Drive Revenue
David R. Iannone Jr.
 
How to present creative 2017
How to present creative   2017How to present creative   2017
How to present creative 2017
Joel Eby
 
2011 10-05-virtual user group
2011 10-05-virtual user group2011 10-05-virtual user group
2011 10-05-virtual user group
jhennelly
 
Frontiers of Computational Journalism week 3 - Information Filter Design
Frontiers of Computational Journalism week 3 - Information Filter DesignFrontiers of Computational Journalism week 3 - Information Filter Design
Frontiers of Computational Journalism week 3 - Information Filter Design
Jonathan Stray
 
Explainable Recommendation for Repeat Consumption (RecSys 2020)
Explainable Recommendation for Repeat Consumption (RecSys 2020)Explainable Recommendation for Repeat Consumption (RecSys 2020)
Explainable Recommendation for Repeat Consumption (RecSys 2020)
Kosetsu Tsukuda
 
Free software basics
Free software basicsFree software basics
Free software basics
Vitor Pamplona
 
Recsys 2018 overview and highlights
Recsys 2018 overview and highlightsRecsys 2018 overview and highlights
Recsys 2018 overview and highlights
Sandra Garcia
 
Social Recommender Systems Tutorial - WWW 2011
Social Recommender Systems Tutorial - WWW 2011Social Recommender Systems Tutorial - WWW 2011
Social Recommender Systems Tutorial - WWW 2011
idoguy
 
Introduction to recommender systems
Introduction to recommender systemsIntroduction to recommender systems
Introduction to recommender systems
Rami Alsalman
 
We hear you!. Collecting and processing user feedback, for real!
We hear you!. Collecting and processing user feedback, for real!We hear you!. Collecting and processing user feedback, for real!
We hear you!. Collecting and processing user feedback, for real!
penpotapp
 

Similar to Interactive Recommender Systems with Netflix and Spotify (20)

DeepakRawat_APMF.pdf
DeepakRawat_APMF.pdfDeepakRawat_APMF.pdf
DeepakRawat_APMF.pdf
 
Introduction to recommendation system
Introduction to recommendation systemIntroduction to recommendation system
Introduction to recommendation system
 
[UMAP 2016] User-Oriented Context Suggestion
[UMAP 2016] User-Oriented Context Suggestion[UMAP 2016] User-Oriented Context Suggestion
[UMAP 2016] User-Oriented Context Suggestion
 
Building Visual Thinking Communities Upload
Building Visual Thinking Communities   UploadBuilding Visual Thinking Communities   Upload
Building Visual Thinking Communities Upload
 
Personalization Palooza 2016
Personalization Palooza 2016Personalization Palooza 2016
Personalization Palooza 2016
 
Audience projection of target consumers over multiple domains a ner and baye...
Audience projection of target consumers over multiple domains  a ner and baye...Audience projection of target consumers over multiple domains  a ner and baye...
Audience projection of target consumers over multiple domains a ner and baye...
 
Beyond Usability
Beyond UsabilityBeyond Usability
Beyond Usability
 
DataEngConf: Talkographics: Using What Viewers Say Online to Measure TV and B...
DataEngConf: Talkographics: Using What Viewers Say Online to Measure TV and B...DataEngConf: Talkographics: Using What Viewers Say Online to Measure TV and B...
DataEngConf: Talkographics: Using What Viewers Say Online to Measure TV and B...
 
God Mode for designing scenario-driven skills for DeepPavlov Dream
God Mode for designing scenario-driven skills for DeepPavlov DreamGod Mode for designing scenario-driven skills for DeepPavlov Dream
God Mode for designing scenario-driven skills for DeepPavlov Dream
 
TTT 2012 slide deck
TTT  2012 slide deckTTT  2012 slide deck
TTT 2012 slide deck
 
How UX/UI Optimization Can Drive Revenue
How UX/UI Optimization Can Drive RevenueHow UX/UI Optimization Can Drive Revenue
How UX/UI Optimization Can Drive Revenue
 
How to present creative 2017
How to present creative   2017How to present creative   2017
How to present creative 2017
 
2011 10-05-virtual user group
2011 10-05-virtual user group2011 10-05-virtual user group
2011 10-05-virtual user group
 
Frontiers of Computational Journalism week 3 - Information Filter Design
Frontiers of Computational Journalism week 3 - Information Filter DesignFrontiers of Computational Journalism week 3 - Information Filter Design
Frontiers of Computational Journalism week 3 - Information Filter Design
 
Explainable Recommendation for Repeat Consumption (RecSys 2020)
Explainable Recommendation for Repeat Consumption (RecSys 2020)Explainable Recommendation for Repeat Consumption (RecSys 2020)
Explainable Recommendation for Repeat Consumption (RecSys 2020)
 
Free software basics
Free software basicsFree software basics
Free software basics
 
Recsys 2018 overview and highlights
Recsys 2018 overview and highlightsRecsys 2018 overview and highlights
Recsys 2018 overview and highlights
 
Social Recommender Systems Tutorial - WWW 2011
Social Recommender Systems Tutorial - WWW 2011Social Recommender Systems Tutorial - WWW 2011
Social Recommender Systems Tutorial - WWW 2011
 
Introduction to recommender systems
Introduction to recommender systemsIntroduction to recommender systems
Introduction to recommender systems
 
We hear you!. Collecting and processing user feedback, for real!
We hear you!. Collecting and processing user feedback, for real!We hear you!. Collecting and processing user feedback, for real!
We hear you!. Collecting and processing user feedback, for real!
 

Recently uploaded

GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 

Recently uploaded (20)

GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 

Interactive Recommender Systems with Netflix and Spotify

  • 1. Interactive Recommender Systems RecSys 2015 Harald Steck Netflix Inc. hsteck@netflix.com Roelof van Zwol Netflix Inc. roelofvanzwol@netflix.com Chris Johnson Spotify Inc. cjohnson@spotify.com
  • 5. What are Interactive RSs? Define Interactive: Influencing or having an effect on each other. Allowing a two-way flow of information Responding to a user’s input Forms of Interaction Implicit vs explicit feedback User experiences SearchBrowse Interactive RS
  • 6. Need for Interactive RSs? To better serve the user’s (entertainment) needs Fill the gap between browse and search Lean-back vs precise need To establish trust and credibility Instant gratification
  • 7. Interactive RS in practice? Most online services offer different levels of personalization Video: Netflix, YouTube, Hulu, Amazon Video, HBO, … Browse (homepage/genre) and search Music: Spotify, Pandora, Apple Music, Google Music, … Browse, Radio, Search Books/Apps/Shopping: Amazon, Apple, Google (Video and Image) Search: Google, Bing, Yahoo Left rail suggestions (explore), search completion Travel: Booking.com, Kayak, Orbitz, Expedia, … Guided experience: Pick destination —> pick flight and hotel, arrange local transport, plan activities, go dining and sightseeing…
  • 8. Research on Interactive RS “A successful recommender system must balance the needs to explore user preferences and to exploit this information for recommendation.” Exploration in Interactive Personalized Music Recommendation: A Reinforcement Learning Approach. X. Wang, Y. Wang, D. Hsu, Y. Wang (2013) Active learning / Multi-Armed Bandits (𝜀-greedy, UCB, Thompson sampling) Papers at RecSys this year and in the past :) When do explicit taste preferences trump play data? When we have insufficient knowledge about the user When context changes TasteWeights: A Visual Interactive Hybrid Recommender System. S. Bostandjiev, J. O’Donovan, T. Höllerer (RecSys 2012) When the user has a vague idea of what they want IntRS: Workshop on Interfaces and Human Decision Making for Recommender Systems
  • 14. Interactive RSs @ Netflix Help user’s find a great video to watch as an alternative to browse and search. Address browse fatigue; failed search experience; or user has vague notion of what to watch; watching with friends Not for everyone, not all the time… Max - Rating Game Select a topic, rate some videos, get recommendations Hot-or-Cold Tell us what you’re into, one video at a time Discover Select one or more videos of interest to explore other similar options
  • 15. Max - Rating Game
  • 16. Hot or Cold Game
  • 20. Spotify in Numbers Started in 2006, now available in 58 markets 75+ million active users, 20 million paying subscribers 30+ million songs, 20,000 new songs added per day 1.5 billion playlists 1 TB user data logged per day 1k node Hadoop cluster 10,000+ Hadoop jobs run every day
  • 21. Challenge: 20 Million songs... how do we recommend music to users?
  • 25. Radio
  • 26. Radio as an Interactive RS User has a vague idea of what they would like to listen to User starts a radio station seeded by an Artist, Album, Song, Playlist, or Genre Generally a lean back experience, but with the ability to tune recommendations with (+) and (-) feedback ( )
  • 27. Section name 27 SmartBox: fully interactive radio experience
  • 29. Challenges Understanding when to present interactive experience - Binging, trying to find something new, experiencing browse fatigue X User Interaction Design - UI affordance - Messaging task - Efficient mechanism to collect user input - Instant gratification - Choice penalty - Navigation options (user control) X X
  • 30. Challenges Workflow and Algorithmic Design - Computational efficient - Balancing relevancy, diversity and popularity of the recommendations - Support user navigation - Allow for both exploration and exploitation, e.g. avoid overfitting based on limited input from the user X X
  • 33. Meeting the users expectations Introducing interactive RS as a full page experience or integrate with other rows on the homepage?
  • 34. Meeting the users expectations Introducing interactive RS as a full page experience or integrate with other rows on the homepage? Avoid conflict: browse vs discovery mode Browsing on the homepage is a lean-back experience Discover, is interactive… that means work
  • 35. Understanding the user’s need Introducing Discover feature as a new destination Allow users to quickly navigate to feature
  • 36. Understanding the user’s need Introducing Discover feature as a new destination Help users find new feature through messaging at top of homepage At session start After scrolling X rows down After 45 secs
  • 37. Understanding the user’s need Introducing Discover feature as a new destination Help users find new feature through: messaging at top of homepage invitation in row on homepage
  • 38. Understanding the user’s need Introducing Discover feature as a new destination Help users find new feature through: messaging at top of homepage invitation in row row-based invitation In position of Nth row or as last row on homepage
  • 39. Understanding the user’s need Context is crucial for the success of the integration of interactive experiences into the product Never interrupt a user that knows what they want Message at start of user session Showing the invitation at the right moment (and place) is crucial Allow the user to explore options on the homepage first Challenge is to find the right trade-off between rate at which user tries the interactive experience, versus success Success rate can vary from 30-70% Not a goal to reach all users, just need to reach those who need help
  • 40. Discover: Inside the interactive RS
  • 43. Interaction Workflow for Discover Init - At start of new session, create an initial seed of videos to show to the user See Suggestions - After receiving input from the user (selected videos), compute recommendations
  • 44. Interaction Workflow for Discover Need to find balance between relevancy, diversity and popularity of the videos shown to the user
  • 45. Videos in a Latent Space Representation normalized item-vectors
  • 46. Videos in a Latent Space Representation user-vector in same space
  • 50. “See Suggestions” step Score of item i: , for adjusting the balance score(i) determined by “closest” item j in S “diminishing returns”
  • 51. “See Suggestions” step Greedy computation of recommendation set S:
  • 52. Interaction Workflow for Discover See Suggestions - After receiving input from the user (selected videos), compute recommendations What if the selected videos cover more than 1 genre?
  • 53. User may select diverse set of videos Challenge: Recommendations should reflect all genres of the shows selected by user Solution: Multiple user-vectors, one per selected group of similar shows (clustering) Compute recommendations for each user vector Display clusters in separate rows, or combine via reciprocal rank aggregation
  • 54. Interaction Workflow for Discover Init - At start of new session, create an initial seed of videos to show to the user Show diverse set of recognizable videos that are familiar to the user, and which is fresh across sessions
  • 55. Producing the initial set of videos Objective: Show diverse set of recognizable videos that are familiar to the user, and which is fresh across sessions How? Sample videos from user’s play history score: no popularity & relevance component Sample shows from catalog with popularity bias score: no relevance component Randomize initial set for freshness
  • 57. Learning the Latent Vectors Use implicit feedback data Compute item-item similarity matrix: covariance matrix transition matrix … Train (spectral) matrix factorization model
  • 60. Graph Cut—Simplistic Example Cut  here …not   similar  to   Ballerina   any  more new  similar
 of  Ballerina:
  • 61. Graph Cut à Spectral Clustering 1. Graph à Affinity Matrix A   2.      Laplacian:     L =     D …  diagonal  matrix,    D = sum (A ) popularity  removed  prior  to  factorization   3.      factorize  the  Laplacian  L 4.      normalize  the  latent  vectors   5.      (kmeans)  clustering  of  latent  vectors   ii j ij
  • 62. Graph Cut à Spectral Clustering 1. Graph à Affinity Matrix A   2.      Laplacian:     L =     D …  diagonal  matrix,    D = sum (A ) popularity  removed  prior  to  factorization   3.      factorize  the  Laplacian  L 4.      normalize  the  latent  vectors   5.      (kmeans)  clustering  of  latent  vectors   ii j ij
  • 63. Graph Cut à Spectral Clustering 1. Graph à Affinity Matrix A   2.      Laplacian:     L =     D …  diagonal  matrix,    D = sum (A ) popularity  removed  prior  to  factorization   3.      factorize  the  Laplacian  L 4.      normalize  the  latent  vectors   5.      (kmeans)  clustering  of  latent  vectors   ii j ij
  • 64. Graph Cut à Spectral Clustering 1. Graph à Affinity Matrix A   2.      Laplacian:     L =     D …  diagonal  matrix,    D = sum (A ) popularity  (largely)  removed  prior  to  factorization   3.      factorize  the  Laplacian  L 4.      normalize  the  latent  vectors   5.      (kmeans)  clustering  of  latent  vectors   ii j ij
  • 65. Graph Cut à Spectral Clustering 1. Graph à Affinity Matrix A   2.      Laplacian:     L =     D …  diagonal  matrix,    D = sum (A ) popularity  (largely)  removed  prior  to  factorization   3.      factorize  the  Laplacian  L 4.      normalize  the  latent  vectors   5.      (kmeans)  clustering  of  latent  vectors   ii j ij
  • 66. Graph Cut à Spectral Clustering 1. Graph à Affinity Matrix A   2.      Laplacian:     L =     D …  diagonal  matrix,    D = sum (A ) popularity  (largely)  removed  prior  to  factorization   3.      factorize  the  Laplacian  L 4.      normalize  the  latent  vectors  (remove  remaining  popularity)   5.      (kmeans)  clustering  of  latent  vectors   ii j ij
  • 67. Graph Cut à Spectral Clustering 1. Graph à Affinity Matrix A   2.      Laplacian:     L =     D …  diagonal  matrix,    D = sum (A ) popularity  (largely)  removed  prior  to  factorization   3.      factorize  the  Laplacian  L 4.      normalize  the  latent  vectors  (remove  remaining  popularity)   5.      (kmeans)  clustering  of  latent  vectors   ii j ij
  • 68. Example: Django Movies similar to: Viennese-born Christoph Waltz won Oscar for best supporting role only play-data used, no content information
  • 69. Similar to Django via basic MF
  • 70. Similar to Django via spectral MF
  • 71. Example: Hercules in New York Movies similar to: Austrian-born Arnold Schwarzenegger’s debut movie only play-data used, no content information
  • 72. Similar to Hercules in NY via basic MF
  • 73. Similar to Hercules in NY via spectral MF
  • 75. Radio as an Interactive RS User has a vague idea of what they would like to listen to User starts a radio station seeded by an Artist, Album, Song, Playlist, or Genre Generally a lean back experience, but with the ability to tune recommendations with (+) and (-) feedback ( )
  • 76. Overview of Radio Dataflow
  • 77. Step 1: Train batch recommendation models
  • 78. Implicit Matrix Factorization [1] 78 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 •Aggregate all (user, track) streams into a large matrix •Goal: Approximate binary preference matrix by inner product of 2 smaller matrices by minimizing the weighted RMSE (root mean squared error) using a function of plays, context, and recency as weight X YUsers Songs • = bias for user • = bias for item • = regularization parameter • = 1 if user streamed track else 0 • • = user latent factor vector • = item latent factor vector [1] Hu Y. & Koren Y. & Volinsky C. (2008) Collaborative Filtering for Implicit Feedback Datasets 8th IEEE International Conference on Data Mining
  • 79. Can also use Logistic Loss! [2] 79 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 •Aggregate all (user, track) streams into a large matrix •Goal: Model probability of user playing a song as logistic, then maximize log likelihood of binary preference matrix, weighting positive observations by a function of plays, context, and recency X YUsers Songs • = bias for user • = bias for item • = regularization parameter • = user latent factor vector • = item latent factor vector [2] Johnson C. (2014) Logistic Matrix Factorization for Implicit Feedback Data NIPS Workshop on Distributed Matrix Computations
  • 80. NLP models on News, Blogs, and Text 80
  • 81. 81 NLP models also work on playlists! Playlist itself is a document Songs in playlist are words
  • 82. 82 Deep Learning on Audio [3] [3] http://benanne.github.io/2014/08/05/spotify-cnns.html
  • 83. Songs in a Latent Space Representation normalized item-vectors
  • 84. Songs in a Latent Space Representation user-vector in same space
  • 85. Step 2: Ensemble of batch models using explicit thumbs data
  • 87. Explicit feedback at the expense of presentation bias…
  • 88. Augment explicit feedback with random negatives
  • 89. Thumbs also carry a subjective bias… Thumbs used to personally tune a user’s station But with enough data, they’re a pretty good signal
  • 90. Interesting fact… Ratio of to does not always correlate with user engagement!
  • 91. Step 3: Static song pools adaptively personalized as user interacts
  • 92. Should be Simple, fast, and instantly gratifying
  • 93. Adaptive personalization Probability of choosing song given user , station , at time = global rank of track in song pool = relevancy to user based on implicit CF vector = relevancy to user based on explicit thumbs = diversity of artist and album within radio session
  • 94. Step 4: Radio thumbs feed back into ensemble!
  • 96. Key Take Aways Implicit feedback used to train batch recommendation models Explicit feedback is augmented with random negatives and used as training data to combine batch models (feedback loop) Adaptive shuffling is a function of song pool rank, user’s implicit CF relevancy, user’s thumbs relevancy, and diversity of artist and album Interaction needs to be simple, fast, and instantly gratifying to the user
  • 98. Insights - User perspective Positioning of interactive RS in a product is crucial to success Natural transition from browse and search to interaction Interactive RS needs to be lightweight.. Most users prefer lean-back experience Interaction means work —> instant gratification Evidence helps build trust and transparency Choice penalty How much input is needed and how many results to return
  • 99. Insights - Algorithmic perspective Need to balance popularity, relevancy, and diversity of the recommendations during different phases of the interactive workflow. Real-time scoring vs offline computation of recommendations Video and music domain share many algorithmic characteristics, yet the application requires vastly different implementation On using implicit vs explicit feedback: What users say they like is not always what they watch/ listen