Question

I am thinking of starting a project which is based on recommandation system. I need to improve myself at this area which looks like a hot topic on the web side. Also wondering what is the algorithm lastfm, grooveshark, pandora using for their recommendation system. If you know any book, site or any resource for this kind of algorithms please inform.

Was it helpful?

Solution

Have a look at Collaborative filtering or Recommender systems.

One simple algorithm is Slope One.

OTHER TIPS

A fashionably late response: Pandora and Grooveshark are very different in the algorithm they use.

Basically there are two major approaches to recommendation systems - 1. collaborative filtering, and 2. content based. (and hybrid systems)

Most systems are based on collaborative filtering. This basically means matching lists of preferences): If I liked items A,B,C,D,E and F, and several other users liked A,B,C,D,E,F and J - the system will recommend J to me based on the fact that I share the same taste with these users (it's not that simple but that's the idea). The main features that are analyzed here are the items id and the users vote about these items.

Content based method analyze the content of the items at hand and build my profile based on the content of the items I like and not based on what other users like.

Having that said - Grooveshark is based on collaborative filtering Pandora is content based (maybe with some collaborative filtering layer on top).

The interesting thing about Pandora is that the content is analyzed by humans (musicians) and not automatically. They call it the music genome project (http://www.pandora.com/mgp.shtml), where annotators tag each song with a number of labels on a few axes such as structure, rhythm, tonality, recording technique and more (full list: http://en.wikipedia.org/wiki/List_of_Music_Genome_Project_attributes) That's what gives them the option to explain and justify the recommended song.

Programming Collective Intelligence is a nice, approachable introduction to this field.

There's a good demo video with explanation (and a link to the author's thesis) at Mapping and visualizing music collections. This approach deals with analyzing the characteristics of the music itself. Other methods, like NetFlix and Amazon, rely on recommendations from other users with similar tastes as well as basic category filtering.

Great paper by Yehuda Koren (on the team that won the Netflix prize): The BellKor Solution to the Netflix Grand Prize (google "GrandPrize2009_BPC_BellKor.pdf").

Couple websites:

Manning also has two good books on this subject. Algorithms of the Intelligent Web and Collective Intelligence in Action

These are two very different approaches. Google Scholar is your friend as far as the literature goes.

Pandoras algorithim started with just matching specific music genres to the certain song you inputed. Then it has been slowly growing by people voting if they like the song or dislike the song, enabling it to eliminate bad songs, and push good songs to the front. It also will sneek new songs that have few votes either up or down into your song playlist so that song can get some votes.

Not sure about the other sites listed.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top