Мне интересно понять, почему в существующих системных библиотеках рекомендателей не так много реализаций для прямого возврата рекомендаций N для пользователей.
Я только начал создавать свой первый системный проект рекомендателей и былс удивлением обнаружил, что количество библиотек и учебных пособий заканчивается на что-то вроде
score = model.predict(user_id, item_id)
вместо предоставления функции для выдачи рекомендаций N лучших пользователей для всех пользователей.Мне обычно приходится рассчитывать продукт каждого пользователя и вектора товара, обновлять оценки для купленных товаров до -1, чтобы они не были выбраны, а затем частично ранжировать товары для каждого пользователя, чтобы получить лучшие N рекомендаций.
Причина, по которой я хочу эту функцию, заключается в том, что я хочу обучить свою модель в автономном режиме и сохранить результаты в БД, которая подается на панель мониторинга.Сохранение только встраивания модели требует больше памяти, а перерасчет лучших N элементов для каждого пользователя - слишком большая задержка.
Почему этот процесс не является широко модульным?Существуют ли библиотеки, в которых реализовано это, о которых я не знаю, или это не обычная практика?