Краткий обзор того, что можно и чего нельзя делать в разработке машинного обучения и науки о данных

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

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

1. Если инструмент существует, не изобретайте велосипед

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

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

2. Всегда учитывайте ценность бизнеса и рентабельность инвестиций.

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

Может потребоваться повторная калибровка методологии расчета ROI. По сравнению с классическим программированием машинное обучение - это вероятностный подход, который никогда не обеспечивает 100% точности, поэтому вы всегда должны оценивать, увеличивает ли точность на 2, 5, 10 или 20% от вложенных средств.

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

Допустим, у вас есть сотни людей, которые занимаются извлечением данных из документов, тогда добавление 5% к точности результатов автоматического извлечения может означать миллионы долларов в год. Но если добавление 1% к точности стоит кучу денег, что является популярным случаем в проектах компьютерного зрения, возможно, есть более ценные задачи, и мы все еще можем полагаться на человека-оператора.

3. Никогда не начинайте исследование, пока гипотеза не сформулирована.

Часто деловые люди задают вопрос следующим образом: «У нас есть тонны данных, как мы можем их понять? Можете ли вы помочь нам найти идеи? »

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

Всегда начинайте с таких вопросов, как:

  • Какую проблему я пытаюсь решить?
  • На какой вопрос я пытаюсь ответить?

4. К интеграции с существующими системами следует относиться осторожно.

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

Мы работали с туристической компанией, которая, помимо прочего, покупала авиабилеты для своих клиентов. Бронирование заняло 17 часов, в это время цена могла колебаться. Колебания могут зависеть от многих факторов: пассажиропотока, дня недели, времени суток, сезона, основных спортивных или культурных событий, погоды и т. Д. Цель заключалась в том, чтобы доказать, что анализ исторических данных с помощью ML позволяет быть сниженным до нескольких процентов сверх существующих сокращений, производимых старой, но проверенной системой, основанной на правилах.

Но никто не хочет полагаться на черный ящик с оборотом в один миллиард долларов. Был разработан план перехода: сначала параллельно с производственной системой был настроен предсказатель на основе машинного обучения, затем производилась обработка 10% покупок, затем 30%, постоянное измерение относительной производительности. Когда система будет проверена на производстве, по крайней мере 10% билетов все равно необходимо будет приобрести с помощью старого алгоритма, основанного на правилах, чтобы получить последние обновления механизма продаж, чтобы избежать переобучения (состояние системы машинного обучения, когда она думает он знает все об окружающем мире).

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

5. Выполните управление версиями

Каждая новая версия вашей модели машинного обучения - это эксперимент. Он может быть успешным или нет, поэтому у вас всегда должен быть рабочий конвейер CI / CD, чтобы иметь возможность вернуться к более старой версии.

Однако не следует забывать и о правильном управлении версиями данных, параметрах модели и результатах экспериментов. Здесь есть специальные инструменты, например DVC - система контроля версий для ML.

6. Не позволяйте колесам крутиться в исследованиях: оставайтесь сфокусированными на цели (но не игнорируйте великие случайные открытия).

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

Сосредоточьтесь на своем исследовании, не отвлекайтесь, помните, почему вы начали и какова основная цель.

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

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

7. Будьте изобретательны!

Всегда есть сложный и точный способ решения проблем, связанный с большим объемом обработки данных, разработкой функций, то есть днями рутинной работы вручную. Но можно ли упростить задачу и добиться 80% результата с помощью 20% усилий?

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

Однажды нам нужно было отсортировать 20-летние маркетинговые материалы, содержащие логотипы Mastercard, чтобы определить, какие материалы все еще актуальны. Десятки тысяч документов. В какой-то момент мы поняли, что последнее изменение логотипа Mastercard произошло в 2016 году. Два часа на маркировку и обучение облачной службы распознавания изображений, и вуаля - у нас остались только свежие документы.

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

8. Человеческий фактор - будьте чуткими и управляйте ожиданиями.

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

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

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

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

Каковы ваши идеи? Пожалуйста, поделитесь в комментариях.