Проблемы производительности Apache Mahout

Последние несколько дней я работаю с Mahout, пытаясь создать рекомендательный механизм. Проект, над которым я работаю, имеет следующие данные:

  • 12M пользователей
  • 2M элементов
  • 18M булевых рекомендаций пользователь-элемент
  • Сейчас я экспериментирую с 1/3 от всего имеющегося набора (т.е. 6M из 18M рекомендаций). При любой конфигурации, которую я пробовал, Mahout давал довольно разочаровывающие результаты. На одни рекомендации уходило 1,5 секунды, а на другие - более минуты. Я думаю, что разумное время для рекомендации должно быть около 100 мс.

    Почему Mahout работает так медленно?
    Я запускаю приложение на Tomcat со следующими аргументами JVM (хотя их добавление не дало большой разницы):

    -Xms4096M -Xmx4096M -da -dsa -XX:NewRatio=9 -XX:+UseParallelGC -XX:+UseParallelOldGC
    

    Ниже приведены фрагменты кода для моих экспериментов:

    User similarity 1:

    DataModel model = new FileDataModel(new File(dataFile));
    UserSimilarity similarity = new CachingUserSimilarity(new LogLikelihoodSimilarity(model), model);
    UserNeighborhood neighborhood = new NearestNUserNeighborhood(10, Double.NEGATIVE_INFINITY, similarity, model, 0.5);
    recommender = new GenericBooleanPrefUserBasedRecommender(model, neighborhood, similarity);
    

    User similarity 2:

    DataModel model = new FileDataModel(new File(dataFile));
    UserSimilarity similarity = new CachingUserSimilarity(new LogLikelihoodSimilarity(model), model);
    UserNeighborhood neighborhood = new CachingUserNeighborhood(new NearestNUserNeighborhood(10, similarity, model), model);
    recommender = new GenericBooleanPrefUserBasedRecommender(model, neighborhood, similarity);
    

    Item similarity 1:

    DataModel dataModel = new FileDataModel(new File(dataFile));
    ItemSimilarity itemSimilarity = new LogLikelihoodSimilarity(dataModel);
    recommender = new GenericItemBasedRecommender(dataModel, itemSimilarity);
    
    8
    задан Daniel Zohar 23 November 2011 в 10:11
    поделиться