Три совета, которые сделают вашу жизнь проще

Итак, вы прошли несколько курсов по машинному обучению и чувствуете, что готовы к своей первой работе в отрасли, но все еще задаетесь вопросом: каковы основные навыки для работы с машинным обучением в реальном мире?

Работа в стартапе, где темпы высокие, а потенциал роста (как интеллектуальный, так и финансовый) высок, звучит как отличная идея?

Читайте дальше, чтобы узнать пару приемов, которые сделают вашу жизнь проще и увеличат ваши шансы на успех в МО в реальном мире.

Контекст

Машинное обучение (ML) — сложная дисциплина. Вы, вероятно, знаете это из онлайн-курса, который вы прошли, или из соревнований Kaggle, в которых вы участвовали.

Однако ML в реальном мире еще сложнее. Особенно в стартапе.

Почему это так?

Потому что есть больше вещей, чем может пойти не так, делая машинное обучение в реальном мире, по сравнению с онлайн-курсом или соревнованием Kaggle.

Позвольте мне объяснить, что это за скрытые дыры, и дать вам несколько советов, как их избежать.

1. Машинное обучение — это средство, а не цель

Причина номер 1 провала проекта машинного обучения до безобразия глупа: вам вообще не нужно машинное обучение.

Машинное обучение — это всего лишь (довольно сложный) инструмент (среди прочего), который у вас есть, для перемещения бизнес-показателей. И чаще всего это НЕ правильный инструмент.

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

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

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

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

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

2. Где тренировочные данные?

Если вы раньше не работали с машинным обучением в реальном мире, возможно, вы никогда не задавались вопросом: где данные для обучения?

И ответ: нигде.

Стартапы обычно имеют минимальный стек данных, состоящий из 3 элементов:

  • Много источников данных. Это все производственные сервисы, которые генерируют необработанные данные. Например, представьте, что стартап — это сайт электронной коммерции. Источником данных является сервис Google Analytics, который отслеживает все действия пользователей на сайте. Другим источником может быть платежная служба PayPal на сайте, которая будет отправлять платежные события.
  • Шина данных – это часть программного обеспечения, которое направляет данные из всех источников данных в хранилище/озеро данных. Стартапы, как правило, работают с платными сервисами, такими как Segment или Google Pub-sub, а некоторые даже решаются запустить Kafka самостоятельно.
  • Хранилище/озеро данных – это место, где попадают все данные, либо хорошо организованные в базе данных (также называемые хранилищем данных), либо просто хранящиеся (также называемые озером данных).

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

Вам часто приходится тратить много времени на написание правильных запросов (часто на SQL), чтобы получить данные, необходимые для обучения ваших моделей.

Написание SQL-запросов — не самое интересное, чему вы научились на своих онлайн-курсах, но это один из главных навыков, которыми вам нужно овладеть, чтобы стать продуктивным инженером по машинному обучению.

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



3. Как показать другим, что моя модель работает?

Хорошо, моя модель выглядит хорошо, что теперь?

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

Если вы не развернете модель и не предоставите ее остальной части технического стека, например, через микросервис и REST API, вы не повлияете на бизнес-показатели.

Однако чтобы туда попасть, сначала нужно доказать остальной команде, что:

  1. Ваша модель действительно работает.
  2. Ваша модель лучше, чем статус-кво.

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

Когда вы находитесь на этапе разработки, вы используете стандартные метрики оценки для задач классификации, например.

  • точность отзыва
  • f1-результаты
  • точность,
  • и матрицы путаницы.

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

  1. Их трудно понять нетехническим заинтересованным лицам, например. маркетинговая команда, которая будет использовать модель.
  2. Их трудно интерпретировать с точки зрения бизнеса. насколько мы увеличим удержание, если воспользуемся этой моделью прогнозирования оттока?

Из-за этого, если вы хотите оказать реальное влияние на стартап, вам нужно будет пройти 2 дополнительных шага, а именно:

  1. Тестирование вашей модели на истории и/или
  2. A/B-тестирование вашей модели.

Тестирование вашей модели на истории

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

Например, в нашей системе прогнозирования оттока мы могли бы использовать исторические данные за период до 2 недель, а затем оценить, сколько еще клиентов мы бы сохранили за последние 2 недели, если бы использовали модель.

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

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

В этих случаях вам нужно сделать еще один шаг и запустить A/B-тестирование вашей модели.

A/B-тестирование вашей модели

Чтобы провести A/B-тестирование нашей системы прогнозирования оттока, вы должны случайно разделить пользователей на 2 группы:

  • Группа (она же контрольная группа). Маркетинговая команда будет обращаться с этим сегментом пользователей как обычно, что означает отсутствие каких-либо специальных усилий по перенацеливанию, вызванных моделью прогнозирования оттока.
  • Группа B (она же тестовая группа). Эти пользователи будут помечены нашей моделью как ушедшие/не ушедшие и соответствующим образом нацелены на маркетинговую команду.

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

Тест длится N дней, и в конце мы сравниваем общий коэффициент оттока между двумя группами.

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

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

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

Итак, придерживайтесь там, и вы увидите результаты.

Завершение

Итак, в следующий раз, когда вы столкнетесь со сложной реальной проблемой, спросите себя:

  1. Нужен ли мне МЛ вообще?
  2. Где мои данные?
  3. И как я покажу, что мое решение работает?

И поверьте мне, это БУДЕТ иметь значение.

Хотите стать профессионалом в области машинного обучения и науки о данных?

🚀 Подпишитесь на информационный бюллетень Datamachines, чтобы узнать о реальном подходе к машинному обучению и науке о данных.

➡️ Подключайтесь в Twitter🐦, LinkedIn👔

💎 Стань участником сегодня, используя мою реферальную ссылкуи получи неограниченный доступ ко всему контенту, который я публикую на Medium, и поддержи мое письмо.



Удачного обучения 🤗

Пау