Exploring musical preferences with tag clouds

People often ask each other what kind of music they enjoy. I find it a tough question to answer, as I'm into all kinds of music, but it's hard to describe which common denominator can easily describe my preferences. Here's one way to describe musical tastes, using a tag cloud.

New: Generate your own tag cloud!

Last.fm

For about a year, I've been using the musical social networking services of Last.fm. The service tracks all music you play and generates interesting statistics about your musical preferences. You can track my preferences and statistics on my profile page. Last.fm then recommends all sorts of interesting music, based on the common musical knowledge of its 15 million user base, and their preferences. It's like a giant clustering algorithm trying to figure out who enjoys similar music, and work from that.

Tag cloud

The following is a tag cloud, a list of keywords that Last.fm users adopt to describe my favorite artists. The tags are weighted by the play counts of the artists in my top 50 (in the week from 14 to 21 January 2007), and popularity of tags for these artists in Last.fm's database. The list was constructed using AudioScrobbler's web services, and a contraption of a script that glues it all together.

Figure 1: Tag cloud based on my top artists for the week of 14-21 January 2007

The tag cloud makes my musical preferences clear in an instant, the "electronic" keyword dominates the tag cloud. Besides a few strange entries (like "seen live"), I think the tag cloud renders a good overview of my musical preferences. Indeed, my preferences are all over the musical spectrum, with a tendency toward electronic music from the 90s. Too bad there's no "90s" tag in the cloud, as I think it's a common denominator of my preferences.

The following cloud is based on my top artists of the following week. There's a few small changes in my weekly preferences, mainly visible is the shift toward more music tagged with "trance." And hey, the "90s" tag is in my cloud!

Figure 1: Tag cloud based on my top artists for the week of 21-28 January 2007

The following cloud is based on MightyJay's profile, a friend of mine on Last.fm. As you can immediately observe, his musical preference is quite different from mine. We share a couple of tags, but the overlap is small.

Figure 2: A tag cloud based on a friend's profile

Lastly, here's the tag cloud of another friend, with yet a different musical profile.

Figure 3: A tag cloud based on a friend's profile

Neighbors

Last.fm uses artists, tracks, and albums to correlate music preferences and to find neighboring users (neighbors with respect to similar taste). According to Last.fm, user SintaxError is my closest current neighbor. The following tag cloud is created from this user's profile, and again my profile as a reference.

Figure 4: A tag cloud based on my closest neighbor's profile, and a copy of my profile, as a reference.

Note the similarities and small differences. Although we are considered neighbors, the clouds show that I have a broader preference to musical styles, where SintaxError has a few tags that I miss. If this user's preference is like mine, I should look for more music tagged with breakbeat, breaks, downtempo, funk, goa, grunge and hip-hop. Personally, I think that this mix of tags would be a great source of interesting music. From a statistical point of view, I would have to analyze more neighbors' data to find good recommendations for better exploration of available music.

Difference tag clouds

The following cloud gives better insights into the differences among my cloud and my closest neighbor's, as in Figure 4. The difference cloud shows green tags if these are more expressed in my tag cloud than in SintaxError's, where red tags denotes music that he prefers more than me. The tag sizes are weighted by the absolute difference.

alternative   belgium   breakbeat   breaks   chillout   dance   downtempo   drum and bass   electro   electronica   funk   german   house   idm   metal   political   psychedelic   rap metal   seen live   techno   trance   trip-hop  

Figure 5: Difference cloud tag based on my (green) and SintaxError's (red) musical tag clouds

Besides the hints (breaks, etc tags) I received from comparing our tag clouds before, I seem to have missed the biggest difference among our profiles. My neighbor's tag cloud has a bigger "electronica" tag than mine, and this shows in the difference tag cloud. I am, however, assuming that both "electronic" and "electronica" tags are used interspersed, and since "electronic" is the main tag in my tag cloud, I know that's indeed a tag that would fit in with my musical preferences. In comparison with SintaxError, I prefer rap metal (think Senser), psychedelic trance/techno and music with a political background. Note that these differences are however small with respect to the abundant similarities among our profiles.

The following difference cloud is between my cloud and MightyJay's, as in Figure 2. The differences in this tag cloud are quite different from the previous cloud (note that the colors have not been switched, although it appears so at first sight). The essential difference is that I listen to electronic music, and MightyJay listens to metal/rock (this result is not very surprising).

death metal   electronic   electronica   grunge   industrial metal   melodic death metal   metal   progressive metal   progressive rock   psytrance   rap metal   rock   seen live   techno   trance  

Figure 6: Difference between the tag clouds of my profile (green) and that of MightyJay (red).

Artists cloud, based on a tag list

Next, I have turned the process upside-down and generated a cloud of artists that share common tags. Based on the list of tags (breakbeat, breaks, downtempo, funk, goa, grunge, hip-hop and, electronica) that are not in my profile, but in SintaxError's tag cloud, I have generated a cloud of artists that share these tags, and are not in my list of all-time favorites. I look forward to tune in to some of these! I even listen to some of these, sporadically.

Figure 7: Artists that share the tags breakbeat, breaks, downtempo, funk, goa, grunge, hip-hop and electronica, and that are not in my top 50 of most listened to artists.

Script

Since the scripts that analyze the data to generate these clouds is currently a big mess, I'll have to redo the code to make it available online, so you can generate your own musical tag clouds. So there's more to come, if I find the time!


comments powered by Disqus