- Вопрос или проблема
- Краткое содержание
- Оригинальная задача
- Мой общий рабочий процесс (после представления базовых результатов и исследовательского анализа)
- Ответ или решение
- Подход к проекту по анализу временных рядов и обнаружению аномалий
- Теория
- Пример
- Применение
- Анализ требований и коммуникация:
- Техническая реализация:
- Управление ожиданиями:
Вопрос или проблема
Краткое содержание
Имею опыт в MLOps и машинном обучении, начал работать у нового работодателя (как первый инженер AI) и провалился в проекте прогнозирования временных рядов. Подробности описаны ниже, есть идеи, что я мог бы сделать лучше?
Оригинальная задача
Как описал мой нетехнический начальник (без опыта работы с машинным обучением), цель — найти аномалии в базе данных расходов в Big Query. Больше никаких деталей, но он сказал, что как старший инженер, я должен разобраться в специфике.
Это справедливо, но в данных есть дюжина различных атрибутов затрат: на уровне департамента, на уровне отдельных клиентов, на уровне менеджеров по работе с клиентами, предварительные затраты на онбординг, затраты на пост-трейдинг, затраты на ресурсы и т. д. Эта область для меня относительно новая, поэтому сначала я был немного растерян, пытаясь понять, что моделировать или где искать аномалию.
Тем не менее, примерно через неделю я представил модель обнаружения аномалий и базовые результаты в виде Python-скриптов, ноутбуков, графиков и презентаций на основе
- моих суждений и предположений о том, какие затраты имеют значение
- какие характеристики следует учитывать для выявления аномалий
- будущих шагов по внедрению в производственное приложение и обеспечению доступности для пользователей (внутренние пользователи компании из других департаментов)
- запроса обратной связи по моим предположениям
Сама часть, связанная с моделированием ИИ, была тривиально простой. Я также настаивал на необходимости донесения базовых идей и результатов до заинтересованных сторон в разных департаментах (которые будут их потребителями/пользователями), чтобы получить обратную связь по предметной области. Но мой начальник продолжал давать относительно незначительные (с моей точки зрения) замечания (на визуальном уровне), такие как
- показать здесь круговую диаграмму вместо гистограммы
- показать затраты на уровне департамента вместо уровня менеджеров по работе с клиентами
- показать медиану за последние три квартала и т. д.
- добавить возможность установки пользователем порога для некоторых аномальных данных о затратах (всё работало через Python-скрипт, так что пользователя, как такового, не было, но это моделировалось установкой переменной в качестве порога)
и многие другие подобные замечания. Данные доступны в Big Query, и любой может создать представление с группировкой и фильтрацией и т. д. (и я это сделал), но это не имело ничего общего с обнаружением аномалий (просто разные способы нарезки и представления данных), и это повторялось несколько раз.
Я несколько раз упоминал что-то вроде
Если у вас есть конкретные требования к логике бизнеса, какому виду диаграмм вы предпочитаете, какие затраты вы хотите моделировать или что вы считаете аномалией, можете сказать мне?
Ответ обычно был таким
Вы эксперт по ML, вы должны это выяснить.
Мой общий рабочий процесс (после представления базовых результатов и исследовательского анализа)
Внедрял практическую обратную связь, как только она появлялась (в течение двух рабочих дней), документировал обсуждения, прогресс и обновления в общем файле и на доске jira для ведения учета. Но мои просьбы поговорить с пользователями о том, что они могли бы найти полезным, несколько раз игнорировались по причинам типа Джек в отпуске, Боб в командировке, Джойя очень занята и т. д.
Нужно ли говорить, что мой начальник как-то стал нетерпелив к этому, и я столкнулся с увольнением.
Таким образом, цель этого поста – не в поиске сочувствия, а в том, как бы вы подошли ко всему проекту (управление ожиданиями + данные + неопределенность). Как я уже сказал, сама техническая задача казалась достаточно простой, так же, как и создание пары представлений в Big Query, чтобы увидеть, например, какой департамент потратил больше всего в таком-то квартале и т. д.
Таким образом, конкретные вопросы такие
- Считаете ли вы, что проект является проектом ИИ/МО?
- Как бы вы собирали требования более конкретным образом, чтобы потом можно было выполнить?
П. С. У них даже нет определения аномалии. Сначала я использовал спектральную модель остатка (от Microsoft, есть статья об этом) для определения аномалий, но потом они не могли это понять. Поэтому я переключился на простое обнаружение аномалий на основе Z-оценки (основано на среднем и стандартном отклонении).
Ответ или решение
Подход к проекту по анализу временных рядов и обнаружению аномалий
Теория
Временные ряды и обнаружение аномалий — это сложные задачи в области анализа данных и машинного обучения. Эти задачи требуют некоторого уровня понимания как статистических методов, так и алгоритмов машинного обучения. Изучение временных рядов необходимо для понимания прошлых и текущих тенденций данных, а обнаружение аномалий важно для выявления необычных, потенциально проблемных случаев в наших данных.
Эффективный подход к проекту, подобному вашему, обычно требует четкого понимания целей проекта, сбора требований от всех заинтересованных сторон и наладки коммуникации. Однако, из вашего описания видно, что у вас возникли затруднения с получением четких требований и коммуникацией с коллегами. Это повысило неопределенность и усложнило подход к реализации проекта.
Пример
Представим себе пример с фирмой, занимающейся торговлей. Допустим, руководство компании хочет уменьшить случаи недовыполнения месячного плана продаж. Для этого необходимо выявлять аномалии в продажах на ранней стадии. Четкое определение задачи: "Обнаружение аномалий в объемах продаж на уровне сотрудников и регионов для увеличения их предсказуемости и реагирования на потенциальные проблемы в работе".
Для этого мы используем статистические методы анализа временных рядов и алгоритмы машинного обучения, например ARIMA для временного ряда и классические методы обнаружения аномалий, такие как метод Z-оценки или методы кластеризации.
Применение
Анализ требований и коммуникация:
Для успешной реализации проекта в области временных рядов и обнаружения аномалий необходимо начать с анализа бизнес-требований. Это предполагает активный диалог с заинтересованными сторонами, чтобы выяснить их видение итогового продукта, и получение конкретных ответов на следующие вопросы:
-
Цель: Какова основная цель проекта? Какие конкретные бизнес-проблемы он должен решить?
-
Требования: Какие данные и в каких разрезах наиболее важны? Какие метрики будут использоваться для оценки успеха модели?
-
Ожидания: Каковы ожидания в отношении представления данных? Какие визуализации будут наиболее полезны?
-
Определение аномалии: Как определяется аномалия в контексте бизнеса данной компании? Возможно необходимо провести совместную подборку примеров аномалий.
Коммуникация с начальством и заинтересованными сторонами должна быть активной и направленной на ясность и возникновение конкретных задач.
Техническая реализация:
-
Исследование данных: Первым шагом является проведение углубленного EDA (Exploratory Data Analysis) для понимания структуры и особенностей данных. Важно выявить сезонность, тренды и циклы, которые могут быть характерными для вашего набора данных.
-
Выбор модели: На основании EDA и бизнес-требований выбираются модели. Это могут быть как статистические (например, ARIMA, SARIMA) так и более современные ML подходы (например, LSTM, Prophet).
-
Обработка данных: Подготовка данных включает очистку данных, временное кэширование, нормализацию и агрегирование.
-
Обработка аномалий: Выбор метода для обнаружения аномалий должен основываться на понимании бизнес-контекста. Более простые методы, например, Z-оценка, могут быть легче интерпретируемы неспециалистами.
-
Визуализация и обратная связь: Регулярные демо-презентации с графиками и визуализациями результатов на регулярных встречах помогут убедиться в движении в нужном направлении и получить важную обратную связь.
Управление ожиданиями:
Управление ожиданиями может быть самым сложным аспектом проекта. Необходимо быть предельно честным в оценке сроков и возможности реализации желаемых бизнес-функций. Если на какой-либо из стадий проекта возникает неопределенность, необходимо немедленно искать обратную связь и корректировку курса.
Завершая ответ, можно посоветовать: при подобных ситуациях крайне важно обращать внимание на аспекты коммуникации, разъяснения ожиданий и управления ими. Постараться максимально интегрироваться в процессы компании для лучшего понимания бизнеса и поиска нестандартных подходов к выявлению аномалий.