В последнее время разговоры о машинном обучении звучат повсюду. Его применяют не только крупные IT-гиганты, но и представители других индустрий. На конкретном примере рассмотрим, почему за последние годы сфера ML стала такой популярной.
Привет! Меня зовут Ефим, я MLOps-инженер в Selectel. В статье проиллюстрирую, как ML помогает компаниям предоставлять для пользователя более качественные продукты и услуги.
Где еще узнать про ML в Netflix?
Netflix накопил большой опыт в использовании машинного обучения и анализа данных. Компания охотно делится полученными знаниями, так что я решил сделать подборку источников, из которых можно узнать об интересных сценариях применения ML и улучшить понимание темы в целом.
Например, в статье «Causal Machine Learning for Creative Insights» описывается то, как через A/B-тестирование осуществляется проверка количества людей на постере фильма, цвета фона, выражений лиц и т. д.
Ниже я рекомендую источники, с помощью которых каждый сможет найти для себя интересные сценарии с применением ML от Netflix.
Блог Netflix на Medium
Компания ведет живой и местами внушающий трепет технический блог о том, как различные нововведения позволяют им улучшать пользовательский опыт.
Разнообразие тем статей выходит далеко за пределы рассматриваемого вопроса. Ограничимся наиболее интересными публикациями о ML на мой взгляд:
«New Series: Creating Media with Machine Learning»,
«Interpreting A/B test results: false positives and statistical significance»,
«Interpreting A/B test results: false negatives and power»,
«Selecting the best artwork for videos through A/B testing».
YouTube
Небольшие демонстрации работы ML можно найти на YouTube-канале компании, но я советую ознакомиться с более детальными разборами. Например, доклады «Trends in Recommendation & Personalization at Netflix» и «Why your ML Infrastructure team need ML practitioners».
Зачем в Netflix применяется ML?
Здесь буду краток. Netflix существует для того, чтобы приносить прибыль, так что ключевая цель использования ML — ее максимизация.
В книге «Рекомендательные системы на практике» утверждается следующее:
Пожалуй, здесь нечего добавить. Можем двигаться дальше.
Как в Netflix применяется ML?
Это тот случай, когда простота вопроса с лихвой компенсируется сложностью и объемом ответа. Я не осмелюсь давать исчерпывающее описание, учитывающее все возможные нюансы, но постараюсь рассказать о принципе работы в общих чертах.
Если же вы хотите погрузиться в устройство ML в Netflix с головой, то рекомендую ознакомиться с докладами «Artwork Personalization at Netflix» и «Learning a Personalized Homepage».
Большинство аспектов пользовательского опыта формируется с помощью алгоритмов машинного обучения. Примером тому могут послужить статьи о формировании персонализированной домашней страницы и выборе персонализированного постера для контента.
Любые изменения и нововведения в платформе пропускаются через процедуру A/B-тестирования. Давайте рассмотрим этот аспект чуть более детально.
Как уже было сказано, одна из основных задач сервиса — удерживать ваш интерес и побуждать продлевать подписку. Для этого необходимо иметь возможность гибкой и детализированной настройки сервиса, например:
- На главном экране лучше показывать отрывок фильма или постер?
- Где должно быть меню?
- Сколько уровней вложенностей должно быть в меню?
- Где расположить заголовок фильма, а где — его описание?
- Какой фильм показывать при входе?
- Звук по умолчанию должен быть включен или выключен?
Как говорится в первой статье цикла по A/B-тестам в Netflix.
В этой же статье есть меткое замечание: «Принимать решения легко — сложно принимать правильные решения». Следом приводится список возможных подходов к принятию решений, который можно свести к четырем пунктам:
- решение идет сверху вниз от менеджмента, бизнес-аналитиков и т. д. ;
- решение вырабатывается на основе внутренних дискуссий, участие в которых будут принимать специалисты с разной степенью понимания проблематики. В идеале — эксперты соответствующей области;
- решение вырабатывается на основе наблюдений за конкурентами;
- решение вырабатывается в результате комбинации подходов, перечисленных выше.
Как было справедливо подмечено в материале, во всех вариантах количество мнений и их разнообразие радикально ограничено. Собственно, тут в игру и вступает A/B-тест. Как это выглядит на практике? Здесь к нам на помощь приходит вторая статья из цикла. В ней описывается гипотеза:
И вот у вас есть вариант A:
И вариант B:
Далее мы раскидаем варианты A и B на две группы пользователей и смотрим на то, как они отреагируют:
Масса вопросов возникает, когда начинаешь задумываться о проведении эксперимента.
- Сколько нужно участников тестирования, чтобы считать результаты достоверными?
- Как убедиться, что в двух выборках отличается только тестируемое изменение?
- Какие метрики имеет смысл рассматривать при проведении конкретного A/B-теста?
- Если наблюдается статистически значимое изменение интересующей нас метрики, то как быть уверенным в том, что оно произошло именно по причине нового интерфейса?
- Что считать статистически значимым изменением?
Далее в главе «Holding everything else constant» приводится отличный пример того, как неверная постановка эксперимента может привести к неверным выводам.
Список статей на тему A/B-тестирования в Netflix:
- «Decision Making at Netflix»,
- «What is an A/B Test?»,
- «Interpreting A/B test results: false positives and statistical significance»,
- «Interpreting A/B test results: false negatives and power»,
- «Building confidence in a decision»,
- «Experimentation is a major focus of Data Science across Netflix»,
- «Netflix: A Culture of Learning»,
- «It’s All A/Bout Testing: The Netflix Experimentation Platform»,
- «Selecting the best artwork for videos through A/B testing»,
- «A/B Testing and Beyond: Improving the Netflix Streaming Experience with»,
- «Experimentation and Data Science»,«Decision Making at Netflix».
В упомянутых сценариях для обучения используются массивные выборки данных. Как вы понимаете, это накладывает ограничения на выбор инструментов и способ их использования.
Какие данные могут использоваться?
Здесь я снова сошлюсь на книгу Кима, поскольку в ней присутствует целая глава, посвященная заданному вопросу. В ее начале есть интересный фрагмент:
Вероятно, автор книги имел в виду не вегетарианцев, а людей, придерживающихся здорового образа жизни. Делитесь в комментариях догадками о том, почему вегетарианец не может позволить себе пиво.
С одной стороны, неявные факты о поведении пользователя дают рекомендательной системе гораздо больше полезной информации. Однако, такая информация подчас вскрывает, как сильно могут отличаться реальные интересы пользователя от тех, которые ему хотелось бы иметь.
Netflix в данном случае не является плохой или хорошей. Она кормит нас тем, о желании чего свидетельствует наша неявная обратная связь. На ум приходит кадр:
Как уже упоминалось, все элементы пользовательского интерфейса в платформе Netflix персонализируются под пользователя:
Получается, что речь идет о сборе разнообразных событий взаимодействия пользователя с элементами платформы. Big brother is watching you.
Далее у Кима идет более конкретный раздел «Какие факты собирает Netflix?»:
Как видно из таблицы 1, события воспринимаются системой как опорные факты, поскольку они помогают выявить интересы пользователя. Таблица 2 показывает, в каком виде эти факты мог зафиксировать сервис Netflix.
Думаю, что тут имеет смысл закончить с обозначенным вопросом, поскольку маловероятно, что мы сможем привести более подробное описание. Разумеется, информация выше — это гипотетическое предположение автора книги. Однако у нас пока нет возможности устроить аудит баз данных Netflix, так что будем довольствоваться тем, что есть.
О нюансах
Согласно порталу Netflix для инвесторов, на 21.07.2023 количество пользователей Netflix достигло 238 миллионов. Что если посчитать, сколько событий будет сгенерировано ими за один вечер? Допустим, в среднем каждый пользователь за вечер посмотрит парочку фильмов:
146 ГБ! И это в ситуации, когда пользователи зашли, сразу же выбрали и посмотрели два фильма подряд. А если они перед этим немного полистают каталог?
Например, каждый пользователь перед просмотром пролистал 15 фильмов. Получится 146/2*15=1095 ГБ, т. е. свыше терабайта за один вечер. Это при условии, что событий в пересчете на один фильм будет всего пять. Вдобавок, мы не говорим о том, сколько весят сами фильмы, логи, которые генерируются компонентами сервиса, пользовательские базы и т. д.
Конечно, в этих подсчетах не учитывается масса вещей, но основная их цель в другом. Мы проиллюстрировали тот факт, что у Netflix есть реальная потребность в умении работать с самой что ни на есть Big Data.
Второй момент. Вернемся к тому, что в платформе персонализируется каждый ее элемент и выбор проходит через фильтр A/B-тестов. Но дело в том, что такой уровень адаптивности платформы может быть достигнут только если команды UI-, UX-, Backend-разработки будут проникнуты этой идеей.
Все процессы разработки должны быть выстроены так, чтобы было легко формировать выборки пользователей, на которых можно будет проводить A/B-тесты. Сама же платформа должна быть построена таким образом, чтобы можно было быстро вносить изменения в целях A/B-теста.
Третий момент: такой объем фильмом и сериалов (большую часть из которых, разумеется, производит не Netflix) предполагает соответствующий набор контрактов на право проката. Каждый из них может отличаться, например, в силу того, что один заключен в Германии, а другой в Китае.
Четвертый момент: какую-то часть контента Netflix производит сам. Сколько средств на это можно и нужно направить? Как это организовать? Каких специалистов нанять и какие условия работы им необходимы?
Пятый момент: устройство пользователя. Ведь он может смотреть фильм на телефоне, ноутбуке, телевизоре и т. д. Насколько у него хорошее интернет-соединение?
Это лишь часть той головной боли, которая в подобных компаниях (по моему видению) может возникнуть. Также понятно, что в каждом случае можно в той или оной манере попытаться извлечь пользу из методов ML. Например, в статье «Using Machine Learning to Improve Streaming Quality at Netflix» авторы описывают использование машинного обучения для улучшения качества стриминга.
Заключение
Итак, мы мельком посмотрели на применение методов машинного обучения в Netflix. Само собой, у нас не было цели покрыть весь объем ML-деятельности, которая осуществляется в компании. Беглого взгляда на их блог будет достаточно для того, чтобы понять, что это займет очень много времени.
Тем не менее, можно сделать вывод на основе рассмотренных примеров: ML — это чертовски важная составляющая процессов в Netflix, которая со временем, вероятно, станет еще более важной.
Читайте также:
- Как учиться, чтобы быть нужнее ИИ, — выяснили, как оставаться востребованным специалистом в эпоху нейросетей
- Как AI-инструменты могут облегчить жизнь продакт-менеджера и помочь в ежедневных задачах
- Чипсы со вкусом ошибки HTTP 500, консистентные стили и старые-добрые баги: особенности и проблемы Midjourney V6