Алгоритм рекомендации Spark ML ALS, возвращающий уже просмотренные товары - PullRequest
0 голосов
/ 09 марта 2020

В Spark ML реализация алгоритма Alternate Least Squares для рекомендаций создает модель, которую можно применить к уже просмотренным элементам ( training.itemCol , для просмотренных фильмов, в приведенном ниже примере), чтобы предложить новые предметы ( movieRecs в примере). Как это возможно, что метод возвращает уже просмотренные (не новые) элементы как часть результатов ( userRecs )?

als = ALS(maxIter=5, regParam=0.01, userCol="userId", itemCol="movieId", ratingCol="rating",
          coldStartStrategy="drop")

model = als.fit(training)

userRecs = model.recommendForAllUsers(10)

1 Ответ

1 голос
/ 10 марта 2020

Все recommendForAllUsers() делает это

  • Возьмите пользовательские блоки и блоки элементов (вместе с их векторными вложениями), изученные во время обучения.
  • Вычислите перекрестное соединение блоки пользователя и элемента.
  • Вычисление точечного произведения вложений.
  • Выбор лучших n товаров на основе значения точечного продукта для каждого пользователя.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...