0
votes

I am trying to get recommendation for user with single preference, which seems to intentionally dropped by Mahout recommender job on Hadoop. For my case about 50% user have only single preference not many and it is ok to have any recommendation for that with may be < 1.0 recommendation strength for that.

How can I get that?

Options I have used

nohup hadoop jar mahout-core-0.8-job.jar  org.apache.mahout.cf.taste.hadoop.item.RecommenderJob --booleanData --similarityClassname SIMILARITY_LOGLIKELIHOOD --input s3://XXX/RS/tmp/mahout_input/SIMILARITY_LOGLIKELIHOOD/1M/ --output s3://XXX/RS/tmp/mahout_output/SIMILARITY_LOGLIKELIHOOD/1M/  --outputPathForSimilarityMatrix s3://XXX/RS/tmp/SimilarityMatrix/1M/  --numRecommendations 50 --maxPrefsPerUser 500 --threshold 0.2 --maxSimilaritiesPerItem 100 --minPrefsPerUser 1 
1

1 Answers

0
votes

Intuitively speaking one preference tells you almost nothing about taste.

More scientifically speaking the Item-based recommender in Mahout is a cooccurrence recommender so if the single preference does not match another user's you cannot make a recommendation with it.

However, there is a way to do something for new users. In Mahout there is a command line job itemsimilarity. It will use all preferences and compute which items are similar to others based on being prefered by the same users. These are what you see on Amazon for "other people who bought this also bought these" recommendations. If you find similar items you can at least recommend them when the user is looking at an item. They are not personalized so the same items are shown to all users but they can be effective.

In Mahout 1.0 snapshot build there is a more friendly version of this job that runs much faster on Spark called spark-itemsimilarity

Run either one with no parameters to get a help screen.