Machine Learning Applied to Music Players

I want a music player that doesn't require me to explicitly rate songs by assigning them a number of stars or some such nonsense. I want it to keep an internal representation of ratings and to gather data implicitly to alter those ratings. A song's rating should go up when the song is played. It should go down when the song is skipped over. It should go up when I raise the volume just after it starts playing. It should relate the rating for one song to the ratings of other songs by the same artist, or in the same genre.

If iTunes had been paying attention to all of my actions so far it would know that when I add a new Foo Fighters song to my music library there's a fairly freaking good chance that I'm going to like it more than average. If I started skipping over it a lot (possibly because it's one of the crappy acoustic songs from the second CD of In Your Honour) it should have adjusted the rating to reflect that.

Software throws out too much useful information about user behaviour.

Comments:
Thu, 29th Jun 2006 (22:00)

I agree… especially when i hear people say in work on a daily basis "It should just know…"

Fri, 30th Jun 2006 (08:54)

well… it should.

Am I misguided in thinking that the fact that media players are various flavours of free hampers their development?

It seems to me that virtually every program that I use would benefit from learning behaviour, from Word to Firefox. I mean, if I accidentally mispell a URL, couldn't it figure it out?

by SJ
Fri, 30th Jun 2006 (10:16)

SJ, the problem is that creating any sort of useful learning behaviour is really hard. Programmers are used to absolutes: if the use types in address A then go to address A. Sometimes they stretch as far as heuristics: if some piece of text starts with "www." then it's probably a URL so turn it into a link. Heuristics can be handy, but they can be annoying when they get things wrong ("I'm not writing a fucking letter you stupid fucking paperclip!")

Proper learning is much harder than coming up with simple heuristics ahead of time. A program that has learned some rules is inscrutable when it starts to make mistakes. Ever see a ham email marked as spam and wonder how the hell any sort of program could have thought it was spam? In most types of learning system is just about impossible to find out why a certain decision was made (An exception is Amazon's recommendation system, which can tell you why it recommended any product to you).

Because a learning system is harder to get right and because it's generally more random-seeming when it makes mistakes, most will just end up annoying users. The only way around that is to be so useful that it makes up for annoying mistakes.

I never said it would be easy. I just said that someone other than me should do it. For free.

by Rory
Fri, 30th Jun 2006 (13:07)

You get email about ham?

by Ronan Lowe
Fri, 30th Jun 2006 (13:09)

Not often, but I do get the occasional email that was written by a human being.

by Rory
Sat, 01st Jul 2006 (01:14)

pork products aside, I'm just saying that basic learning behaviour is a good thing. Google now knows what I mean when I mangle a word; but it also doesn't deny me the opportunity to see the results for my mangled word. Firefox should do the same - it's be great if i never had to accidentaly visit a sqatter site on, for example gamefqas.com again.

Conversely, Word is forever turning my few underscores (for the Boss to sign on) into a big bold line. It does let me turn this option off, but not that easily. Still I wish it would have figured out what I want by now.

Tangentially, is there a single recorded case of Microsoft's troubleshooters actually helping anyone to solve a problem everlikeever?

Also, couldn't your comments thingy put the http:// but in for me? even internet explorer does that…

by SJ

About this post

This piece was posted on Thu, 29th Jun 2006 at 17:55. It is tagged with .

You can find other posts at the front page or, if you're feeling lucky, check out a random post.