Ни одна рекомендация не доступна с Apache Mahout

Я протестировал пользовательские рекомендации с помощью Apache Mahout, и он хорошо работает с предоставленными образцами данных.

Однако у меня есть свои данные, но я не могу получить ни одной рекомендации. Я узнаю, что это связано с тем, что данные слишком скудны, но я был бы признателен за совет эксперта;)

Он использует только историю покупок, поэтому я оценил продукт на 4.0 для всех идентификаторов пользователей <-> покупка идентификатора продукта.

Вот файл данных: http://we.tl/RcR83vcHQI

Не могли бы вы дать мне несколько советов, чтобы начать давать полезные рекомендации?

Заранее спасибо.

1 ответ

Это общая проблема с людьми, плохо знакомыми с Mahout. Версия 0.9 и ранее требует, чтобы ваши идентификаторы были последовательными непрерывными неотрицательными целыми числами. Это включает в себя идентификаторы пользователей и предметов. Они используются в Mahout как номера строк и столбцов в матрице всех входных данных.

Есть несколько способов решения этой проблемы, например, сохранение HashBiMaps (коллекций Guava) для идентификаторов пользователей и элементов. Как вы видите первый идентификатор, присвойте ему Mahout ID 0 и сохраните связь на карте. Продолжайте просматривать свои идентификаторы, чтобы найти следующий уникальный и назначить ему Mahout ID = 1 и т. Д.

Тогда вы получите идентификационные данные Mahout от рекомендателя. Вы можете использовать двунаправленный HashBiMap для преобразования их в идентификаторы вашего приложения.

Кстати, Mahout (1.0-snapshot или более поздняя версия) теперь имеет совершенно новое поколение рекомендаций, основанное на использовании поисковой системы для обслуживания рекомендаций и Mahout для расчета модели. Он примет входные данные, которые у вас есть, - перевод идентификатора внутри. Он имеет много преимуществ по сравнению со старой версией Hadoop, в том числе:

  1. Мультимодальный: он может принимать множество различных действий пользователя для множества различных элементов. Это позволяет вам использовать большую часть кликов пользователя, чтобы рекомендовать.
  2. Результаты в реальном времени: у него очень быстрый масштабируемый сервер в поиске Solr или Elastic.
  3. Из-за природы в реальном времени он может рекомендовать новым пользователям или пользователям с очень недавней историей. Старые рекомендации Hadoop Mahout рекомендуют только пользователям и элементам данных обучения - они не могут реагировать на историю, которая не использовалась в процессе обучения. Новый рекомендатель может использовать данные, собранные в режиме реального времени, даже для новых пользователей.

Новый Мультимодальный Рекомендатор описан здесь:

Другие вопросы по тегам