I'm building a robot DJ.
I want new music. I mean, it can be old music, sure. But I want music that's new to me.
I used Spotify's "Go to song radio" feature a lot to try to find new music. It always seemed to loop back on itself. I'd jump to a new set, find a song I liked that seemed the least similar and do "Go to song radio" again. The hope was that it would expand out and feed me new tunes.
It didn't work. It always seemed to keep the same set of songs and wind up back at the start.
I tried YouTube Music for a while. At the start, it did better about putting new music in front of me. It tailed off after a bit. I can only guess that as it collected more data on me it refined things in a way that made it decide it had found all the music I'd like so it stopped giving me new stuff.
Enter Spotify's "AI DJ". It's pretty good. Or, it was at the start. It had a nice mix of my existing song lists plus semi-frequent introductions to new music.
The same thing happened. It started to feed back on itself. Playing some songs, then a few days later say "here's some stuff you've been listening to" and playing the same shit. Then a few days later "here's some stuff you've listened to a whole lot!" with the same tunes.
Like, no shit. It was on the playlist because _you__ played it, my software DJ friend.
Spotify's Discover Weekly is way better. In fact, it's far and away the best thing I've found for new music. But, I want the new stuff mixed in with my existing library.
It's hard for me to believe that this isn't a solved problem. Play the shit I like, and throw in some new stuff from time to time. What can be so hard about that?
I have no idea what the answer to that question is, but I've done software and data stuff long enough to know that since it's still not great it probably means it's a really hard problem to solve. I'll tell you soon, because I'm about to find out.
Spotify has a service that offers access to a lot of their data. I'm using it to build my own robot DJ. I don't have training in statistics or machine learning/AI models or any of that stuff. All I've got is some programming skills and some naive ideas based on the way I listen. Time to see what I can do with that.