March 9

Рекомендательные системы для аналитиков, часть 5. Проблемы в промышленной эксплуатации

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

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

Ключевые уроки для аналитика:

  • Начинайте с простого. Прежде чем добавлять графы или диалоговый интерфейс, убедитесь, что базовая модель больше невозможно улучшить
  • Измеряйте всё. Офлайн-метрики часто обманчивы, окончательное решение принимайте по онлайн-экспериментам (А/В-тесты, многорукий бандит)
  • Следите за дрейфом данных. Поведение пользователей и контекст меняются — автоматизируйте мониторинг качества
  • Думайте об инфраструктуре. Самая точная модель бесполезна, если не укладывается в latency-требования или требует слишком дорогих ресурсов