Learn something new every day
More Info... by email
Collaborative filtering is a method for processing data which relies on using data from numerous sources to develop profiles of people who are related by similar tastes and spending habits. This technique is used in a number of different settings. Some of the most famous applications of collaborative filtering can be seen on the Internet, where it is used for marketing, to predict user tastes, and to curate sites which rely on input from users to function.
In a simple example of how collaborative filtering works, a website might want to set up a recommendation system for television shows. Users of the site provide data when they log on and list the shows that they like. This data is in turn used to identify users with similar tastes. If 75% of people who like Show A like Show B, the system can infer that people who like one show probably like the other. Thus, when a user logs on and identifies as a fan of Show A looking for suggestions, the system can recommend Show B.
For collaborative filtering to work, it needs a lot of data. The bigger the population from which the data is drawn, the more useful and effective the data will be. Small amounts of data are more likely to end with results which are not meaningful, such as false connections which result in poor predictions of tastes. Such systems often suffer from a cold start problem, in which they are slow to develop because the database needs to be populated first. Early adopters may grow frustrated with the system because it makes bad recommendations since it does not have enough data.
Collaborative filtering is also used extensively on social networking sites and sites which provide tools like enterprise bookmarking, in which users share and promote links to sites they find interesting. As users add to the body of data in the system, the system can start making recommendations which are designed to appeal to each user's tastes. For example, a social bookmarking site might generate random links on the basis of links and users someone has expressed a liking for in the past.
Marketers can use collaborative filtering to deliver very precisely targeted marketing to users. This personalized marketing can be highly effective as users feel like they are being personally addressed, and they are more likely to accept recommendations as a result. The vast amounts of data provided voluntarily at websites such as social networking sites are a hot commodity among marketers, which purchase data from such sites to develop customized campaigns.
Is there any existing collaborative filtering framework that can be used for web application developers?