Системы рекомендаций есть везде. Мы используем их, чтобы покупать одежду, находить рестораны и выбирать сериалы для просмотра. В этом сообщении блога я дам обзор базовых концепций, распространенных вариантов использования и обсужу некоторые ограничения. Это первая из серии статей о механизмах рекомендаций. Следите за новостями, в которых мы более подробно рассмотрим некоторые из упомянутых концепций!

Уже в 2010 году 60 % времени просмотра на Youtube приходилось на рекомендации [1], а персонализированные рекомендации, как говорят, увеличивают коэффициент конверсии на сайтах электронной коммерции до 5 раз [2]. Можно с уверенностью сказать, что если клиентам будет представлен хороший предварительный выбор продуктов, они будут менее перегружены, с большей вероятностью что-то потребят и в целом получат лучший опыт на веб-сайте. Но как работают рекомендательные механизмы? Давайте погрузимся прямо в.

Терминология

Сначала проясним несколько терминов, которые часто появляются в контексте рекомендательных систем.

Пользователи, элементы и запросы

Общим для всех рекомендательных систем является то, что они предназначены для моделирования взаимодействия между пользователями и элементами (или документами). Пользователи — это просто люди, использующие определенный сервис, а элементы могут быть продуктами в интернет-магазине, контентом на потоковой платформе или публикациями в социальных сетях. Механизмы рекомендаций, рассматриваемые как сквозная система, должны просто предоставлять индивидуальные рекомендации в ответ на запрос. Этот запрос может содержать информацию о пользователе и о том, как пользователь ранее взаимодействовал с другими элементами, но также может быть включен дополнительный контекст, такой как время суток или устройство, которое использует пользователь.

В зависимости от содержания запроса рекомендательная система может отвечать на различные вопросы:

Первая строка этой таблицы соответствует формулированию системы рекомендаций как проблемы прогнозирования, а две другие строки — как проблеме ранжирования. Прогнозируя все возможные взаимодействия между пользователями и элементами, их ранжирование становится тривиальным. Однако в этом необходимо делать это, и это может быть даже невозможно при работе с большими объемами элементов.

Если вы хотите включить механизм рекомендаций на свой веб-сайт, может иметь смысл предоставлять разные рекомендации в разных местах. На стартовой странице хорошо размещены общие рекомендации, основанные на прошлом поведении пользователей, а на странице оформления заказа — выбор товаров, которые дополняют те, что есть в вашей корзине.

Части рекомендательной системы

Цель рекомендательной системы, рассматриваемой как комплексная система, состоит в том, чтобы просто предоставить наиболее релевантные элементы для заданного запроса. Но, в частности, когда имеется большой пул доступных предметов, имеет смысл разделить этот процесс на 3 этапа:

  1. Генерация кандидатов: выбирается первый набор потенциально релевантных элементов. С точки зрения машинного обучения это самая интересная часть.
  2. Оценка: после создания кандидатов используется другая модель для оценки сгенерированных кандидатов, чтобы в конечном итоге выбрать те, которые будут отображаться. Поскольку количество элементов теперь на несколько порядков меньше, модель может быть намного более сложной и использовать больше функций, связанных с элементами. Кроме того, используя отдельную модель для оценки, можно легко комбинировать несколько моделей генерации кандидатов.
  3. Повторное ранжирование. На этом необязательном заключительном этапе кандидаты повторно ранжируются с учетом дополнительных ограничений или критериев. Это часто происходит на основе правил, и примеры включают:
  • сделать акцент на новых элементах
  • отфильтровать элементы, которые явно не понравились пользователю
  • включать популярные или трендовые элементы

Вообще говоря, генерация кандидатов может быть достигнута с помощью этих двух методов (или их комбинации): контентная фильтрация и совместная фильтрация.

Совместная фильтрация

Цель системы совместной фильтрации — сделать вывод о том, как пользователь может взаимодействовать с некоторым элементом, исходя из того, как другие пользователи со схожими вкусами взаимодействовали с этим элементом. В частности, при выработке рекомендаций учитывается взаимодействие других пользователей. Наивно говоря: если вам нравятся фильмы А и Б, а большинству других пользователей, которым нравятся фильмы А и Б, нравится и фильм С, вам, скорее всего, понравится и фильм С. Размышляя о совместной фильтрации, чаще всего думают о матрице пользовательских элементов и об умных способах факторизации этой матрицы. Эта идея естественным образом приводит к встраиванию пользователей и элементов — ознакомьтесь с предстоящей записью в блоге о совместной фильтрации, где я подробно расскажу об этих концепциях.

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

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

Следите за новостями в блоге о совместной фильтрации, чтобы узнать больше!

Контентная фильтрация

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

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

Тем не менее, этот тип системы обычно все еще борется с новыми пользователями, если недостаточно информации о том, что нравится этим пользователям. Другой недостаток заключается в том, что рекомендатели, основанные на содержании, рекомендуют только товары, похожие на те, которые уже потребляют пользователи. В этом смысле он плохо подходит для «расширения кругозора» своих пользователей и рекомендации «новых» товаров.

Следите за статьей в блоге о фильтрации на основе содержимого, где я расскажу об этой концепции более подробно.

Гибридные системы

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

Сбор данных

Система машинного обучения может быть настолько хороша, насколько хороши данные, на которых она обучалась.

В то время как данные об элементах в основном предоставляются (например, через описания продуктов, сводки сюжетов, теги и т. д.), сначала необходимо собрать данные о пользователях. Это может произойти явно или неявно: явные данные собираются из пользовательских данных, таких как обзоры, оценки или лайки. Напротив, неявно собираемые данные могут включать историю поиска, время, потраченное на просмотр видео определенной категории, или даже более абстрактное поведение в Интернете. Основная проблема, особенно при неявном сборе данных, заключается в том, что наблюдаемое взаимодействие пользователя с элементом не обязательно означает, что пользователю понравился этот элемент. Рассмотрим следующий пример:

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

Случаи использования

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

  • Веб-сайты электронной коммерции — пожалуй, самый очевидный. Предоставление персонализированных рекомендаций покупателю, зашедшему на сайт, и показ товаров, похожих на те, которые он просматривает в данный момент, увеличивает вероятность того, что он что-то купит.
  • Стриминговые сервисы — Youtube, Netflix, Spotify — позволяют открывать для себя новый контент, предлагая персональные рекомендации. На самом деле я открыл для себя несколько действительно крутых групп, просто слушая радио Spotify на основе того, что мне нравится!
  • Новостной контент. Представление новостных статей, которые могут вас заинтересовать, может быть удобным, но также может быть и опасным, поскольку это приводит к появлению так называемых пузырей фильтров. Подробнее об этом читайте в разделе Испытания.
  • Блоги. Если вы читаете эту статью на Medium, возможно, это потому, что ее вам порекомендовали. :)
  • Приложения для знакомств — явно неправильно называть возможные совпадения «предметами» в этом случае, но этот вариант использования также соответствует парадигме рекомендательных систем.
  • Порталы вакансий. Если отфильтровать нерелевантные предложения о работе, это избавит вас от многих проблем.
  • Фильтрация спама. Это немного отличается от других случаев, поскольку (надеюсь) большинство элементов релевантны, но также могут быть обработаны системой рекомендаций.
  • Персонализированная реклама.
  • И более!

Имея такое количество вариантов использования, рекомендательные механизмы, конечно, не всемогущи и сталкиваются с некоторыми более или менее серьезными проблемами.

Проблемы

Проблема с холодным запуском

Если новый пользователь попадает в рекомендательную систему, предоставить ему индивидуальные рекомендации практически невозможно. Это известно как проблема холодного запуска. Один из способов исправить это — явно спросить пользователя, какие элементы его интересуют, например, представив ему несколько элементов и спросив, актуальны они или нет. Другой, может быть, более прагматичный подход — просто рекомендовать самые популярные товары.

Длинный хвост

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

На следующем рисунке это проиллюстрировано знаменитым набором данных MovieLens100k. Он состоит из 100 000 пользовательских оценок фильмов от 943 пользователей по 1682 фильмам. При этом 50% оценок приходится на 214 фильмов (12,7% всех фильмов), а 90% оценок приходится на 751 фильм (44,7% всех фильмов). Следовательно, у большинства фильмов очень мало рейтингов, и трудно давать осмысленные рекомендации по тем фильмам, которые редко получают рейтинги!

Масштабируемость

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

Оценка рекомендательных систем

Еще одной проблемой является оценка рекомендательных систем. С точки зрения машинного обучения можно придумать показатели для автономной оценки (в данном случае автономная оценка означает использование фиксированного наблюдаемого набора данных из прошлого), однако эти оценки часто не говорят вся история. Обратите внимание, например, что невозможно узнать, как вел бы себя пользователь, если бы ему были показаны другие рекомендации. Кроме того, слишком корректность может привести к тому, что пользователи потеряют интерес к рекомендациям. Примером слишком корректного решения может быть рекомендация только тех фильмов, которые пользователь все равно собирался посмотреть. Скажем, вы только что посмотрели 4-й и 5-й эпизоды Звездных войн, и единственная рекомендация — 6-й эпизод. Это, безусловно, уместная рекомендация, но она не очень ценна. На самом деле, хорошие рекомендации должны быть не только релевантными, но и новыми и разнообразными одновременно.

В конечном счете, успех рекомендательных систем часто измеряется с помощью A/B-тестирования и анализа некоторых основных бизнес-показателей, например. рейтинг кликов и время просмотра в случае службы потокового видео или покупки в случае интернет-магазина. Интересно, что, как отмечают исследователи в [3], результаты A/B-тестов не обязательно коррелируют с предыдущими офлайн-оценками! Это чрезвычайно затрудняет оценку эффективности рекомендательной системы до ее тестирования.

Самоисполняющееся пророчество?

Если вы в конечном итоге потребляете в основном рекомендованный вам контент, это потому, что рекомендации были точными, или просто потому, что проще нажать на контент, который уже есть, чем активно искать новый контент? Исследователи критикуют появление так называемых пузырей фильтров, особенно в контексте новостных лент социальных сетей, таких как Twitter или Facebook. Поэтому особенно в таких условиях крайне важно обеспечить новизна и разнообразие рекомендаций. Но также для интернет-магазина может быть полезно время от времени рекомендовать какие-то неожиданные товары — если они понравятся пользователю, это полный успех для системы рекомендаций, а если нет, то у системы рекомендаций есть шанс стать умнее. снова.

Заключение

В этой статье у нас есть

  • представили обзор рекомендательных систем и увидели, что они актуальны как никогда,
  • представил основные концепции, такие как совместная фильтрация и фильтрация на основе контента,
  • рассмотрены некоторые основные варианты использования,
  • обсудили проблемы и ограничения систем рекомендаций.

Этот общий обзор является лишь первой частью серии статей о механизмах рекомендаций. Следите за новостями, чтобы не пропустить другие статьи, в которых мы более подробно рассмотрим некоторые темы, упомянутые здесь:

  • Часть 2: Совместная фильтрация
  • Часть 3. Контентная фильтрация
  • Часть 4. Внедрение механизма рекомендаций с помощью AWS Personalize

Ресурсы и дополнительная литература

[1] Система рекомендаций по видео на Youtube, Davidson et. др., 2010»

[2] https://aws.amazon.com/personalize/

[3] Глубокие нейронные сети для рекомендаций YouTube, Covington et. аль 2017»

Хороший (немного технический) обзор рекомендателей от Google.

Первоначально опубликовано на https://dida.do.