Как я могу обрабатывать новых пользователей/элементы в модели, созданной Spark ALS из MLlib?

в настоящее время, когда приходит новый пользователь, я не могу обновить свою рекомендательную систему, которая, по-видимому, связана с тем, что я не добавил матрицу пользователей и элементов. Где это найти и как это сделать? Спасибо

модель.userFactors модель.itemFactors


comment
Не могли бы вы объяснить свою проблему или, возможно, предоставить несколько примеров кода   -  person Vishnu667    schedule 20.04.2016
comment
Извините, я сначала отредактировал заголовок со словом «безопасно» вместо «сохранить». Но, как я вижу, проблема заключается не в сохранении модели, а в том, чтобы (1) выдать рекомендацию для нового пользователя/элемента, также известную как проблема холодного запуска и (2) обновить уже рассчитанную модель. Смотрите мой ответ ниже. Хотел бы я дать лучшее название, но сейчас я не могу редактировать что-то, что находится в обзоре :-(   -  person Bartłomiej Twardowski    schedule 20.04.2016
comment
См. здесь возможное решение: stackoverflow.com/questions/41537470/   -  person Chris Snow    schedule 16.01.2017


Ответы (1)


Когда характеристики элементов и пользователей вычисляются, модель готовится только для рекомендаций для известных элементов и пользователей. Если у Вас есть новый пользователь/элемент, Вы должны справиться с проблемой холодного запуска.

Но есть две вещи: сделать так, чтобы рекомендации работали для новых пользователей/элементов, и отдельная вещь — обновить модель (матрицы функций) практически в режиме онлайн.

Для подготовки рекомендаций для нового/анонимного пользователя, которого не было во входных данных при построении модели, необходимо подготовить вектор его признаков. Метод состоит в том, чтобы подготовить его из особенностей уже увиденных предметов (или любого вида взаимодействия, которое вы рассматриваете как «нравится»), например. рассчитать среднее значение для каждой функции из тех элементов, которые понравились пользователю. Или посмотрите код Oryx для метода создание вектора функций анонимных пользователей

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

  • MyMediaLite
  • Oryx – сборка фреймворка с парадигмой архитектуры Lambda. И у него должны быть обновления с добавлением новых пользователей/элементов.
person Bartłomiej Twardowski    schedule 20.04.2016