March 9
Рекомендательные системы для аналитиков, часть 5. Проблемы в промышленной эксплуатации
- Групповые рекомендации Часто контент потребляется не одним человеком, а группой (семья смотрит фильм, компания выбирает ресторан, студенты ищут учебный курс). Как учесть предпочтения всех участников и предложить компромиссный вариант? Групповые рекомендательные системы агрегируют индивидуальные модели пользователей в единую групповую модель
- Ранжирование
В выдаче важен порядок элементов. Просто предсказать рейтинг фильма недостаточно — нужно, чтобы самый релевантный оказался на первом месте. Для этого при обучении может использоваться попарное сравнение (pairwise) или обучение сразу на списках (listwise) - Учёт социальных связей
У людей есть друзья, подписки, коллеги, и их мнение часто важнее, чем мнение незнакомых "похожих" пользователей. Поэтому добавляют специальную функцию, которая приближает вектора рекомендаций у знакомых людей (например, SocialMF, TrustSVD) - Кросс-доменные рекомендации
Часто знаний из одного "домена" не хватает для составления полной картины о пользователе. Тогда можно использовать данные другого домена (например, фильмы). Часто между разными категориями товаров/контента есть связь по атрибутам, вот ее и используем - Контекстные рекомендации
Предпочтения человека меняются в зависимости от контекста: время суток, местоположение, настроение, с кем он, какая погода. Модель учитывает контекстные переменные как дополнительные признаки. Например, утром в будний день пользователю предлагают новости и кофе, вечером в пятницу — фильмы и рестораны - Объяснимость
Пользователи чаще доверяют системе и совершают покупки, если понимают, почему им это предложили. Кроме того, объяснения помогают разработчикам отлаживать модели - Поддержание диалога
Пассивные рекомендации не всегда эффективны, особенно когда у пользователя сложный или нечёткий запрос. Нужно уточнить предпочтения в диалоге. Система взаимодействует с пользователем на естественном языке, задаёт вопросы, уточняет требования и постепенно сужает круг рекомендаций. Сочетает обработку естественного языка (NLP) и собственно рекомендательные алгоритмы - Сессионность
Во многих сервисах (интернет-магазины, стриминговые платформы) у нас нет долгой истории пользователя — мы видим только текущую сессию (несколько последних действий). Модель предсказывает следующий элемент на основе последовательности действий внутри одной сессии, не имея доступа к долгосрочному профилю — как раз за счет sequential-based подхода из третьей части статьи
Не существует универсального рецепта — каждая задача требует компромисса между качеством, скоростью, стоимостью и интерпретируемостью.
- Начинайте с простого. Прежде чем добавлять графы или диалоговый интерфейс, убедитесь, что базовая модель больше невозможно улучшить
- Измеряйте всё. Офлайн-метрики часто обманчивы, окончательное решение принимайте по онлайн-экспериментам (А/В-тесты, многорукий бандит)
- Следите за дрейфом данных. Поведение пользователей и контекст меняются — автоматизируйте мониторинг качества
- Думайте об инфраструктуре. Самая точная модель бесполезна, если не укладывается в latency-требования или требует слишком дорогих ресурсов