Критическая роль квалификации данных
Википедия перечисляет семь шагов процесса анализа данных: определение требований к данным, сбор данных, обработка данных, очистка данных, исследовательский анализ данных, моделирование данных и, наконец, генерация результатов производства. Когда Lokad прогнозирует запасы, оптимизирует цены или занимается любым видом оптимизации коммерции, наш процесс очень похож на описанный выше. Однако есть еще один важный шаг, который обычно занимает более половины всего усилия, прилагаемого командой Lokad, и который даже не входит в вышеперечисленный список. Этот шаг - квалификация данных.
Теперь, когда “Большие данные” стали модным словом, множество компаний пытаются получить больше пользы от своих данных. Квалификация данных, вероятно, является второй по величине причиной неудач проектов, сразу после неясных или неразумных бизнес-целей - что происходит каждый раз, когда инициатива начинается с “решения”, а не с “проблемы”. Давайте проясним этот загадочный шаг “квалификации данных”.
Данные как побочный продукт бизнес-приложений
Большинство бизнес-приложений разработаны для помощи в управлении компаниями: система точки продаж предназначена для позволения клиентам платить; система управления складом предназначена для сбора и хранения продуктов; программное обеспечение для веб-конференций позволяет проводить встречи онлайн и т. д. Такое программное обеспечение может также производить данные, но данные являются только вторичным побочным продуктом основной цели этого программного обеспечения.
Упомянутые системы предназначены для управления бизнесом, и поэтому, когда практик должен выбирать между лучшими операциями или лучшими данными, всегда всегда будет отдано предпочтение лучшим операциям. Например, если штрих-код не сканируется при оплате в вашем местном гипермаркете, кассир неизменно выберет товар, который имеет ту же цену и просканирует его дважды; иногда у них даже есть шпаргалка со всеми штрих-кодами, собранными на одном листе бумаги. Кассир прав: главный приоритет - позволить клиенту заплатить, несмотря ни на что. Создание точных записей о запасах не является немедленной целью по сравнению с срочной необходимостью обслуживания очереди клиентов.
Можно возразить, что проблема со сканированием штрих-кода на самом деле является проблемой очистки данных. Однако ситуация довольно сложная: записи остаются точными в некоторой степени, поскольку сумма, взимаемая с клиента, остается правильной, а также количество товаров в корзине. Наивное фильтрование всех подозрительных записей причинило бы больше вреда, чем пользы для большинства анализов.
Тем не менее, мы наблюдаем, что слишком часто компании - и их поставщики программного обеспечения тоже - с энтузиазмом игнорируют этот фундаментальный шаблон для практически всех бизнес-данных, которые генерируются, переходя прямо от обработки данных к очистке данных.
Квалификация данных относится к семантике данных
Цель шага квалификации данных - прояснить и тщательно документировать семантику данных. Большую часть времени, когда (крупные) компании отправляют табличные файлы данных в Lokad, они также отправляют нам файл Excel, где каждому столбцу, найденному в файлах, присваивается краткая строка документации, обычно такая как: Цена: цена продукта. Однако такая краткая строка документации оставляет множество вопросов открытыми:
- какая валюта применима к продукту?
- это цена с налогом или без налога?
- есть ли другая переменная (например, скидка), которая влияет на фактическую цену?
- действительно ли одна и та же цена для продукта во всех каналах?
- должна ли цена иметь смысл для товаров, которые еще не проданы?
- есть ли крайние случаи, например, нули, отражающие отсутствующие значения?
Даты также являются отличными кандидатами для семантических неоднозначностей. Когда в таблице orders
есть столбец date
, дата-время может относиться к времени:
- проверки корзины
- ввода платежа
- подтверждения платежа
- создания заказа в бухгалтерском пакете
- отправки
- доставки
- закрытия заказа
Однако такой небольшой список едва ли охватывает фактические странности, с которыми сталкиваются в реальной жизни. Недавно, например, работая для одного из крупнейших европейских интернет-бизнесов, мы поняли, что даты, связанные с заказами на закупку, имеют разное значение в зависимости от страны-производителя. Европейские поставщики отправляли товары грузовиками, и дата отражала прибытие на склад, в то время как азиатские поставщики отправляли товары морскими судами, и дата отражала прибытие в порт. Этот небольшой “поворот” обычно приводил к разнице в более чем 10 дней в расчете срока поставки.
Для наборов данных, связанных с бизнесом, семантика данных практически всегда зависит от основных процессов и практик компании. Документация, относящаяся к таким процессам, если она вообще существует, обычно фокусируется на том, что интересно руководству или аудиторам, но очень редко на множестве мелких элементов, существующих в информационной системе компании. Однако дьявол кроется в деталях.
Квалификация данных - это не очистка данных
Очистка данных имеет смысл в экспериментальных науках, где определенные точки данных (выбросы) должны быть удалены, потому что они неправильно “искажают” эксперименты. Например, измерения на графике в оптическом эксперименте могут просто отражать дефект в оптическом сенсоре, а не что-то действительно значимое для исследования.
Однако этот процесс не отражает то, что обычно требуется при анализе бизнес-данных. Выбросы могут возникать при работе с остатками испорченного восстановления базы данных, но в основном выбросы являются незначительными. (С точки зрения бизнеса) целостность подавляющего большинства баз данных, находящихся в производстве, отлична. Ошибочные записи существуют, но большинство современных систем хорошо справляются с предотвращением наиболее частых ошибок и оказывают поддержку при их исправлении. Однако квалификация данных сильно отличается тем, что ее целью является не удаление или корректировка точек данных, а скорее пролить свет на данные в целом, чтобы последующий анализ действительно имел смысл. Единственное, что “изменяется” процессом квалификации данных, это исходная документация данных.
Квалификация данных - это основная часть работы
Работая с десятками проектов, связанных с данными, в сфере коммерции, аэрокосмической промышленности, гостиничного бизнеса, биоинформатики, энергетики, мы заметили, что квалификация данных всегда была самым требовательным этапом проекта. Алгоритмы машинного обучения могут казаться сложными, но пока инициатива остается в пределах известных границ задач регрессии или классификации, успех в машинном обучении в основном зависит от предварительных знаний в области. То же самое относится к обработке больших данных.
Проблемы квалификации данных хитры, потому что вы не знаете, что вам не хватает: это семантический разрыв между “истинной” семантикой, которую следует понимать в терминах данных, производимых системами, и “фактической” семантикой, воспринимаемой людьми, выполняющими анализ данных. То, чего вы не знаете, может навредить вам. Иногда семантический разрыв полностью делает недействительным весь анализ.
Мы наблюдаем, что большинство ИТ-специалистов сильно недооценивают глубину особенностей, связанных с большинством реальных бизнес-наборов данных. Большинство компаний даже не имеют полной документации на каждое поле таблицы. Однако мы обычно обнаруживаем, что даже с половиной страницы документации на поле, документация все равно далека от полноты.
Одной из (многих) проблем, с которыми сталкивается Lokad, является то, что сложно взимать плату за то, что даже не воспринимается как необходимость. Поэтому мы часто перекладываем работу по квалификации данных под видом более благородных задач, таких как “настройка статистических алгоритмов” или подобные научно звучащие задачи.
Реальность работы заключается в том, что квалификация данных не только требует больших усилий со стороны персонала, но и сама по себе является по-настоящему сложной задачей. Это смесь понимания бизнеса, понимания того, как процессы распространяются по множеству систем - некоторые из них неизбежно являются устаревшими, и преодоления разрыва между данными, как они есть, и ожиданиями конвейера машинного обучения.
Большинство компаний сильно недоинвестируют в квалификацию данных. В дополнение к тому, что это недооцененная проблема, вложение таланта в квалификацию данных не приводит к эффектным демонстрациям или даже реальным цифрам. В результате компании спешат на более поздние этапы процесса анализа данных, только чтобы обнаружить, что они плывут в медленном темпе, потому что ничто не работает так, как ожидалось. Нет быстрого решения для реального понимания данных.