Interactive Recommender Systems with Netflix and Spotify


The Presentation inside:

Slide 0

Interactive Recommender Systems Harald Steck Netflix Inc. Roelof van Zwol Chris Johnson Netflix Inc. Spotify Inc. [email protected]flix.com [email protected]flix.com RecSys 2015 [email protected]


Slide 1

Outline Introduction Use cases Netflix Spotify Challenges Deep Dive Netflix Spotify Insights Discussion


Slide 2

Introduction


Slide 3

Section name 4


Slide 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 Browse Interactive RS Search


Slide 5

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


Slide 6

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…


Slide 7

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 (


Slide 8

Use-case:


Slide 9

Section name 10


Slide 10

Section name 11


Slide 11

Section name 12


Slide 12

Section name 13


Slide 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


Slide 14

Max - Rating Game


Slide 15

Hot or Cold Game


Slide 16

Discover App


Slide 17

Use-case:


Slide 18

Section name 19


Slide 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


Slide 20

Challenge: 20 Million songs... how do we recommend music to users?


Slide 21

Discover Weekly


Slide 22

Discover


Slide 23

Related Artists


Slide 24

Radio


Slide 25

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 ( )


Slide 26

Section name SmartBox: fully interactive radio experience 27


Slide 27

Challenges


Slide 28

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


Slide 29

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


Slide 30

Deep Dive: Discover


Slide 31

Discover: Understanding the user


Slide 32

Meeting the users expectations Introducing interactive RS as a full page experience or integrate with other rows on the homepage?


Slide 33

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


Slide 34

Understanding the user’s need Introducing Discover feature as a new destination Allow users to quickly navigate to feature


Slide 35

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


Slide 36

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


Slide 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 row-based invitation In position of Nth row or as last row on homepage


Slide 38

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


Slide 39

Discover: Inside the interactive RS


Slide 40

Section name 41


Slide 41

Section name 42


Slide 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


Slide 43

Interaction Workflow for Discover Need to find balance between relevancy, diversity and popularity of the videos shown to the user


Slide 44

Videos in a Latent Space Representation normalized item-vectors


Slide 45

Videos in a Latent Space Representation user-vector in same space


Slide 46

Relevance Score


Slide 47

Diversity Score note:


Slide 48

Popularity Score


Slide 49

“See Suggestions” step Score of item i: , for adjusting the balance score(i) determined by “closest” item j in S “diminishing returns”


Slide 50

“See Suggestions” step Greedy computation of recommendation set S:


Slide 51

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?


Slide 52

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


Slide 53

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


Slide 54

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


Slide 55

Learning the Latent Vectors


Slide 56

Learning the Latent Vectors Use implicit feedback data Compute item-item similarity matrix: covariance matrix transition matrix … Train (spectral) matrix factorization model


Slide 57

Graph Cut—Simplistic Example


Slide 58

Graph Cut—Simplistic Example


Slide 59

Graph Cut—Simplistic Example Cut  here new  similar
 of  Ballerina: …not   similar  to   Ballerina   any  more


Slide 60

Graph Cut à Spectral Clustering 1. Graph à Affinity Matrix A   2.      Laplacian:     L =     D …  diagonal  matrix,    Dii = sumj (Aij ) popularity  removed  prior  to  factorization   3.      factorize  the  Laplacian  L 4.      normalize  the  latent  vectors   5.      (kmeans)  clustering  of  latent  vectors  


Slide 61

Graph Cut à Spectral Clustering 1. Graph à Affinity Matrix A   2.      Laplacian:     L =     D …  diagonal  matrix,    Dii = sumj (Aij ) popularity  removed  prior  to  factorization   3.      factorize  the  Laplacian  L 4.      normalize  the  latent  vectors   5.      (kmeans)  clustering  of  latent  vectors  


Slide 62

Graph Cut à Spectral Clustering 1. Graph à Affinity Matrix A   2.      Laplacian:     L =     D …  diagonal  matrix,    Dii = sumj (Aij ) popularity  removed  prior  to  factorization   3.      factorize  the  Laplacian  L 4.      normalize  the  latent  vectors   5.      (kmeans)  clustering  of  latent  vectors  


Slide 63

Graph Cut à Spectral Clustering 1. Graph à Affinity Matrix A   2.      Laplacian:     L =     D …  diagonal  matrix,    Dii = sumj (Aij ) popularity  (largely)  removed  prior  to  factorization   3.      factorize  the  Laplacian  L 4.      normalize  the  latent  vectors   5.      (kmeans)  clustering  of  latent  vectors  


Slide 64

Graph Cut à Spectral Clustering 1. Graph à Affinity Matrix A   2.      Laplacian:     L =     D …  diagonal  matrix,    Dii = sumj (Aij ) popularity  (largely)  removed  prior  to  factorization   3.      factorize  the  Laplacian  L 4.      normalize  the  latent  vectors   5.      (kmeans)  clustering  of  latent  vectors  


Slide 65

Graph Cut à Spectral Clustering 1. Graph à Affinity Matrix A   2.      Laplacian:     L =     D …  diagonal  matrix,    Dii = sumj (Aij ) 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  


Slide 66

Graph Cut à Spectral Clustering 1. Graph à Affinity Matrix A   2.      Laplacian:     L =     D …  diagonal  matrix,    Dii = sumj (Aij ) 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  


Slide 67

Example: Django Movies similar to: Viennese-born Christoph Waltz won Oscar for best supporting role only play-data used, no content information


Slide 68

Similar to Django via basic MF


Slide 69

Similar to Django via spectral MF


Slide 70

Example: Hercules in New York Movies similar to: Austrian-born Arnold Schwarzenegger’s debut movie only play-data used, no content information


Slide 71

Similar to Hercules in NY via basic MF


Slide 72

Similar to Hercules in NY via spectral MF


Slide 73

Deep Dive: Radio


Slide 74

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 ( )


Slide 75

Overview of Radio Dataflow


Slide 76

Step 1: Train batch recommendation models


Slide 77

Implicit Matrix Factorization [1] 78 •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 Users • • • • 10001001 00100100 10100011 01000100 00100100 10001001 Songs = 1 if user = user = item streamed track latent factor vector latent factor vector X else 0 Y • • • = bias for user = bias for item = regularization parameter [1] Hu Y. & Koren Y. & Volinsky C. (2008) Collaborative Filtering for Implicit Feedback Datasets 8th IEEE International Conference on Data Mining


Slide 78

Can also use Logistic Loss! [2] 79 •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 Users • • = user = item 10001001 00100100 10100011 01000100 00100100 10001001 Songs latent factor vector latent factor vector X Y • • • = bias for user = bias for item = regularization parameter [2] Johnson C. (2014) Logistic Matrix Factorization for Implicit Feedback Data NIPS Workshop on Distributed Matrix Computations


Slide 79

NLP models on News, Blogs, and Text 80


Slide 80

NLP models also work on playlists! Playlist itself is a document Songs in playlist are words 81


Slide 81

Deep Learning on Audio [3] [3] http://benanne.github.io/2014/08/05/spotify-cnns.html 82


Slide 82

Songs in a Latent Space Representation normalized item-vectors


Slide 83

Songs in a Latent Space Representation user-vector in same space


Slide 84

Step 2: Ensemble of batch models using explicit thumbs data


Slide 85

Ensemble of Batch Models


Slide 86

Explicit feedback at the expense of presentation bias…


Slide 87

Augment explicit feedback with random negatives


Slide 88

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


Slide 89

Interesting fact… Ratio of to does not always correlate with user engagement!


Slide 90

Step 3: Static song pools adaptively personalized as user interacts


Slide 91

Should be Simple, fast, and instantly gratifying


Slide 92

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


Slide 93

Step 4: Radio thumbs feed back into ensemble!


Slide 94

Interactive feedback loop


Slide 95

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


Slide 96

Insights


Slide 97

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


Slide 98

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


Slide 99

Section name Discussion 100


Slide 100


×

HTML:





Ссылка: