При создании рекомендательных систем часто возникает задача выдавать рекомендации для новых пользователей. В специальной литературе эта задача почти никогда не описывается, так как не имеет непосредственного отношения к рекомендательным алгоритмам. Ситуация осложняется тем, что на сегодняшний день нет единого подхода к решению этой проблемы. Чаще всего в качестве начальной рекомендательный выборки пользователю предлагаются самые популярные товары или услуги. В настоящей статье мы пойдём немного дальше и рассмотрим более продвинутый подход к формированию рекомендаций для новых пользователей, основанный на прогнозировании временных рядов.
Определение самых популярных элементов
Когда пользователь впервые заходит в приложение, где работает рекомендательная система, последняя ничего о нем не знает. Поэтому первой задачей, стоящей перед рекомендательной системой, становится определение потребностей пользователя. Самый простой способ сделать это — предложить ему максимально различные комбинации товаров или услуг, чтобы по последующим действиям пользователя определить его интересы. При этом удобнее всего сделать акцент на самых популярных элементах в коллекции. Например, для видео сервисов или сайтов виртуальных кинотеатров рекомендательная система должна предложить новому пользователю видео максимально разных жанров, а также включить в выдачу популярные новинки.
Перед запуском такой рекомендательной системы необходимо провести дополнительную обработку данных. В видео сервисе мы можем кластеризовать видео по жанрам, а затем, в процессе работы рекомендательной системы, предлагать для новых пользователей самые популярные видео из кластеров "Фантастика", "Мелодрамы", "Ужасы" и так далее. Если пользователь выберет что-то из предложенного ему, то рекомендательная система уже будет знать, какой жанр ему больше нравится, и подстраивать рекомендации соответствующим образом.
Это простой подход, который хорошо работает во многих сферах. Впрочем, воспользовавшись несколько более сложными моделями, мы можем улучшить результаты рекомендательной выдачи. В сфере видео важное значение имеет время суток, когда пользователь зашел в приложение. Типичная семья утром, собирая детей в школу или детский сад, захочет включить мультфильмы. Пользователь, зашедший днем, может оказаться домохозяйкой, и предпочесть посмотреть сериал. Вечером после работы важно сделать акцент на легких, расслабляющих видео. А ночь, как известно, — самое лучшее время для ужастиков.
Важно также иметь в виду день недели и время года. В выходные можно сделать акцент на видео для больших компаний, а в декабре рекомендовать больше новогодних видео. Все эти кейсы прекрасно ложатся в модель прогнозирования временных рядов.