Персонализированная рекомендательная система Netflix устроена довольно сложно. В её состав входят различные специализированные модели машинного обучения, каждаяПерсонализированная рекомендательная система Netflix устроена довольно сложно. В её состав входят различные специализированные модели машинного обучения, каждая

[Перевод] Базовая модель для персонализированных рекомендаций Netflix

2026/02/16 15:40
16м. чтение
f6d89833bf68c95adcacc634c9421beb.png

Персонализированная рекомендательная система Netflix устроена довольно сложно. В её состав входят различные специализированные модели машинного обучения, каждая из которых ориентирована на решение особых задач, в том числе — на обслуживание разделов «Continue Watching» («Продолжить просмотр») и «Today’s Top Picks for You» («Сегодняшние топ-рекомендации для вас»). (Подробности об этом вы можете найти в нашем недавнем обзоре). Но по мере того, как мы расширяем используемый нами набор алгоритмов персонализации, стремясь соответствовать растущим бизнес-потребностям, поддержка рекомендательной системы становится довольно-таки затратной. Более того, мы столкнулись со сложностями при переносе инновационных решений из одной модели в другую. Это так из-за того, что большинство моделей обучаются независимо друг от друга, хотя и пользуются одними и теми же источниками данных. Всё это логично привело к возникновению необходимости в новой архитектуре рекомендательной системы, где модели обучаются предпочтениям пользователей централизованно. Это расширяет доступность и полезность результатов обучения одних моделей для других моделей.

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

К созданию базовой рекомендательной модели нас подтолкнул сдвиг парадигмы в сфере обработки естественного языка (Natural Language Processing, NLP) в сторону больших языковых моделей (Large Language Models, LLM). В сфере NLP наблюдается тренд на переход от большого количества маленьких специализированных моделей к единой большой языковой модели. Такая модель способна решать множество задач, делая это либо в своём исходном виде, либо — после минимального дообучения. Вот основные особенности этого сдвига:

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

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

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

Данные

В Netflix уровень вовлечённости пользователей во взаимодействие с платформой варьируется в весьма широких пределах — от нерегулярного листания каталога до увлечённого просмотра фильмов. Учитывая то, что к концу 2024 года у нас было более 300 миллионов пользователей, это означает сотни миллиардов сеансов взаимодействия с системой. Это — огромнейший набор данных, масштабы которого сравнимы с объёмом токенов больших языковых моделей. Правда, как и в случае с LLM, качество данных часто важнее одного лишь их объёма. Для того чтобы эффективно использовать такие данные, мы занимаемся токенизацией взаимодействий, обеспечивая идентификацию значимых событий и минимизируя избыточность в данных.

Токенизация сведений о сеансах взаимодействия пользователя с платформой

Не все непосредственные действия пользователя вносят одинаково важный вклад в понимание его предпочтений. Токенизация помогает определить то, что именно представляет собой значимый «токен» в последовательности. По аналогии с алгоритмом BPE (Byte Pair Encoding), применяемым в NLP, мы можем рассматривать токенизацию как объединение соседних действий и формирование из них новых токенов более высокого уровня. Но, в отличие от языковой токенизации, создание этих новых токенов требует тщательного отбора той информации, которую нужно сохранить. Например, может понадобиться суммирование общего времени просмотра материалов, или, например, различные типы вовлечённости пользователей могут нуждаться в агрегировании, что позволит сохранить важные детали о предпочтениях пользователей.

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

Компромисс между детализированными данными и сжатием последовательностей напоминает баланс между размером словаря и параметрами контекстного окна в LLM. В нашем случае цель заключается в том, чтобы найти баланс между длиной истории взаимодействия пользователя с системой и уровнем деталей, хранимых в отдельных токенах. Если при токенизации теряется слишком много информации — мы рискуем утратить ценные сигналы, а работа с чрезмерно детализированной последовательностью может привести к превышению практических пределов по времени обработки данных и по объёму используемой памяти.

Даже при применении подобных стратегий история взаимодействия активного пользователя с платформой может быть представлена тысячами событий, что превышает возможности трансформенных моделей со стандартными слоями внутреннего внимания. В рекомендательных системах ширина контекстного окна в ходе инференса часто ограничена сотнями событий. И это так не из-за того, что модели неспособны работать с более длинными последовательностями. Всё дело в том, что при работе подобных систем обычно требуется обеспечить уровень задержек, измеряемый миллисекундами. Это ограничение оказывается более жёстким, чем в типичных системах, использующих LLM, где приемлемо более длительное время ожидания ответа модели, измеряемое секундами.

Для того чтобы справляться с этими проблемами уже в ходе обучения модели, мы внедрили два ключевых решения:

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

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

Во время инференса, когда нужно многошаговое декодирование данных, мы можем задействовать KV-кеширование для эффективного использования результатов предыдущих вычислений и поддержания низкого уровня задержек в системе.

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

Информация в каждом «токене»

В то время как первый шаг нашего процесса токенизации направлен на структурирование последовательностей сведений о взаимодействии пользователя с системой, следующий шаг, очень важный, заключается в принятии решений о том, какая именно ценная дополнительная информация должна содержаться в каждом из токенов. В сфере LLM обычно, для представления входных токенов, используют единое пространство эмбеддингов. А в нашем случае сведения о событиях взаимодействия пользователя с системой упакованы в токены вместе с разноплановыми подробностями. Среди них — атрибуты самого действия (региональные настройки, время, длительность, тип устройства), а так же — информация о самом контенте (ID материала и метаданные, вроде жанра и страны выпуска). Большая часть этих признаков, особенно — категориальных, напрямую внедряется в модель, реализуя методику сквозного обучения моделей. Но работа с определёнными признаками требует особого внимания. Например, временные метки нуждаются в дополнительной обработке, благодаря чему система получает сведения как об абсолютном, так и об относительном времени. При этом показатели абсолютного времени особенно важны для понимания поведения пользователя, зависящего от времени.

Для повышения точности предсказаний, выдаваемых последовательными рекомендательными системами, мы организовали признаки токенов, разделив их на две категории:

  1. Признаки, доступные в момент запроса. Среди них — время входа в систему, устройство, местоположение пользователя.

  2. Признаки, доступные после выполнения действия. Это — подробности, доступные после того, как произошло взаимодействие пользователя с системой. Это, например, конкретный видеоматериал, с которым взаимодействовал пользователь, или длительность такого взаимодействия.

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

Факторы, влияющие на целевые показатели и архитектуру модели

Как уже говорилось, наш стандартный подход использует авторегрессионную модель, предсказывающую следующий токен, что делает её похожей на GPT. Такая стратегия эффективно использует большие объёмы неразмеченных данных, отражающих взаимодействие пользователя с платформой. Существуют многократные подтверждения успешного применения такого подхода в рекомендательных системах [1–3]. Но, учитывая существенные различия между языковыми задачами и задачами рекомендательных систем, мы сделали несколько важных изменений, касающихся целевых показателей модели.

Во-первых, в ходе предварительного обучения типичной LLM, такой как GPT, каждый целевой токен обычно обрабатывается с применением одинаковых весов. А в нашей модели, в отличие от такого подхода, не все сведения о взаимодействиях пользователя с системой имеют одинаковую значимость. Например, воспроизведение 5-минутного трейлера не должно иметь такой же вес, как 2-х часовой просмотр полноценного фильма. Мы столкнулись с серьёзными сложностями при попытке согласовать долговременное обеспечение удовлетворённости пользователя и конкретные сеансы его взаимодействия с платформой, а так же — рекомендации. Для решения этой задачи мы можем применить в процессе обучения целевой показатель вывода модели, представленный несколькими токенами, когда модель на каждом шаге работы предсказывает n следующих токенов, а не один [4]. Такой подход заставляет модель выявлять долговременные зависимости и избегать недальновидных прогнозов, концентрируясь лишь на ближайших событиях.

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

Уникальные задачи, связанные с базовой моделью рекомендательной системы

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

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

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

  2. Работа с материалами, которые ещё никто не смотрел. Даже при применении инкрементального обучения модели нет гарантии того, что она будет эффективно обучаться на новых сущностях (например — на только что выпущенных фильмах). Возможно и такое, что нам встретятся новые видеоматериалы, которые не включены в обучающие данные, даже учитывая то, что мы регулярно обучаем базовую модель. В результате, кроме прочего, важно позволить базовой модели использовать метаданные входных и выходных сущностей, а не только историю взаимодействия пользователей с системой. Поэтому наша базовая модель комбинирует и обучаемые эмбеддинги, связанные с ID материалов, и обучаемые эмбеддинги из метаданных. Эта идея представлена на следующей схеме.

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

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

Прикладные приложения, пользующиеся рекомендательной системой и связанные с ними сложности

Базовая модель нашей рекомендательной системы спроектирована так, чтобы она разбиралась бы в долговременных предпочтениях пользователей и могла бы быть использована различными приложениями для решения разнообразных задач:

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

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

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

Масштабирование базовой модели для системы рекомендаций Netflix

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

Взаимоотношения между объёмом параметров модели и сравнительным улучшением результатов её работы. График отражает проявление закона масштабирования в рекомендательном моделировании, показывая устойчивый рост качества модели по мере увеличения её размеров. На оси X использована логарифмическая шкала, что позволяет лучше отразить рост показателей при увеличении размеров модели на разные величины.
Взаимоотношения между объёмом параметров модели и сравнительным улучшением результатов её работы. График отражает проявление закона масштабирования в рекомендательном моделировании, показывая устойчивый рост качества модели по мере увеличения её размеров. На оси X использована логарифмическая шкала, что позволяет лучше отразить рост показателей при увеличении размеров модели на разные величины.

Итоги

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

Литература

  1. C. K. Kang and J. McAuley, «Self-Attentive Sequential Recommendation,» 2018 IEEE International Conference on Data Mining (ICDM), Singapore, 2018, pp. 197–206, doi: 10.1109/ICDM.2018.00035.

  2. F. Sun et al., «BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer,» Proceedings of the 28th ACM International Conference on Information and Knowledge Management (CIKM ‘19), Beijing, China, 2019, pp. 1441–1450, doi: 10.1145/3357384.3357895.

  3. J. Zhai et al., «Actions Speak Louder than Words: Trillion-Parameter Sequential Transducers for Generative Recommendations,» arXiv preprint arXiv:2402.17152, 2024.

  4. F. Gloeckle, B. Youbi Idrissi, B. Rozière, D. Lopez-Paz, and G. Synnaeve, «Better & Faster Large Language Models via Multi-token Prediction,» arXiv preprint arXiv:2404.19737, Apr. 2024.

О, а приходите к нам работать? 🤗 💰

Мы в wunderfund.io занимаемся высокочастотной алготорговлей с 2014 года. Высокочастотная торговля — это непрерывное соревнование лучших программистов и математиков всего мира. Присоединившись к нам, вы станете частью этой увлекательной схватки.

Мы предлагаем интересные и сложные задачи по анализу данных и low latency разработке для увлеченных исследователей и программистов. Гибкий график и никакой бюрократии, решения быстро принимаются и воплощаются в жизнь.

Сейчас мы ищем плюсовиков, питонистов, дата-инженеров и мл-рисерчеров.

Источник

Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу [email protected] для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.