Порядок результатов пользовательских рекомендаций Apache Mahout недетерминирован

В настоящее время я реализую рекомендательную систему на основе пользователей от Mahout, см. http://mahout.apache.org/users/recommender/userbased-5-minutes.html

Первоначально я думал, что смогу реализовать разбиение на страницы: пользователи запрашивают первую страницу и получают первые N элементов, они запрашивают вторую страницу и получают следующие N элементов и так далее. Поскольку Mahout не предоставляет такой функциональности, я хотел обойти это, запросив N элементов на странице 1, 2 * N элементов на странице 2 и т. д., а затем просто вернуть элементы, которые являются правильными для запрошенной страницы.

Однако, когда я запускаю рекомендатель, например, с 10 элементами, а в следующем запросе я запускаю рекомендатель с 20 элементами, порядок возвращаемого списка отличается (что делает невозможным разбить на страницы). Как это возможно? Разве он не должен возвращать те же результаты при запросе с теми же данными?

Примечание. Базовые данные не изменились.


person akohout    schedule 08.12.2015    source источник


Ответы (1)


В большинстве рекомендателей используется случайный процесс для уменьшения выборки данных, используемых для расчета модели, чтобы она могла иметь сложность O (n). Вы можете указать фиксированное начальное значение ГСЧ, если хотите, чтобы субдискретизация была детерминированной. Как вы это сделаете, зависит от того, какую упаковку рекомендателя вы используете.

Вы используете версию в памяти, версию Hadoop или версию Spark + поисковую систему?

Последний рекомендательный код Mahout полностью интегрирован в прием событий, расчет моделей и обслуживание в реальном времени с помощью эта версия Здесь генератор случайных чисел находится в конфигурационном файле engine.json.

person pferrel    schedule 09.12.2015
comment
В настоящее время я использую версию в памяти. - person akohout; 10.12.2015