Hi Rich, It would be very easy to implement user-based collaborative filtering in Mahout. At the core of the distributed recommender module is RowSimilarityJob which computes a matrix of pairwise similarities. We make it compute the similarities between item vectors, but it could easily be fed with user vectors.
However, item-based collaborative filtering has a lot of advantages: - there are usually much more users than items, so computing all user similarities is more expensive - you don't have to recompute the similarities for new users - its prediction quality is said to be equal or superior to the user-based variant --sebastian On 14.03.2012 05:20, Rich wrote: > Sean Owen <srowen <at> gmail.com> writes: > >> >> Yes it's item-based only. --similarityClassname chooses the metric but >> it is item-based. >> >> On Tue, Mar 13, 2012 at 11:53 PM, Rich <cchuang411 <at> gmail.com> wrote: >>> Hi, >>> I have been digging into Mahout on Hadoop for the pas few days. >>> I was wondering the recommendation >>> algorithm that is used in RecommenderJob.java. For example: >>> >>> bin/hadoop jar /opt/mahout/core/target/mahout-core-0.7-SNAPSHOT-job.jar >>> org.apache.mahout.cf.taste.hadoop.item.RecommenderJob >>> -Dmapred.input.dir=input/input.txt -Dmapred.output.dir=output >>> --usersFile input/users.txt --booleanData >>> >>> By executing this command, is either item-based or user-based >>> recommendation algorithm being used? >>> And does specifying "--similarityClassname" in the command >>> have anything to do with >>> choosing item-based or user-based algorithm for the recommendation? >>> >>> >>> The help is appreciated in advance, >>> Rich >>> >> >> > > > Thanks for your reply, Sean. > > Do you have any idea whether user-based recommendation could be implemented > for > Mahout running on Hadoop? Is it possible with the current framework? For > example, like the chapter 6's sample codes in Mahout in Action, is it possible > to write custom Mapper/Reducer classes to achieve the goal, providing > user-based > recommendation? > > Thanks, > Rich > >