Встретились как-то продакт с дата-сайентистом в одном офисе и стали выяснять, кто для бизнеса нужнее. Об этом в нашем видеоблоге вышел огромный выпуск, который я решил переделать в статью. Если интересно послушать полный диалог со всеми подробностями – добро пожаловать.
Всем привет! Меня зовут Игорь Уткин, я – дата-сайентист в hh.ru. В этой статье разбираемся: когда компании может понадобиться дата-сайентист, имеет ли собранная модель право на ошибку и как вообще люди уходят в data science.
Кто такие дата-сайентисты
Дата-сайентисты – это люди, которые работают с данными и пытаются найти в них связи, которые помогут объяснить некоторые процессы, снизить неопределенность в бизнесе, насколько это возможно.
При поверхностном гуглении разных определений data science можно наткнуться на любопытную картинку.
На ней три большие области знания: математика, бизнес и computer science, по-русски – информатика. Если соединять эти кружочки между собой, на их пересечении складывается некоторая область специализации. Например, на пересечении математики и бизнес-экспертизы возникает дата-аналитика, на пересечении информатики и бизнеса – разработка программного обеспечения, на пересечении информатики и математики – чистый machine learning. Там, где пересекаются все три кружка, возникает область data science. Дата-сайентист – это некий сплав программиста, математика и специалиста в некой профессиональной технической области. Сегодня эта специальность делится уже на более узкие специализации, вроде Data Engineer, Data Scientist, Data Analyst и т.д. Все они так или иначе на базовом уровне обладают схожими компетенциями.
Как я попал в data science
Всё началось с аналитики. Когда-то я был обычным администратором баз данных, а несколько позже стал отвечать за формирование отчетов в финансовом подразделении. Там я не только складывал циферки, но и решал, где все необходимые данные достать и где их потом хранить. Потом руководство захотело помимо обычных ежемесячных и еженедельных отчетов получать на их основе еще финансовые прогнозы. И их надо было как-то делать.
Я стал интересоваться и изучать существующие методы – вряд ли человечество формулирует этот запрос впервые. Можно сказать, уже тогда я потихоньку превращался во всамделишнего дата-сайентиста, просто еще об этом не знал. Затем мне довелось поработать системным аналитиком, и там появилось более глубокое понимание продукта и где лежат данные.
И уже в 2013 году, на волне хайпа big data на моем предыдущем месте работы сформировался Департамент анализа данных, где появились полноценная должность дата-сайентиста. Тогда-то я впервые и стал так называться.
Нам нужен дата-сайентист
Компания редко ищет людей на должности просто чтобы они были, компании всегда нужна прибыль. От того, что она примет в штат пятерых дата-сайентистов и будет им платить огромную зарплату, прибыль сама по себе не то что не вырастет, а скорее всего даже упадет. Бизнес должен сам понять насколько он созрел для наёма дата-сайентиста и с какой целью такой специалист ему нужен.
Однозначно нельзя перепрыгнуть определенные уровни, на которых в компании развита IT инфраструктура и культура работы с данными. Если у вас нет данных, скорее всего у вашего дата-сайентиста либо ничего не получится, либо он потратит очень много времени, чтобы эти данные хотя бы получить.
Бизнес должен понять, что дата-сайентист – это не волшебник. Он не обладает магическим свойствами в достаточной степени, чтобы смотреть в хрустальный шар и изрекать пророчества. Если нужны более-менее точные прогнозы, для них требуется твердая аналитическая база и много-много данных.
Данных много не бывает. Чем их больше – тем лучше. Но даже если у вас уже есть данные они могут оказаться не подходящими, ошибочными или иметь не достаточную детализацию. Трудно учесть всё сразу, поэтому можно отталкиваться от задачи и прийти к дата-сайентисту просто с оформленной идеей и минимальным понимаем того, что хочется получить в итоге. Он уже сформирует требования к данным которые ему понадобятся.
Когда у вас есть данные, вы уже можете попытаться что-то прогнозировать, посчитать, вывести и сравнить. Дальше вы оцениваете выхлоп – приносит ли ваша деятельность какой-то результат и что вам это дает. Понимаете, как качество прогнозов влияет на профит, и можно ли его конвертировать в деньги.
Как только мы получаем необходимые прогнозы, бизнес должен быть готов их внедрять и проверять на практике. Вот пара плохих примеров когда все хорошо поработали а толку 0.
Кейс №1
Моей задачей было построить модель, которая оптимизирует количество и расположение офисов в произвольном населенном пункте. Семь месяцев ушло только на то, чтобы собрать хоть какую-то выборку для обучения. Начальство уже оказывало моральное давление в формате: "пора бы поторопиться, мы тебе платим большие деньги". И вот — модель готова, мы выдаем рекомендации, где что открыть и где закрыть. Выясняется, что мы ничего закрыть не можем, ибо мораторий на закрытие, и открыть тоже — денег в бюджете на это нет. Великолепно!
Кейс №2
По заказу бизнеса строили систему прогноза закупок, строили долго — около двух лет и при помощи внешних консультантов. Когда все было сделано, выяснилось, что за закупки отвечает другой Департамент, а они не очень-то и ждали наши прогнозы. И вот зачем это всё было?
Хороший дата-сайентист понимает, какая модель лучше подойдет для бизнеса: более простая или архисложная. И это здесь нужен максимально обоснованный и индивидуальный подход. А бизнес, в свою очередь, должен понимать минимальный размер эффекта, ради которого он готов нанять специального человека. Одному бизнесу 1,5% – это критично, а другому от такой мелочи ни холодно, ни жарко.
Data science принесет пользу лишь в том случае, когда будет иметь реальные рычаги влияния на те параметры, которые собирается анализировать и использовать. Мы должны как минимум брать такие фичи в построении нашей модели, на которые можем повлиять сами или руками ближайшего руководства.
Сегодня хорошего дата-сайентиста может себе позволить в первую очередь богатый большой бизнес, у которого есть желание поиграть с данными, чтобы потенциально увеличить выручку, либо бизнес поменьше, но с четким пониманием, зачем именно нужен такой специалист.
Ошибки будут всегда!
Нужно понимать, что нет никакого волшебного решения – любая модель всегда ошибается. Просто какие-то модели ошибаются чаще, но меньше, а другие реже, но сильнее. У меня есть простой пример. В каждом уважающем себя торговом центре на входе стоит металлоискатель. Допустим, этот металлоискатель ищет какой-то особый металл или сплав, наличие которого сигнализирует о том, что у человека с собой оружие или бомба. В таком кейсе решается задача бинарной классификации и вот тут может возникнуть две ошибки: их называют ошибками первого и второго рода. Ошибка первого рода – это ложноотрицательный результат, когда у человек с собой запрещенный предмет , но детектор не запищал, а когда у человека нет ничего запрещенного, но детектор пищит – это ошибка второго рода (ложноположительный результат). Идеального детектора нет и всегда приходится идти на компромисс между двумя этими ошибками и этот компромис должен определять заказчик в зависимости от своих бизнес задач.
Когда нас интересует конкретная цифра, нет ошибок первого и второго рода, а есть просто ошибки: либо мы ошиблись в плюс, либо в минус. Если мы прогнозируем курс акций на завтрашний день, нам хочется, чтобы прогноз был в диапазоне “± несколько копеек”, а не “± 10 долларов” к цене.
Даже самая крутая модель иногда все равно будет допускать ошибки, которые эксперту покажутся крайне глупыми и по одному такому примеру делается вывод, что модель плохая. Чтобы этого избежать, нужно заранее согласовать с заказчиком метрики качества моделей и оценивать качество на большом количестве примеров. Это всегда нужно держать в голове, потому что бизнес любит за такое цепляться. Он хочет, чтобы ошибок не было. Но зачастую это либо невозможно, либо очень дорого обходится – убрать крайние случаи и как-то их уменьшать. Иногда лучшего решения просто не существует, потому что никто не знает, как это сделать.
Сейчас есть куча платформ, которые позволяют бизнесу выстроить задачу на аутсорс, когда, например, штатные дата-сайентисты уже не могут предложить лучшее решение. Буквально недавно видел: у одной компании появилась потребность в умной архивации данных. Организация публикует конкурс, где выдает данные, которые хочет сжать до минимально возможного размера: сейчас она может сжать их до одного гигабайта, но все, кто сделает лучше, получат 5000$. И есть люди, которые готовы тратить своё время на негарантированный приз.
Кто ставит задачи
Если нет тимлида, задачи приходят от продакта. Бизнес не всегда может сразу правильно поставить задачу, поэтому я могу (и порой должен!) ее корректировать. Иногда приходится указывать бизнесу на недочеты, которые не позволят получить тот результат, который ему нужен. Я предлагаю альтернативу, и если с ней соглашаются, то мы работаем уже с обновленной задачей.
А если бизнес не приходит, я ставлю себе задачу сам, и чаще всего это чистый ресерч. Я прокачиваюсь, изучаю, получаю опыт, а затем могу сам предложить решения бизнес задач.
Где искать дата-сайентистов
Есть российское сообщество – Open Data Science. У этого сообщества есть Slack-канал. Там собраны люди с общими интересами и там же часто размещаются объявления о вакансиях. Человек с улицы туда просто не попадет, просто потому что не знает, что ему туда надо.
Там уже собран нужен контингент, и работодателю там гораздо проще найти релевантного кандидата. И больше шанс, что это будет действительно хороший специалист, учитывая среду.
Еще можно искать крутых специалистов у нас на hh.ru, например.
Как стать дата-сайентистом
Я в некотором роде самоучка — когда мне понадобилось создавать модели и прогнозы, еще не было никаких курсов. Сейчас с этим гораздо проще – море учебников, курсов и вообще чего угодно, что призвано научить этой специальности.
С одной стороны благодаря этому выучиться стало сильно легче, а с другой – информации настолько много, что теперь сложно найти действительно ценную информацию и отфильтровать всё лишнее.
Я не думаю, что человек, который закончит даже платные курсы, сразу станет хорошим дата-сайентистом. Здесь нужен крепкий практический опыт. Все курсы только знакомят с алгоритмами в тепличных условиях. Уже есть данные, определена метрика качества – что нужно улучшать. В реальной жизни часто так бывает, что нет данных, вы не знаете ни где их достать, ни как мерить.
Зачастую дата-сайентист логически вырастает из программистов и аналитиков. У них уже есть необходимая база, которую нужно просто подтянуть или расширить в смежные области. Нужен математический склад ума, желание разбираться со всякими техническими штуками, знать английский – все передовые технологии описаны не на русском. А все переводы доходят с опозданием – информация в них может к этому времени растерять актуальность.
На заметку работодателю
Круто, когда в вакансии пишут честно и без прикрас: да, у нас есть вот такие задачи, но хромает здесь и здесь. Такая вакансия будет разительно выделяться из большинства, и потенциальный сотрудник сразу будет видеть трудности, с которыми придется столкнуться. Иначе просто потеряете время и деньги, потому что человек приходит на обещанное, а потом его ставят перед неприятным фактом.
И хорошему специалисту всегда видно, когда вакансию пишет HR по усредненному шаблону, а когда перед тобой действительно честное и прозрачное объявление.
Что в итоге
Дата-сайентистов стоит нанимать, когда у вас либо очень много денег, чтобы экспериментировать, либо когда существует четкое понимание, что именно может улучшить этот специалист.
Не стоит требовать от моделей 100% качества – ошибки могут быть всегда. И скорее всего будут. Держите это в голове при постановке задачи, когда решаете, насколько вообще целесообразна разработка.
Хороший дата-сайентист может быть самоучкой, при условии, что у него математический склад ума и есть желание ковыряться в разных там технических штуках.
Ну и да – данных много не бывает. Но одни только данных недостаточно – всегда нужно понимание минимального профита, который устроит, и рычаги давления, чтобы что-то изменить.