Collaborative Filtering

See also: Collaboration | Moderation

A detailed description is available from this link ( (reached through Google cache).

Collaborative filtering systems can produce personal recommendations by computing the similarity between your preference and the opinions of other people. Recently a number of methods have been developed for the “collaborative filtering” or “social filtering” of information (Resnick et al. 1994; Shardanand & Maes 1995; Breeze et al. 1998). The main idea is to automate the process of “word-of-mouth” by which people recommend products or services to one another. If you need to choose between a variety of options with which you do not have any experience, you will often rely on the opinions of others who do have such experience.

The basic mechanism behind collaborative filtering systems is the following:

  • a large group of people’s preferences are registered;
  • using a similarity metric, a subgroup of people is selected whose preferences are similar to the preferences of the person who seeks advice;
  • a (possibly weighted) average of the preferences for that subgroup is calculated;
  • the resulting preference function is used to recommend options on which the advice-seeker has expressed no personal opinion as yet.

Typical similarity metrics are Pearson correlation coefficients between the users’ preference functions and (less frequently) vector distances or dot products.

Freely available datasets of ratings on items

  • Eachmovie
  • Movielens
  • Jester

(find them on )

Open source Collaborative Filtering project

  • Webjay ( – listerner created radio
  • irate (]: a collaborative filtering client/server mp3 player/downloader

Licence: GPL

  • Alkindi (

Licence: public domain

  • SWAMI (
  • Cofi ( a generic library in Java:

This is a free linux binary library, not full open source (see license

for details). It is very fast, robust, and memory efficient.

This is an open-source Java application (with a BSD-style license),

but it is only in the alpha stage. It does work, but you may find

bugs once in a while.

  •  ?? distributed collaborative filtering algorithm (code in matlab)‘mender/

  • MultiLens (

Almost open-source Java collaborative filtering library.

  • Taste (

An emerging open-source collaborative filtering engine for Java and J2EE.

TakeDown.NET -> “Collaborative-Filtering