'

Interactive Recommender Systems with Netflix and Spotify

Понравилась презентация – покажи это...





Слайд 0

Interactive Recommender Systems Harald Steck Netflix Inc. Roelof van Zwol Chris Johnson Netflix Inc. Spotify Inc. hsteck@netflix.com roelofvanzwol@netflix.com RecSys 2015 cjohnson@spotify.com


Слайд 1

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


Слайд 2

Introduction


Слайд 3

Section name 4


Слайд 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


Слайд 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


Слайд 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…


Слайд 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 (


Слайд 8

Use-case:


Слайд 9

Section name 10


Слайд 10

Section name 11


Слайд 11

Section name 12


Слайд 12

Section name 13


Слайд 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


Слайд 14

Max - Rating Game


Слайд 15

Hot or Cold Game


Слайд 16

Discover App


Слайд 17

Use-case:


Слайд 18

Section name 19


Слайд 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


Слайд 20

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


Слайд 21

Discover Weekly


Слайд 22

Discover


Слайд 23

Related Artists


Слайд 24

Radio


Слайд 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 ( )


Слайд 26

Section name SmartBox: fully interactive radio experience 27


Слайд 27

Challenges


Слайд 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


Слайд 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


Слайд 30

Deep Dive: Discover


Слайд 31

Discover: Understanding the user


Слайд 32

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


Слайд 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


Слайд 34

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


Слайд 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


Слайд 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


Слайд 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


Слайд 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


Слайд 39

Discover: Inside the interactive RS


Слайд 40

Section name 41


Слайд 41

Section name 42


Слайд 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


Слайд 43

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


Слайд 44

Videos in a Latent Space Representation normalized item-vectors


Слайд 45

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


Слайд 46

Relevance Score


Слайд 47

Diversity Score note:


Слайд 48

Popularity Score


Слайд 49

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


Слайд 50

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


Слайд 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?


Слайд 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


Слайд 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


Слайд 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


Слайд 55

Learning the Latent Vectors


Слайд 56

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


Слайд 57

Graph Cut—Simplistic Example


Слайд 58

Graph Cut—Simplistic Example


Слайд 59

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


Слайд 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  


Слайд 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  


Слайд 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  


Слайд 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  


Слайд 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  


Слайд 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  


Слайд 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  


Слайд 67

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


Слайд 68

Similar to Django via basic MF


Слайд 69

Similar to Django via spectral MF


Слайд 70

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


Слайд 71

Similar to Hercules in NY via basic MF


Слайд 72

Similar to Hercules in NY via spectral MF


Слайд 73

Deep Dive: Radio


Слайд 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 ( )


Слайд 75

Overview of Radio Dataflow


Слайд 76

Step 1: Train batch recommendation models


Слайд 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


Слайд 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


Слайд 79

NLP models on News, Blogs, and Text 80


Слайд 80

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


Слайд 81

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


Слайд 82

Songs in a Latent Space Representation normalized item-vectors


Слайд 83

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


Слайд 84

Step 2: Ensemble of batch models using explicit thumbs data


Слайд 85

Ensemble of Batch Models


Слайд 86

Explicit feedback at the expense of presentation bias…


Слайд 87

Augment explicit feedback with random negatives


Слайд 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


Слайд 89

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


Слайд 90

Step 3: Static song pools adaptively personalized as user interacts


Слайд 91

Should be Simple, fast, and instantly gratifying


Слайд 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


Слайд 93

Step 4: Radio thumbs feed back into ensemble!


Слайд 94

Interactive feedback loop


Слайд 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


Слайд 96

Insights


Слайд 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


Слайд 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


Слайд 99

Section name Discussion 100


Слайд 100


×

HTML:





Ссылка: