Big, New API Feature: Taste Profile Similarity

July 12, 2012

At The Echo Nest, we represent music taste with something called a Taste Profile. This Taste Profile contains every music-related bit of information that we know about an individual — every song play, skip, rating, ban, thumbs up (or down) from each listener. Taste Profiles help us understand which music a listener likes or doesn’t like with precision, so we can make personalized playlists more relevant across a variety of services.

This week, we are launching a brand new Taste Profile feature: Taste Profile Similarity. This lets services group like-minded users together by finding the most similar Taste Profiles to any single seed Taste Profile for many interesting reasons:

  • User-to-user recommendations: Find other listeners with similar listening tastes to recommend as my friends/neighbors.
  • User-to-radio-station recommendations: Find a radio station that matches my listening taste.
  • User-to-playlist recommendations: Suggest playlists to me based upon my listening habits.
  • User-to-blog recommendations: Find MP3 blogs that match my listening taste.
  • User-to-room recommendations: Find the best virtual listening room for me, based upon my music taste.

To create a radio station recommender, a developer would create a Taste Profile for each radio station, then populate each of these ‘Station’ profiles with the play counts for every song played there over the course of a week, month, or any timespan. To find the station that represents the best match for a given listener, the developer would simply make a Taste Profile Similarity call with that listener’s Taste Profile as a seed. Our system will return the closest-matching radio stations for that listener.

Filtering similarity results
Any rich music ecosystem contains several features that can be powered by Taste Profiles: listeners, playlists, curated stations, record labels, music blogs, nightclubs, concert venues, musical archetypes, and more. Anything with a musical point of view can be represented by a Taste Profile. Meanwhile, Taste Profile Similarity answers questions like,  ”Which listeners would be most interested in my Heavy Metal blog?”  or “Which radio stations would be best for advertising my dance club?” or  ”Which playlist should I play at my party?”

Of course, services with many Taste Profiles need some way to filter them. If you are building a radio station recommender, for example, you would want your Taste Profile Similarity results only to include radio station profiles, but not those of other listeners.

To that end, we’ve added the ability for developers to add to a Taste Profile with a simple key/value store, and use this information to filter results in the future. For instance, a developer might add a ‘type’ key to each Taste Profile, to indicate whether the Taste Profile represents a listener, playlist, or radio station.

To build a radio station recommender, a developer could then restrict the results of the Taste Profile Similarity call to only Taste Profiles with the ‘type’ of ‘radio station’. Likewise, one could build a musical dating service by restricting the results to listener Taste Profiles with the desired gender and a ‘relationship-status’ of ‘single.’ 

What’s your stereotype?
To demonstrate this new Taste Profile Similarity service, we’ve built a fun little app called What’s your stereotype? This app can build a Taste Profile based upon your favorite artists, and then use this Taste Profile to match you up to an Internet meme.

Find out more
You can learn more about the new Taste Profile Similarity feature and about the new Taste Profile key/value store by reading our Taste Profile API docs.