Как устроена работа аналитика
В этом материале мы рассказываем о профессии аналитика — специалиста, который занимается работой с данными с целью ответить на вопросы и помочь решить задачи бизнеса. Даниил Тарарухин, руководитель группы аналитики Маршрутизации Яндекса, рассказал о задачах, которые решают аналитики, о необходимых им навыках и о том, как понять, что аналитика — это ваше.
Зачем нужны аналитики
Аналитик делает выводы на основе данных, и по навыкам и задачам он во многом находится посередине между разработчиком и менеджером. С одной стороны, ему нужно уметь понять смысл вопроса, найти способ, как на этот вопрос ответить, и правильно изложить ответ так, чтобы все его поняли. С другой стороны, непосредственные вычисления требуют множества манипуляций с данными, и если раньше такие вещи обычно делались в Excel, с помощью SQL-запросов к базам данных или в статистических пакетах с визуальным интерфейсом, то с появлением больших данных возникла необходимость полноценно программировать: здесь в данный момент стандартом является Python.
Итак, аналитик смотрит в данные, чтобы ответить на вопросы и этими ответами повлиять на развитие своего продукта или сервиса. Ответ обычно представляет из себя какую-то таблицу, или график, или ML-формулу. Задачи бывают разовыми (ad hoc), а бывают регулярными, причем опыт говорит, что нужно ко всем задачам относиться как к регулярным: если вы построили хороший график за прошлый год, что-то рассказывающий об окружающем мире, то вас обязательно попросят сделать так, чтобы он обновлялся ежедневно; если у вас есть полезная ML-формула, то ее нужно регулярно переподбирать, и так далее.
Вот примеры и типы задач, с которыми аналитик сталкивается в работе:
1. Продуктовые задачи: нарисовать график числа наших пользователей (DAU/WAU — daily/weekly audience), убрав случайные посещения; сегментировать пользователей на какие-то классы или кластеры; описать типичные пользовательские сценарии, определить, чем пользуются в продукте, а чем не пользуются; выделить тех, у кого есть проблемы, и прицельно их изучить: почему возникают проблемы, чем можно помочь, на каком графике видна проблема и как будем отслеживать улучшения.
2. А/В-тестирование новой функциональности: нужно правильно разбить пользователей на тестовую и контрольную группы, провести А/В-тест. Часто после первых успешных А/В-тестов сразу же наступает необходимость строить А/В-инфраструктуру, позволяющую ставить А/В-тестирование на поток, проводить несколько исследований одновременно (то есть строить несколько непересекающихся тестовых выборок), придумывать новые метрики и валидировать их А/А-тестами (метрика не улучшается и не ухудшается сама по себе, без изменений в продукте).
3. Измерение качества и построение KPI: за простой с виду фразой «нужно нарисовать график качества нашего продукта» обычно скрывается множество деталей и трудностей. Например, попробуйте сформулировать, в чём заключается качество работы чего-нибудь достаточно крупного: сайта по бронированию отелей, антивирусной программы на вашем компьютере, городского общественного транспорта. Наверняка окажется, что качество имеет много аспектов, которые не всегда легко перечислить и еще сложнее измерить. Совсем трудно бывает нарисовать такой график, который бы отражал изменения в продукте, а не фоновый шум и погрешности измерений, то есть рос, когда внедрили улучшение, падал, когда что-то пошло не так, и при этом был чувствительным к небольшим изменениям. Слишком верхнеуровневые графики качества обычно настолько общие, что их очень трудно сдвинуть с места, поэтому они не мотивируют команду в ежедневной работе.
4. Рекламная и маркетинговая аналитика: например, нарисовать графики оттока пользователей (retention), соотнести их с изменениями в продукте и с рекламной активностью; найти LTV (lifetime value) — сколько денег приносит пользователь нашему сервису, пока пользуется им; оценить эффективность рекламной кампании или промоакции, при этом как-то правильно учесть, что часть людей пришли бы и сами, без рекламы.
5. ML-аналитика. Есть много классов задач, для которых методы машинного обучения оказываются очень эффективными:
— ранжирование результатов поиска,
— рекомендательные системы (пользователь лайкнул несколько статей, треков или видеороликов, что ему предложить в следующий раз),
— антиспам и антифрод (детекция спам-рассылок по текстам писем, накруток рейтингов, скликивания рекламных объявлений, фейковых отзывов),
— скоринг (вычисление рейтинга надежности),
— распознавание объектов.ML-движки часто представляются в виде «черного ящика» со множеством «ручек» и настроек, но по-настоящему хороший ML-аналитик должен понимать, как этот «ящик» устроен внутри, что там за методы преобразования данных, какая математика используется, и тогда ящик оказывается не таким уж и черным.
Что нужно, чтобы стать аналитиком?
Итак, вам нравится работа с данными и вы хотите выбрать этот путь. Выделим две группы умений, которые позволят вам добиться успеха.
Hard skills
1. Python и Jupyter. Когда-то в эпоху Excel нужно было знать функцию ВПР (она же VLOOKUP), умение работать со сводными таблицами было признаком профессионала, а написание скриптов на VBA делало вас гуру этой программы. Сейчас на смену Excel пришла связка Jupyter Notebook (или аналог) + библиотека pandas. Преобразования данных и графики нельзя «накликать» мышкой — приходится писать код, что обычно отнимает значительно больше времени, но зато на выходе получается «ноутбук», в котором видно всё, что происходило с данными, а главное — он обладает важным свойством воспроизводимости. При изменении исходных данных достаточно просто по очереди перезапустить все ячейки, и все графики-таблицы пересчитаются, сколько бы промежуточных вычислений ни было.
2. Общая техническая подкованность. Нужные для работы данные либо могут храниться на каком-нибудь Linux-сервере или в распределенном хранилище, либо их надо доставать http-запросами через REST API. Как правило, все эти вещи уже сделаны кем-то до вас и кое-как описаны, нужно уметь разобраться в инструкции (или спросить, если инструкции нет) и, продравшись сквозь ошибки, добраться до данных.
3. Владение методами обработки данных: классическими (k-means-кластеризация, регрессия, метод главных компонент, анализ временных рядов, дисперсионный анализ и так далее) и более современными (машинное обучение, нейросети). Нужно как минимум понимать, для какой задачи какой метод больше подходит.
4. Визуализация. Уметь представлять результаты очень важно, хороший, понятный график стоит тысячи слов. На самом деле Excel для этого неплохо подходит, но если вы уже работаете в Jupyter, то освойте matplotlib или что-то с более человеколюбивым интерфейсом, например seaborn или plotly.
5. SQL. Здесь так: если вдруг вы еще не знаете SQL, то потратьте пару дней и освойте основной синтаксис SELECT-запросов (фильтрации, джойны, GROUP BY и оконные функции), обязательно пригодится. Не нужно выучивать конкретные функции, поскольку SQL-диалекты слегка различаются в разных базах данных, важно понять принципы, научиться «читать со словарем» (то есть конструировать запросы на конкретном диалекте, вооружившись документацией к нему).
6. Теория вероятностей и математическая статистика. Если вы будете сталкиваться с А/В-тестированием, нужно будет обязательно понимать, как работают статистические тесты, как разбивать пользователей на независимые выборки и какие интересные эффекты возникнут, если делать это неправильно.
7. Умение себя перепроверять. Очень плохо, когда выводы аналитика оказываются ошибочными. Единой методики проверки здесь нет, но хорошо уметь смотреть на свои выводы под разными углами, например соотносить их с некоторым здравым смыслом. Сильно помогают рецепты из школьных уроков физики и математики: проверка единиц измерения и краевых случаев.
Soft skills
1. Умение без стеснения задавать вопросы. Многие люди из страха показаться недостаточно сообразительными или слишком занудными боятся задать лишний вопрос. Аналитику ни в коем случае нельзя этого бояться, в любой задаче нужно разобраться до такой степени, чтобы в ней не осталось ничего неясного, потому что, к сожалению, ситуация «поняли вопрос по-своему и сделали совсем не то» является типичной, особенно для неопытных аналитиков. Классический пример: приходит начальник, задает какой-то вопрос, аналитик погружается в недельное исследование, а потом выясняется, что начальник ждал грубый быстрый ответ уровня «здесь десятки или тысячи», который был готов у аналитика сразу же.
2. Умение правильно поставить задачу. Часто заказчики приходят с недоформулированной задачей или держат в голове какие-то важные детали, про которые забывают упомянуть. А еще бывает такое, что задачу вообще не нужно решать, здесь полезными проверочными вопросами являются «Зачем нужно это исследовать? Как будут использованы результаты работы, что изменится, если ответом будет А или В?» Ведь если ничего не изменится, то, может быть, и делать ничего не нужно. Этими формулировками не надо увлекаться, но разумная доля критического взгляда при постановке задачи бывает очень полезна.
3. Понимание заказчика. Нужно уметь встать на место человека, который приносит вам задачу, посмотреть на проблему его глазами и понять, как именно он будет применять тот ответ, который вы дадите. Это помогает сформулировать краткий и ясный завершающий вывод — такой, чтобы его поняли не только вы, но и заказчик тоже.
4. Технические умения — это база, определяющая вашу личную эффективность. Чем лучше аналитик программирует, чем лучше он понимает особенности работы сайтов, мобильных приложений, операционных систем, интернета, тем автономнее и быстрее он сможет работать, меньше будет отвлекаться на выяснение деталей у коллег. По мере накопления опыта, когда рука набита и Jupyter-ноутбуки настроены, на первый план выходит коммуникация, потому что самые сложные аналитические задачи не те, которые технически сложно запрограммировать, а те, где проблема вроде сформулирована, но совершенно непонятно, что именно надо делать.
Заключение: как понять, что вам интересна именно аналитика?
Напоследок порекомендуем мысленное упражнение, которое хорошо развивает один из навыков, очень полезных аналитику: это размышление о том, как устроены окружающие нас системы, какими метриками можно было бы их измерить.
Даже просто выглянув в окно, можно задать себе сотню вопросов. Как зависит пропускная способность дороги от ширины полосы, как это можно было бы измерить? Существует ли оптимальная высота деревьев на улице, если да, то какова она, что такое вообще «оптимальная»? Лампы какой мощности нужно устанавливать в уличных фонарях? Как выглядит график зависимости числа пассажиров в общественном транспорте от времени и сколько нужно кондукторов, чтобы максимизировать собираемые деньги за проезд? Если вам интересно задавать себе такие вопросы и отвечать на них, то аналитика — это ваше.