views:

33

answers:

2

Hi all-

I am currently using the Acts_as_recommendable plugin available here. It is using the pearson correlation coefficient to find recommendations, which is pretty much exactly what I want. The problem however is scale. With more than 2000 or so items, the plugin slows considerably (with 5000 items, I see load times of about a minute for a recommended_items call).

So my question: are there any ruby/rails alternatives that are viable? I have tried working with mahout, but it is fairly hard to maintain and having both an amazon elastic compute instance and a heroku instance doubles that pain.

Thanks!

A: 

Have you been able to use a Cached Dataset for AAR?

In production, you could User.aar_options[:use_dataset] = true

And then in a cron job every so often: rake task recommendations:build

I'm unsure on the ability to use heroku for this though -- try it out and post back :)

Jesse Wolgamott
Hi Jesse- Thanks for the suggestion. There are really two reasons why this solution won't work for what I need. 1) preloading the recs TAKES FOREVER, which is fine, but even with 10,000 entries we're talking about > 5 hours; 2) More importantly, I need to be able to add things and then dynamically update the recommendations. Thus if a user adds an item, when they next refresh their set of items, it should reflect that initial item.
Dave G
Dave -- you probably want to move to a map-reduce type of situation... We've done some map-reduce with MongoDB that works quite well and fast.
Jesse Wolgamott
Jesse - do you have some resources I can check out to investigate further?
Dave G
A: 

(I am an author of the Mahout recommenders.) Working with jobs on Hadoop is difficult indeed. If that's your main issue with Mahout, then might I point out that it has significant non-distributed, non-Hadoop-based recommender support. My rule of thumb is that it outgrows a single box when you hit about 100M ratings, which is way larger than your current size.

Sean Owen