Planet Drupal

I have seen slow but steady adoption of the new release of Drupal Recommender API module over the past few weeks after the announcement. This post will explain my plans about future development of Recommender API in order to help the audience make informed decisions. This is also an update to an older post on 2012-2013 roadmap.

I will categorize all my development plans into three tiers.

I am pleased to announce the release of Recommender API 7.x-6.x for Drupal, whose goal is to enable content recommendations on any Drupal site in order to boost site engagement and increase revenue. The new release is relatively stable and many of its helper modules have already supported it (see the full list here).

According to my survey last year, most sites that were using or planned to use Recommender API were small- to medium-sized. Their priorities were: 1) ease-of-use, 2) security, and 3) good recommendations. The new release is the answer to the calls. A few features to emphasize here:

  1. RecAPI runs out-of-the-box if you use its PHP recommendation engine for small site. As your site grows, you can choose to use the more powerful and more complex Java recommendation engine.
  2. RecAPI fully integrates with Views and EntityAPI so you can customize easily.
  3. RecAPI now has better documentation and an example module to teach you how to write helper modules for your particular needs.

For the rest of this article, I'll show you how to set up and use the Browsing History Recommender module, which uses RecAPI to provides two types of content recommendations based on users' browsing history: "users who viewed this also viewed..." and "personalized recommendations".


recapi.pngI've been working on RecommenderAPI, a general purpose recommendation engine for Drupal, for a few years now. In the meantime, I'm doing my graduate work in recommender system, social computing, and machine learning. In this article, I'd like to discuss what to look forward to in the next major release of RecommenderAPI.

I've always wanted to build a cutting edge recommender system for Drupal as good as what Amazon offers. Google Summer of Code 2009 gave me the first chance to attack this task, and I developed the Recommender API module and helper modules that provides recommendation service based on users browsing history, fivestar ratings, product purchasing history, etc. After 2 years of application in the real world, I received many users feedback concerning performance/scalability issue of the modules, which cannot be fixed under the current PHP implementation -see why here-.

To solve the performance issue, I think the best option is to outsource the complex recommendation computation to Apache Mahout instead of using my own PHP implementation. I have submitted another GSoC application for 2011 to work on this. Hope it will get accepted so that I can get this done.

The second part of my GSoC 2011 application is to build a framework so that 3rd party programs, such as Apache Mahout, can easily exchange data with Drupal for data-intensive computing, such as computing recommendations. More details is discussed in my GSoC 2011 application. I hope this would facilitate more innovations on data-intensive computation with Drupal using 3rd party script/programs.

If you like these ideas, please support my application at

Drupal rocks, and let's make it rock more :D

Our research group at the University of Michigan has been working on the "related modules" block for for more than 2 years now. We have published 2 papers on this project so far:

1) Assessment of Conversation Co-mentions as a Resource for Software Module Recommendation. Will be presented at ACM Recommender System Conference'09

2) Conversation Pivots and Double Pivots. Presented at ACM Computer Human Interaction Conference'08

My Google Summer of Code 2009 proposal was accepted. The basic idea is to develop at least three modules based on Recommender API. For example, one module is to recommend Flash videos based on users' viewing history like in YouTube. A mockup screenshot is like this:

For more details and discussion, please go to

There's a big demand from the Drupal community to add fivestar-like ratings to the contrib modules. This would be a pretty cool feature, but it has other concerns too.

From the experience of developing the "pivots" Drupal module recommendation system, I developed the general purpose Recommender API module. It was released today.

Previously, 'related modules' were generated based on discussions in d.o. forum -- if several modules were mentioned in the same discussion threads, we consider them to be somewhat related. (More detailed explanation of the algorithms can be found in my previous Planet Drupal blogs).