简体   繁体   中英

Content based recommender engine using mahout on eclipse

Are there any step by step tutorials for making a content based recommender system with Mahout on eclipse/java?

Ive tried wokring with Mahout and was able to make a collaborative system but i want to try and make a content based, ive read about making a custom ItemSimilarity method and I just recently discovered RowSimilarityJob for Mahout, im relatively new to using mahout can someone help me out on how to use the function?

Actually the itemSimilarity job is 1) in the old soon to be deprecated Hadoop MapReduce code and 2) finds 2 similar documents in a rather simplistic manner. There is a new Spark version of the job called spark itemSimilarity that does much the same but only supports LLR scores for similarity.

Unless you are incorporating it into a larger more complex recommender I'd suggest you just use Elasticsearch or Solr to find similar items by content. They have much more robust methods that are quite flexible. At the core they both use Lucene, the pre-eminent knn engine (k-nearest neighbors) for sparse data.

KNN is the type of algo you want, given an item with several content fields which items are most similar?

Elasticsearch and Solr also have servers that are performant and highly scalable. Plus they do not require constant training. Just add a new doc for every item and they will index incrementally so query results will eventually include the newer docs, without a training step.

But be aware that content-based recommendations are seldom nearly as good as Collaborative Filtering if you have the right data. Arguably the best Open Source example of a Modern Multi-modal CF recommender is the Universal Recommender (based on Mahout and Apache PredictionIO) here: http://actionml.com/docs/ur

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM