Среднее время прочтения — 9 мин.
Читает Глеб Рандалайнен
Подкаст на YouTube, Apple, Spotify и других сервисах

Многие годы считалось, что главная задача системы персональных рекомендаций Netflix — предлагать зрителям подходящий контент в наиболее подходящее для этого время. Для каталога с тысячами наименований и широкой базой пользователей (более 100 млн аккаунтов) система персональных рекомендаций просто необходима. Но на этом работа не заканчивается. Почему зрителю вообще должны быть интересны наши рекомендации? Что мы можем сказать о новой и пока не известной картине, чтобы она вызвала интерес у зрителя? Как убедить людей в том, что ее стоит посмотреть? Ответы на эти вопросы очень важны для того, чтобы помочь зрителям найти подходящий контент, особенно среди тысяч незнакомых названий. Один из способов решения проблемы — правильный подбор постера к сериалу или фильму. Если картинка привлекает внимание, она служит своеобразным ключом к кинопродукту и своего рода визуальным «доказательством» того, почему сериал или фильм может быть интересен. Постеры могут выделить знакомого актера, запечатлеть захватывающий момент (например, автомобильную погоню) или показать драматическую сцену, которая передает содержание фильма или сериала. Когда мы размещаем идеально подходящий постер на твоей домашней странице, тогда, возможно (и то не факт), ты дашь шанс этому сериалу, ведь лучше один раз увидеть, чем сто раз услышать. Этим Netflix отличается от традиционных медиа-проектов: платформа создана не под один-единственный продукт — их у нас более 100 млн, по одному для каждого пользователя. И каждый продукт имеет персонализированные рекомендации и изображения.

Как Netflix адаптирует постеры 1

Домашняя страница Netflix без постеров. Так алгоритмы рекомендаций традиционно видели страницу сайта.

Мы уже рассказывали о попытке подобрать одну идеальную обложку для всех зрителей. С помощью алгоритмов многорукого бандита (ограниченный набор ресурсов распределяется между вариантами с тем, чтобы максимизировать пользу — прим. Newочëм) мы искали лучший постер, чтобы получить как можно больше просмотров. Однако, учитывая огромное разнообразие вкусов и предпочтений, не было бы лучше подобрать постер для каждого зрителя, выделив те элементы, которые близки именно ему?

Как Netflix адаптирует постеры 2

Иллюстрации к сериалу «Очень странные дела», каждая из которых получила более 5% показов через алгоритм персонализации. Разные изображения охватывают широкий спектр тем, затронутых в сериале, чего нельзя добиться, используя лишь один постер.

Давайте рассмотрим те случаи, когда персонализация постеров оказалась действительно значимой. Рассмотрим примеры зрителей с разными предпочтениями. Слева показаны три картины, которые человек когда-то смотрел. Справа от стрелки — иллюстрация, которую он получит к рекомендованному фильму.

Например, варианты постера для фильма «Умница Уилл Хантинг». Тут мы принимаем решение, основываясь на том, как часто предпочитает зритель различные жанры и темы. Любителю романтики мы покажем постер с Мэттом Дэймоном и Минни Драйвер, а фанату комедий — постер с Робином Уильямсом.

Как Netflix адаптирует постеры 3

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

Как Netflix адаптирует постеры 4

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

Сложности

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

Другая задача — это понять, как влияет смена постеров, которые зритель видит от сессии к сессии на обложке конкретного продукта. Становится ли от этого в целом сложнее узнать сериал и есть ли трудности с тем, чтобы вновь вспомнить его в том случае, если зритель когда-то хотел его посмотреть, но так до сих пор этого и не сделал? Или же, наоборот, смена постера заставляет зрителя изменить свой выбор? Конечно, нужно всегда отдавать предпочтение лучшему варианту, но постоянные изменения могут сбить людей с толку. Смена изображений также создает проблему атрибуции, поскольку становится неясно, какое именно изображение заинтересовало зрителя.

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

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

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

Контекстный подход

Бóльшая часть механизма рекомендаций Netflix основана на алгоритмах машинного обучения. Обычно мы собираем пакет данных о том, как пользователи используют сервис. Затем мы запускаем новый алгоритм на этом пакете и проверяем его с помощью A/B-тестирования. Благодаря этой проверке на случайной выборке мы понимаем, насколько новая система лучше текущей. Участники группы А пользуются текущим сервисом, а участники группы В получают новую систему рекомендаций. Если у участников группы В возрастает уровень вовлеченности, то мы признаем тест успешным и применяем новый алгоритм ко всем пользователям. К сожалению, пакетный подход отчасти несправедлив, поскольку многие участники не сразу получают улучшенную версию. Это проиллюстрировано ниже.

Как Netflix адаптирует постеры 5

Чтобы избежать зрительского разочарования, мы постепенно отходим от пакетного машинного обучения и рассматриваем машинное онлайн-обучение. Для персонализации постеров мы используем так называемых контекстных бандитов — специальную самообучающуюся платформу. Вместо того, чтобы ждать полного сбора данных, обучения модели, а затем завершения A/В-теста, контекстные бандиты быстро определяют оптимальную обложку для каждого зрителя. Контекстные бандиты — это алгоритм, который компенсирует затраты на сбор данных для изучения объективной модели. Изученная модель применима к разному контексту. Раньше мы использовали неконтекстных бандитов, то есть искали выигрышный постер независимо от контекста. В случае персонализации контекст — это зритель, поскольку мы ожидаем, что он будет по-разному реагировать на изображения.

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

Исследование контекстных бандитов обычно затратно (или ведет к разочарованию) по причине того, что для индивидуальных сессий не всегда используются лучшие обложки. Как это влияет на зрительский опыт (и, как следствие, на наши показатели)? Для более чем ста млн пользователей ущерб, нанесенный исследованием, очень мал и смягчается благодаря пользовательской базе, где каждый косвенно помогает сформировать отзывы для небольшой части каталога. Таким образом, затраты на пользователя становятся незначительны. Это важно, потому что контекстные бандиты создают ключевой аспект пользовательского опыта.

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

Тренировка модели

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

Потенциальные сигналы

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

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

Выбор постера

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

Оценка результата

Офлайн

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

Как Netflix адаптирует постеры 6
Рисунок 1. Простой пример подсчета метрик воспроизведений с помощью введенных данных. Для каждого пользователя был выбран случайный постер (верхний ряд). Система выбрала возможную реакцию и отметила: начат был просмотр (зеленый кружок) или нет (красный кружок). Метрики воспроизведения для новой модели рассчитываются при сопоставлении профилей, в которых случайный выбор и выбор модели совпали (черная рамка), и вычислении доли воспроизведений для этой подгруппы. 

Воспроизведения отображают возможное взаимодействие зрителя с картиной, если бы мы показали постеры, выбранные новым алгоритмом. Относительно постеров нас интересуют несколько показателей, в частности, доля просмотров, как описано выше. Рисунок 2 демонстрирует, как контекстные бандиты увеличивают долю просмотров в сравнении с неконтекстными бандитами или случайным выбором.

Как Netflix адаптирует постеры 7
Рисунок 2. Средняя доля просмотров (чем больше, тем лучше) при разных алгоритмах. Случайным образом (зеленый) выбирается одно изображение. Обычный бандит (желтый) выбирает изображение с наибольшей долей просмотров. Контекстные бандиты (голубой и розовый) учитывают контекст для разных пользователей.
Как Netflix адаптирует постеры 8
Рисунок 3. Пример контекстного подхода на основе профиля. «Комедия» — профиль, который чаще всего смотрит комедии. Так, «романтика» — это профиль с наиболее частым просмотром  романтических фильмов. Контекстный бандит выбирает изображение Робина Уильямса для комедийного профиля, а изображение целующейся пары — для романтических профилей.

Онлайн

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

Заключение

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

По материалам Netflix TechBlog
Авторы: Ашок Чандрашекар, Фернандо Аматциемс, Джастин Басилико, Тони Хебара

Переводили: Эвелина Пак, Елизавета Яковлева
Редактировали: Фёдор Каузов, Сергей Разумов, Анастасия Железнякова