Мы используем Mahout для получения рекомендаций UserBased и ItemBased. Мы используем модель данных файла, который содержит отображение USERID и Itemid (не отсортирован в любом виде), Танимото Коэффициент подобия и GenericBooleanPrefItemBasedRecommender,Повышение производительности для Mahout
DataModel dataModel = new FileDataModel("/FilePath");
_itemSimilarity = new TanimotoCoefficientSimilarity(dataModel);
_recommender = new CachingRecommender(new GenericBooleanPrefItemBasedRecommender(dataModel,_itemSimilarity));
мы также у нас есть корреспондент, чтобы отфильтровать некоторые результаты, мы вызываем встроенный рекомендуемый метод рекомендации,
_recommender.recommend(userID, howMany, _rescorer);
У нас около 200 тыс. Пользователей, 55 тыс. Продуктов и около 4 млн. Записей в качестве пользовательских настроек. Проблема, с которой мы сталкиваемся, заключается в том, что первый вызов рекомендовать метод для пользователя занимает около 300-400 мс, чтобы вернуть список рекомендованных элементов, что не является возможным вариантом в соответствии с нашими потребностями. Я ищу некоторые методы оптимизации, которые кто-то использовал над mahout, или может быть, если кто-то внедрил собственный метод рекомендации по данному методу или если мы должны передать данные после добавления некоторого вида в файлы данных. Мы пытаемся получить время рекомендации около 100 мс. Любые предложения были бы очень полезными.
Я предполагаю, что CandidateItemStrategy будет вариантом с элементом на основе рекомендателя, но я с помощью рекомендательного на основе пользователя и я могу отфильтровать уже видел продукт, используя rescorer. Кроме того, я действительно не хочу удалять продукты, которые пользователь уже просмотрел, поэтому я хочу сохранить их в списке рекомендаций. Хотя моя проблема - время рекомендации, я хочу сократить время для рекомендации от 400 мс до примерно 100 мс. – user1045047
Также я был бы очень признателен, если бы вы могли предложить, если бы неплохо было использовать реализацию mahout вне коробки на живом сайте или, как правило, лучше использовать некоторые функции внутри mahout (например: - рекомендовать , mostSimilarItems и т. д.), чтобы максимизировать производительность, если это так, какие изменения или обертка обычно рекомендуются. – user1045047