Lately there's been quite a bit of attention being paid to
making sure that the data that describes the things that we like,
our attention data, is portable. With portable attention data, we
could go to any music store and be directed to the music that we are
most likely to want to listen to. We won't have to spend any time
rating tracks or artists, we'll just show the music store our taste
data. Of course, this taste data needs to be in some standard
format so that everyone can understand it. One effort at standardizing
our taste data is APML. APML is an
XML based language that allows users to share their own personal taste
data in much the same way that OPML allows the exchange of
reading lists between blog readers. APML is new and not
finished yet, but even in its infant state, it is garnering lots of
support.
I am particularly interested in how APML
could be used to represent an individual's music taste. One
possibility is to have the APML file for the individual list the artists
that a person likes (or vehemently dislikes). Another approach is
to have the preferences be more abstract - to list weighted affinities
toward music genres or styles. The latter approach seemed
much more interesting to me - it offers some bit of privacy (instead of
seeing Paris Hilton in my APML file, you would just see Female Pop
Singer).
As an experiment, I've created a little APML
generator web service for last.fm users. If you give the web
service your last.fm user name, the service goes to last.fm, retrieves
data about your listening habits and generates an APML representation of
your taste. For example, to retrieve the APML for my listening
tastes visit the following URL:
http://research.sun.com:8080/AttentionProfile/apml/music/lamere
This yields:
<APML version="0.6">
<Head>
<Title>music taste for lamere</Title>
<Generator>Created by TasteBroker.org in 2777 ms </Generator>
<DateCreated>2007-11-21T16:15:24</DateCreated>
</Head>
<Body defaultprofile="music">
<Profile name="music">
<ImplicitData>
<Concepts>
<Concept key="rock" value="1.0" from="tastebroker.org" updated="2007-11-21T16:15:24"/>
<Concept key="alternative" value="0.74616855" from="tastebroker.org" updated="2007-11-21T16:15:24"/>
<Concept key="indie" value="0.63257456" from="tastebroker.org" updated="2007-11-21T16:15:24"/>
<Concept key="alternative rock" value="0.38583755" from="tastebroker.org" updated="2007-11-21T16:15:24"/>
<!-- many lines omitted -->
</Concepts>
</ImplicitData>
</Profile>
</Body>
</APML>
To
generate the implicit concepts, I gather the top 50 artists for the
user, and for each of these artists I gather the top 50 tags that have
been applied to each of those artists. I adjust the weight of the
tags based on the user's affinity for the associated artist. I then take
top scores to generate the APML. Of course, all this chattering with
last.fm can make the web service quite slow. I do try to cache as
much data as I can to try to speed things up, but if you have eclectic
tastes, it can take up to a minute or so to generate your APML file.
The
resulting APML seems to be a good representation of my taste. I'm
interested in hearing from others that might be last.fm users whether
or not the generated APML file is a good map of their taste. Feel
free to try out the web service. The URL is:
http://research.sun.com:8080/AttentionProfile/apml/music/YOUR_LAST_FM_USER_NAME
The next step is to see how well we can generate recommendations based upon these APML files.