В 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)