Почему жизнь вашей модели машинного обучения зависит от мониторинга?

Махалия Степанов (специалист по данным Expleo)

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

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

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

1. Что такое мониторинг?

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

Мониторинг с устным переводом

После проверки и тестирования первый рефлекс при мониторинге развернутой модели машинного обучения должен заключаться в ее интерпретации и объяснении.
Интерпретируемость означает способность как можно проще проиллюстрировать часть информации. Короче говоря, интерпретация заключается в ответе на вопрос как, тогда как объяснимость заключается в знании того, почему модель черного ящика сделала конкретный прогноз [2].
Основой для доверия к производительности черного ящика является понимание того, как он делает прогнозы и почему они точны. Это первый ключ к предотвращению падения производительности. С практической точки зрения, инструменты интерпретации, такие как SHAP или LIME, выделяют особенности, которые склоняют чашу весов при составлении прогнозов (2). Поскольку модель может делать хорошие прогнозы по неверным причинам, этот процесс помогает доверять ей, когда необходимо обобщить более широкий диапазон входных данных.

Но даже если модель заслуживает доверия, мы не сможем избежать падения производительности. Это другая проблема: дрейф данных.

Мониторинг с изучением дрейфа данных

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

Дрейф данных происходит, когда распределение вновь собранных данных (на которых нужно протестировать модель) значительно изменилось по сравнению с распределением данных, используемых для обучения модели [3]. В этом случае набор поездов либо не является репрезентативным для пространства возможностей с самого начала (систематическая ошибка выбора, недопредставленные примеры), либо не является актуальным, если это пространство эволюционировало (нестационарная среда). В большинстве случаев и даже при работе со случаями, не зависящими от времени, может наблюдаться дрейф данных, поскольку часто невозможно получить образец поезда, который идеально отражает реальность.

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

2. Дрейф данных: процесс старения

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

Различные источники дрейфа данных

Конкретные примеры дрейфа данных

База данных Online Retail 2 [4] содержит данные за два года о покупках, сделанных покупателями интернет-магазина, расположенного в Великобритании. В магазине продаются товары повседневного спроса и праздничные подарки. В этом абзаце приведены примеры проблем смещения, с которыми можно столкнуться при использовании набора маркетинговых данных, такого как Online Retail 2.

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

  • Предыдущее изменение: изменение дизайна веб-сайта.

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

  • Ковариативный сдвиг: экономический кризис.

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

  • Смещение концепции: выход на другие рынки

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

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

3. Различные способы определения дрейфа… и решения, которые можно извлечь из него

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

Некоторые многомерные методы:

  • Дистанция земного движителя (расстояние Вассерштейна второго порядка) [5]. Это расстояние вычисляется путем усреднения расстояний всех комбинаций пар наблюдений из двух выборок, взвешенных по их ковариационным матрицам. Благодаря методам передискретизации можно смоделировать нулевую гипотезу о равенстве распределений (слабое расстояние) и вычислить p-значение этого теста.
  • Алгоритм точки смены. Этот алгоритм заключается в наведении курсора на ряд, чтобы разделить его на два распределения как можно дальше друг от друга в зависимости от выбранного статистического показателя: среднего, дисперсии и т. Д. [6]. Производный алгоритм применяет вычисление точки изменения к конкатенациям набора поездов и постепенно добавляемым стекам новых данных. Как только алгоритм возвращает тот же курсор / точку останова для n последовательных (n предопределенных) итераций, возникает предупреждение. То есть алгоритм точки изменения достаточно устойчив, чтобы обнаружить, что произошло значительное изменение [7].
  • Классификатор. Он классифицирует наблюдения в зависимости от того, идентифицирует ли их как исходящие из обучающей или тестовой выборки. Если двоичному классификатору удается сопоставить наблюдения с их исходной выборкой, то он может легко различить две выборки и обнаруживается дрейф [8].

После вычисления многомерных детекторов мы можем получить хорошее представление об уровне предупреждения, с которым имеем дело. Мы можем переобучить модель. Однофакторные детекторы интересны для получения точного представления о том, что изменилось. Индикаторы:

  • Тест хи-квадрат, который сравнивает дискретные распределения,
  • Тест Колмогорова-Смирнова. Этот тест позволяет проверить, следуют ли эти две выборки одному и тому же (в большинстве случаев непрерывному) закону на основе их функций распределения.
  • Индекс устойчивости населения [9]. Индекс стабильности также проверяет, происходят ли две популяции из одного и того же распределения. Априорное преимущество этого подхода состоит в том, что он учитывает дисбаланс данных (с условием относительной важности), который является обычным при изучении дрейфа.

Эти детекторы сноса конкретно указывают, как развивались данные: откуда возникла проблема смещения и способы ее решения. Мы можем отслеживать, какие данные хранить и нужно ли подавлять, добавлять или обновлять переменные (например, изменение категорий).

Эти методы могут применяться к любому типу данных (числовым, изображениям или текстам) при условии надлежащей стадии предварительной обработки [8]. Мы хотели бы отметить, что детекторы дрейфа не имеют прямого отношения к метрикам производительности модели, но они являются хорошим индикатором того, что набор данных поезда устарел, и модель может больше не подходить. Итак, если есть метрики, важно их исследовать. Обнаружение дрейфа данных позволяет понять и объяснить эволюцию производительности модели.

4. Конкретное использование мониторинга с обнаружением дрейфа данных

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

  • Никогда не переобучайте модель,
  • Систематическое обучение модели (каждый раз при сборе новых данных),
  • Мониторинг и повторное обучение модели при обнаружении значительного отклонения.

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

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

Пример с Интернет-магазином

Эти три сценария были применены к представленному выше примеру Интернет-магазина. Нам удалось создать пакет данных для каждого месяца с июня 2010 года по ноябрь 2011 года. В этих наборах данных есть целевая переменная для каждого клиента (покупка или отсутствие покупки) и индикаторы, основанные на их привычках потребления за предыдущие шесть месяцев (общее количество товаров купленных, общая потраченная сумма, количество покупок и т. д.).
Теперь представим, что мы находимся в конце июня 2010 года. Мы обучаем модель случайного леса на имеющихся данных (июнь 2010 года), чтобы определить, будет ли каждый покупатель покупать в интернет-магазине в течение данного месяца. С июля 2010 г. новый пакет данных доступен каждый месяц, и можно собирать фактические целевые значения (независимо от того, купил ли покупатель что-то в магазине или нет) в конце каждого месяца. Они необходимы при переобучении. Мы делаем прогнозы для каждой новой партии и проверяем производительность модели благодаря метрикам точности и потерь журнала. В этом примере метрики используются для проверки эффективности мониторинга, но у нас не могло быть к ним доступа, что реально может иметь место.

Благодаря мониторингу, два пакета (номер 4, октябрь 2010 г. и 11, май 2011 г.) были определены как точки останова алгоритмом на основе точек изменения. Отметим, что пользователи пакета мониторинга должны иметь контроль над чувствительностью детекторов дрейфа или, по крайней мере, иметь хорошее представление об уровне тревоги, с которым они имеют дело. Для принятия обоснованного решения необходимо учитывать несколько показателей.

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

5. Возьмите на заметку: обнаружение дрейфа очень важно

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

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

использованная литература

[1] Штатный автор, Microsoft: нам нужно поговорить о Тэе - OnMSFT.com, 27 марта 2016 г.

[2] С. Сингх, М. Т. Рибейро, К. Гестрин: Почему я должен вам доверять? Разъясняя предсказания любого классификатора », 2016.

[3] Симона Маджо, На пути к надежным MLOps с детекторами дрейфа, технический блог dataiku, 2020.

[4] База данных Online Retail 2 доступна на Kaggle.

[5] А. Рамдас, Н. Триллос, М. Кутури, О тестировании двух выборок Вассерштейна и родственных семействах непараметрических тестов. Энтропия стр. 47. Междисциплинарный институт цифровых публикаций, 2017.

[6] К. Труонг, Л. Удре, Н. Ваятис, Выборочный обзор методов обнаружения автономных точек изменения, Обработка сигналов 167: 107299, декабрь 2020 г.
Библиотека Python: Разрывы.

[7] Н. Жирар, Б. Равель, Т. Замойски, Предвосхищение моделей машинного обучения в MLOps, веб-семинар DataStrorm, декабрь 2020 г.

[8] А. Ван Луверен, Г. Ваканти, Дж. Клайз, А. Кока, О. Кобб, Alibi Detect: Алгоритмы для обнаружения выбросов, состязательности и дрейфа, библиотека Python, 2019.

[9] М. Берк, Индекс стабильности населения, апрель 2018 г.