We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Build your own Playlist Recommender System with Python using your GDPR Data

00:00

Formal Metadata

Title
Build your own Playlist Recommender System with Python using your GDPR Data
Title of Series
Number of Parts
112
Author
License
CC Attribution - NonCommercial - ShareAlike 4.0 International:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Personalized Playlist Recommendations on Spotify are great – some of them let us discover new songs, some others help us to rediscover songs. However, rediscovery seems to be limited on the more recent past, i.e. going only a month backwards. This is a problem if you like to rediscover some of your favorite songs you might have listened to a longer while ago. Sometimes we add them to our ""liked songs"" where they likely fade away. However, you once explicitly declared those tracks as favorites. So, what is it that we can do about this missing piece in personalized playlist recommendations? Well, the first thing we do is to request our personal usage data from Spotify according to GDPR. Second, we analyze and enrich it with track audio features offered by Spotify’s rich Web API. We derive the music taste profile of ourselves from 12 months of streaming history and use this taste profile to retrieve favorite songs we haven’t listened to for more than a year. In my talk, I present you the Python package I build for this purpose, possible extensions and enable you to create your own personalized playlist to rediscover your past!
EmpfehlungssystemGoogolBuildingTensorSystem programmingReinforcement learningInferenceSystementwurfOrder (biology)Information retrievalLogicEmbedded systemDigital filteroutputData miningMultiplication signMusical ensemblePhysical systemVideoconferencingDifferent (Kate Ryan album)Level (video gaming)BuildingLine (geometry)DataflowExpert systemProjective planeDomain nameReal numberCartesian coordinate systemHand fanOperator (mathematics)WordSoftware developerComputer animationLecture/Conference
Stack (abstract data type)BitMereologyPoint (geometry)Software bugMultiplication signProjective planeSoftwareDisk read-and-write headComputing platformHand fanComputer animation
Term (mathematics)InformationGame controllerInternet service providerProcess (computing)Musical ensembleProfil (magazine)World Wide Web ConsortiumComputer fileGraph (mathematics)HypermediaMultiplication signDirection (geometry)Streaming mediaCartesian coordinate systemPoint (geometry)SpacetimeAutomationInformationTwitterFunctional (mathematics)Physical lawClient (computing)Form (programming)Process (computing)Basis <Mathematik>Computing platformFrame problemProjective planeElectronic mailing listTracing (software)Computer animation
TwitterExtension (kinesiology)Standard deviationBinary fileoutputInferenceLibrary (computing)Continuous trackExploratory data analysisSoftware developerOperations researchMultiplication signMereologyCore dumpWorld Wide Web ConsortiumContext awarenessMobile appComputing platformLengthBitStapeldateiProcess (computing)Order (biology)Matching (graph theory)TwitterDifferent (Kate Ryan album)Computer configurationStreaming mediaVirtual machineExtension (kinesiology)Web serviceStandard deviationCASE <Informatik>InformationLibrary (computing)Group action2 (number)AdditionProfil (magazine)Inverse elementPoint (geometry)Musical ensembleHistogramEmailData compressionComputer fileBeat (acoustics)Term (mathematics)Physical systemSoftware developerComputer animation
Transformation (genetics)DampingUser profileScale (map)Representation (politics)Trigonometric functionsDisintegrationLibrary (computing)Internet service providerIntegrated development environmentVariable (mathematics)Computer-generated imageryProfil (magazine)Physical systemTrigonometric functionsMedical imagingBitTransformation (genetics)AverageAuthenticationNumberCASE <Informatik>CountingResultantMusical ensembleNormal (geometry)Einbettung <Mathematik>BlogSimilarity (geometry)Set (mathematics)Process (computing)SpacetimeRepresentation (politics)Distribution (mathematics)Query languageComputing platformInteractive televisionProduct (business)Probability distribution1 (number)Dimensional analysisEvent horizonDifferent (Kate Ryan album)Content (media)Degree (graph theory)Order (biology)Term (mathematics)Software testingFeedbackPoint (geometry)MereologyWeb pageScaling (geometry)Multiplication signStatisticsUser profileInformation retrievalComputer animationDiagram
Term (mathematics)Integrated development environmentGamma functionAsynchronous Transfer ModeInternet forumTape driveDrop (liquid)World Wide Web ConsortiumLTI system theoryEmailGEDCOMMusical ensembleCovering spaceMultiplication signPosition operatorSoftware repositoryCorrespondence (mathematics)Ocean currentQuery languageIntegrated development environmentCASE <Informatik>Distribution (mathematics)Analytic setPlotterPiGame theoryLaptopSet (mathematics)Shared memoryMereologyProfil (magazine)Computer animation
GEDCOMMultiplication signSocial class
InformationTerm (mathematics)Regular graphExtension (kinesiology)Digital filterExtension (kinesiology)Distribution (mathematics)Focus (optics)Multiplication signMusical ensembleSocial classSpacetimeCorrespondence (mathematics)Process (computing)Web pageAverageBlogLecture/ConferenceComputer animation
CASE <Informatik>System programmingObservational studyCASE <Informatik>Physical systemComputer animationLecture/Conference
Lecture/Conference
Hill differential equationBitHypothesisMusical ensembleLecture/Conference
Musical ensembleLecture/Conference
Profil (magazine)Similarity (geometry)Dimensional analysisTrigonometric functionsComputer animation
Lecture/Conference
Transcript: English(auto-generated)
Great, so yeah, thanks for having me here. It's actually my very first EuroPitan I have to say there is a great colleague of mine who has mentioned it quite so many times So I said, okay, give it a try and try to submit your talk to the EuroPitan and now I'm here in lovely Dublin
So thanks for having me I guess in the recent days we have already seen a couple of things around Spotify around GDPR Also about the downsides of let's say data science So for me as a data scientist sometimes GDPR feels like a burden
But also of course, it's in the interest of consumers or at least that it's how it's intended to be So a couple of or quite a while ago, it was I guess in December. It was a winter day I just said myself okay, let's give it a shot and pull your GDPR data that Spotify has collected about you so far and
Just check it out and try to make use of it and this is how that whole thing developed So maybe a couple of words about myself. So as you have already heard, my name is Marcel So I'm a senior data scientist. I work for InnoVex. So InnoVex is some IT project house in Germany So I'm basically also in Cologne and what we do is basically
projects in data science and application development IT operations So and I also just decided to start my own podcast So this was actually back in September last year where I said, okay. I'm a real big fan of recommender systems I like the technology. I also like its implications and I like to talk to people in exchange with them So this is why I raise that podcast where I basically talk to industry experts and and experts from academia
And of course, I do build recommender systems myself. So for different crack lines in industry, I do cross domain recommender systems So I would like to know based on for example your listening behavior What may be music or not music but video material audiobooks you might be interested in and I have also done
quite some some few works in e-commerce and Yeah, that's basically it. So give the Rexpert show definitely a try But actually you are expecting something from me and not I am expecting from you to listen or to subscribe to my podcast So now I should need to deliver a bit. So
Recommender system on a high level by Eugene Yan that I really really love because it's so comprehensive and shows what you can really do in a system, but also how things flow through it and Maybe back to GDPR So I have to admit I'm a big fan of Spotify and I guess I will be running into the risk of doing
Much of Spotify advertising here So bear with me on that side. I guess I have been using Spotify for already Ten years now and There's a problem because I have that lights on playlist like many of you like have so maybe just to ask at that point
Who is using Spotify actually? Okay, so there might be a couple of people who could make use of it I at least hope if not, there might be many complaints during the weekend But at least that's also good because that shows that people have tried to use my software Another question where I would expect a couple of fewer heads who has actually
Requested his or her GDPR data recently from some platform or maybe not also recently Okay I see at least one to a couple of hands nice and Maybe now it comes a weird question and then I will finish off the questioning part who is a semi-professional or professional salsa dancer
At least who is into salsa Cubana a bit Okay, I will come back to you by the end Okay, okay, okay, but but maybe this is going to entertain you yeah Thanks
So and what basically bugs me is, you know, I guess back then when I did that project in December I had maybe 1,800 songs as a large stake on my light songs playlist. So it's every time like you Listen to your discover weekly and you enjoy a song then you Just push on that heart button and it goes on top of your light songs playlist
And then from time to time I go into the playlist and I listen to the most recent songs Which are maybe let's say is a 10 or 50 most recent. So this is at least very nicely describing my common behavior So I listen a lot to the discover weekly playlist But I also listen a lot to the songs that I've liked in the past which is kind of obvious but the problem is there are so many songs and I'm just using so few of them and
I guess maybe Spotify I hope so has also recognized the problem to some certain part because sometimes from time to time I experience that somehow the shuffling function activates in my Spotify When I'm listening to Spotify from my listening for my light songs playlist and I wonder about okay
Why do they do that? Maybe they have recognized that problem about people that are not Experiencing music that is further down their light songs playlist deck Maybe something like that and then try to re-engage people with what they have liked in the further distant past At InnoVax, we also say of course, we want to use technology that inspires our clients
But we also want to use technologies that inspires ourselves and this was where I started and since I also have some kind of economics background Economists like these graphs which go into two different directions and maybe just have these four quadrants in this we have just said one quadrant But we could also check out the other directions
and what I would what I basically did there is I asked myself, I mean there are Automated personalized playlists on Spotify already one of them I already mentioned with which is the Discover Weekly playlist, but there are further so there is also that on repeat which says that it exploits your listening behavior of the past 30 days and
basically compiles on a daily on a daily basis a list that kind of is a collection of these 30 songs and Then repeat rewind goes a bit further So it just says it goes beyond that one month But it seems like it doesn't go so far and then of course It's a time of the year by the end of the year where everybody on all the social media is posting
Their top songs of year X like for example last time 2021 So what you have listened most what are your favorite artists and so on and so forth But for me there was as I said something missing so something for rediscovery that exploits even Data that goes far beyond that point. So and this is when I said, okay
what about a personalized playlist for long-term music rediscovery and I felt that was somehow missing and Then I just came up and said okay, maybe GDPR could be of benefit there I even haven't seen my data at that point But this was some kind of a parallel process sometimes you first come up with an idea and then you try to search for the
Data, sometimes you first have the data and try to come up with an idea But at least I had the problem framed. So let's now solve it So what I basically did is I requested my GDPR data from Spotify and At least there were of course a couple of files provided in a nicely Brightened nice traces and there were two interesting files because there was one file. This is shown at the top which was basically
Collecting all my light songs that I have collected so far and on the other hand side There was also my streaming history of the past 12 months So I knew which song I have listened to at which time for how long from which Artist with which you are I and so on
so what we are going to do is we use these two Jason's and it's not mainly only two Jason's because it depends on how many streams you have performed so far and We use Python and we use Python to basically induce a user music taste profile So I basically create a profile about my own taste based on my streaming behavior of the past year
And there were I guess 15 K thongs so quite some songs that I have listened to which could give me some evidence about my music taste and then what I do is I Use that music taste to search in the space of songs that I haven't listened to For more than 12 months ago, so I ignore everything that I have listened to in the past 12 months
but what is still in my light songs playlist and I use basically my Music taste profile as a filter within the space to retrieve what is closest to my annual or current streaming behavior but I which I haven't listened to in the past 12 months to kind of let me rediscover the past of myself for example, and
I do this of course with fetching some rich additional data from the Spotify web API and in the end What we do is we create a playlist which is basically just a simple Pandas dataframe and then we upload it to create our own playlist on Spotify So and then we basically solved it and also have a playlist for long-term
Rediscovery of music and I definitely agree There is still some a lot of blank space there which I might address with one of my ideas by the end Okay, so maybe just a short discovery of the GDPR. So there's an article 15 of GDPR So let's do some law and the GDPR article 15
What does it says in the end is the information that you are going to request? Shall be provided in a commonly used electronic form sounds like Jason as I already mentioned it was Jason But of course and I saw these three four five hands here in the audience that said, okay I have requested my data in the past
You can also do that with other platforms and maybe there is stuff enough for future project. So I did it with Twitter. I Did it with LinkedIn. I also did it with Instagram I mean there is no big magic there But I just want to show you Most of the times you can get your data in two to three steps and then it will be provided
I guess as part of her daily batch job Which generates the data and provides it and then you can basically download it a couple of days later So, okay, but I'm supposed to talk about Spotify not about Twitter LinkedIn or any other platform So how did the process look like in the example of Spotify? So for Spotify, they are at least two different options
So you can request your they call it standard data or your extended so-called full history data What's the difference there is as I already said the standard data only contains your streaming history of the past 12 months though It's a bit tinier and the extended is really the full history So when requesting my full history, I really got my streaming history that covered since these
Since I joined Spotify in 2013 2012 as a user it was about 220,000 streams that I completed so far So the first part the standard I guess in my case took a couple of days to be provided The second one is a bit more in the of an extensive process
Extensive and compression because you need to write an email and then you get a confirmation and then after in my case It was two weeks I was provided the file for download and there I had all my data that I could use but this case will be Focused on your standard data so that if you like to use it, you can easily get started there
So, how does it look like as I said, you get some nicely recent. They are not too comprehensive in terms of the breadth of information So what you basically have there and what we are mainly focusing on here are these streaming histories Jason So they are batched by 10,000 so therefore we see two because I had I guess 15 or 16 thousand songs there and
You have your library and this your library that we see here already or not already it directly relates basically to that playlist So it basically resembles is like songs playlist where I say I have difficulties to re-engage in content That is a build order and you directly have it here What is a bit unfortunate about this is that you don't also have you our eyes provided in that streaming history
Though you have it in the extended history. So there you have a bit more breadth of information So what I did here basically was some matching by joining artist name and track name and then finally match it with this one Where I could also join these two things together and it worked but this is always a bit Yeah, not so nice. So it would be greater to directly join that wire to your eyes, but this is very specific
So and then as a data scientist I like to look into the data and just check it out what is in there and basically if this was already where the Ideas somehow evolved of how I could also use it to create my own playlist recommender So basically as I said a year I had a couple of 15,000 streams interestingly though
What was that along these 15,000 songs there were only four thousand five hundred unique songs So which means that on average I'm listening to the same song for three times in a year I don't know what this says about myself, but it's up to you So and what we also are going to do is we discount all the songs all the streams that we just have
Listen to for less than 30 seconds because this is not really a strong signal. And of course, I want to exclude Weak signals and building my user profile, of course, maybe you can also use that data to create some kind of The inverse taste and you said somehow so something up for person work. Definitely what was interesting though
So along these one thousand eight hundred songs, there were sixty percent that I haven't listened to in the past twelve months So basically these one thousand one hundred two hundred songs were actually Constituting the corpus from what I wanted to retrieve my songs using my taste profile
So there are also some some some nice histograms you can build from it, but I will skip that So let's come to the core part I said now we have the data we use Python Standard Jupyter Notebooks to process the data to get some insights about what has going on there and Now comes the more interesting part we was because we want to enrich the data as I said
We want to build a music taste profile. What I can do so far is that I can of course say what is my Most popular artists or what are the most popular artists or something like that, but there is not that much more I could also for example say when are my core using times and for example to say in the morning I'm rather listening to these artists and in the evening. I'm largely listening to the other
Artists, so maybe context the way I recommend our systems might ring the bell there if you have heard about this So I wanted to enrich the data and there is a nice Spotify web API that I used for that purpose first of course you need to register as a developer But it's also not such a big effort
And then you create an app there and this app you are later on going to use in order to upload your playlist that You created on your machine and to make it available in your own Spotify account or also to provide the service to others because I guess for one App you can register up to I guess it says 25 people that are using this app so for a small group of people I
Haven't found so far anyone who is interested in it But maybe I will do soon so there comes the interesting part because now we know artists We know the song names, but this is not leading to much more So what I basically did I used that data and basically queried additional audio features for each of the tracks
From my liked songs playlist and also for what I have been listening to in the past year So and this was kind of the key point and this API is quite nice because it shows you some More depth about certain songs so to give you an example so there are various I guess you can't read it here
But you get for example the tempo of a song you get it in beats per minute to just get an Understanding of how fast or how slow a song is you get its Danceability you get its acoustic ness or speechiness all this stuff, so it's not so many, but it's at least interesting features So it's 10 to 15 features that we used there, and I was already able to say okay
So given my behavior in the past 12 months and given the features of what is on my light songs playlist How did it change somehow and then I could already understand okay? I've been turning a bit to less acoustic music, but to more danceable music So maybe I've been a bit more happier in that year you could infer or something like that. I'm not sure
And of course as always we need to transform somehow the data because it's on different scales So what I basically did is for each of the songs that I have listened to in the last year I basically fetched the features and I also Counted accumulated to how often I listen to it and of course now
I don't want to have a song that I listen to and this was the case 150 times for example to have such a large impact And this is why I sometimes dampen the data a bit and their lock transform or other Transformations can help you a bit because in the end my user profile is nothing else then like a weighted average
and weighted by the number of normalized counts of the features of the songs So I'm basically trying to represent myself in the space of the item features meaning that I now get a dance ability distribution for myself or
Acousticness distribution over myself and this one I could then use as a search query in that space of Not or under explored items. So and by under export I mean those that I want to retrieve from so those that are older than these 12 months So yeah, and this basically boils down to the thing I am what I listen to
So in another context, so as I mentioned, I've also worked on on e-commerce recommender system So there's a blog post that I wrote about deep learning for vehicle recommendations for a larger platform in Germany And what you see here is that we also can apply this in different settings so what you see here is we have a user that user interacts with cars, for example by contacting a dealer or
Clicking or Viewing or printing and of course, you cannot collect all these events and they kind of resemble different Degrees of preference for the content. Of course, if I contact the dealer maybe in order to to arrange for a test drive test
Right, then this might be a stronger feedback than just clicking a vehicle page And what I can then do is basically to take all these features that are connected to the items So those things that I want to recommend to the user and basically Create statistics over those interactions that are also somehow weighted in order to come up with a probability
distribution for the user such that I'm able to represent the user in the space of the items so that for example I have a mean price for the user that I could use to say Okay, that user might maybe not be interested in cars that are pricier than 20 or 30 K Yeah, and Then what data scientists especially if they work in
Recommenders love is the cosine similarity because you might have asking you so far Okay but now are how are you actually comparing these two things with each other and there what we Normally do is we have those embeddings in my case We don't even have an embedding because we don't really trained anything there, but this is not too bad
But we can still apply the cosine similarity there some underlying assumptions that I'm making by doing This is that all these features are of equal importance Even this might be something we could question as a future and that might also be able to learn from your own data Because you might rather be interested in songs that you are listening to which are closer to your own
Danceability or your own temple and you disregard those that are far off your mean Let's say instrumental less or something like that. So in this way, you could also say, okay I will learn a music taste profile for a user and also arrange the
the the retrieval process in my item space by Paying more attention to those features that matter to the user So and how does it finally look like so we basically created a user taste profile I guess we have a 15 dimensional space. So it's not too large I mean if you are dealing with embeddings and we are somewhere rather than the hundreds of size
So this is a very small size here So we basically have that user Representations at multi-dimensional space now and we have all that items there that we could also represent in the same space And then what we typically do is we compute the cosine similarity for all of them Don't do this for production systems where you have millions or even more items
Because then you are better off with using approximate nearest neighbor search What we are doing here is really exact nearest neighbor search because we can afford it if there are just 1,000 or 2,000 items where each has a dimensionality of 15 So and now comes the most boring chart and the most self-evident
of course The red ones are the ones that look good and you see If I now sort all these songs that I haven't discovered from my liked songs playlist then you see it just goes off but still those that are on the list, but the Let's say worst ones ever quite high cosine similarity
So in absolute terms, maybe not in relative terms of zero point six or something like that So make sense so far and now it's up to you. How many do you want to retrieve? How many top K items do you want to take from from that from that candidates in my case? I said, okay I just want to take 20 and Then you basically had your songs you had their uris
So now comes maybe the easy or light part and there I made use of spotify So spotify just makes it for some certain things a bit easier to deal with the Spotify web API especially when it comes to the part of Doing authentication because sometimes I feel very lazy about this stuff. Maybe I shouldn't
At least I used spotify spotify then in the end to just simply Create a playlist in my account and upload a corresponding image that I kind of Borrowed a bit from the style of the previous spotify images and then used my own individual playlist
So and this will bring us maybe just to share a bit of what the result was in the end in my case So therefore what I will do is I will quickly switch to This notebook here. So what we can see here, you will all find this material in the corresponding
GitHub repo, so there's a repo that's called liked to play and in like to play There is we had just that session before about good and well documentation I'm not sure whether I'm doing that good here, but at least I show you how to set up set up your environment how to Activate it and how to install the package and then make use of it yourself
but don't forget to further query your data your GDPR data and request it from Spotify because of course you will need it because Data science and this might not be even be regarded as data science because it's rather nice Analytical case is senseless without data most of the time
So what we now see you will also find these notebooks there if So I will skip the part of creating the playlist uploading the playlist. So let's look into my extended history So as I said, I requested both data sets So the standard set and the extended set so and then I basically looked into my extended history that really covers from
2022 back to 2013 to just check out Okay, so how are we actually doing and how are these 20 songs that I now retrieved? Compared to my listening behavior. So how old are these songs? How far have they been in the past? When did I consume them the last time and what you see here?
So these are basically the URIs of these 20 songs is I mean the top song I really consumed a lot within my overall history and the least likely song at this position was only consumed four times Nevertheless, it was on the light songs playlist and it was among the 20 songs it was closest to my current music taste profile and
I could also check when I listen to them the last time but this was basically my distribution So also another not too fancy plot I will definitely check out that pie with you that was presented yesterday, but what we basically see here it works So it's not only music that was really tightly before that streaming history. So from 2020 it was music that kind of covers
All the time that I've been using Spotify, especially from the years 2016 to 2018 So really some older songs I should re-engage with So and this actually brings me to the end of my talk, but now you might also question
So give us something more concrete show us what you have found there and now you come into the game Because I want to at least share with you how it now looks like on the platform because if we just Go on my Spotify rediscover playlist Then you will found that playlist and the very first one was actually a nice one because I did some salsa cubana
Classes quite a while ago and there was a song that was really yeah Every time kind of in every class this one was played and it was Teva Adolea from Melo Ruiz Welcome to the rediscover past
Oh Yeah, I was shooting for that to get already some applause before the end of my talk thanks for that
Maybe I should not only re-engage with the music But I should also re-engage with taking further classes because I was not sure as I was doing my best job here on stage But at least I tried yeah, so I'm not afraid to make a fool of myself Okay, so we have that rediscover past, but now you might mention come on. This was very easy
Yeah, you took some weighted average. You took that weighted average to discover Something that you have already seen so far, but I mean we could go further so we can think about extensions here I mean we could also there is another endpoint that delivers the recommendations that Spotify also has there I mean we could now use these songs that we came up with as seeds for the recommender API and this recommender API
You can feed with songs so basically was up to five I guess your eyes for for tracks on Spotify, but also with artists or With with genres, so why not kind of inferring your genre distribution your top genres
and then take those five from those 20 tracks as seats and Look what the recommender API might return you there and this then might give you some uplift here and move that Only rediscovery focus playlist more into the discovery space at least this is what I'm going to try in the future and
Yeah, maybe also thinking about how you can update it more frequently without asking all the time for your Provision of data by Spotify Yeah, as I said, you will find all the material in the github page There's also a corresponding blog post your readers cover past proposing a new personalized playlist for Spotify
And of course if you have questions meet me at the conference, I mean, it's the last day, but it's not too late I'm you know vex. We also have nice research and case studies. So we also do research that we Show at the recommender systems conference. And of course, please please please listen to my podcast. That's it. Thank you
Thanks Marcel, we have a couple of minutes for questions if anyone has some please come to the front I Would have one while we wait were you happy with the new playlist was there some in there you're like
I Mean the way that I that I composed the playlist. Let's let be honest. It's relatively naive Yeah, it's but it's a first shot. So therefore these songs they were not of some certain notion I mean, they're of totally different genres I mean, there's salsa Cubana music next to some really more melancholic music and then there is pop and there's rock
So this it spans kind of from you to over killers to Milo Ruiz So and this might be a bit irritating So in that sense, I'm not really satisfied but at least I have some hypothesis how to deal with it Hello
I've a similar question Regarding all the different Features of the music so I have a very diverse music taste and Some of the genres involve no vocals at all others a lot of vocals and I
Probably would hate a playlist with only music that is right in the center of those two That's this recommendation I with some account for that like what you still get the extreme outlays of your music taste
No, it doesn't account for it yet or maybe only implicitly because of course if your taste might be in the middle But due to that being too centric and too out of average This might be reflected by mismatches in the other dimensions of your profile And then since the cosine similarity kind of incorporates all those different dimensions that might account for it might
Yeah, so nothing explicit but it might work implicitly. If not, you have to put in some more rain work there Okay, I think we'll wrap up now the lightning talks start in five minutes so once again, thank you Marcel