Онлайн-обновление для системы рекомендаций ALS

Есть ли способ экспортировать искровую модель ALS после ее обучения в модель PMML или любой другой формат, который можно вызывать вне среды искры?

Например, в JAVA, учитывая идентификатор клиента C и идентификатор продукта P, загрузите файл модели, созданный программой SCALA, и вызовите его, он выдаст оценку для (C, P).

Основная причина этого вопроса заключается в том, что когда размер активного пользователя огромен, скажем, 0,1 миллиарда пользователей более 100 продуктов, размер прогноза будет 10 миллиардов. В нашем случае рекомендации по предметам не подходят.

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


person Yinghao Huang    schedule 07.02.2018    source источник


Ответы (1)


Есть способ сохранить вашу модель в среде sprakenvironment, например ALSmodel.save("myModelPath"). С помощью этой модели вы можете подсчитать все известные пары покупатель / предмет.

Я предполагаю, что если вы хотите набрать очки за пределами Spark, вам нужно экспортировать факторы элемента и пользователя в другую систему и вычислить MF самостоятельно. Там вы также можете обновить итерации пользователей для своих рекомендаций.

С ALSmodel.userFactors и ALSmodel.itemFactors вы можете извлечь факторы вашей модели.

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

person Duesentrieb    schedule 20.02.2018