Согласно Gartner, машинное обучение на пике популярности. Занимаясь разработками и внедрениями решений в области анализа данных и машинном обучении, наша команда DATA4 накопила опыт по ключевым этапам и подводным камням, которым я и поделюсь в статье.
Любая технология должна решать конкретные задачи бизнеса. Чтобы описать все применения машинного обучения потребуется отдельная статья, но можно выделить несколько основных областей. Это предиктивная аналитика (скоринг, отток, определение лучшего предложения, сопутствующих товаров и т.д.), анализ текста (отзывы в интернете, модерация контента, темы обращений и т.д.), речевая аналитика и видеоаналитика.
Для успешного внедрения необходимо определить какие бизнес KPI мы улучшаем, как и по какой метрике измеряем результат.
Когда задача поставлена, необходимо создать обучающую выборку (к сожалению, большинство бизнес-задач решаются путём «обучения с учителем»). По нашему опыту, формирование выборки самый длительный этап. Для его сокращения в компании должна быть налажена культуру работы с данными.
Помимо сбора данных, необходимо их очистить и определить особенности, влияющие на итоговый результат.
Разработка алгоритмической части самый интересный, но и самый быстрый этап. На него обычно уходит от нескольких часов до нескольких недель работы.
Решение, должно быть понятно не только специалисту в анализе данных, но и программисту или администратору, который будет внедрять это решение. А если это высоконагруженное решение, или решение с повышенными требованиями к безопасности, возможно, придётся переписать его с Python на другой язык.
Как правило, занимает много времени из-за необходимости дополнительных коммуникаций и согласований. Этот этап лучше выполнять внутренними силами команды заказчика.
Мир постоянно меняется, не все особенности можно учесть в начале разработки. Сбор обратной связи помогает своевременно переобучать модели. В идеале на этом этапе цикл запускается заново, но уже с меньшими временными затратами.
Как вариант, можно использовать готовые платформы IBM, Microsoft и т.д., но на практике это выходит дорого при постоянном использовании, не всегда можно реализовать конкретный кейс с использованием готовых инструментов, и есть ограничения на то, какие данные туда можно отправлять.
Технологии машинного обучения повышают эффективность бизнеса, но надо помнить, для того, чтобы сделать законченное решение недостаточно только обучить алгоритм, а необходимо подготовить данные и интегрировать решение с внутренними системами. И быть готовым, что результат будет зависеть от качества обучающей выборки.
Рассмотрим этапы внедрения:
1. Постановка задачи
Любая технология должна решать конкретные задачи бизнеса. Чтобы описать все применения машинного обучения потребуется отдельная статья, но можно выделить несколько основных областей. Это предиктивная аналитика (скоринг, отток, определение лучшего предложения, сопутствующих товаров и т.д.), анализ текста (отзывы в интернете, модерация контента, темы обращений и т.д.), речевая аналитика и видеоаналитика.
Для успешного внедрения необходимо определить какие бизнес KPI мы улучшаем, как и по какой метрике измеряем результат.
2. Сбор, хранение и предобработка данных
Когда задача поставлена, необходимо создать обучающую выборку (к сожалению, большинство бизнес-задач решаются путём «обучения с учителем»). По нашему опыту, формирование выборки самый длительный этап. Для его сокращения в компании должна быть налажена культуру работы с данными.
Помимо сбора данных, необходимо их очистить и определить особенности, влияющие на итоговый результат.
3. Обучение алгоритма
Разработка алгоритмической части самый интересный, но и самый быстрый этап. На него обычно уходит от нескольких часов до нескольких недель работы.
4. Разработка высокоуровневой обвязки
Решение, должно быть понятно не только специалисту в анализе данных, но и программисту или администратору, который будет внедрять это решение. А если это высоконагруженное решение, или решение с повышенными требованиями к безопасности, возможно, придётся переписать его с Python на другой язык.
5. Интеграция
Как правило, занимает много времени из-за необходимости дополнительных коммуникаций и согласований. Этот этап лучше выполнять внутренними силами команды заказчика.
6. Сбор обратной связи, корректировка модели
Мир постоянно меняется, не все особенности можно учесть в начале разработки. Сбор обратной связи помогает своевременно переобучать модели. В идеале на этом этапе цикл запускается заново, но уже с меньшими временными затратами.
Особенности решений на базе машинного обучения:
- Машинное обучение основывается на статистике, и когда алгоритм даёт неправильный прогноз – это нормально. Лучше сразу объяснить бизнес-заказчику, по каким метрикам оценивается качество, что эти метрики значат (далеко не все знают, что такое F мера и Roc-Auc), и что руками задать 3 примера и посмотреть результат, это интересно, но не статистически значимо.
- Плохо прогнозируемый результат. Не всегда в данных содержится полезный сигнал, и невозможно заранее точно прогнозировать результат. Мы, обычно берём данные, строим простые модели, и уже исходя из них говорим какого результата возможно достичь. Данная проблема не распространяется на некоторые классические задачи (распознавание лиц, речи и т.д.).
- Машинное обучение, это технология «последней мили», а не серебряная пуля от всех проблем. Если у заказчика продавцы не берут телефон и не перезванивают клиентам, то смысла от внедрения речевой аналитики будет крайне мало.
- Основное время уходит на интеграцию, и сбор и обработку данных, а не на обучение алгоритма (за редким исключением).
Варианты работы со сторонними разработчиками:
- Оплата по часам. Подходит только для быстрого прототипирования и MVP. Но не подходит для решений, требующих дальнейшей поддержки.
- Контрактная разработка. Интеллектуальная собственность переходит заказчику, возможна поддержка, но необходимо тщательно прописывать ТЗ.
- Оплата от доказанной эффективности. Из личного опыта работы в DATA4, слишком сложный с точки зрения согласований кейс, который практически не применяется на практике.
Как вариант, можно использовать готовые платформы IBM, Microsoft и т.д., но на практике это выходит дорого при постоянном использовании, не всегда можно реализовать конкретный кейс с использованием готовых инструментов, и есть ограничения на то, какие данные туда можно отправлять.
Заключение
Технологии машинного обучения повышают эффективность бизнеса, но надо помнить, для того, чтобы сделать законченное решение недостаточно только обучить алгоритм, а необходимо подготовить данные и интегрировать решение с внутренними системами. И быть готовым, что результат будет зависеть от качества обучающей выборки.
Комментарии (2)
Vlad_fox
13.07.2018 14:03можно еще для полноты картины добавить раздел:
Формы оплаты работы со сторонними разработчиками:
— наличная
— безналичная
webviktor
Так а как внедрить?
Где ответ на вопрос?