Tubi TV — один из крупнейших сайтов с бесплатным видео, и в 2020 году мы объявили о 33 миллионах активных пользователей в месяц, и это число продолжает быстро расти. Наше машинное обучение поддерживает различные области компании, такие как рекомендации главной страницы, похожий контент, поиск и популярные столбцы. Не только это, но и машинное обучение также сияет в таких областях, как реклама, приобретение контента, привлечение пользователей и отправка электронной почты пользователям. Машинное обучение повсюду и является краеугольным камнем бизнеса Tubi. И наша конечная цель состоит в том, чтобы создатьМодельная компания.
(Продукт Туби)
Внутренние системы Tubi со временем сильно повзрослели, но многие важные уроки были извлечены из первых дней создания системы. В этой статье мы поделимся некоторым практическим опытом.
Возможно, вы только что присоединились к команде машинного обучения в качестве первого члена, и в этот момент вы можете спросить себя:
"Что мне теперь делать? Должен ли я прямо сейчас перейти к ультрасовременному глубокому обучению/обучению с подкреплением?"
Нет, еще не время!
сначала измерь
Хотя всем хотелось бы, чтобы все заработало как можно скорее, еще слишком рано изучать эти сложные модели. На данном этапе более важно создать простую комплексную экспериментальную систему или систему A/B-тестирования.
Зачем? Хотя машинное обучение может принести потрясающие результаты, во многих случаях оно ничем не отличается от магии! Но люди разные, и алгоритмы, которые хорошо работают у одних, могут плохо работать у других. Поэтому очень важно полностью понять отзывы пользователей с помощью A/B-тестирования, прежде чем новый алгоритм будет запущен напрямую.
Настроить базовую систему A/B-тестирования несложно. Существует множество библиотек с открытым исходным кодом и платных сервисов, вам не нужно создавать все с нуля. Ранняя система A/B-тестирования Tubi также была очень простой, а затем постепенно развивалась.
(простая экспериментальная платформа)
Составьте онлайн-план перед экспериментом
Наличие системы A/B-тестирования важно, но еще важнееКак использовать данные для принятия решений. Самая распространенная плохая практика, с которой мы сталкиваемся, — это отсутствие плана действий перед экспериментом. Хотя мы не можем предсказать будущее, это ни в коем случае не является оправданием для таких заявлений, как:
«Мы не знаем, сработает эксперимент или нет. Почему бы нам сначала не пойти на эксперимент, не увидеть результаты, а затем проанализировать их и принять решение, исходя из ситуации».
Это очень плохая идея. Если вы будете делать это все время, вы всегда будете сталкиваться со многими экспериментами, в которых одни индикаторы будут положительными, а другие — отрицательными. В этом случае люди из разных команд будут спорить об этих метриках и не смогут выйти в эфир. Эта ситуация противоречит цели A/B-тестирования:Эксперименты приводят к лучшим решениям.
(Бесконечные споры о том, выходить ли в интернет после эксперимента)
Решение этой проблемы на самом деле довольно простое:
-
Сначала сделайте один или дваОсновные показатели для принятия решения выйти в интернет, а затем установить некоторые второстепенные индикаторы для итерации;
-
Перед запуском эксперимента коллективно сформулируйте план запуска. Этот план запуска должен быть очень простым и понятным: если основной показатель значительно положителен, или основной показатель нейтрален, а вторичный показатель положителен, то он выйдет в онлайн, иначе не выйдет в онлайн.
(Пример плана запуска перед экспериментом)
Таким образом, мы можем идентифицировать цель до начала эксперимента. План запуска должен быть определен, и все не будут спорить, стоит ли его запускать после эксперимента.
Простая модель: модель подобия + тепловая модель
После запуска базовой системы A/B-тестирования вы можете начать думать о том, нужно ли вам приступать к разработке сложных систем глубокого обучения и обучения с подкреплением. Однако еще слишком рано.
Поскольку он является первым инженером по машинному обучению в команде, в настоящее время в компании должно быть мало сотрудничества с другими инженерами данных и бэкэнд-инженерами, но есть много приложений, требующих поддержки алгоритмов. Когда мы принимаем такое решение, очень важно рассчитать ROI (коэффициент возврата инвестиций).Наиболее подходящий алгоритм на данный момент должен легко выходить в интернет, прост в обслуживании и может приносить положительные результаты.. Лучше всего начать с простой модели.
Сортировать по популярности
Сортировка есть везде, и самый простой способ сортировки — это сортировка по популярности.
Есть много определений популярности, и самый простой способ на Tubi — это время просмотра, например, время просмотра фильма за последний день, три дня или семь дней. Мы обнаружили, что использование последних данных, как правило, работает лучше, например, использование данных за прошедший день лучше, чем данные за последние семь дней.
Еще один важный момент заключается в том, что при расчете тепла вы должны использовать тепло, выделяемое естественным путем, и удалять тепло, вызванное продвижением, ручным доливом и т. Д., И эффект часто лучше.
Все возможно
Другой способ сортировки — использовать встраивание, мы можем сгенерировать встраивание для каждого типа объектов в системе, а затем использовать сортировку по сходству. Возьмем пример Tubi: видео — это ядро всей экосистемы, мы можем сначала сгенерировать встраивание для видео, а затем использовать его для представления других объектов.
Apache Spark поставляется с двумя очень мощными алгоритмами: word2vec и als (совместная фильтрация). Мы можем легко создавать вложения видео, используя историю просмотров пользователей.
(Извлечение встраивания видео с помощью совместной фильтрации)
После создания вложений видео мы можем создавать вложения для других объектов.
Таким образом, мы можем создавать вложения для различных других объектов, таких как пользователи, платформы, почтовые индексы, жанры фильмов и т. д. однаждыВсе виды объектов имеют вложение, мы можем вычислить косинусное сходство. С помощью этого сходства мы можем рассчитать различные проблемы ранжирования, такие как: самые популярные видео, платформы, географические местоположения или самые похожие города и платформы.
Итерация — король
После того, как вы реализовали некоторые базовые алгоритмы, вы можете начать экспериментировать с некоторыми из самых передовых методов, таких как обучение с подкреплением. Хотя мы тоже пытаемся двигаться в том же направлении, мы думаем немного по-другому. Мы вкладываем больше времени и энергии в другое направление: как сделать итерации быстрее.Мы обнаружили, что быстрые итерации окупаются больше всего.
(используя LSTM в рекомендациях фильмов)
В мире машинного обучения так много идей и интуиций. Мы все можем легко придумать десятки направлений, которые стоит попробовать: больше функций, более глубокие модели, разные модели отзыва, разные стратифицированные выборки, многоцелевая оптимизация, исследование и эксплуатация и многое другое. Мы должны учитывать коэффициент возврата инвестиций при выборе этих вариантов, легко оценить стоимость, но трудно рассчитать доход.
Если у нас нет большого количества предварительных знаний, нам трудно оценить доходность. Однако, согласно нашей практике, проблемы каждой компании разные,Передовой опыт других компаний не обязательно легко переносится.. Нам нужен способ накопления опыта внутри компании: чем больше, тем лучше, чем раньше, тем лучше.
На практике в Tubi мы максимально упрощаем запуск A/B-тестирования. Итеративное планирование нашего алгоритма машинного обучения почти полностью зависит от наблюдений, которые мы получаем в результате различных экспериментов.В первые дни, когда у нас было только два или три студента, которые повторяли основной алгоритм, мы могли проводить не менее 50 экспериментов в год.. Каждый эксперимент включает в себя все этапы: исследование алгоритма, его реализацию, A/B-тестирование, окончательную презентацию и написание статьи. Требуется небольшая помощь от других групп.
(Используйте эксперименты, чтобы определить итеративный маршрут)
Суммировать
За последние несколько лет мы накопили большой опыт построения быстроитеративной системы машинного обучения. Мы поделимся с вами в следующий раз. Если вы также увлечены идеей повторения алгоритмов с помощью экспериментов, присоединяйтесь к нам!
Туби дал тебе пощечину и пригласил тебя **** присоединиться к нашей большой семье!
На данный момент открытые позиции:
-
Старший инженер по развитию данных
-
Старший инженер по машинному обучению
-
Senior Backend Engineer - направление Elixir
-
Senior Backend Engineer - направление Scala
-
Старший инженер Android
-
Старший iOS-инженер
-
Старший фронтенд-инженер
-
Старший интерфейсный инженер - Мультимедиа
-
Старший инженер по контролю качества
Автор этой статьи: Чен Ран Туби Старший руководитель отдела машинного обучения
Для получения более подробной информации о вакансии, пожалуйста, нажмите на наш официальный сайт:chinateam.tubi.tv/Или Boss Zhipin ищет «Bitu Technology», чтобы посетить нашу домашнюю страницу по подбору персонала.