Как обнаружить и предотвратить дрейф модели в быстро меняющемся мире
Одна из ваших целей как специалиста по данным — обучить модель, которая будет максимально точной с точки зрения желаемых показателей оценки. Таким образом, вы следуете процессу, которому вы следовали сотни раз: определяете проект, собираете и очищаете данные, выбираете алгоритм модели, предварительно обрабатываете данные, обучаете модель и, наконец, проверяете окончательную производительность на тестовом наборе (или удерживаете его). вне набора). Если производительность соответствует или превышает желаемые результаты, вы развертываете модель в рабочей среде.
Поначалу производительность модели будет выглядеть нормально, но почти все серийные модели рано или поздно столкнутся с некоторым дрейфом в своей точности. Независимо от того, является ли это моделью глубокого обучения, которая классифицирует типы птиц по изображениям, или классической моделью машинного обучения, которая прогнозирует цену продажи дома на основе табличных данных, если вы развернете модель для производства сегодня и проверки ее через два года, вы получите разные результаты.
Причин такого изменения производительности много. Например, допустим, вы хотите обучить модель DL, которая классифицирует типы птиц, поэтому вы ищете в Интернете набор данных о птицах, который будет использоваться для обучения модели. Вы, наконец, сталкиваетесь с этим набором данных: «Европейский корпус зимних птиц». Это выглядит хорошо, и вы используете его для обучения модели. Модель кажется достаточно точной на заданном вами эталоне. Вы очень взволнованы этой моделью и решили создать приложение, которое можно будет использовать по всему миру, чтобы сфотографировать птицу с вашего мобильного телефона и классифицировать тип птицы, используя вашу модель! Вы переходите к другим направлениям, оставляя свой маленький проект на некоторое время позади, через полгода вы не забываете проверить, насколько довольны ваши пользователи. Внезапно возникают некоторые вопросы…
- Другая география: на этапе обучения модель «видела» только птиц из Европы, но европейские птицы — это не то же самое, что южноамериканские птицы.
- Другое время: Сезонность имеет значение! Модель знает только, как выглядят зимние птицы, летом вы можете увидеть других птиц.
- Различное качество: модель обучалась на высококачественных изображениях птиц, полученных с профессиональных камер. Теперь большинство изображений, отправленных в приложение, поступают со стандартных сотовых телефонов с изображениями более низкого качества.
Это очень небольшой пример, который демонстрирует нам, что если модель обучается в среде, отличной от тестовой среды, она столкнется с некоторым ухудшением результатов. В этом посте мы ответим на три вопроса: «что может измениться в моих данных со временем?», «как вовремя обнаружить изменение?» и «как решить?». Прежде чем мы углубимся в детали, я расскажу вам немного о продуктах, над которыми я работаю.
В BioCatch мы защищаем физических лиц и их финансовые счета от мошенничества. Мы достигаем этого, обучая модели ML/DL сотням поведенческих и неповеденческих признаков, чтобы различать действия киберпреступников и настоящих клиентов. Наша команда обучает и внедряет модели, которые помогают банкам выявлять и останавливать преступников до того, как они смогут завершить атаку. Поскольку мы имеем дело с человеческими решениями, как клиентами, так и преступниками, а поскольку мы знаем, что люди представляют собой сложные случайные процессы, мы имеем дело с сильно меняющейся средой. Вот почему для нас в BioCatch очень важно знать все детали и факторы, влияющие на дрейф модели, и вовремя предотвращать его.
«Единственная постоянная в жизни — это перемены». [Гераклит]
Во время обучения модели собранные данные разбиваются на наборы данных для обучения, проверки и тестирования. Модель обучается на обучающем наборе, оптимизируется на проверочном наборе и оценивается на тестовом наборе. Есть надежда, что после развертывания модели в продакшене мы получим результаты, аналогичные тестовому набору (выдерживаемому набору). Это происходит из-за распространенного предположения, что входные точки в обучающем наборе следуют тому же распределению вероятностей, что и входные точки, которые будут существовать на будущей фазе тестирования.
Но когда модель развертывается в рабочей среде, она перемещается из статической среды, в которой взаимосвязь между входными и выходными данными не меняется, в реальную среду, в которой взаимосвязь между входными и выходными данными меняется. Изменение отношений приводит к тому, что модель начинает терять предсказательную силу. Эта потеря прогностической способности называется дрейфом модели (или сдвигом набора данных).
Существует много типов дрейфа модели, но все они могут быть разделены на две основные категории: сдвиг ковариации и дрейф концепции.
Ковариативный сдвиг:
Ковариационный сдвиг – это тип дрейфа, возникающий при изменении распределения входных данных, т. е. p(X), в отличие от функции маркировки, т. е. условного распределения p(y|X), которое не изменяется. изменять. Статистики называют это ковариатным сдвигом, потому что проблема возникает из-за сдвига в распределении ковариат (признаков).
Примером ковариантного сдвига может быть модель классификации птиц DL, которая была обучена на птицах из Европы и протестирована на птицах из Южной Америки, или модель обнаружения мошенничества, которая была обучена на поведенческих данных с мобильных устройств и протестировано на поведенческих данных с ПК.
Почему происходит ковариативный сдвиг?
- Нестационарная среда: вызвана ли она временными или пространственными изменениями (с использованием модели новой географии).
- Смещение выборки. Несоответствие в распределении связано с тем, что обучающие данные были получены с помощью предвзятого метода, и, следовательно, они не могут достоверно представить среду, в которой должен быть развернут классификатор.
- Преобразование исходных данных. Обработка восходящих данных влияет на распределение значений функций (например, различная предварительная обработка).
- Изменение функции: функция удалена/изменена/добавлена.
- Ошибка эксплуатации.Проблема, не связанная с ML, например сбой развертывания, сбой зависимости, сбой сети (сбой приложения) или даже аппаратный сбой (рабочая служба ML имеет большую задержку во время вывода, что приводит к к вопросам сбора данных).
Идентификация:
Для каждой функции, используемой моделью, нам необходимо убедиться, что текущее распределение в рабочей среде аналогично распределению функции во время обучения. Если распределения различаются, вероятно, это случай ковариантного сдвига.
Как определить, что два дистрибутива разные?
- Сравнить статистику: среднее значение, медиана, дисперсия, асимметрия, эксцесс… Подходит только для распределений, где эти статистические данные имеют смысл (или «усреднение»).
- Проверка гипотезы с двумя выборками. Определите, является ли различие в двух выборках статистически значимым. Существует множество типов проверки гипотез с двумя выборками, например тест Колмогорова-Смирнова.
- Подход, основанный на модели. Основная идея заключается в том, что если в наборе данных существует сдвиг, то при смешивании поезда и теста вы все равно должны иметь возможность классифицировать экземпляр смешанного набора данных как поезд или тест с разумная точность. Каждая функция, имеющая отличительную информацию о разделении поезда и теста с высокой точностью, имеет дрейф (обычно метрикой является AUC-ROC).
Лечение:
- Проверьте наличие человеческой ошибки/Oсбоя ps и устраните ее:ищите дрейф, вызванный человеческим фактором, который можно исправить, например, ошибка в одной из функций.
- Удаление дрейфующих функций и повторное обучение.Одним из полезныхи простых решений является удаление всех дрейфующих функций из модели после их обнаружения и повторное обучение. Как и следовало ожидать, существует компромисс между удалением функций, которые способствуют ковариантному сдвигу, и включением этих функций и использованием их предсказательной силы. Этот компромисс — это то, что специалисту по данным необходимо исследовать в каждом конкретном случае. Как правило, функцию, которая существенно различается при обучении и тестировании, но не дает большой предсказательной силы, следует отбрасывать.
- Вес важности с использованием оценки отношения плотности.Основная идея заключается в том, что во время обучения вы хотите повысить вес обучающих выборок, которые очень похожи на ваши тестовые выборки. По сути, вы пытаетесь изменить набор обучающих данных так, чтобы он выглядел так, как будто он был взят из набора тестовых данных, тем самым уменьшая дрейф.
Дрейф концепции:
Дрейф понятий – это тип дрейфа, который происходит, когда условное распределение p(y|X) изменяется во времени, в отличие от распределения входных данных, которое не меняется во времени, т. е. p(X) . Это означает, что для одного и того же входа мы можем ожидать другой результат.
Примерами дрейфа концепций могут быть изменения мошенниками способов действий, чтобы обойти существующие модели обнаружения мошенничества. Другим примером могут быть изменения в поведении потребителей в результате пандемии Covid-19. Представьте себе: пандемия побуждает людей уезжать из Сан-Франциско, что приводит к падению цен на жилье, поэтому вероятность дома стоимостью пять миллионов долларов в Сан-Франциско, P($5M | SF), меняется с высокой ( до Covid-19) до низкого (во время Covid-19).
Почему происходит дрейф концепции?
- Человеческая деятельность.Если данные получены в результате какой-либо деятельности человека, вы рано или поздно столкнетесь с изменением концепции. Согласно Википедии: Невозможно избежать дрейфа понятий для сложных явлений, которые не регулируются фиксированными законами природы. Все процессы, возникающие в результате человеческой деятельности, такие как социально-экономические процессы и биологические процессы, вероятно, будут испытывать дрейф концепций. Следовательно, необходима периодическая переподготовка, также известная как обновление любой модели.
- Конкурент запускает новую услугу и вызывает изменение в поведении пользователей.
- Основные явления, такие как финансовый кризис или пандемия Covid-19.
- Модель вызвала изменение: модель заблокировала все мошеннические транзакции, что привело к новому распределению поведения.
Идентификация:
При дрейфе понятий меняется общая взаимосвязь между входными и выходными данными. Следовательно, обнаружение такого дрейфа немного сложнее, чем обнаружение ковариантного сдвига, основной причиной которого является потребность в метках. На некоторых рынках метки можно получить сразу, например, при прогнозировании цен на акции. На других рынках этикетки задерживаются из-за длинной петли обратной связи. В случае обнаружения мошенничества этот цикл обратной связи может занять от нескольких недель до месяцев.
После получения меток (или, по крайней мере, меток для выбранного подмножества) необходим постоянный мониторинг точности модели ML, чтобы определить, есть ли изменения в производительности. Если наблюдается ухудшение производительности, нам необходимо глубоко погрузиться в источник изменения. Если распределение признаков остается постоянным, велика вероятность того, что ваша модель страдает от концептуального дрейфа.
Лечение:
- Онлайн-обучение. Учащийся обновляется на лету по мере того, как модель обрабатывает один образец за раз. Этот процесс называется онлайн-обучение или пошаговое обучение. Он помогает модели избежать смещения концепций, поскольку для постоянного обновления модели используются новые данные.
- Повторно обучить модель с новым набором данных, полученным из альтернативных дистрибутивов. Повторное обучение следует запускать, как только производительность модели упадет ниже заданного порога. Одно из основных соображений заключается в том, какие данные нужно переобучить? Вариантами могут быть данные за последние X дней, с момента начала смены, с момента последнего обучения текущей модели или с использованием всех доступных данных.
- Обучение ансамблем с взвешиванием модели.При использовании этого метода несколько моделей объединяются в ансамбль, а результат представляет собой средневзвешенное значение выходных данных отдельных моделей. Мотивация обучения ансамблем заключается в том, что во время дрейфа данные могут генерироваться из смеси нескольких распределений. Ансамбль из нескольких моделей, где каждая модель по отдельности пытается охарактеризовать распределение данных и взаимосвязь между функцией и целевой переменной, должна работать лучше. Один из способов выполнить ансамбль — для каждого нового пакета данных обучить новый классификатор и объединить его, используя стратегию голосования с динамически взвешенным большинством.
Практические советы по устранению дрейфа модели
"Надеясь на лучшее, готовясь к худшему и не удивляясь чему-либо другому". [Майя Энджелоу]
Итак, после того, как мы рассмотрели два основных отклонения: сдвиг ковариации и расхождение понятий, давайте углубимся в дополнительные понятия, связанные с отклонением, которые влияют на модель ML/DL в производственной среде.
Что делать, если вы не определили дрейф вовремя?
Если дрейф не будет выявлен вовремя, прогнозы окажутся ошибочными, а бизнес-решения, принятые на основе прогнозов, могут иметь негативные последствия. Предложить не тот фильм пользователю Netflix не так уж и вредно, но не отметить мошенническую транзакцию на тысячи долларов довольно проблематично. Следовательно, важно создать повторяемый процесс для выявления смещения данных, определить пороговые значения процента смещения и настроить систему упреждающего оповещения, чтобы были предприняты соответствующие действия.
Хорошо, мониторинг — это ответ, но что именно мы должны отслеживать?
- Показатели, связанные с точностью. Самый прямой способ отслеживать производительность модели. Это также самый простой мониторинг, который вы можете сделать. Проблема в том, что это зависит от времени отклика обратной связи лейбла, которое иногда бывает слишком большим.
- Прогнозы.Контролировать прогнозылегко, потому что они низкоразмерны, поэтому их легко анализировать/визуализировать/обнаруживать дрейф с помощью двух выборочных тестов.
- Функции.Большинство инструментов мониторинга ориентированы на функции мониторинга. Вот некоторые примеры: отслеживайте базовую статистику по функциям, определяйте функции схему, где вы определяете тип каждой функции и другие правила, медианные значения указаны в [a,b], процент пропущенных значений меньше X и т. д.
- Необработанные данные. Самый сложный мониторинг, который вы можете сделать (с точки зрения вычислений и памяти). Вам нужно определить, какую полезную информацию можно отслеживать из необработанных данных и имеет ли она значительный прирост по сравнению с простым мониторингом функций.
Как быстро происходит дрейф?
- Внезапный дрейф. Здесь дрейф происходит за короткий промежуток времени. Обычно это вызвано непредвиденным событием (пандемия Covid-19), новым типом образцов, введенным в систему (например, новым устройством), или человеческой ошибкой (например, изменением функции или сбоем операционной системы).
- Постепенный сдвиг. Здесь изменение происходит со временем и в большинстве случаев интуитивно понятно. Примером этого может быть модель, предсказывающая цены на дома. Допустим, модель была запущена в производство в 2017 году и на тот момент имела точность около 80 с. Через пару лет точность начинает падать из-за роста цен на жилье с течением времени.
- Повторяющийся. Повторяющийся дрейф означает, что изменения повторяются после первого наблюдаемого события. то есть это происходит периодически. Простым примером этого могут быть дни шоппинга, такие как Черная пятница или Рождество.
Особый сценарий – проблемы с состязательной классификацией:
Давайте вернемся к примеру с классификатором птиц. Это простой случай, поскольку птицы не сильно меняются со временем, как мы знаем из медленной эволюции, поэтому распределение признаков остается неизменным с течением времени. Более того, птицы не говорят «эй, там куча людей, которые нас фотографируют, пытаются классифицировать наш тип, давайте их одурачить», а надевают очки и шляпы.
Напротив, в области обнаружения мошенничества существует противник, который активно работает против изученных концепций существующего классификатора. С точки зрения задачи машинного обучения, этот злоумышленник изменяет тестовый набор таким образом, чтобы он отличался от обучающего набора, что потенциально может привести к любому возможному дрейфу.
Это особый случай, который появляется только в нескольких областях, но его следует учитывать.
Подведем итог:
В этом посте мы дали базовый обзор интуиции, лежащей в основе дрейфа модели, и объяснили разницу между двумя основными категориями дрейфа: сдвиг ковариации и дрейф понятий. Мырассмотрели, почему каждый из них возникает, как идентифицировать каждый тип и различные способы решения проблемы. Кроме того, мы поняли, почему важно вовремя обнаруживать дрейф, и что ответом является мониторинг.
Это тема, которая, на мой взгляд, чрезвычайно важна, но все же недооценивается людьми в области науки о данных и машинного обучения. Надеемся, что этот пост помог вам расширить свои знания и навыки в области дрейфа модели, чтобы в следующий раз вы были лучше подготовлены.
Спасибо за прочтение!
Автор Итай Салмун, Data Scientist в BioCatch