Thursday, October 21, 2010

Collaborative Filtering

"If an user A has liked the movies "Matrix " and "The Lord of the Rings" and many other users that have liked these two movies also liked "Memento", then it is likely that "Memento" will be recommended to user A."

Collaborative Filtering is a type of recommender system widely implemented, and it is known for giving more accurated predictions than other approaches.

The basic idea of the algorithms in the collaborative filtering area is to provide recommendations based on what people with similar taste have liked in the past. These people, the neighbors, are selected by comparing the user's past preferences (usually presented as ratings on items). So, by measuring the ratings similarity its possible to recommend items liked by the neighborhood. There are two major techniques to compare ratings.


User-Based

Let us consider a user as an N-dimensional vector of ratings, where each cell represents the rating of the user on a certain item. Then, in the user-based technique, the similarity between a user A and a user B is measured by the similarity between its vectors. It possible, for example, to apply the Pearson Correlation to the two vectors and find what we call the similarity coefficient between A and B (Sim AB). Once we have done this we can rank each item according to how many similar users have liked it.
  

Item-Based

In the item-based method instead of comparing the vectors of users we compare items. Suppose that all users vectors are together in a matrix. It is, then, possible to look at its columns instead of its rows. If the rows represents the users, then the columns intuitively represents the items. The basic idea of the algorithm consists in comparing the columns of this matrix and thus finding the similarity between the vectors of items. The prediction is then made by selecting items similar with the ones that the target user has preferred.
This approach was implement by Amazon, and it is described in Amazon.com recommendations: Item-to-item collaborative filtering by Greg Linden, Brent Smith, and Jeremy York.


Links

http://www.serpentine.com/blog/2006/12/12/collaborative-filtering-made-easy/
http://ict.ewi.tudelft.nl/~jun/CollaborativeFiltering.html#bibliography
http://www.daniel-lemire.com/fr/abstracts/TRD01.html

No comments:

Post a Comment