I need to implement a recommendations system for site that lists songs, the idea being that the system can recommend songs that may be interesting to people viewing the current song, based on what other people voted on.
I realise this is a huge area that could get very complicated, but I was wondering if there are any standard algorithms or 3rd party libraries (PHP) that could be used to generate the recommendations? I know we may need to collect additional data depending on the system we implement, however we have already been logging the following for two years:
VOTES (users can vote on songs based on a 5 star system), data collected is:
song id, user id, session id, vote date & time, star rating 1-5
If you wanted to go all out, e.g. tracking each user’s movement on your site and looking for overlaps (as I imagine Amazon, etc. do), then yes, it might get a little hairy.
But if you want to drive this purely with your voting system, I don’t think you need anything as complicated as a library, or even a line of PHP. You could probably build a decent heuristic right into your database query. Just off the top of my head: