Collaborative filtering (CF) is the method of making automatic predictions (filtering) about the interests of a user by collecting taste information from many users (collaborating). The underlying assumption of CF approach is that: Those who agreed in the past tend to agree again in the future. For example, a collaborative filtering or recommender system for music tastes could make predictions about which music a user should like given a partial list of that user's tastes (likes or dislikes). Note that these predictions are specific to the user, but use information gleaned from many users. This differs from the more simple approach of giving an average (non-specific) score for each item of interest, for example based on its number of votes.
Collaborative Filtering systems usually take two steps: 1.Looking for users who share the same rating patterns with the active user (the user who the prediction is for). 2.Use the ratings from those like-minded users found in step 1 to calculate a prediction for the active user
In the age of information explosion, such techniques can prove very useful as the number of items in only one category (such as music, movies, books, news, web pages) have become so large that a single person cannot possibly view them all in order to select relevant ones. Relying on a scoring or rating system which is averaged across all users ignores specific demands of a user, and is particularly poor in tasks where there is large variation in interest, for example in the recommendation of music. Obviously, other methods to combat information explosion exist such as web search, clustering, and more.
More recently, Collaborative filtering have been used in e-learning to promote and benefit from students' collaboration.
There are commercial sites that implement collaborative filtering systems. For example:
There are also non-commercial collaborative filtering systems:
- AmphetaRate - RSS articles
- Audioscrobbler - music
- Clinko - music & movies
- FilmAffinity - movies
- GenieLab - music
- Gnomoradio - free music
- Indy - free music
- iRATE radio - free music
- KindaKarma - authors, video games, movies and music
- Moonranker - music, movies, and books
- MovieLens - movies
- Music Recommendation System for iTunes - music
- Musicmobs - music
- Popularism - movies
- Rate Your Music - music
- StumbleUpon - websites
- Upto11 - music
There are also software libraries which allow a developer to add collaborative filtering to an application or web site:
- Taste - open-source, Java
- Cofi - open-source, Java
- RACOFI - open-source, Java
- SUGGEST - Free, written in C. (A library, not open source.)
- Rating-Based Item-to-Item - public domain, PHP
- MultiLens, an old version of the code which runs MovieLens. Open-source, Java. See also author's page.
- COFE. Open-source, Java.
- Vogoo PHP Lib - open-source, PHP
- Music - open-source, PHP/SQL