SlideShare a Scribd company logo
1 of 100
Download to read offline
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

Collaborative Filtering at Spotify
Collaborative Filtering at SpotifyCollaborative Filtering at Spotify
Collaborative Filtering at SpotifyErik Bernhardsson
 
Sequential Decision Making in Recommendations
Sequential Decision Making in RecommendationsSequential Decision Making in Recommendations
Sequential Decision Making in RecommendationsJaya Kawale
 
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.
 
Rishabh Mehrotra - Recommendations in a Marketplace: Personalizing Explainabl...
Rishabh Mehrotra - Recommendations in a Marketplace: Personalizing Explainabl...Rishabh Mehrotra - Recommendations in a Marketplace: Personalizing Explainabl...
Rishabh Mehrotra - Recommendations in a Marketplace: Personalizing Explainabl...MLconf
 
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 PerspectiveJustin Basilico
 
Homepage Personalization at Spotify
Homepage Personalization at SpotifyHomepage Personalization at Spotify
Homepage Personalization at SpotifyOguz Semerci
 
Artwork Personalization at Netflix
Artwork Personalization at NetflixArtwork Personalization at Netflix
Artwork Personalization at NetflixJustin Basilico
 
Déjà Vu: The Importance of Time and Causality in Recommender Systems
Déjà Vu: The Importance of Time and Causality in Recommender SystemsDéjà Vu: The Importance of Time and Causality in Recommender Systems
Déjà Vu: The Importance of Time and Causality in Recommender SystemsJustin Basilico
 
Learning a Personalized Homepage
Learning a Personalized HomepageLearning a Personalized Homepage
Learning a Personalized HomepageJustin Basilico
 
Personalizing the listening experience
Personalizing the listening experiencePersonalizing the listening experience
Personalizing the listening experienceMounia Lalmas-Roelleke
 
LinkedIn talk at Netflix ML Platform meetup Sep 2019
LinkedIn talk at Netflix ML Platform meetup Sep 2019LinkedIn talk at Netflix ML Platform meetup Sep 2019
LinkedIn talk at Netflix ML Platform meetup Sep 2019Faisal Siddiqi
 
Time, Context and Causality in Recommender Systems
Time, Context and Causality in Recommender SystemsTime, Context and Causality in Recommender Systems
Time, Context and Causality in Recommender SystemsYves Raimond
 
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 NetflixJaya Kawale
 
Recommendation at Netflix Scale
Recommendation at Netflix ScaleRecommendation at Netflix Scale
Recommendation at Netflix ScaleJustin Basilico
 
Crafting Recommenders: the Shallow and the Deep of it!
Crafting Recommenders: the Shallow and the Deep of it! Crafting Recommenders: the Shallow and the Deep of it!
Crafting Recommenders: the Shallow and the Deep of it! Sudeep Das, Ph.D.
 
How to build a recommender system?
How to build a recommender system?How to build a recommender system?
How to build a recommender system?blueace
 
Personalized Playlists at Spotify
Personalized Playlists at SpotifyPersonalized Playlists at Spotify
Personalized Playlists at SpotifyRohan Agrawal
 
Artwork Personalization at Netflix Fernando Amat RecSys2018
Artwork Personalization at Netflix Fernando Amat RecSys2018 Artwork Personalization at Netflix Fernando Amat RecSys2018
Artwork Personalization at Netflix Fernando Amat RecSys2018 Fernando Amat
 
Music Recommendations at Scale with Spark
Music Recommendations at Scale with SparkMusic Recommendations at Scale with Spark
Music Recommendations at Scale with SparkChris Johnson
 
An introduction to Recommender Systems
An introduction to Recommender SystemsAn introduction to Recommender Systems
An introduction to Recommender SystemsDavid Zibriczky
 

What's hot (20)

Collaborative Filtering at Spotify
Collaborative Filtering at SpotifyCollaborative Filtering at Spotify
Collaborative Filtering at Spotify
 
Sequential Decision Making in Recommendations
Sequential Decision Making in RecommendationsSequential Decision Making in Recommendations
Sequential Decision Making in Recommendations
 
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...
 
Rishabh Mehrotra - Recommendations in a Marketplace: Personalizing Explainabl...
Rishabh Mehrotra - Recommendations in a Marketplace: Personalizing Explainabl...Rishabh Mehrotra - Recommendations in a Marketplace: Personalizing Explainabl...
Rishabh Mehrotra - Recommendations in a Marketplace: Personalizing Explainabl...
 
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
 
Homepage Personalization at Spotify
Homepage Personalization at SpotifyHomepage Personalization at Spotify
Homepage Personalization at Spotify
 
Artwork Personalization at Netflix
Artwork Personalization at NetflixArtwork Personalization at Netflix
Artwork Personalization at Netflix
 
Déjà Vu: The Importance of Time and Causality in Recommender Systems
Déjà Vu: The Importance of Time and Causality in Recommender SystemsDéjà Vu: The Importance of Time and Causality in Recommender Systems
Déjà Vu: The Importance of Time and Causality in Recommender Systems
 
Learning a Personalized Homepage
Learning a Personalized HomepageLearning a Personalized Homepage
Learning a Personalized Homepage
 
Personalizing the listening experience
Personalizing the listening experiencePersonalizing the listening experience
Personalizing the listening experience
 
LinkedIn talk at Netflix ML Platform meetup Sep 2019
LinkedIn talk at Netflix ML Platform meetup Sep 2019LinkedIn talk at Netflix ML Platform meetup Sep 2019
LinkedIn talk at Netflix ML Platform meetup Sep 2019
 
Time, Context and Causality in Recommender Systems
Time, Context and Causality in Recommender SystemsTime, Context and Causality in Recommender Systems
Time, Context and Causality in Recommender Systems
 
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
 
Recommendation at Netflix Scale
Recommendation at Netflix ScaleRecommendation at Netflix Scale
Recommendation at Netflix Scale
 
Crafting Recommenders: the Shallow and the Deep of it!
Crafting Recommenders: the Shallow and the Deep of it! Crafting Recommenders: the Shallow and the Deep of it!
Crafting Recommenders: the Shallow and the Deep of it!
 
How to build a recommender system?
How to build a recommender system?How to build a recommender system?
How to build a recommender system?
 
Personalized Playlists at Spotify
Personalized Playlists at SpotifyPersonalized Playlists at Spotify
Personalized Playlists at Spotify
 
Artwork Personalization at Netflix Fernando Amat RecSys2018
Artwork Personalization at Netflix Fernando Amat RecSys2018 Artwork Personalization at Netflix Fernando Amat RecSys2018
Artwork Personalization at Netflix Fernando Amat RecSys2018
 
Music Recommendations at Scale with Spark
Music Recommendations at Scale with SparkMusic Recommendations at Scale with Spark
Music Recommendations at Scale with Spark
 
An introduction to Recommender Systems
An introduction to Recommender SystemsAn introduction to Recommender Systems
An introduction to Recommender Systems
 

Similar to Interactive Recommender Systems with Netflix and Spotify

DeepakRawat_APMF.pdf
DeepakRawat_APMF.pdfDeepakRawat_APMF.pdf
DeepakRawat_APMF.pdfDeepak Rawat
 
Introduction to recommendation system
Introduction to recommendation systemIntroduction to recommendation system
Introduction to recommendation systemAravindharamanan S
 
[UMAP 2016] User-Oriented Context Suggestion
[UMAP 2016] User-Oriented Context Suggestion[UMAP 2016] User-Oriented Context Suggestion
[UMAP 2016] User-Oriented Context SuggestionYONG ZHENG
 
Building Visual Thinking Communities Upload
Building Visual Thinking Communities   UploadBuilding Visual Thinking Communities   Upload
Building Visual Thinking Communities UploadRyan Coleman
 
Personalization Palooza 2016
Personalization Palooza 2016Personalization Palooza 2016
Personalization Palooza 2016Pancrazio 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
 
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 DreamDaniel Kornev
 
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 RevenueDavid R. Iannone Jr.
 
How to present creative 2017
How to present creative   2017How to present creative   2017
How to present creative 2017Joel Eby
 
2011 10-05-virtual user group
2011 10-05-virtual user group2011 10-05-virtual user group
2011 10-05-virtual user groupjhennelly
 
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 DesignJonathan 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
 
Recsys 2018 overview and highlights
Recsys 2018 overview and highlightsRecsys 2018 overview and highlights
Recsys 2018 overview and highlightsSandra Garcia
 
Social Recommender Systems Tutorial - WWW 2011
Social Recommender Systems Tutorial - WWW 2011Social Recommender Systems Tutorial - WWW 2011
Social Recommender Systems Tutorial - WWW 2011idoguy
 
Introduction to recommender systems
Introduction to recommender systemsIntroduction to recommender systems
Introduction to recommender systemsRami Alsalman
 

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
 
Open Source
Open SourceOpen Source
Open Source
 

Recently uploaded

Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLAlluxio, Inc.
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfTobias Schneck
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionsNirav Modi
 
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsYour Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsJaydeep Chhasatia
 
OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorShane Coughlan
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampVICTOR MAESTRE RAMIREZ
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native BuildpacksVish Abrams
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024Mind IT Systems
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdfMeon Technology
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Jaydeep Chhasatia
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.Sharon Liu
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIIvo Andreev
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeNeo4j
 
Introduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntroduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntelliSource Technologies
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmonyelliciumsolutionspun
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxAutus Cyber Tech
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?AmeliaSmith90
 
Webinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.pptWebinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.pptkinjal48
 

Recently uploaded (20)

Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspections
 
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsYour Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
 
OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS Calculator
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - Datacamp
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native Buildpacks
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in Trivandrum
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdf
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AI
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 
Introduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntroduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptx
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
 
Salesforce AI Associate Certification.pptx
Salesforce AI Associate Certification.pptxSalesforce AI Associate Certification.pptx
Salesforce AI Associate Certification.pptx
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptx
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?
 
Webinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.pptWebinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.ppt
 

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