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

Теперь, когда термин «Big Data» стал модным, бесчисленное количество компаний пытается извлечь больше пользы из своих данных. Квалификация данных, вероятно, является второй по величине причиной неудач проектов, сразу после нечетко поставленных или нерациональных бизнес-целей — что происходит тогда, когда инициатива начинается с «решения», а не с «проблемы». Давайте проясним этот загадочный этап «квалификации данных».

Данные как побочный продукт бизнес-приложений

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

Указанные системы созданы для управления бизнесом, и, как следствие, когда специалисту приходится выбирать между улучшением операций и качеством данных, всегда отдается предпочтение улучшению операций. Например, если штрихкод не считывается на кассе вашего местного гипермаркета, кассир неизменно выберет продукт, цена которого совпадает, и просканирует его дважды; иногда у них даже есть шпаргалка со штрихкодами, собранными на одном листке бумаги. Кассир поступает правильно: приоритет номер один — пропустить оплату клиента любой ценой. Формирование точных учетных записей по складу не является первоочередной задачей по сравнению с срочной необходимостью обслуживания очереди клиентов.

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

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

Квалификация данных относится к семантике данных

Цель этапа квалификации данных — прояснить и тщательно документировать семантику данных. Чаще всего, когда (крупные) компании отправляют табличные файлы с данными в Lokad, они также присылают нам Excel-таблицу, в которой каждому столбцу файлов сопоставлена короткая строка с описанием, обычно вида: Price: the price of the product. Однако такая краткая строка документации оставляет множество вопросов без ответа:

  • какая валюта применяется для данного продукта?
  • цена с налогом или без?
  • существует ли какая-либо другая переменная (например, скидка), влияющая на фактическую цену?
  • действительно ли цена на продукт одинакова во всех каналах?
  • должна ли цена иметь смысл для продуктов, которые ещё не проданы?
  • существуют ли крайние случаи, например, нулевые значения, отражающие отсутствие данных?

Даты также являются отличными кандидатами для семантических неоднозначностей, когда таблица orders содержит столбец date, и дата-время может относиться ко времени:

  • подтверждения покупки
  • внесения платежа
  • подтверждения платежа
  • создания заказа в бухгалтерской системе
  • отправки
  • доставки
  • закрытия заказа

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

Для бизнес-ориентированных наборов данных семантика данных почти всегда зависит от внутренних процессов и практик компании. Документация, относящаяся к таким процессам, если она вообще существует, обычно сосредоточена на том, что представляет интерес для руководства или аудиторов, но очень редко охватывает бесчисленное множество мелких элементов, существующих в ИТ-инфраструктуре компании. Однако дьявол кроется в деталях.

Квалификация данных — это не очистка данных

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

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

Квалификация данных составляет основную часть работы

Работая с десятками проектов, ориентированных на данные, в сферах торговли, аэрокосмической, гостиничной, биоинформатики, энергетики, мы наблюдали, что квалификация данных всегда была наиболее требовательным этапом проекта. Алгоритмы машинного обучения могут казаться сложными, но пока инициатива остаётся в рамках известных задач регрессии или классификации, успех в машинном обучении в основном зависит от предварительных знаний в данной области. То же самое относится и к обработке Big Data.

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

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

Одна из (многих) проблем, с которыми сталкивается Lokad, заключается в том, что трудно взимать плату за то, что даже не воспринимается как необходимость с самого начала. Таким образом, мы часто маскируем работу по квалификации данных под более благородные задачи, такие как «настройка статистических алгоритмов» или подобные научно звучащие задачи.

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

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