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

Вы садитесь перед телевизором или открываете потоковое приложение на своем смартфоне. Что вы выбираете для просмотра?

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

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

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

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

В этой статье мы поговорим о том, что мы делаем с машинным обучением, чтобы ваше новое любимое шоу ждало вас при запуске Discovery+ или HBO Max.

Переход от человеческого процесса к машинному

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

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

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

Конечно, мы не просто хотим предоставить вам контент, который вам уже нравится. Редакторы-люди очень хорошо умеют находить более широкую группу связей между СМИ. Они будут рекомендовать что-то не потому, что метаданные говорят, что здесь есть последовательность действий, а здесь — романтическая последовательность, а потому, что редактор соединяет точки, которые нелегко перевести в ярлыки. Вам понравился фильм этого режиссера; возможно, вам понравится их работа в жанре, который вы обычно не исследуете. Pandora опробовала эту модель для музыки, заставив людей-редакторов явно встраивать связи между песнями.

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

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

Машины, которые рекомендуют вам фильмы

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

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

Мы не собираемся изобретать велосипед; есть много технологий с открытым исходным кодом и корпоративных решений, которые мы рассматриваем, чтобы добавить в наш стек. Мы рассматриваем такие технологии, как Feast, для хранилища функций и механизмы логического вывода, такие как KServe и MLflow, для управления нашими экспериментами и конвейером развертывания. Благодаря нашим специализированным инструментам и превосходным технологиям с открытым исходным кодом, представленным на рынке, мы можем разрабатывать решения машинного обучения, которые подходят для наших конкретных случаев использования.

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

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

Конечно, инструменты, алгоритмы и модели — не самые сложные части машинного обучения. Это данные.

Настоящая проблема — данные

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

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

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

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

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

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

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

Переводил с английского ваш покорный слуга.
Поделиться:

Похожие публикации

Тут ничего нет

Нет комментариев