Hello, I have developed a module "OG Similar Groups" http://drupal.org/project/similargroups

Basically, it displays a list of "similar groups" on a group page based on shared membership. That is, if two groups have many members in common, then the two groups are considered as similar.

Future release of the module can also recommend similar users to any user based on shared group membership. Hopefully that feature can help connect drupalers with similar interests and make our community more dynamic.

Any thought?

Comments

moshe weitzman’s picture

I think Recommendations like this are cool. I'm not so sure that group membership is the best basis but it might be. Solr can do recommendations based on relevancy matching. Lets discuss.

danithaca’s picture

Thanks for the response Moshe!

I think some kind of group recommendation would be helpful to g.d.o users. The question is which algorithm to use.

To my knowledge (maybe limited), ApacheSolr MoreLikeThis recommendation is text-based, that is, group similarity is calculated based on how similar the group description texts are. I'm not sure how good it works for g.d.o. But it's definitely a possible approach.

Another alternative is to use the SimilarGroups module (based on Recommender API). I'm not sure how good it works for g.d.o either. But if the g.d.o maintainers team agrees, I can port it to D5, and give it a try on g.d.o. If it works, that's fine. Otherwise, just uninstall it.

moshe weitzman’s picture

Another approach - just let group admins name their 'related groups' as a cck field on the group node. These would be shown in a block on the group homepage.

moshe weitzman’s picture

I think #3 is a good approach. Seems like we could add a multiple node ref field on the group content type and then a little custom code will create a block from the data. Folks think this is useful?

greggles’s picture

Status: Active » Postponed

We can use a standard solr more like this block, but we need #372767: Restrict MLT list to nodes of certain types, or the same type as current to be fixed first.

Marking postponed until then. I would say I'm very interested in this feature. I frequently hear of new groups or old groups that I want to be a member of...some automated way to find them would be great.

moshe weitzman’s picture

Now that I reconsider, I think shared membership will lead very good results - better than MLT which has little basis for relevancy.

greggles’s picture

Project: Drupal.org site moderators » Groups.drupal.org
Component: Groups.drupal.org » User interface
Status: Postponed » Active

Ok, an active feature.

@danithaca - any chance you are still working on this? I'm ready to roll it out when you are.

greggles’s picture

danithaca’s picture

Title: Add "similar groups" to g.d.o? » Add "groups recommendations" to g.d.o. based on group membership

@greggles, @Moshe: I have updated the "similargroups" module to use the new Recommender API module that supports cloud service. It can upload group membership info to the cloud on Amazon EC2, the cloud would use Apache Mahout to run the computation, and then send back the recommendations. If not using cloud service, g.d.o has to install Apache Mahout locally. The recommendations are shown through Views in 2 ways: 1) Personalized group recommendations based on what groups you joined, and 2) Similar groups to the current group based on membership.

To make this work either with cloud service or Apache Mahout, g.d.o. needs to install 3 modules: similargroups, recommender, and async_command. It also requires Views and Ctools. Would that be a problem? I also need to know whether g.d.o uses OG1 or OG2 in order to do some testing.

The old version of similargroups doesn't scale well. I don't think it'll work with more than thousands of users/groups on g.d.o. So I'm not maintaining the old version any more. The new version doesn't have the critical bug in the old version.

I'll attend Drupalcon in Denver. Let me know if we can spend a little time on Friday's code sprint to get this done.

nnewton’s picture

Hi Dan,

So, would this solution require a hadoop cluster on which to run mahout? How often would the cluster be used for computation?

-N

greggles’s picture

None of these seem like a problem to me. Group membership information is not 100% public, but it's pretty close to public since anyone can register and see it.

greggles’s picture

I should say, none of those are a problem from *my* perspective, but adding mahout is more work for the infrastructure team so we need to be sure there is justification for it. If we could see a roadmap of "First we add group recommendations, then we add module recommendations, etc" then that would help justify deploying mahout on g.d.o's server.

If that's not possible, it would be good to know what the costs would be for ec2 to do it there so that we can potentially get funding.

webchick’s picture

One of the 2012 DA goals is making Drupal.org better for site builders and developers, and the #1 Drupal.org feature request from the community is projects ratings/reviews and other metrics to determine quality. "Recommended modules" is basically the epitome of that, so if we had such technology available, I'm sure we would make good use of it on D.o "proper."

danithaca’s picture

Thanks for the feedbacks!

The "recommender" part of Mahout has 2 modes: one is for Hadoop cluster, one is standalone. Currently the RecommenderAPI module that integrates Mahout only uses the "standalone" mode with multi-threading. So no Hadoop cluster is needed. However, it does require multi cores and a large memory to do the computation. But it only needs to run one or two times a week to update the recommendation results. Basically, a more powerful scratchvm would do the job.

Also, I got some funding to pay for the cloud server. So it's free to use for g.d.o. I guess it'll be easier to first try with the cloud service, and if it's good then switch to use Mahout locally within d.o. infrastructure.

However, it does require some dependent modules: http://drupal.org/project/recommender and http://drupal.org/project/async_command. These modules haven't got security reviews yet. I'm not sure if people are comfortable to deploy them to g.d.o.

danithaca’s picture

To install to the testing site:

recommender_6.x-3.0-alpha4
async_command_6.x-1.0-alpha4
similargroups_6.x-2.0-alpha2

danithaca’s picture

Status: Active » Needs review

waiting to be tested on the testing site.

apaderno’s picture

Issue summary: View changes
Status: Needs review » Postponed

At the moment, the only development done on groups.drupal.org is the migration on drupal.org. Once the migration is done, new modules will be deployed on drupal.org, if necessary.