Music Recommendations at Spotify - Oskar Stål, Spotify

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] hello everyone nice to see you so we're gonna be talking a little bit about music I think if you might be aware of the concept various notes coming out into the air and you can dance to it and sing stuff like that and my name is Oscar I've been with Spotify for nine years the first seven years I was the the CTO of Spotify and the last two years I've been running the personalization and discovery efforts at Spotify so first of all I want to just go through who we are and and what we do so at Spotify and we're obviously a music streaming company I'm sure most of you are aware or what we do we have 83 million subscribers 180 million users etc etc and we're also available in 65 different markets across the globe and my team we're specifically focused on matching users and creators so you can imagine that on the one side we have you know a billion users or or whatever amount and on the other side we might have you know five million creators so the problem is how do you match those together in an optimized way so you know both creators are happy and users are happy at the same time obviously I'm not doing this myself so I'm running a team of 230 people who are all kind of engaged and working on this problem and what we do the team and I were basically trying to do three things for the world so number one we're trying to make it easier to listen to music so if you think about kind of the original story of Spotify was very much a self-serve a type of a platform where you would come and basically have to create your own playlist handcraft them one by one adding a track etc and users really thought that was an amazing service they were really happy about that but at the same time we're kind of shutting out a lot of people who don't have the time the energy or the skills to be creating a lot of playlists for themselves so what we're trying to do is to change that experience so you don't have to do all that hard work you can come to Spotify you can get great playlists great sessions great stuff without having to do all of that hard work yourself the second thing we're trying to do is to help you discover and help you find new things so we think about it as you as a user being on a journey with Spotify and on that journey you get to find new exciting things that you would you wouldn't have found other way so the idea here is that when you've been on the service for say three months you wake up one morning and you realize that all of a sudden you've found all this new artists the new genre some new podcasts things that you didn't know before that are now enriching your life and the third thing we're trying to do is also help creators and help artists so how can we help them become the best version of themselves how can we help them find the audience that they deserve so you might be a DJ in Mexico and you're doing all this great stuff but how can you find fans perhaps you know a thousand people in Indonesia a thousand people in Thailand etc etc and build up that audience that would otherwise have been impossible to find so here are some of the products that my team managed that helped us achieve that so we have a home page when you start the app will recommend to you various playlists that we think are relevant to you we have a search feature where you can go in if you want to more specifically tell Spotify what you're looking for you can type it in and you'll get responses we also have a lot of playlists and sessions created for you we have something called your discover weekly that's a weekly playlist with like new songs that we think that you might be interested in discovering we have something called daily mix which is a playlist or more your favorite stuff so if you just want to have a convenient pleasure you know pleasurable listening experience you can go there and you'll get familiar stuff we also have something called that your time capsule which is kind of fun if you want to go back in time and listen to the stuff that you would have been listening to a long time ago so now I'm going to talk a little bit more about how it works what's going on under the hood so you could think about the Spotify stack as a stack with three different layers and there is machine learning and data science going on and all of these three different layers the first layer in the bottom is essentially the data and the information and here you'll find stuff like you know playlists user listening information user age all those kind of things we also have a lot of data about the content so we'll get information from the labels but we will also download information from the web etc etc and lastly obviously we also have the audio profile itself of the actual music and here we'll be using a lot of machine learning techniques to clean the data and remove errors and etc etc and there's lots of examples like if one silly example is that the release year that we get from labels is often wrong so we have to do like a machine learning to clean that up and can I get the release years in in shape in the middle box we have a lot of share the models that basically are used by pretty much all the recommendation features we have so basically we have these central teams that build these models and maintain these models for everyone else some examples here are affinity so you could basically ask like you know how much does this user like this artist or what are the favorite artists of this user or how much does this user like this track we also have an embedding spaces for similarities so how similar are these two artists how similar are these two tracks or give me ten artists that are similar to this artists give me ten tracks that are similar to this track etc and we also have clustering services you can send in here are twenty artists can you cluster them for me or here 100 tracks can you put them in clusters for me so these are then all like a central model central things that all the various features will be using and then in the top level we have the actual features themselves so we'll have teams who own those features they build those features they maintain those features and there there'll be machine learning models as well so these models are more specifically targeting you know the satisfaction of that feature and is this you know a good feature right now but it will be using from data from all both of these other levels so it makes sense okay a little bit sense okay so now I'm gonna go through a few examples of things that are important at Spotify so example number one I'm going to talk about is embeddings so basically we're talking about embeddings for tracks playlists artists albums users etc so so this all starts with this number so this number here represents the amount of playlists that we were like using yesterday when we were running this job so this job runs every day so this doesn't represent all the the Spotify playlist we have a lot more playlists but we have a lot of logic that goes through and picks that the playlist that we think are relevant for the training and that kind of selection is actually pretty important so if you train on all the playlists things aren't going so well so essentially it's it's pretty simple in a way it's just kind of you know guess the missing track in a playlist type of logic so you know we have we're training on this you know 600 million playlists and we're trying to figure out if we remove a track which attracted we remove what is the missing missing track and we're using a word to Viki type algorithm so not very fancy or very complicated in that way and out of that we get this cloud of of similarities so basically an embedding space so in that space you can ask a lot of questions you can ask about similarities you can ask about similarities between tracks albums and artists you can get things that are close to you a little bit further away from you you can yeah you can do a lot of stuff basically we also put users into this space and the way that we do that is basically we look at your you're listening like what you've been listening to so you can pretend that that kind of becomes a playlist and then we take some kind of average out of that and boom you're also stuck in the space somewhere so so that's so that's kind of how this works and from this we can then calculate similarities between users and tracks and you can imagine then that if we're for example doing and a discover weekly one of the steps in an in a long chain of of steps to create a discovery weekly will be to look into this space and figure out like some interesting candidate artists and tracks that are like close to where you are in this space but ours at the same time things that you've never heard or seen before so a few thoughts on the secret sauce behind this and benning space so obviously this space is you know pretty important to our recommendations and it's one of the you know one or one of a few core building blocks for our features and our products so number one is that we have a large volume of playlists so that's very important in in making this a high-quality system number two that I think is really important is that this training data was was created with a lot of love and a lot of care so it's not just popping around them like a display somewhere and someone randomly clicking on yeah whatever you know that sounds good this is users who spend a lot of time putting this together for their own benefit for something they want to listen to and spend a lot of time with so there's a lot of like care and love behind those 600 million playlists and the third one is that we we deployed the first version of this nine years ago so over nine years we've iterated and iterated and changed and tweaked and worked on this you know day after day for a long long time so obviously after nine years something is usually working reasonably well I wanted to mention to that we also have a similar embedding space that built on the audio profiles only so you can imagine it's kind of the same question like against the missing playlist but the difference is that you only have the audio profile as your input so instead of having the the tracks you have an audio profile and this can be handy specifically when you have tracks that you know nothing about so maybe there are tracks that are new really released or there's an artist you don't know that much about or for some reasons there's kind of like a little bit of information so that was kind of the first example that I want to work work walk through the embedding space that we have the second example that I want to walk through is around our home page so essentially when you start Spotify you will get into this a page that we call the home page and this is a page where we recommend to you various playlists and various albums some things that we think are relevant to you at this point in time so fairly similar to you know the the Netflix start page when it come into Netflix this is kind of the same idea so we actually rebuilt this system fairly recently and it's like one of the major projects that were working on right now and we deployed this originally sometime in in April may I so here's a system that we call Bart which is a brand-new system we've built and in this Bart system is basically you know a recommendation system that will give everyone you know a personalized home page whenever you open your app so this new system and we're taking into account a lot of different type of inputs so it's not only your music taste and you know what kind of music you like and what your favorite artists are but it's also things like you know which device are you on what time of day is it you know what's going on in the world let cetera et cetera so we're making the system and trying to make the system context aware so that also means that you know if you open the homepage a few different times a day it would likely look quite different because it's changing with all of these contexts that parameters so essentially what you can imagine here is that the the problem is that we have all of these shelves of content and we're trying to figure out which shells should we be showing to you at this given point in time and we're also trying to figure out for each shelf which cards should we be showing to you at any point in time so each shelf have kind of a confined spaces of cards so you know one one shelf at mechanics example here could be a rock for example and then that possible candidate sets are like playlists that are relevant for a rock shelf so to speak and what we wanted to do here was to do a an exploration and exploitation type solution so we basically built a multi-armed bandit solution here and you know many of you are probably familiar with this this concept but the idea here is that you know if you're very sure about that the piece of content that you're trying to recommend then you will either just recommend that piece of content or you'll choose to ignore it and kind of throw it in the bin but if you're a little bit less sure of this piece of content we want to do some exploration instead so that we can learn more about this content and the reason why this is important is because recommendation systems tend to become a very biased towards themselves so to speak so you know this the the music that you recommend or the content that you recommend is the content that people click on and therefore you'll tend to recommend it more so by doing this exploration piece you'll get to make sure that you learn about other potential content candidates so that you're not kind of trapped in this little bubble so some essentially we use this really simple a thing called epsilon greedy and and the way it works is is pretty simple so you you flip a coin and you kind of decide the distribution and depending on the the randomness here you you either pick a random piece of content or you use your recommendation algorithm and I think right now our homepage roughly 10% will be using random and 90% will be using recommendations so that kind of means that every 10 a shelf roughly will just be put there on random and is similarly cards every 10 would basically be there in random but we're not you know randomizing across all possible playlists that we have because it could be a bit weird to have like a you know a piano playlist in a rock shelf so you first you do the candidate selection and then you do the randomization on that so basically you can imagine here we have the shelves we have the the card so for each time we're choosing a card one by one we're doing this process where we're rolling the dice and we decide you know whether we're going to take a random card or the the best card and similarly for each shelf we'll do the same so some more economy information things that might be good to know about the system the system is is optimized towards 30-second streams so that means that if you click on a playlist and then you decide to listen to that playlist and you listen for more than 30 seconds that will be like a win for the recommendation system which retrain this a model once a day and we retrain it based on the the interaction data that we were collecting and we also built a system to to devise that data for a positional bias so basically that kind of means that you know if you click on whatever see in the top left corner that will tend to be a little bit less worth than if you scroll down a lot and you click on something further down so that was kind of my second example that I wanted to talk about and now I'm gonna deep dive into the third and the last one here so we also spend a lot of attention thinking about the objective function so I'm gonna talk a little bit about discover weekly and the objective function there so first explain again a little bit more about that feature is so basically every week we'll be creating massive amounts of daily weekly playlist for all our users and sending those out to all our users so once a week every user on Spotify will get a new specific playlist with say 20 tracks that we think would be interesting for you to to discover so the question here is like how do we know whether a user was happy or not what type of objective function should we have for the recommender that we're training here so we started to do some investigation here and we looked at a lot of different signals you can imagine you can look at you know do you go to the album and view the album of that track how long did you stay on that album page did you add stuff to your playlist from from that discovery weekly did you add stuff and then listen to it further down the week maybe like a few days later in the week so those are interesting signals that we started to look at so the first thing we do did was kind of look at how we evaluate our weekly today and and today or before I guess I should say we looked a lot at how much streaming time do we get do users come back week on week to this feature etc but one of the interesting things we found was that actually the the metrics we were looking at were not really that good the approximations for satisfaction because if you think about listening time it basically turned out that a lot of users will look at Discovery weekly and they will take tracks and put it in another playlist for later listening and then they were listening that later playlist so maybe they were like super happy but we didn't see because you know the listening happens somewhere else we also found that some users would come back to discover weekly because they found that last week sucked so much so they wanted to come back to see if this one was better so week on week retention was also a little bit dubious way to assess whether your discard weekly was good so the the first lesson learned was that you know holy smokes you better know what you're optimizing for type of type of revolution so so this was a team that we put together that was a multi-discipline team so we had a basically user researcher a data scientist and a data engineer who worked together on this project so we we did user research studies we did in a data science studies and we we wrote a lot of code using with our data engineer so the first thing we found was that essentially there are like four main ways that users use discovery weekly so there's not just one way so some examples are that some will put it on and listen to it in the background while others will like drag tracks into another playlist and listen later but there were four main ones and what we found there was that you know it was hard to just say that this particular particular task is a good signal of users being satisfied because it's very depending on the goal so that was a little bit difficult and we did find some that kind of works across all of them so basically what we ended up doing was a building a machine learning model that tried to assess your satisfaction with this week's discovery clip so first we would take into that model all the interaction data from how did you interact with this week's discovery weekly what did you do what did you not do did you listen later this week did you scroll did you click did you dwell on the album page all that kind of stuff we also use historical data because we found that what was important was to look at the the kind of the relative change for each user so the interesting question is not do you do X more than this amount the interesting question is how much of this do you do this we compared to last week of the the week before and the third thing we we add is that clustering data essentially classifying which of these four goals that you belong to this week and what was really interesting is that we found that the last one here was actually the strongest influencer on the on the model output so knowing which of those goals that you have as a user or which of those ways is really important for assessing their satisfaction so what we did here we trained this against quite a few different targets but one of them was basically survey data so we did a lot of survey data and use use that as as as training and right now what we're doing kind of the next phase which were in the middle of now is basically building a learn to rank model that is essentially essentially recommending and trained against this metric so the idea here is that we can we can train directly against this metric as a target so if any of you are a users of this correctly you might find out in a few months or so whether this was better or worse and so that was kind of my fear deep dive examples so now what I'm gonna do is move into just a little bit more high-level talk about things that we're working right now so first of all we're working and more on this kind of idea of how can we in a deeper way understand whether the user is satisfied or not so how can we go beyond you know optimizing for clicks or optimizing for Scrolls or etc etc so basically trying to have a tighter causation between the user actually being happy and the thing that the model is optimizing for so we talked about earlier how I did that for disc our weekly but we're also now towards kind of the tail end of doing this for search doing this for our homepage and doing this for like you know playlist listening playlist consumption in general we're looking at you know how can we optimize towards two objectives at the same time so this is really interesting for us in a lot of various ways one way you can imagine how here is that you're optimizing for kind of immediate satisfaction and long-term satisfaction at the same time so immediate satisfaction might be like yes these are my favorite tracks I'm gonna be really happy to get them right now whereas long term might be a little bit but you're gonna get bored if that's what you get all the time so we need to also make sure that you you're not bored a few months from now so so here's this idea that you know we could basically be using algorithms that optimize against two functions at the same time so that's something we're working on here's another example of that where we that were working on too so you can think about fairness contra like relevance so in some sense you know a fair playlist or fair recommendation and fair here is like fair from an artists perspective because you can imagine that there could be a lot of fairness problems with like how we help artists build their careers and if you do things right we're finding that you can actually do a recommendations that are kind of optimized for both that are like good for both at the same time as like not compromising on the user satisfaction you can also improve kind of the fairness a score so to speak as cannot shown in this graph we're spending a lot of time working on our voice experience so for those of you who use Spotify on mobile you can go into if you click on the Search tab there is a like a little icon where you can click on that and you can enter voice commands and here we're thinking a lot about like how to best satisfy those requests that are a little bit more vague so they're not play this artist or play this as particular playlist but there are a little bit more vague requests and we're also thinking about and working on like how can you steer or control that session once is actually started so you can go into your voice as or your mobile app and trate try that later on another thing we're spending and spending a lot of attention to is podcast recommendations so we think that there's an opportunity out there to do a lot better podcast recommendations and here we're really interested to understand like how can we better categorize and classify and understand the content of podcasts through NLP type technologies and that was kind of all the things I wanted to go through and then at the end I just wanted to kind of end with saying that you know what we're really trying to do here is to use all of these technologies to in a much better way match together artists and users and we think that if we do that we can kind of help everyone at the same time so we can help more artists to make a living off of music and by doing that we will create more content that will make music and important or interesting for the consumer so maybe maybe consumers will then spend a little bit more time listening to music a little bit more time listening to podcast and that will of course be good for for the the creators hopefully also good for the users and obviously also good for Spotify so this is kind of you know trying to get all three tides to rise at the same time through this type of technology so that was all thank you everyone [Applause] you
Info
Channel: Hyperight AB
Views: 16,291
Rating: undefined out of 5
Keywords: Nordic Data Science and Machine Learning Summit, Nordic Data Science and Machine Learning Summit 2019, Nordic Data Science, NDSML, NDSML 2018, NDSMLS, NDSMLS 2018, Hyperight, Hyperight AB, Stockholm, Sweden, Data Science, Machine Learning, Deep Learning, Automation, Artificial Intelligence, AI Innovation, Music Recommendations, User Experience, Oskar Stal, Spotify
Id: 2VvM98flwq0
Channel Id: undefined
Length: 29min 12sec (1752 seconds)
Published: Mon Dec 03 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.