Tuesday Dec 18, 2007

Social Tags (such as the tags applied at sites such as Last.fm or Qloud) are particularly useful for building recommender systems that can create transparent/explainable recommendations.  Instead of  saying "Other people who like the Beatles also like the Rolling Stones" like you would with a traditional collaborative filtering recommender, with a tag-based recommender you can offer more transparent explanations such as: "we are recommending Deerhoof because you seem to like quirky noise pop with female vocalists and mad drumming."  This transparency in recommendations can make tag-based recommendations superior to traditional collaborative filtering recommenders. However, the social tags suffer from a sparsity problem. Not all music is equally tagged.  Popular artists such as the Beatles and U2 have acquired lots of tags, less popular artists have few tags while new, unknown artists have no tags at all.  Using social tags for recommendations can give excellent, transparent recommendations for established artists, but they cannot offer recommendations for these untagged new or unknown artists.   

To address this tag-sparsity problem we are building a system that will be able to automatically apply social tags to new music using only the audio.   We use signal processing and machine learning to predict what social tags people would apply to the music. This helps us avoids the 'cold-start' problem typical in recommender systems that rely on the wisdom of the crowds.  More details about this system  are in this paper.

This work has been a collaboration between Sun Labs and Professor Doug Eck from the University of Montreal and his extremely smart student Thierry Bertin-Maihieux.  The combination of Doug and Thierry's hardcore signal processing and machine learning skills with my blogging skills makes this an excellent, fruitful collaboration.

Doug has created a few examples of what it sounds like to navigate the autotagging space. Thierry applied a dimensionality reduction technique called Isomap to create a nearest neighbor graph of artists that we use to find the shortest path joining two artists. Doug sampled 5-second segments from songs by these artists and chained them together in an Mp3 file.  Here's one example:


 

From Beethoven to The Prodigy.  [ mp3 ].

This graph shows the autotags that have been applied to a number of artists.  Hotter colors indicate a strong weighted tag.  For instance, Beethoven is strongly tagged 'classical', 'instrumental' and 'piano' and weakly tagged 'deathmetal' and 'reggae'.  While The Prodigy is strongly tagged 'dance' with a bit of 'metal' thrown in, while being extremely adverse to 'classical' and 'piano'.   The graph shows how we can get from Beethoven with its strong 'classical' and 'piano' tags to The Prodigy with its strong 'Dance' and weak 'classical' tags in a dozen steps, while minimizing iPod whiplash. It's a neat audio and visual representation of our work.

 Doug has a some other examples of these tag space navigations, including Coltrane to System of a Down, and Mozart to Nirvana.  It's cool stuff worth checking out.
 

Sunday Dec 16, 2007

I have a a new Apple laptop.  Since I'm a relatively new Mac user, I thought I'd spend a little bit of time learning a bit about how to program it.  Since I spend a lot of time in iTunes, I thought I'd learn a bit about how to use AppleScript to control iTunes.  So, on this very snowy New England Sunday morning, I wrote an AppleScript app that watches iTunes and posts to the growl notification system when a new track starts playing.  Here's a screen shot of the app in action:

I'm sure this is not the first time anyone has done this, but it was fun learning how to do something like this.  

If your interested in trying it out, you can grab the application from here. Just toss it into your iTunes script folder (typically in user/Library/iTunes/Scripts.  You can start it from the iTunes scripts menu. 

 

Thursday Dec 13, 2007

A little music to listen to while pondering your recent visit to Aperture Science:

Victims of Science (mp3)

Wednesday Dec 12, 2007

MusicMesh is a web-based music exploration tool.  With MusicMesh you can browse through a dynamically generated graphs of albums that are similar to your seed album.  You can listen to tracks and watch videos as you browse.  MusicMesh is quite an effective mashup of last.fm similarity data, Amazon data, Wikipedia bios and YouTube.


MusicMesh tries to really hard to find the right data from the various sources, but sometimes it messes up. Prog-rockers Emerson, Lake and Palmer are somehow connected to R&B singer Jully Black.  The artist bio for the band 'yes' is the dictionary definition for the word of affirmation, lots of the videos are amateur covers, or tribute slide shows, a search for 'Björk' yields B.J. Thomas (eek!)

Still, despite its flaws, MusicMesh is fun to play with and an interesting way to explore for new music.

Monday Dec 10, 2007

There's only one place to be tonight, and if you can't be there ... you'll have to be satisfied with reading about it.  NME is liveblogging the zeppelin concert.

Sunday Dec 09, 2007

Most songs just get better when you add a cowbell - so, music information retrieval researchers that are trying to build the perfect 'hit predictor' need to be able to detect whether a song has a cowbell or not  - a good training set for building the cowbell detector can be found at The Cowbell Project.  There are hundreds of cowbell songs. Some examples:

Procol Harum Whiskey Train
Puddle of Mudd She Hates Me
Queen We Will Rock You
Queen Keep Yourself Alive
Queen Bohemian Rhapsody
Queen Crazy Little Thing Called Love
Queensryche Silent Lucidity
Quincy Jones Sanford and Son Theme
R.E.M. Ignoreland
Radio Four Dance To The Underground
Radiohead Creep
Radiohead Electioneering
Rage Against The Machine Killing In The Name
Rage Against the Machine Freedom
Rainbow Still I'm Sad
Ramones Suzy is a Headbanger

A good paper on detecting and annotating cow bell (and other percussive intstruments) is  COLLECTING GROUND TRUTH ANNOTATIONS FOR DRUM  DETECTION IN POLYPHONIC MUSIC

Friday Dec 07, 2007

Google has released a new charting API.  The API generates all sorts of dynamic charts.  The charts are completely parameterized in the URL.   My happiness pie chart shown above was generated with:

http://chart.apis.google.com/chart?cht=p3&chd=t:90,10&chs=500x200
                &chl=With+Google+Charts|Without+Google+Charts
                &chtt=Paul's+Happiness

There are lots of chart types: lines, bars, pies, Venn diagrams, scatter plots.  The URL syntax is very straightforward.  It is like being able to embed gnuplot in your blog.   I'm surprised at the power of this little language.  Some more examples:


 

Documentation and many more examples are at the Google Chart API site 

Via Information Aesthetics / blogoscoped.com

Thursday Dec 06, 2007

I've been experimenting with creating APML (the Attention Profile Markup Language) based upon available taste data.  Last week I created a last.fm APML web service as well as  a del.icio.us web service.  This week, I've created a web service that will serve up an APML taste profile based upon your Pandora favorite artists.  For example, the URL:

http://research.sun.com:8080/AttentionProfile/apml/pandora/paul.lamere 

will serve up the APML based upon my Pandora listening, while the URL:

http://research.sun.com:8080/AttentionProfile/apml/pandora/tconrad

will serve up Tom Conrad's (the CTO of Pandora) APML data. 

This web service is fairly easy to create.  Pandora creates an RSS feed for each user that shows the user's favorite artists.  The APML web service grabs that RSS feed and adds each of the artists to the ExplicitConcepts section of the APML file.   The next step is a bit trickier.  We want to be able to turn this set of artists into a more abstract representation of a person's musical taste - to include in the ImplicitConcepts section.  To do this, I rely on the social tags applied by last.fm users.  For each artist in a user's set of favorite Pandora artists, the APML service collects the top 50  social tags that have been applied to that artist  from last.fm.  The tags are aggregated and weighted based on the user's affinity for the associated artist. I then take top scoring tags to generate the ImplicitConcept section of the APML.

Meager information on these experimental web services can be found on the taste broker page.


 

Wednesday Dec 05, 2007

One of the prime areas of research for the Search Inside the Music project here in the labs has been to try to predict things about music based upon the audio signal alone.  We use signal processing and machine learning to classify or label tracks.  This can be useful for building a recommender that has to work with a large amount of new music (a particular problem for social recommenders). 

One particularly fruitful area of research has been in predicting what social tags will be applied to a particular track.  By mining social music sites like last.fm we can gather a large number of social tags that we can then use to train a system to predict the tags for new music.  These predicted tags (we call them autotags) can then be used along with traditionally applied social tags to incorporate new music into a social recommender, avoiding the 'cold-start' problem common in social recommenders.

This work is being presented at NIPS 2007 in the paper: Automatic Generation of Social Tags for Music Recommendation (Eck, Lamere, Bertin-Mahieux, Green).  Here's the abstract:

Social tags are user-generated keywords associated with some resource on the Web. In the case of music, social tags have become an important component of  “Web2.0” recommender systems, allowing users to generate playlists based on use-dependent terms such as chill or jogging that have been applied to particular songs. In this paper, we propose a method for predicting these social tags directly from MP3 files. Using a set of boosted classifiers, we map audio features onto social tags collected from the Web. The resulting automatic tags (or autotags) furnish information about music that is otherwise untagged or poorly tagged, allowing for insertion of previously unheard music into a social recommender. This avoids the ”cold-start problem” common in such systems. Autotags can also be used to smooth the tag space from which similarities and recommendations are  made by providing a set of comparable baseline tags for all tracks in a recommender system. 


Tuesday Dec 04, 2007

Nokia and Universal are about to find out.  Nokia is launching a 'comes with music' program - buy a Nokia device, and download all of the music you want  - to keep forever.  I'm not exactly sure how much free music I can download in a year, but I think it is quite a bit.  This looks like one of those 'too good to be true deals'.  I'll believe it when I see it.

Monday Dec 03, 2007

Although we are still a couple months away from an offical SDK for the Apple iPhone and iTouch, there is already an active 3rd party application development community creating and distributing native apps for the iPhone.  One of the first apps that I've seen that brings Music 2.0 functionality to the iPhone is the Mobile Scrobbler.  The Mobile Scrobbler is a last.fm audioscrobbler for the iPhone.  When you listen to music on your iPhone or iPod touch, the mobile scrobbler sends the artist and track info to last.fm.  Now, this is clearly for the very impatient, since you can use the official last.fm audioscrobbler to scrobble your tunes the next time you put your iPhone in the dock - the mobile scrobbler merely gets your tracks scrobbled a little faster. Still, this is a good sign about what capabilities we can expect 3rd party apps to have ... clearly 3rd party apps can discover info about the currently playing song, like the Mobile Scrobbler, this will open the door to all sorts of interesting social music apps - Snapp Radio or SleeveNotez on the iPhone would be really fun indeed. 

Also keep your eye on Sam Steele,  as of today, he has last.fm radio streams playing on the iPhone through the Mobile Scrobber. Pretty soon we'll have the full last.fm experience in our pocket!

(via ghacks.net). 


Last week, Google quietly added recommendations to Google Reader.   Now if you go to your google reader home page, you'll find a 'Top Recommendations' section:

Clicking on the 'view all' link brings you to a full set of recommendations:

You can preview a feed to decide whether or not the recommendation is a good one before subscribing.  I like how they show how many subscribers each recommendation has - but that is just about the only feedback one gets about the recommendation.  What I would really like is a Pandora-style "Why are we recommending this?" tab that could tell me why a something is being recommended.  Text like "We are recommending this blog because you like to read posts about music recommendation on the web, and this blog focuses on iLike, Last.fm, Pandora and other music recommender sites".  

Google reader doesn't just take my blog reading behavior into account  when creating recommendations.  It also uses my Google search history - so presumably if I've been searching and clicking on pages about a particular topic - say 'support vector machines' - Google could recommend a blog on machine learning

The recommendations seemed good for the most part ... of course it is hard to evaluate the recommendations - there were no real clunkers, but no new favorites either.  Frankly, right now I am not looking to add more feeds to my collection of over 200.  What I could really use is something that goes through the feeds that I am already subscribed to and gives me the cream of the crop - and leaves the redundant or irrelevant behind.   

Sunday Dec 02, 2007

I've recently upgraded my laptop. Now I have two CPU cores so I can now listen to music streaming from sites like Last.fm or Pandora while working in Netbeans (on my previous laptop, Netbeans with its continuous compilation, syntax checking and color highlighting would make any flash music player skip and stutter horribly).  Over the last week, I've spent a lot of time listening to and enjoying Pandora -  lots of good new music, with only a few songs that I had to skip.   However, when I play music from Pandora, I  miss having this music scrobbled by last.fm - so last.fm doesn't know what I've been listening to this week, and my last.fm recommendations will ultimately suffer.   I'd like to be able to scrobble all my music - even music I listen to from Pandora.  There are a few Pandora helpers that will scrobble your Pandora listening  - one of the first is  Pandora.fm

My favorite is PandoraJam.  PandoraJam is a Pandora client. It has lots of interesting features. First - it is a standalone app - so when you accidentally close your browser (or when the browser crashes), the music doesn't stop.    It wll scrobble your music to last.fm. It eliminates the Pandora ads - and allows you to toss your Pandora tracks into iTunes for later listening.  Here's the feature list from the PandoraJam page:

  • Stream music wirelessly to a sound system (requires Airport Express)
  • Record music for iPod or iPhone playback
  • Apple Remote support
  • Tag recordings with album artwork
  • Submit songs to Last.fm (known as Audioscrobbling)
  • Native, Cocoa application.
  • Growl notifications
  • Keyboard shortcuts
  • Instant Messaging status updates (Adium, iChat, Skype)
PandoraJam is pretty cool,  but  it seems to be one of those parasites that could ultimately kill the host.  Pandora makes its money from advertising ... and PandoraJam bypasses the adds, potentially robbing Pandora of that revenue stream - and the record companies won't be too happy if people can easily add their Pandora tracks to their iPod for permanent listening. 
 

Friday Nov 30, 2007

Last week, I created a web service that will generate an APML profile based upon your last.fm listening habits (see the post here).  This week, I've added support for del.icio.us.  With this web service, you can get an APML profile based upon your tagging behavior.  For instance,  I can retrieve my Del.icio.us APML profile with:

 http://research.sun.com:8080/AttentionProfile/apml/web/plamere

This returns an APML file that looks like this:

 

<APML xmlns="http://www.apml.org/apml-0.6" version="0.6" >
<Head>
<Title>Taste for del.icio.us user plamere</Title>
<Generator>Created by TasteBroker.org </Generator>
<DateCreated>2007-11-30T05:30:34</DateCreated>
</Head>
<Body defaultprofile="web">
<Profile name="web">
<ImplicitData>
<Concepts>
<Concept key="android" value="0.16666667" from="tastebroker.org" updated="2007-11-30T05:30:34" />
<Concept key="attention" value="0.16666667" from="tastebroker.org" updated="2007-11-30T05:30:34" />
<Concept key="audio" value="0.16666667" from="tastebroker.org" updated="2007-11-30T05:30:34" />
<Concept key="bbc" value="0.16666667" from="tastebroker.org" updated="2007-11-30T05:30:34" />
<Concept key="blog" value="0.16666667" from="tastebroker.org" updated="2007-11-30T05:30:34" />
<!-- many lines omitted -->
</Concepts>
</ImplicitData>
</Profile>
</Body>
</APML>

Unfortunately, Del.icio.us doesn't provide any web services to get at this data directly so I had to scrape the HTML to extract the concepts and counts.  This makes the service quite fragile.  The next time Del.icio.us changes it's page layout, this may break.  Hopefully, we can convince sites like Del.icio.us to start making their data available directly as APML so people like me don't have to wrestle with regular expressions on a Thursday evening.  There's a bit more info about these web services on the tastebroker page.
 

 

Tuesday Nov 27, 2007

You know that music discovery is mainstream when it is the subject of a Doonesbury strip:

 

Congrats to Pandora

This blog copyright 2010 by plamere