Algorithmic Life, Technology

Screwing Around with Spotify’s Recommendation Engine

Like most humans, I enjoy music. And like a smaller subset of the same, I have a Spotify account. And after I made my first couple of playlists, I began to wonder about how it makes recommendations. Without peeking at any of the data from the company I had a few ideas on how it might make choices on what to recommend to you. So I decided to test some of those theories*.

What was popular in the same genre when the song(s) you added were popular?

The decade/genre playlists were the easier to make. So I did some 90’s music, specifically a very specifically named playlist. It was straightforward, and I populated it with a few simple songs.

The recommendations are pretty straightforward. So the system at the very least knew what to do with this input. But its all very… expected. It learned nothing other than someone who wants 90’s music, can find 90’s music. And we have no reason to think that this would be different for other decades.

From there it was time for part two of the test, can the system assess the genre properly. In order to make things a little bit harder for the system, I made a playlist of acapella songs. So songs that should have more than one version with the same name. The playlist was easy enough to make.

And the recommendations are, true to form, an exact match to what is already in the playlist. No surprises at all.

Of course, this is all relatively simple data to assess. The kind of stuff that any database can tag and spit out. The system would be useless if it could not do this. So lets move onto a test of some things that are less obvious.

What do other users who like this song also put in their playlist?

Here, I went with a Christmas playlist. Specifically one with Nerdy Christmas songs. I did nothing to disguise what the playlist was about in the naming (and honestly, I dont know how I really would disuse holiday related music given its distinct nature) with some easily identifiable songs.

and here is where the system starts to crack. Its does not know exactly what to do… so it seems to default to songs that are like the ones that would likely share. Nightmare Before Christmas… well lets give you more of that. Music with a video game sound? We’ll here is some Professor Layton.

We’re getting somewhere…… and its time to try a few more things.

What sound profile does the song have?

Next, it was time to test the sound profiles. I went with tempos and songs that has similar sounds. Here I got the names a little less. First it was time for the tempo test. I named it Fast and played with more upbeat music (not like EDM fast, but pop fast)

And the results were, not bad. It seems to have an idea of what I was looking for. Though the name made it easier to do that I think.

So with that serviceable result in hand, it was time to go less for a measurable trait (BPM) and more for a vibe. This led to the creation of a playlist called Hardish. Its some pop rock/punk songs with a bit more edge.

And its not bad, but it is still very much in line with exactly what was in the playlist already. No real discoveries here. So this didnt seem to have much of an impact.

So it was time to test the titles more….

What did the user put in the title to describe the playlist?

I’ll admit, this part of the testing was the most fun. I enjoyed the creative naming, but sadly this had less impact than I would have liked as well. Here things stop being cracked and take a hard turn into the area of broken.

First up was AMV Songs, a title that while not helpful, was not useless or contradictory to the data included in the playlist.

And these were the suggestions. Not exactly what I would be looking for, and it seems a lot like the system throwing pasta at the wall to see what will stick. So really about 1/3 of those would make sense on this list for me.

Next up is Cordelia. The name should be mean nothing to the system, because it is the name of my favorite NPC from my most recent D&D campaign, and while it does do a good job of representing her (and her evolution through the game) it has little to do with the songs.

And look, the system reverted to showing us other songs by artists in the playlist (and ones popular in the same genre) with nothing to go on, it made defaults the choice. There is also some wall pasta here, but its mostly made up of completely unwanted songs. Not doing so good here.

Finally, I went for a name and playlist that would be a last ditch effort at breaking the recommendations and just getting a mostly random list. And I think that I may have achieved it with this last one. Upbeat Dark is not a random playlist. They are all songs that have a Broadway or Pop style of upbeat, uptempo sugary sweetness, but deal in darker subject matter. Its cohesive, but in the way that would just mess with the system enough to throw it off.

And I would say that I hate to be right… but I don’t. I rather like it. These suggestions at 90% nonsense, with some from the same artists thrown in. It tried to match song titles on some of them, but that did not lead it to a better answer.

On the whole, I don’t mind curating my own playlists. In fact, I rather like doing it. But given that BaRT is supposed to ‘exploit and explore’ it seems to fail on both counts when actual taste comes into play. Making decisions based on past user behavior (skips on songs, which could just mean I dont want that sound right now, not never) and what is popular will only work for some people. Its a lowest common denominator approach to music that will actually keep people from meaningful discovery.

Its a musical silo, and that should be just one more example of how technology is starting to run our lives, and remove user agency, instead of enhancing it.

*Please note that while this post encompass only a few of my sample playlists, this is a couple years of idle play with the system. Its by no means scientific testing, this is just for fun.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s