Social Computing software is all the rage these days. Collaborative filters are a key feature in many social applications. Collaborative filters allow systems to make recommendations based on the similarity of preferences between users. Fortunately Java has been in existence long enough for several collaborative filtering libraries to have been developed and open sourced. Here’s the list of libraries that I have found.
- Cofi – The library is used as part of the RACOFI web site which is a live Music Recommender site.
- CoFE – CoFE is short for “COllaborative Filtering Engine”. CoFE was formerly known as CFEngine. CoFE will run as a server to generate recommendations for individual items, top-N recommendations over all items, or top-N recommendations limited to one item type. Recommendations are computed using a popular, well-tested nearest-neighbor algorithm (Pearson’s algorithm). CoFE can be integrated with any system that supports Java. User data is stored in MySQL.
- Taste – Taste is a flexible, fast collaborative filtering engine for Java. Taste provides a rich set of components from which you can construct a customized recommender system from a selection of algorithms. Taste supports both memory-based and item-based recommender systems, slope one recommenders, and a couple other experimental implementations. It does not currently support model-based recommenders.
- Alkini Meme – Users express their tastes by assigning ratings to products. To model users so that they can be grouped together, Alkindi represents
them geometrically as vectors in a high-dimensional space. The coordinate axes of
this space correspond to products; the coordinates of the point representing a user
are that userxe2x80x99s ratings of those products. Alkindi partitions its existing user base into clusters using xe2x80x9cK-meansxe2x80x9d, a statistical
algorithm that maximizes the geometric tightness of the clusters. Alkindi has developed a
novel metric that smoothly integrates all available data. This helps alleviate the sparse data problem.
- RACOFI – RACOFI (Rule-Applying Collaborative Filtering) ia multidimensional rating system. It has been used where users rate contemporary music in the five dimensions of impression, lyrics, music, originality, and production. The collaborative filtering algorithms STI Pearson, STIN2, and the Per Item Average algorithms are employed together with RuleML-based rules to recommend music objects that best match user queries. The music rating system has been on-line since August 2003 at http://racofi.elg.ca.
- iRate – iRATE radio is a collaborative filtering system for music. You rate the tracks it downloads and the server uses your ratings and other people’s to guess what you’ll like.
- SWAMI – SWAMI is a framework for running collaborative filtering algorithms and evaluating the effectiveness of those algorithms. It uses the EachMovie dataset, generously provided by Compaq.
Please do let me know if a library should be included in this list. If you can’t find what you’r looking for, you also may want to view my other highly related list “Probabilistic Networks in Java“.