Темы



MAPS: Мультимодальная персонализация медиаматериалов в Netflix в массовом масштабе

Авторы: Emma Yanyang Kong, Aditya Deshpande, Asad Abbasi, Bowei Yan, David Fagnan, Ashish Rastogi, Dhaval Patel, Ray Zhang

Введение

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

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

В этой статье рассказывается о том, как мультимодальные эмбеддинги позволяют нашим моделям «видеть» и «слышать» рекомендуемые материалы, благодаря чему персонализация начинает работать гораздо раньше — практически сразу после релиза тайтла. Поскольку новый материал поступает в систему с уже понятным для модели эмбеддингом, этот эмбеддинг немедленно переносит сигналы о вкусах пользователя от связанных с ним материалов. В результате модели требуется значительно меньше истории взаимодействий для качественной персонализации. Мы рассмотрим три производственные системы: персонализацию обложек, ранжирование обложек с учетом поисковых запросов и персонализацию видеопревью, а также простой трюк для выбора новых эмбеддингов до внедрения полной сквозной интеграции и проведения A/B-тестирования.

Персонализация обложек

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

Обучаем модель «видеть» обложку

Наше решение заключается в том, чтобы позволить модели «смотреть» на картинку. Мы кодируем каждую обложку с помощью CLIP — предобученной модели эмбеддингов «изображение-текст», — и интегрируем полученный результат в представление этого ассет-модели. Мы конкатенируем CLIP-эмбеддинг изображения для каждого ассета (768-мерный вектор) с выученным ID-эмбеддингом этого ассета, получая итоговое представление материала:

e_id (a) — это выученный ID-эмбеддинг ассета, а e_a — его CLIP-эмбеддинг изображения. Они конкатенируются и передаются через слой многослойного перцептрона (MLP), чтобы получить h_a — представление, по которому модель оценивает соответствие пользователю.

Это единственное изменение полностью меняет то, как модель работает с абсолютно новой обложкой. Вместо того чтобы воспринимать ее как неизвестный ID, модель получает CLIP-эмбеддинг в момент создания ассета. Это позволяет сразу применять предпочтения пользователя в отношении визуальных тем, актеров и цветовой гаммы задолго до того, как материал накопит собственные взаимодействия. Поскольку эти предпочтения выражены в пространстве эмбеддингов изображений, а не привязаны к конкретным ID материалов, они бесшовно переносятся между разными тайтлами. Если вы регулярно проявляете интерес к обложкам с участием определенного комика, модель может перенести этот сигнал на его новый проект и отдать приоритет тому материалу, где он изображен на переднем плане, даже если этот конкретный снимок никогда ранее вам не показывался (как показано на рисунке ниже). Таким образом, проблема холодного старта перестает быть «слепой зоной» — пространство эмбеддингов изначально обладает обоснованным мнением на этот счет.

Перенос знаний через CLIP-эмбеддинги. Пользователь, взаимодействовавший с обложками прошлых стендап-выступлений комика (слева), побуждает модель отдать предпочтение новому ассету с этим комиком (зеленая галочка), а не другому, даже если это конкретное изображение модель видит впервые.

От пяти моделей к одной

Этот сдвиг — переход от оценки ассета по его случайному ID к оценке на основе реального содержимого изображения — привел ко второй крупной победе: консолидации моделей. Обложки каждого тайтла охватывают множество форматов (холстов) с разным соотношением сторон (баннер, вертикальный прямоугольник, горизонтальная панель, короткая панель, ландшафтная панель). Исторически мы обучали отдельную модель для каждого формата, поскольку модель на основе ID не имеет возможности понять, что кадрированные и измененные версии одной и той же сцены связаны между собой. Сигналы не могли передаваться между форматами, и каждый из них сталкивался с собственным холодным стартом.

CLIP-эмбеддинги разрушают этот барьер. Поскольку они в значительной степени инвариантны к кадрированию, изменению размера и соотношению сторон, эти практически идентичные изображения отображаются в близкие векторы, как показано на рисунке ниже. Благодаря этому единая модель может агрегировать сигналы взаимодействий по всем форматам: предпочтения пользователя, изученные на высокотрафиковом холсте, немедленно учитываются при выборе обложки на малотрафиковом. В результате вместо пяти моделей мы используем одну, причем наибольший прирост качества наблюдается именно на тех холстах, где данных о взаимодействиях меньше всего.

Один исходный снимок, множество форматов. Одна и та же обложка сериала Running Point кадрируется и масштабируется для рекламных щитов, ТВ, мобильных устройств и наружной рекламы — и везде имеет собственный ID ассета. Поскольку CLIP-эмбеддинги практически не меняются при кадрировании и изменении размера, одна универсальная модель может персонализировать их все.

Смешивание данных обучения из пяти форматов

Консолидация породила проблему, с которой модели для отдельных форматов никогда не сталкивались: как эффективно смешивать данные из столь разных холстов? Форматы сильно различаются по объему показов, а логируемые ими взаимодействия имеют разную ценность для долгосрочного опыта пользователя. Обучение на объединенных «сырых» счетчиках привело бы к тому, что доминировать стали бы самый массовый холст и наиболее частые типы взаимодействий, в то время как малоразмерные холсты, которым мы пытались помочь, получили бы наименьшую пользу. Ручная настройка весов для каждого формата превратила бы проблему в бесконечный подбор произвольных гиперпараметров в онлайн-экспериментах.

Вместо этого мы используем взвешивание на основе вознаграждения (reward-based weighting), опираясь на концепцию Netflix моделирования долгосрочной удовлетворенности. Каждый пример для обучения взвешивается в соответствии с оценкой долгосрочного вознаграждения, привязанной к его типу взаимодействия:

a_ti — это обучающий пример, положительное взаимодействие с ассетом i тайтла t. Его вес определяется наблюдаемым типом взаимодействия e, оцененным с помощью ρ — долгосрочного вознаграждения для данного типа.

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

Замечание об оффлайн-оценке

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

Мы справляемся с этим с помощью обратного взвешивания вероятностей (inverse propensity scoring — IPS), вычисляемого на специальной выборке исследовательского (exploration) трафика. Небольшая доля трафика обслуживается рандомизированной политикой, которая выбирает кандидатов среди ассетов тайтла из известного распределения. Таким образом, вероятность показа конкретного ассета в данном контексте логируется точно в момент обслуживания, а не оценивается задним числом. Перевзвешивание каждого наблюдения на обратную величину его залогированной вероятности дает следующее:

где D — исследовательская выборка, а r(x, a) — наблюдаемое вознаграждение (например, запуск воспроизведения). Показы, которые из-за исследовательской политики стали редкими, получают больший вес, и оценщик становится несмещенной оценкой вознаграждения, которое кандидатная политика заработала бы при реальном развертывании. По нашему опыту, знание вероятностей по самому дизайну системы, а не их моделирование постфактум, — главная причина того, почему наши оффлайн-показатели совпадают с результатами онлайн-тестов. Мы сообщаем IPS в виде отношения к производственному базовому уровню (baseline), и кандидат должен победить в этой оффлайн-метрикe, прежде чем получит доступ к A/B-трафику.

Комбинация обеих идей работает лучше

Здесь объединены две идеи, поэтому мы протестировали их по отдельности в сравнении со старой пятимодельной продакшн-системой.

  • V1, только эмбеддинги изображений. Пять моделей для каждого формата остались прежними, каждая была дополнена эмбеддингами изображений.
  • V2, только единая модель. Одна модель, обученная по всем пяти форматам, но использующая только выученные ID-эмбеддинги без контента изображений.
  • V3, обе идеи вместе. Единая модель для всех пяти форматов, использующая эмбеддинги изображений в представлении ассетов.

Как показано на графике ниже, каждая идея сработала именно там, где мы и ожидали: на обделенных данными коротких и ландшафтных панелях. Вариант V3 стал безоговорочным победителем. Изменения в пределах ±1% для данной оффлайн-метрики не являются значимыми, и эти столбцы на графике заштрихованы. Большая часть того, что V1 и V2 делают по отдельности, находится в пределах этой зоны.

Относительный прирост оффлайн-метрики IPS по типам холстов для трех вариантов, измеренный относительно исходной модели для каждого холста. Обе идеи помогают там, где данных о взаимодействиях меньше всего, а V3 показывает сильнейший результат. Заштрихованные полосы попадают в диапазон ±1%, где изменения оффлайн-метрики незначимы; значения V3 указаны на графике.

В онлайн A/B-тесте на всех типах устройств, который длился не менее четырех недель, результаты провели гораздо более четкую границу: Ни одна из идей сама по себе не сдвинула с мертвой точки наши ключевые онлайн-метрики пользователей. Варианты V1 и V2 показали нулевые и незначимые результаты, и лишь V3 добилась статистически значимого прироста. Именно эта версия работает в продакшене сегодня.

Эти два компонента необходимы друг другу. V1 говорит модели для конкретного холста, как выглядит ассет, но на одном разреженном холсте слишком мало примеров, чтобы научить систему применять это знание. V2 предоставляет много данных, но только на основе ID, которых у нового ассета нет. V3 объединяет оба подхода: зрелые форматы обучают общую модель тому, как CLIP-эмбеддинги соотносятся с предпочтениями пользователей, и это соответствие напрямую переносится на малочисленные форматы. Эффекты усиливают друг друга мультипликативно, а не аддитивно, так как прирост на короткой панели для V3 (5.691%) превышает сумму показателей V1 и V2. Главный урок заключается в том, чтобы искать второй сдерживающий фактор, прежде чем делать вывод о бесполезности контентных фич.

Проблема холодного старта при запуске нового пользовательского интерфейса

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

Мы развернули V3 перед релизом и измерили ее в ходе месячного A/B-теста с удержанием небольшой контрольной группы на старой модели для отдельных форматов. V3 мгновенно адаптировалась к изменениям, продемонстрировав статистически значимый прирост как по нашей основной метрике открытий (discovery), так и по часам просмотра, причем показатели оказались выше, чем в стационарном абляционном тесте. Такой сильный результат и ожидался, поскольку резкое изменение доминирующего формата холста — это как раз то сценарий, где V3 должна помогать эффективнее всего.

Персонализация обложек с учетом поискового запроса

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

Те же CLIP-эмбеддинги, добавленные нами для решения проблемы холодного старта, достаются нам здесь практически бесплатно. Поскольку CLIP проецирует текст и изображения в одно общее пространство эмбеддингов, мы можем измерить соответствие запроса кандитату-обложке напрямую через косинусное сходство между CLIP-эмбеддингом текста запроса и CLIP-эмбеддингом изображения ассета. Мы объединяем этот терм соответствия с привычным скором персонализации:

Здесь первый элемент — это оценка, которую модель обложек уже выдает для пользователя и ассета; второй элемент сравнивает текстовый эмбеддинг запроса с эмбеддингом изображения ассета, а вес смешивания α (от 0 до 1) подбирается с помощью онлайн A/B-тестирования. Первый элемент отвечает на вопрос «что, как нам кажется, вам нравится», второй — «что вы только что попросили», а α определяет важность каждого из факторов.

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

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

Персонализация видеопревью с помощью MediaFM

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

Чтобы захватить недостающее, мы обратились к MediaFM — первой собственной мультимодальной базовой модели Netflix. Обученная на 80 миллионах видеофрагментов (шотов), MediaFM объединяет следующие три сигнала для каждого шота в единый эмбеддинг:

  • Визуальный: SeqCLIP
  • Аудио: предобученная модель эмбеддингов речи и звука
  • Текстовый: субтитры, закодированные с помощью крупномасштабной текстовой модели

Внедрение MediaFM не потребовало новой инфраструктуры: мы просто интегрировали эмбеддинги шотов в представление ассетов точно так же, как делали это с CLIP-эмбеддингами для обложек.

Добавленные модальности оправдали себя. Мы оценили оба типа эмбеддингов в сравнении с базовой линией «только по ID» в оффлайн-режиме с помощью IPS, а затем в пятинедельном онлайн A/B-тесте на всех платформах. Оба сигнала показали одинаковый порядок качества: MediaFM > SeqCLIP > «только ID», причем каждый шаг добавления информации о контенте давал прирост, наиболее заметный на телевизорах. В оффлайн-тестах оба контент-осведомленных эмбеддинга превзошли базовую линию по IPS, а MediaFM обошла SeqCLIP, как показано на графике ниже. В онлайне MediaFM также вышла на первое место, обеспечив статистически значимый прирост нашей основной метрики просмотров по сравнению с базовой линией по ID и превзойдя SeqCLIP. Это доказывает, что аудио- и текстовые сигналы с временной разметкой, недоступные чисто визуальному энкодеру вроде SeqCLIP, несут реальную ценность. Впоследствии мы внедрили MediaFM в качестве стандартного эмбеддинга видеопревью на всех платформах.

Относительный оффлайн-прирост IPS для двух контент-осведомленных эмбеддингов видеопревью, измеренный относительно базовой модели только по ID при нулевом правиле. Добавление понимания визуального контента помогает, а наложение аудио и текста с таймкодами дает дополнительный эффект.

Дешевый выбор эмбеддингов с помощью прокси-задачи

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

Можно ли на основе одних лишь эмбеддингов контента предсказать, какой ассет победит при использовании простой неперсонализированной политики?

Сначала мы выбираем фиксированный набор тайтлов. Для каждого тайтла мы используем исследовательские данные, чтобы найти победителя по скорректированной популярности — ассет с наивысшим коэффициентом взаимодействия после поправки на частоту его показа с учетом его вероятности (propensity score). Мы помечаем этого победителя бинарной меткой: 1 для победителя и 0 для остальных. Затем мы обучаем линейный классификатор (пробник) для восстановления этой метки исключительно на основе эмбеддинга ассета, без использования данных о тайтле, актерах или метаданных, путем минимизации стандартной функции потерь бинарной кросс-энтропии:

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

Сначала мы использовали линейный прокси-пробник для скрининга и отсеивания широкого набора эмбеддингов-кандидатов до изменения какого-либо продакшн-пайплайна, сузив поле до двух финалистов: SeqCLIP и лидирующего варианта MediaFM. Затем мы провели обоих через полноценную оффлайн-оценку и онлайн A/B-тестирование. Все три сигнала — точность линейного пробника, оффлайн-прирост IPS и результаты онлайн A/B-тестов — поставили MediaFM выше SeqCLIP, как показано на графике ниже. Именно благодаря такому согласованию результатов линейный пробник теперь служит обязательным фильтром для каждой новой версии MediaFM перед ее релизом.

Прирост точности линейного пробника (Δaccuracy), оффлайн-прирост IPS и прирост онлайн A/B-метрики для двух финалистов. Все три показателя сходятся на том, что MediaFM превосходит SeqCLIP. Онлайн-показатели измерены относительно базовой модели на основе ID, их абсолютные значения скрыты.

Хранилище эмбеддингов Netflix (Embedding Store)

Ничто из этого не было бы практичным без общей инфраструктуры. Каждый эмбеддинг, упомянутый в этой статье — CLIP для обложек, SeqCLIP и MediaFM для видеопревью, — хранится в хранилище эмбеддингов Netflix (Netflix Embedding Store), компоненте AI-платформы Netflix, который содержит плотные эмбеддинги для тайтлов, игр, профилей пользователей и мультимедийных материалов. Базовая модель один раз кодирует сырой контент ассета в плотный вектор, а Embedding Store обслуживает этот вектор для всех последующих систем (модели обложек, ранжировщика с учетом запросов, модели видеопревью и других) через единый интерфейс. Что критически важно, он выдает абсолютно те же эмбеддинги во время обучения и во время онлайн-инференса, поэтому между тем, на чем модель обучается, и тем, что она видит в продакшене, нет смещения (скью).

Его ключевое свойство заключается в том, что он отделяет обновление базовых моделей от развертывания моделей персонализации. Новый эмбеддинг (или новая версия существующего) может быть зарегистрирован, заполнен по всему каталогу и проверен полностью автономно, без затрагивания кода обучения или обслуживания любой модели, которая его использует. Попав в Embedding Store, он становится доступным для любой модели ранжирования и персонализации исключительно через конфигурацию: без изменения нижестоящего кода и без скоординированных релизов. Именно это позволило нам внедрить CLIP в модель обложек, запустить ранжировщик с учетом запросов на тех же векторах и прокатить MediaFM через модель видеопревью — каждое как независимое изменение, а не как межкомандную миграцию.

Эмбеддинги базовых моделей (CLIP, SeqCLIP, MediaFM) сохраняются единожды и используются всеми зависимыми системами: обложками, поисковыми обложками, видеопревью и другими ранжировщиками.

Выводы и дальнейшие планы

Можно выделить три главных урока.

  1. Предобученные CLIP-эмбеддинги позволили нам объединить пять моделей обложек в одну, одновременно повысив производительность на обделенных данными холстах. Этот плюс особенно ярко проявился при запуске редизайна домашнего экрана телевизоров.
  2. Для видео мультимодальность побеждает безоговорочно. Аудио- и текстовые сигналы, недоступные чисто визуальному энкодеру, вывели MediaFM вперед по сравнению с SeqCLIP.
  3. Дешевая прокси-задача приносит большую экономию, позволяя эффективно отсеивать кандидатов до запуска полноценных сквозных экспериментов и онлайн A/B-тестов.

В дальнейшем мы планируем развивать Embedding Store в направлении создания единого общего семантического пространства для изображений, текста и видео. Такое унифицированное представление позволит осуществлять кросс-модальный поиск (например, сопоставление видеопревью с поисковым запросом или статической обложки с видеопревью, из которого она была получена), а также обеспечит единое ранжирование ассетов по типам поверхностей и более цельный, интуитивный процесс поиска контента для пользователей по всему миру.

Благодарности

Мы благодарим Аниша Вартакави (Aneesh Vartakavi), Сантьяго Кастро (Santiago Castro) и Авниша Полуджу (Avneesh Saluja) за работу над CLIP-эмбеддингами и MediaFM, которая сделала возможным создание описанных здесь контент-осведомленных моделей, а также Ратну Кавури (Ratna Kavuri) — за бэкенд-системы, обеспечивающие мультимедийную персонализацию в продакшене.

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

© Netflix Tech Blog