Пять​ ​главных​ ​навыков​ ​хорошего​ ​data​ ​scientist,​ ​которым​ ​не​ ​учат​ ​в​ ​книгах

О том, какие навыки на самом деле нужны аналитикам данных и специалистам по машинному обучению, — взгляд основателя компаний InsideDNA и Skinomica, ранее — ведущего специалиста Booking.com Анны Костиковой.

Анна Костикова

Вместо введения или про то, как я стала data scientist

Сегодня data scientist (DS) — одна из самых востребованных профессий на рынке труда. Высокие зарплаты, большой интерес со стороны работодателей, шквал вакансий. Но примерно пять лет назад всё было иначе: когда после защиты кандидатской в Швейцарии и нескольких лет работы в Швейцарском институте биоинформатики я искала работу, на территории Швейцарии нашлась всего одна вакансия DS — в Цюрихском офисе Google. Для сравнения, если сегодня вбить «data scientist» на Glassdoor (Швейцария) — выпадет более трёхсот вакансий.

В Цюрихский офис Google я так и не попала — на тот момент они решили не формировать новую команду. Зато несколько лет отработала ведущим специалистом по DS и ML в Booking.com.

За три года работы в Booking, наша команда DS и ML выросла с 25 человек и четырёх небольших команд до почти 200 человек и примерно пяти отделов. Мы реализовали ряд успешных и, разумеется, в разы больше неуспешных проектов, сформировали отличный технологический стек по DS и ML, и в целом закрепили за Booking.com статус одной из наиболее data-driven компаний в отрасли.

Но главное, пожалуй, вдоль и поперёк изучили то, каких людей стоит и не стоит нанимать в компанию на роль DS.

За время работы я провела около 150 интервью (телефонных и f2f) и ниже расскажу о том, на основании чего в конечном счёте принималось решение о приёме кандидата в команду как в Booking.com, так и в компанию, где я работаю теперь — InsideDNA.

Есть пять основных умений DS-специалиста, при наличии которых он будет приносить реальную пользу компании. Профессионалы с такими способностями встречаются редко, но это не значит, что их не стоит искать и пытаться привлекать в команду. Сразу оговорюсь, речь будет о требованиях к специалистам в относительно большую компанию и не в отдел научных разработок и исследований (R&D), а в операционный бизнес.

1. Умение разобраться в бизнес-задаче и оценить её потенциальную пользу для бизнеса

Первое, с чем приходится сталкиваться DS — с расплывчатыми, непродуманными и часто технически невыполнимыми вопросами. Почему так происходит? Потому что людей, способных транслировать свои идеи в тестируемые гипотезы, очень немного. Ещё меньше людей, которые разбираются в статистике достаточно, чтобы понимать, как именно можно использовать данные для развития бизнеса.

Большая часть сотрудников будет воспринимать DS специалиста либо как улучшенную версию пивот-таблицы в Excel, либо как магический прибор, обязанный в течение суток выдать ответ на любой поставленный вопрос.

Именно DS-специалисту приходится оценивать осмысленность идеи, реалистичность её выполнения и потенциальную пользу для компании. Самый простой тест «на вшивость», который должен уметь делать DS, это тест «чтобы что». Он состоит из нескольких вопросов:

  • Представьте, что мы сделали этот анализ или разработали эту модель — что мы будем делать с ней дальше?
  • Как мы сможем оценить её вклад в бизнес компании?
  • Как мы внедрим её в производство?
  • Как мы оценим её пользу по сравнению с текущим решением?

Если начальник или куратор проекта не может чётко ответить на эти вопросы — его надо отправить подумать или сесть подумать вместе с ним.

2. Умение перевести бизнес-задачу на язык технического решения

Если начальник сумел ответить на вопросы выше, задачу нужно транслировать в техническое решение. Это почти всегда нетривиальный момент.

Представьте, например, что DS нужно оптимизировать траты на рекламу на аффилированных сайтах. Вариантов решения такой задачи примерно несколько десятков. Нужно придумать и выбрать самый быстрый, легко реализуемый, недорогой, тестируемый и объективный метод.

И в Booking.com, и в моей текущей компании на собеседовании мы всегда даём реальный кейс и просим человека рассказать, как он будет подходить к его решению. Если вдруг вместо обсуждения «смысла» задачи, он сходу начинает применять стохастическую рекуррентную нейронную сеть — почти без сожаления можно прекращать разговор. Толка от такого специалиста будет очень немного, а вот недопонимание между ним и другими членами команды будет расти в геометрической прогрессии.

3. Умение быстро довести решение до состояния минимального работоспособного продукта (MVP)

Рынок желающих стать DS в Европе и США наводнён выходцами из академии — post PhD или Postdoc. Печальным следствием этого является склонность к перфекционизму и попытка потратить много месяцев на получение «идеального продукта» или ещё хуже — попытка улучшить уже существующий алгоритм. Возможно, это не очень плохо в научных кругах, но для бизнеса это реальная головная боль.

95% бизнес задач не требует разработки новых алгоритмов и месяцев работы.

Условно говоря, работающая простенькая логистическая регрессия или базовый алгоритм ранжирования принесёт огромную пользу, а попытка написать с нуля код для cвёрточной нейронной сети — месяцы времени, нулевую пользу и справедливое разочарование бизнеса в пользе аналитических подходов.

4. Умение транслировать MVP в производство (работать с разработчиками)

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

Следствие — DS должен быть способен коммуницировать свои мысли людям из не DS-среды (а также понимать, что ему говорят в ответ).

Терминологически всё это может быть очень непросто, а иногда, прямо скажем, мучительно. К тому же, есть ещё одна частая и не очень понятная новичкам проблема — понятие масштабируемости решения у DS и разработчиков может сильно разниться. Условно говоря, одна минута на обработку запроса в мире DS — может быть и неплохо, но если нужно обслужить сотни тысяч запросов в минуту в реальном времени — это никуда не годится.

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

5. Умение объективно оценить пользу от MVP и убедиться, что это решение на самом деле используется в компании

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

Надо также учитывать, что на внедрение и «фиксацию» модели в бизнес-процессах, а также убеждение всех окружающих в полезности подхода по сравнению с business as usual у вас уйдёт 95% времени. Не на разработку, не на выпуск в производство, а на то, чтобы ваше решение действительно стало частью бизнеса.

Заключение или почему хороший DS — это всегда непросто

Эти пять навыков можно обобщить одним словом — ownership. На моей практике только такие DS-специалисты действительно полезны компании.

А как же написание фломастерами на доске формул оптимизации стохастического градиентного спуска? Где же упоминание технологий Hadoop, Spark или H2O? Где, в конце-концов, Python, R или Scala, а также scikit-learn, numpy, ggplot, спросите вы. Ведь именно про это все книги о том, как стать DS-специалистом.

Любую из этих технологий можно вдоль и поперёк изучить примерно за пять дней интенсивного тренинга (ну, по крайней мере при наличии хорошего базового технического образования и знания статистики), а вот сделать так, чтобы ваши аналитические эксперименты не напоминали сферического коня в вакууме, а были объективными, тестируемыми и приносили компании прибыль — этому нужно учиться каждый день на протяжении многих лет.

Поэтому самый главный признак хорошего DS — это способность мыслить как владелец бизнеса.

И в заключении о том, что же на самом деле делает data scientist.

Анна Костикова — основатель InsideDNA — компании, которая помогает биотех и фармкомпаниям разрабатывать лекарства против рака с помощью анализа ДНК и машинного обучения. Основатель проекта Skinomica — здоровая кожа на основе данных микробиоты.

©  vc.ru