Почему Netflix отказался от созданных вручную признаков

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

Готовые большие языковые модели (LLM) не работали «из коробки». Они склонялись к самым популярным тайтлам, иногда галлюцинировали несуществующими объектами и с трудом соблюдали бизнес-правила, которые обеспечивают безопасность и релевантность рекомендаций. Поэтому Netflix разработал специализированный конвейер на базе LLM, который сохраняет сильные стороны языковой модели, соблюдая при этом производственные ограничения.

Устройство GenRec: двухэтапный конвейер обучения

GenRec состоит из двух отдельных этапов:

  1. Тонкая настройка базовой модели (fine-tuning) — Netflix берет языковую модель с открытыми весами и дообучает её на внутренних данных о просмотрах. Это обучает модель лексике каталога и паттернам поведения пользователей без изменения её основной архитектуры.
  2. Ранжирование рекомендаций — второй раунд обучения превращает дообученную модель в ранжировщик, который выставляет оценки потенциальным тайтлам для конкретного пользователя. Netflix часто обновляет этот этап, чтобы модель оставалась актуальной с учетом новых релизов и меняющихся трендов.

Ключевое отличие от устаревшей системы заключается в том, как история пользователя подается в модель. Вместо сжатия сессий просмотра в плотные векторы, GenRec переводит каждое взаимодействие — длительность просмотра, «палец вверх» или «палец вниз», преждевременное прекращение просмотра — в простые предложения на английском языке. Затем модель считывает всю сессию как короткий диалог, улавливая тонкие изменения в жанровых предпочтениях или настроении без какого-либо явного проектирования признаков (feature engineering).

Прирост производительности и эффективности

В ходе четырехнедельного эксперимента, в котором GenRec был открыт для 10% трафика Netflix, новая система показала статистически значимый рост по двум группам метрик:

  • Краткосрочное вовлечение — рост на 0,115% основных сигналов кликабельности и времени просмотра, которые управляют ежедневными рекомендациями.
  • Долгосрочные ключевые метрики — увеличение на 0,006% показателей удержания подписчиков и общей удовлетворенности, которые наиболее важны для бизнеса.

В офлайн-режиме качество ранжирования на отложенной выборке улучшилось на 1,6% по сравнению с текущим производственным базовым уровнем. Еще более поразительна эффективность использования данных: второму этапу обучения потребовалось примерно в 40 раз меньше размеченных примеров, чем традиционному конвейеру, для достижения того же уровня производительности.

Чтобы контролировать расходы на вычисления, Netflix запускает модель с помощью vLLM — стека для обслуживания (serving stack), который выставляет оценки каждому кандидату за один прямой проход (forward pass), а не генерирует текст. Система также применяет агрессивную фильтрацию, чтобы в контекстном окне модели находились только события с высоким уровнем значимости (high-signal events), что сокращает количество ненужных токенов и снижает задержку.

Что означает переход от «признаков» к «контексту»

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

Оставшиеся препятствия

Рекомендательные системы на базе LLM не являются панацеей. Их склонность придавать избыточное значение популярным элементам всё еще вносит смещение в каталог, а потребность в мощных GPU повышает операционные расходы. Даже с использованием vLLM и агрессивной фильтрации, обслуживание большой языковой модели в масштабах Netflix требует тщательного проектирования для соблюдения целевых показателей задержки (latency).