Collaborative Music Filtering.
Apr. 7th, 2004 04:31 pmSo, I've been here sitting and listening to my mp3 files on random shuffle, and hitting next every time one comes up that doesn't match my current mood and desire to listen. Thats about 1 in 3, since I have a pretty eclectic collection.
I started thinking that it would be nice if the program could figure out what mood I was in, and only bring up songs likely to match it. Then it occurred to me that the collaboritive filtering model for NWO is designed for just that kind of filtering. So, if one were to do a winamp clone, or better yet, just write a collaboritive filter for winamp, one could have it keep statistics of what songs you did and did not like to hear with each other. If you then made it capable (if allowed) of trading information with other copies of itself then it could even suggest songs you don't have (but might like to own) that suit your current mood.
This would be a good way to try out and debug a bunch of collaboritive filtering methods and ranking schemes and would let us try various secure knowledge sharing protocols. What's more, it could advertise pooq in its config dialogs.
I think the idea has potential.
And on that note, I think its time I got dressed so that
taxlady and I can go get some shopping done.
I started thinking that it would be nice if the program could figure out what mood I was in, and only bring up songs likely to match it. Then it occurred to me that the collaboritive filtering model for NWO is designed for just that kind of filtering. So, if one were to do a winamp clone, or better yet, just write a collaboritive filter for winamp, one could have it keep statistics of what songs you did and did not like to hear with each other. If you then made it capable (if allowed) of trading information with other copies of itself then it could even suggest songs you don't have (but might like to own) that suit your current mood.
This would be a good way to try out and debug a bunch of collaboritive filtering methods and ranking schemes and would let us try various secure knowledge sharing protocols. What's more, it could advertise pooq in its config dialogs.
I think the idea has potential.
And on that note, I think its time I got dressed so that
no subject
Date: 2004-04-07 08:57 pm (UTC)no subject
Date: 2004-04-08 01:19 am (UTC)The collaborative system that we designed for NWO has a number of levels to it and is meta-recursive.
Briefly put, it assumes that everyone is different and that different models will work better or worse for different people, so when it starts up it generates some number (10-20 I would guess) of models by random expansion of 5-6 algorithmic templates (It builds a few models from each template).
It then runs all of the models in parallel and scores them on past successes. At any moment it relies most on the model with the best recent score and guesses from that. The speed with which someone clicks the 'choose something else!' button is data, as is any input of the form 'yes, more by that artist' and 'nothing from that genre now'.
As time goes by, the worst performing model is culled and new ones generated as variations on the best performing ones.
For the single-user situation, that's about as good as it gets.
When allowed to talk to other instances of the program, successful models are traded, and variations of culling/promotion models are ranked against each other and they too get to evolve.
Finally, the model API is public, and anyone can write a new model and let it live in the wild. It will succeed or fail depending on how well it does.
All this seems to work on paper, (and there has been good work on using something similar to rank usenet posts) but I would love to try it for real in a live setting.