4 algorithms used in Drupal module recommendation
At the heart of the pivots Drupal module recommendation system are the secret recommender algorithms. Currently we are playing with 4 algorithms.
- Co-references: The more frequently module A and module B are mentioned together in the same forum discussion thread, the more related they are in the recommendation list. This algorithm is in favor of the most popular modules because they tend to get more co-references regardless of relevancy.
- Relevancy: This uses the cosine-similarity technique. In short, this algorithm solves the unbalanced favors towards popular modules such as CCK.
- Recency: This is based on the Relevancy algorithm, but adds a little preference to the modules that were mentioned recently in the discussions.
- Uniqueness: This is based on the Relevancy algorithm, but add a little preference to the unpopular modules for users to discover new things.
All those 4 algorithms are implemented already, and you can take a look on scratch.drupal.org, such as http://scratch.drupal.org/project/ecommerce. Recently we receive the "project usage" data too. That helps a lot in terms of improving the quality of the algorithms. We'll try to find out which algorithm works best for the users and make it go live on drupal.org.
The code was merged into drupal.org CVS already. We are currently running some tests on scratch.drupal.org before making it live on drupal.org.
Your comments and suggests are much appreciated! Thanks.