«Наша цель в том, чтобы людям было интереснее смотреть игру»

«Наша цель в том, чтобы людям было интереснее смотреть игру»

Дата-сайентисты из Parimatch Tech — о рекомендательной системе, создании моделей и развитии data science.

Все больше украинских бизнесов понимают важность применения data science при принятии ключевых решений. В топ-менеджменте появляются должности Chief Data Officer, а дата-сайентистов привлекают для создания моделей, используемых внутри компании.

Мы поговорили о том, как работают с данными в Parimatch Tech, с Senior Data Scientist’кой и лекторкой курса «Python для Data Science» Анной Пылевой, Senior Data Scientist’ом Сергеем Евтуховым, Middle Product Manager’ом Андреем Нестеренко и Senior Cloud Engineer’ом Максимом Воитко.

Структура и задачи команды

Анна: У нас два senior data scientist'а, а также junior, который недавно присоединился к команде. Есть ML-инженер с упором на разработку и инфраструктуру для моделей машинного обучения, который не занимается рисерчем. Он помогает выкатывать наши модели, чтобы ими могли пользоваться другие команды. Кроме того, с нами работает продакт-менеджер, а также люди, которые заняты и в других командах, — senior-аналитик с большим опытом в компании и архитектор хранилища данных.

Кроме того, на некоторых митингах присутствует Chief Data Officer. Он вовлекается во все задачи дата-команды, которая занимается данными, машинным обучением, аналитикой.

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

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

Максим: Последний пример — модель для предсказания нагрузки. Мы завернули в API сервис и сделали визуализацию так, чтобы инфраструктурные команды могли видеть результат этой модели как график предсказания. Это конечный удобный продукт.

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

Анна: Мы занимаемся задачами бизнеса, расширяем сферы применения data science в компании.

Еще полгода назад у нас была другая структура. Я работала в команде, которая организовывала контент на главной странице Parimatch — на сайте, в мобильной версии и в приложении. На главной выводятся спортивные события, на которые можно ставить. Одновременно их около 2700. События сильно различаются по популярности. Задача нашего отдела была в том, чтобы ранжировать события и выводить на главную страницу максимально популярные. Всего на главной — семь самых популярных видов спорта, и в каждом — до 10 основных событий.

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

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

Максим: Также мы занимаемся риск-менеджментом. В нашем случае это fraud detection. Игроки всегда играют против компании — и не всегда они играют честно. Наша задача — определить это.

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

 
 
 

О рекомендательной системе

Анна: Наша цель в том, чтобы людям было интереснее смотреть игру. У всех разные вкусы. Если пользователь ставит на live, то, скорее всего, он любит получать быстрый результат. То есть склонен ставить, допустим, на настольный теннис (быстрый спорт) или быстрые рынки в футболе (например, ставка на финальный счет матча перед самым его концом).

Мы делали кластеризацию пользователей по тому, на какие виды спорта они ставят. Например, пользователь ставит на футбол и на бокс или баскетбол.

У нас разные модели для разных видов спорта — так правильнее.

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

Анна: Строя рекомендации, важно учитывать региональные особенности. Например, в Индии популярен крикет. Очевидно, в Украине на крикет не ставят. У нас ставят на футбол. Обычно это распределение видов спорта довольно закономерно. Данные подтверждают гипотезы, которые знают продакт-менеджеры, занимающиеся этим направлением.

Кроме того, в большинстве видов спорта турнир влияет на популярность события. В киберспорте турниры меняются очень быстро. Важно не то, какой турнир, а то, какие команды в нем участвуют. Из-за того что для модели новые киберспортивные турниры часто неизвестны, мы сильно ошибались в предсказании популярности.

 
 
 

Офис Parimatch Tech

Как проходит типичный день data scientist’а в Parimatch Tech

Анна: Сейчас я занимаюсь Customer Lifetime Value Prediction. Мы пытаемся выяснить, сколько в следующем месяце принесут пользователи.

Обычно все начинается со стендапа утром. Мы обмениваемся своими апдейтами за последний день. Обычно в течение дня есть пара митингов, но мы не проводим встречи ради встреч.

Чаще всего занимаемся рисерчем новой гипотезы или созданием новой модели. Возможны также встречи для детального обсуждения задач. Мне часто ставится верхнеуровневая задача. Прежде чем приступить к ее решению, мне нужно провести, во-первых, встречу с людьми, которые ее ставят, понять, что для них будет definition of done. Затем обсудить конкретные идеи с командой, декомпозировать задачу и работать над ней дальше.

Бывает, что я целый день собираю данные (мы работаем в основном с табличными данными, часто — с временными рядами) или пишу код. Например, модель уже готова, но нам нужно обернуть ее в API, чтобы к ней могли обращаться другие команды. Иногда я фикшу баги в нашей рекомендательной системе.

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

Как изменилась сфера data science за последние годы

Анна: Когда я только начинала, многие компании хотели иметь data science отдел только потому, что это круто. Всем казалось, что это статистическая магия, которая мало кому по силам. Тогда многое писалось руками.

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

Компаниям важно, какой будет профит от data science отдела, когда он будет, что модель принесет бизнесу. Data science становится более измеримым. Не просто fancy-фича, а метод решения задачи.

Андрей: Data science становится более сложным с точки зрения разработки. Раньше, допустим, когда ты делал модель, у тебя были разные версии данных, которые ты сохранял в разные файлы.

Сейчас ты думаешь, что нужно это автоматизировать, подключать дополнительные тулзы. Многие практики разработки заходят в data science. Ты думаешь не только про создание моделей, но и о том, как дальше их правильно развивать и строить.

Максим: Раньше data scientist’ы занимались только моделями, и этого было достаточно. Сейчас есть ожидания, что data scientist’ы тоже будут кодить на уровне, близком к инженерному. Развивается ML Operations — направление, связанное с deploy и инфраструктурой. Становится все больше и больше инфраструктуры, которая заточена под ML-модели.

Сергей: За этой инженерной зрелостью data science постепенно проглядывает продуктовая зрелость. Если раньше data science был интересным, но маргинальным занятием, которое бизнес держал на периферии, то теперь data science позволяют реально влиять на бизнес.

Но в Украине таких компаний до сих пор немного.

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

Сейчас проще — можно использовать готовые модели. Большинство из них уже натренированы, их не нужно заново обучать. Достаточно натренировать несколько последних слоев на небольшом объеме данных, доступном в компании.

 
 
 

Какие компетенции нужны data scientist’у в Parimatch

Анна: Все зависит от левела. Нужно очень хорошо разбираться в Python (на уровне разработки); разбираться в машинном обучении: в рамках задачи комбинировать модели так, чтобы получить нормальный результат, учитывая специфику данных. Также нужно уметь работать с базами данных и, желательно, уметь писать API. Это минимум.

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

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

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

Анна: A/B-тесты — последний этап оценки качества модели.

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

Максим: И для data scientist’а, и для разработчика важны навыки самопрезентации, потому что у нас есть конкуренция идей.

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

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

Что делать начинающим data scientist’ам

Анна:

  • Изучать разработку и параллельно — ML-стек: какие модели есть, почему они работают так.
  • Как можно раньше начать практиковаться. Взять датасет, крутить его, смотреть, как другие с ним работают.
  • Спрашивать себя, зачем вы делаете так, а не иначе.

Многие начинающие data scientist’ы думают, что data science — это создать хитрую нейронную сеть. Чаще всего это не так.

Какие ресурсы советует команда Parimatch Tech

  • Платформа Kaggle, где люди выкладывают свои ноутбуки. Вы можете посмотреть, как другие решают задачи.
  • Сервисы, где можно найти себе ментора (например, Telegram-бот @itkpi_mentor_bot).
  • Сообщество Open data science в Slack — там много разных активностей и можно пообщаться на любую тему, связанную с data science. У них также есть свой YouTube-канал, где они делятся лекциями и примерами решения задач.
  • Блог и встречи украинского сообщества Data Science UA.
  • Киевское Telegram-сообщество по Data Science. Тут можно задать любые интересующие вопросы. В чате часто появляются вакансии и анонсы тематических ивентов.

Ответы Андрея и Максима переведены с украинского языка.

Ещё статьи
Как упростить разработку.
Data science, web development, gamedev и не только.