Дрейф данных

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
 
(2 промежуточные версии не показаны)
Строка 1: Строка 1:
-
{{well|Статья написана с использованием LLM '''GPT-5.6 Terra High''' и проверена участником [[Участник:Oleg Batsiev|Oleg Batsiev]] 18:20, 11 июля 2026 (MSD).
+
{{well|Статья написана с использованием LLM '''GPT-5.6 Terra High''' и проверена участником [[Участник:Oleg Batsiev|Oleg Batsiev]] 17:50, 19 июля 2026 (MSD).
-
Промпты для текущей редакции и описание проверки приведены в [[Обсуждение:Дрейф данных]].
+
Промпты и описание редакторской проверки приведены в [[Обсуждение:Дрейф данных]].
}}
}}
{{TOCright}}
{{TOCright}}
-
'''Дрейф данных''' (англ. ''data drift'') — изменение статистических свойств данных, поступающих в модель после её обучения и внедрения. В узком смысле под ним понимают изменение распределения входных признаков <tex>P(X)</tex>. Более общий термин '''сдвиг распределения''' (англ. ''distribution shift'', ''dataset shift'') обозначает любое различие между совместными распределениями данных при разработке и эксплуатации модели, включая изменение распределения целевой переменной и зависимости цели от признаков.
+
'''Дрейф данных''' (англ. ''data drift'') — изменение статистических свойств данных, поступающих в модель после её обучения и внедрения. В прикладной практике этим выражением иногда называют любой '''распределительный сдвиг''' (''distribution shift''). В более узком смысле ''data drift'' означает изменение распределения входных признаков <tex>P(X)</tex>, тогда как изменение зависимости целевой переменной от признаков <tex>P(Y\mid X)</tex> называют '''дрейфом концепта''' (''concept drift'').
-
В прикладной литературе термин «дрейф данных» нередко используют расширительно, охватывая все эти случаи. Поэтому при сообщении о дрейфе важно указывать, что именно изменилось: входные данные, доли классов, выходы модели или её качество на новых размеченных объектах.
+
Дрейф важен для рекомендательных систем, кредитного скоринга, обнаружения мошенничества, медицинской диагностики и промышленного мониторинга. Модель и её программный код могут оставаться неизменными, но качество способно меняться вместе с пользователями, внешней средой, правилами принятия решений или процессом сбора данных. Вместе с тем обнаруженное различие распределений ещё не доказывает деградацию модели и не является автоматическим основанием для переобучения.
-
Проблема особенно существенна для потоковых и регулярно обновляемых систем: [[Рекомендательные системы|рекомендательных систем]], кредитного скоринга, обнаружения мошенничества, медицинской диагностики и промышленного мониторинга. Дрейф не обязательно приводит к деградации модели, а отсутствие заметного дрейфа входов не гарантирует сохранения качества.
+
== Формальная постановка ==
-
== Постановка задачи ==
+
Пусть при обучении совместное распределение признаков <tex>X</tex> и целевой переменной <tex>Y</tex> имело вид
-
Пусть при разработке данные описывались совместным распределением
+
::<tex>P_{\mathrm{train}}(X,Y),</tex>
-
::<tex>P_{mathrm{src}}(X,Y),</tex>
+
а в момент эксплуатации <tex>t</tex> оно равно
-
 
+
-
а в целевой среде или в момент времени <tex>t</tex> — распределением
+
::<tex>P_t(X,Y).</tex>
::<tex>P_t(X,Y).</tex>
-
Сдвиг распределения имеет место, если
+
Распределительный сдвиг имеет место, если
-
::<tex>P_t(X,Y)\ne P_{mathrm{src}}(X,Y).</tex>
+
::<tex>P_t(X,Y)\ne P_{\mathrm{train}}(X,Y).</tex>
-
Совместное распределение можно разложить двумя способами:
+
Совместное распределение допускает два разложения:
::<tex>P(X,Y)=P(Y\mid X)P(X)=P(X\mid Y)P(Y).</tex>
::<tex>P(X,Y)=P(Y\mid X)P(X)=P(X\mid Y)P(Y).</tex>
-
Эти разложения позволяют описать несколько идеализированных видов сдвига. Они основаны на предположениях о том, какая часть распределения сохраняется; по одним только неразмеченным целевым данным в общем случае невозможно однозначно установить тип сдвига.
+
Они позволяют различить идеализированные типы сдвига. В реальной системе несколько множителей могут изменяться одновременно, поэтому наблюдаемое изменение не всегда однозначно относится к одному типу.<ref name="gama">{{статья |автор=Gama J., Žliobaitė I., Bifet A., Pechenizkiy M., Bouchachia A. |заглавие=A Survey on Concept Drift Adaptation |издание=ACM Computing Surveys |год=2014 |том=46 |номер=4 |страницы=44:1–44:37 |ссылка статьи=https://doi.org/10.1145/2523813}}</ref>
 +
 
 +
Для фиксированной модели <tex>f</tex> риск в момент <tex>t</tex> равен
 +
 
 +
::<tex>R_t(f)=\mathbb{E}_{(X,Y)\sim P_t}\left[\ell(f(X),Y)\right],</tex>
 +
 
 +
где <tex>\ell</tex> — функция потерь. Изменение <tex>P_t(X,Y)</tex> влияет на качество лишь постольку, поскольку меняется средняя потеря модели. Поэтому статистически заметный сдвиг может быть практически безвредным, а небольшое изменение в критической области признакового пространства — существенно ухудшать качество.
 +
 
 +
Важно не смешивать три разных наблюдаемых сигнала:
 +
 
 +
* изменение распределения входов <tex>P_t(X)</tex>;
 +
* изменение распределения предсказаний <tex>P_t(\hat Y)</tex>;
 +
* изменение риска или прикладной метрики по истинным ответам.
-
Статистически обнаружимый сдвиг не равен практически значимой деградации. Изменение неиспользуемого признака может не повлиять на решения модели, тогда как небольшой сдвиг важного признака или зависимости <tex>P(Y\mid X)</tex> способен существенно увеличить риск.
+
Ни один из этих сигналов в общем случае не следует автоматически из другого.
-
== Основные виды сдвига ==
+
== Типы распределительного сдвига ==
=== Ковариатный сдвиг ===
=== Ковариатный сдвиг ===
-
'''Ковариатный сдвиг''' (англ. ''covariate shift'') задаётся условиями
+
'''Ковариатный сдвиг''' (''covariate shift'') — случай, когда распределение признаков изменилось,
-
::<tex>P_t(X)\ne P_{mathrm{src}}(X),</tex>
+
::<tex>P_t(X)\ne P_{\mathrm{train}}(X),</tex>
-
::<tex>P_t(Y\mid X)=P_{mathrm{src}}(Y\mid X).</tex>
+
но условное распределение цели при фиксированных признаках осталось прежним:
-
Например, после запуска сервиса в новом регионе меняется состав пользователей, но зависимость целевого события от характеристик пользователя внутри каждой области пространства признаков остаётся прежней.
+
::<tex>P_t(Y\mid X)=P_{\mathrm{train}}(Y\mid X).</tex>
-
При ковариатном сдвиге целевой риск модели <tex>f</tex> можно представить через исходное распределение с весами важности:
+
Например, после запуска продукта в новом регионе может измениться состав пользователей, хотя связь между наблюдаемыми характеристиками и целевым действием внутри каждой области признакового пространства сохраняется.
-
::<tex>R_t(f)=\mathbb{E}_{(X,Y)\sim P_{mathrm{src}}}\left[w(X)\,\ell(f(X),Y)\right],</tex>
+
При этих предпосылках новый риск можно представить через обучающее распределение:
-
где
+
::<tex>R_t(f)=\mathbb{E}_{P_{\mathrm{train}}}\left[w(X)\ell(f(X),Y)\right],\qquad w(x)=\frac{p_t(x)}{p_{\mathrm{train}}(x)}.</tex>
-
::<tex>w(x)=\frac{p_t(x)}{p_{mathrm{src}}(x)}.</tex>
+
Перевзвешивание требует условия покрытия: области, имеющие ненулевую вероятность при эксплуатации, должны быть представлены при обучении. Если <tex>p_{\mathrm{train}}(x)</tex> близка к нулю там, где <tex>p_t(x)</tex> велика, отношение плотностей становится неустойчивым, а недостающую информацию невозможно восстановить одними весами.
-
Такое взвешивание требует возможности оценить отношение плотностей и условия покрытия: для областей, вероятных в целевой среде, исходная плотность не должна быть нулевой. Большие веса увеличивают дисперсию оценки, поэтому на практике веса ограничивают или регуляризуют.<ref name="sugiyama">{{статья |автор=Sugiyama M., Krauledat M., Müller K.-R. |заглавие=Covariate Shift Adaptation by Importance Weighted Cross Validation |издание=Journal of Machine Learning Research |год=2007 |том=8 |номер=35 |страницы=985–1005 |ссылка=https://www.jmlr.org/papers/v8/sugiyama07a.html}}</ref>
+
Заметный ковариатный сдвиг может почти не влиять на качество, если изменились признаки, которые модель не использует, или если модель одинаково хорошо работает в обеих областях. И наоборот, стабильность одномерных распределений отдельных признаков не исключает изменения их совместной структуры.
=== Сдвиг априорных вероятностей классов ===
=== Сдвиг априорных вероятностей классов ===
-
'''Сдвиг меток''' или '''сдвиг априорных вероятностей''' (англ. ''label shift'', ''prior probability shift'') описывается условиями
+
'''Сдвиг априорных вероятностей классов''' (''label shift'', ''prior probability shift'') определяется условиями
-
::<tex>P_t(Y)\ne P_{mathrm{src}}(Y),</tex>
+
::<tex>P_t(Y)\ne P_{\mathrm{train}}(Y),</tex>
-
::<tex>P_t(X\mid Y)=P_{mathrm{src}}(X\mid Y).</tex>
+
::<tex>P_t(X\mid Y)=P_{\mathrm{train}}(X\mid Y).</tex>
-
Например, может измениться доля мошеннических операций, тогда как распределения признаков внутри классов «мошенничество» и «нормальная операция» остаются прежними. При выполнении предположения label shift априорные вероятности можно оценить по неразмеченным целевым данным и скорректировать вероятностные предсказания или порог. Однако это не универсальное средство: метод Black Box Shift Estimation, например, требует невырожденной матрицы ошибок вспомогательного классификатора.<ref name="lipton">{{статья |автор=Lipton Z. C., Wang Y.-X., Smola A. |заглавие=Detecting and Correcting for Label Shift with Black Box Predictors |издание=Proceedings of the 35th International Conference on Machine Learning |год=2018 |том=80 |страницы=3122–3130 |ссылка=https://proceedings.mlr.press/v80/lipton18a.html}}</ref>
+
Например, доля мошеннических операций может измениться, тогда как распределения признаков внутри классов «мошенничество» и «обычная операция» остаются прежними.
-
Если вместе с долей классов меняется <tex>P(X\mid Y)</tex>, простая перенастройка априорных вероятностей уже не обоснована.
+
При label shift обычно изменяются и <tex>P(X)</tex>, и апостериорное распределение <tex>P(Y\mid X)</tex>. Поэтому его нельзя определять через неизменность <tex>P(Y\mid X)</tex>: сохраняется именно <tex>P(X\mid Y)</tex>. При подтверждённых предпосылках можно оценить новые доли классов и скорректировать вероятности либо порог решения. Такая коррекция ненадёжна, если одновременно изменилось <tex>P(X\mid Y)</tex>, модель плохо откалибрована или изменилось содержательное правило присвоения класса.
=== Дрейф концепта ===
=== Дрейф концепта ===
-
'''Дрейф концепта''' (англ. ''concept drift'') в задачах обучения с учителем означает изменение зависимости целевой переменной от признаков:
+
'''Дрейф концепта''' изменение зависимости целевой переменной от признаков:
-
::<tex>P_t(Y\mid X)\ne P_{mathrm{src}}(Y\mid X).</tex>
+
::<tex>P_t(Y\mid X)\ne P_{\mathrm{train}}(Y\mid X).</tex>
-
После изменения кредитной политики одинаковые признаки заёмщика могут соответствовать иному риску; после замены оборудования прежняя связь между показаниями датчиков и неисправностью может перестать выполняться. Этот вид сдвига нельзя надёжно обнаружить только сравнением маргинальных распределений входов: необходимы новые метки либо дополнительные предположения.
+
Например, после изменения кредитной политики одинаковые наблюдаемые характеристики заёмщика могут соответствовать другому риску, а после модернизации оборудования прежние показания датчиков — иной вероятности неисправности. Распределение <tex>P(X)</tex> при этом может измениться или остаться прежним.
-
В исследованиях потокового обучения словом «концепт» иногда называют всё совместное распределение <tex>P(X,Y)</tex>, а дрейф входов без изменения <tex>P(Y\mid X)</tex> — виртуальным дрейфом. Терминология неоднородна, поэтому формальные условия важнее названия.<ref name="gama">{{статья |автор=Gama J., Žliobaitė I., Bifet A., Pechenizkiy M., Bouchachia A. |заглавие=A Survey on Concept Drift Adaptation |издание=ACM Computing Surveys |год=2014 |том=46 |номер=4 |страницы=44:1–44:37 |doi=10.1145/2523813}}</ref>
+
Если <tex>P(X)</tex> стабильно, такой дрейф принципиально нельзя подтвердить одним сравнением неразмеченных входов. Для его обнаружения нужны целевые метки, проверенные косвенные сигналы или дополнительные предположения. Следовательно, отсутствие feature drift не доказывает сохранение качества.
-
== Характер изменения во времени ==
+
=== Смешанные случаи ===
-
По динамике обычно различают:
+
Идеализированные определения полезны для выбора метода диагностики, но эксплуатационные изменения часто смешаны. Маркетинговая кампания может одновременно изменить состав пользователей <tex>P(X)</tex>, долю положительных исходов <tex>P(Y)</tex> и связь между признаками и целью <tex>P(Y\mid X)</tex>. В таком случае коррекция только одного множителя не устраняет проблему.
-
* '''резкий дрейф''' — один режим быстро сменяется другим;
+
== Изменение во времени ==
-
* '''постепенный дрейф''' — старый и новый режим некоторое время сосуществуют, причём вероятность нового режима увеличивается;
+
-
* '''инкрементальный дрейф''' — параметры распределения или концепта непрерывно изменяются небольшими шагами;
+
-
* '''повторяющийся дрейф''' — ранее наблюдавшийся режим возвращается, например из-за сезонности;
+
-
* '''кратковременное отклонение''' — временная аномалия, после которой прежний режим восстанавливается.
+
-
Последний случай не всегда следует считать дрейфом. Автоматическое переобучение на кратковременной неисправности или разовом событии может ухудшить систему.
+
В обзорах дрейфа различают несколько временных форм:<ref name="lu">{{статья |автор=Lu J., Liu A., Dong F., Gu F., Gama J., Zhang G. |заглавие=Learning under Concept Drift: A Review |издание=IEEE Transactions on Knowledge and Data Engineering |год=2019 |том=31 |номер=12 |страницы=2346–2363 |ссылка статьи=https://doi.org/10.1109/TKDE.2018.2876857}}</ref>
-
== Источники изменений ==
+
* '''резкий дрейф''' (''abrupt drift'') — один режим быстро сменяется другим;
 +
* '''постепенный дрейф''' (''gradual drift'') — старый и новый режимы некоторое время встречаются одновременно, а доля нового режима растёт;
 +
* '''инкрементальный дрейф''' (''incremental drift'') — концепт проходит через последовательность промежуточных состояний;
 +
* '''повторяющийся дрейф''' (''recurring drift'') — ранее наблюдавшийся режим возвращается, например вследствие сезонности.
-
Дрейф может отражать реальное изменение среды или техническое изменение процесса получения данных:
+
Постепенный и инкрементальный дрейф различаются характером перехода: в первом случае смешиваются наблюдения из старого и нового режимов, во втором сам режим последовательно изменяется. Кратковременный выброс, единичная аномалия и циклическое колебание внутри ожидаемого диапазона не обязательно означают новый устойчивый концепт.
-
* меняются поведение пользователей, рынок, ассортимент или состав аудитории;
+
Временная форма влияет на адаптацию. После резкого изменения полезно быстро уменьшить влияние старых данных; при повторяющихся режимах полное забывание истории может, напротив, ухудшить модель.
-
* изменяются правила принятия решений, интерфейс продукта либо политика сбора наблюдений;
+
-
* появляются новые категории, устройства или каналы взаимодействия;
+
-
* заменяются датчики, единицы измерения, кодировки или алгоритмы предобработки;
+
-
* нарушается конвейер: пропадают значения, сдвигаются поля или изменяется схема таблицы;
+
-
* модель воздействует на будущие данные, например рекомендации определяют, какие объекты пользователь вообще увидит.
+
-
Изменение схемы или поломка конвейера — прежде всего проблема качества данных, а не естественный статистический дрейф. Переобучение на повреждённых данных закрепляет ошибку вместо её устранения.
+
== Причины статистического сигнала ==
-
== Уровни мониторинга ==
+
=== Изменение среды ===
 +
 
 +
Дрейф может отражать реальное изменение процесса:
 +
 
 +
* поведение пользователей, рынка или состава аудитории;
 +
* появление новых товаров, устройств, категорий и каналов взаимодействия;
 +
* изменение законодательства, бизнес-правил или внешней среды;
 +
* старение, калибровку или замену оборудования;
 +
* влияние решений самой модели на последующие данные.
 +
 
 +
=== Неисправность данных ===
 +
 
 +
Похожий сигнал возникает из-за технической ошибки:
 +
 
 +
* изменилась схема таблицы, единица измерения или кодировка категории;
 +
* нарушился порядок или версия вычисления признаков;
 +
* выросла доля пропусков, дубликатов или несогласованных ключей;
 +
* обучение и эксплуатация используют разные преобразования;
 +
* метки стали поступать с ошибкой либо по изменившемуся правилу;
 +
* нарушилось соединение таблиц или временное выравнивание событий.
 +
 
 +
Во втором случае переобучение на повреждённых данных не адаптирует систему, а закрепляет неисправность. Поэтому проверка контракта и конвейера данных должна предшествовать содержательной интерпретации дрейфа.
 +
 
 +
== Мониторинг ==
=== Схема и качество данных ===
=== Схема и качество данных ===
-
До статистических тестов проверяют типы и диапазоны значений, обязательные поля, доли пропусков, уникальность идентификаторов, единицы измерения, категории и версии преобразований. Такие проверки быстрее и однозначнее выявляют многие технические неисправности.
+
Сначала контролируют свойства, нарушение которых само является ошибкой: типы и диапазоны значений, обязательные поля, уникальность ключей, долю пропусков, свежесть данных, версии справочников и преобразований. Полезно отдельно проверять момент события и момент загрузки, чтобы задержка поставки не выглядела как изменение поведения пользователей.
-
=== Распределения признаков ===
+
Такие проверки не заменяют статистический мониторинг, но помогают отделить неисправность от естественного изменения среды.
-
Для числовых признаков отслеживают квантили, среднее, дисперсию, гистограммы и доли значений вне эталонного диапазона. Для категориальных — частоты, новые и исчезнувшие категории. Эталоном может быть обучающая выборка, предыдущий период или сезонно сопоставимое окно.
+
=== Входные признаки ===
-
Одномерный мониторинг не видит изменения зависимостей между признаками. Для многомерных данных применяют двухвыборочные тесты в исходном или пониженном пространстве, максимальное среднее расхождение (MMD) и классификатор, обучаемый отличать исходные объекты от новых. Если такой классификатор устойчиво различает два периода на независимой проверке, это свидетельствует о сдвиге совместного распределения признаков.<ref name="rabanser">{{статья |автор=Rabanser S., Günnemann S., Lipton Z. C. |заглавие=Failing Loudly: An Empirical Study of Methods for Detecting Dataset Shift |издание=Advances in Neural Information Processing Systems |год=2019 |том=32 |страницы=1394–1406 |ссылка=https://proceedings.neurips.cc/paper/2019/hash/846c260d715e5b854ffad5f70a516c88-Abstract.html}}</ref>
+
Для числовых признаков сравнивают квантили, гистограммы, средние и доли пропусков; для категориальных — частоты, новые и исчезнувшие значения. Используют двухвыборочные статистические критерии и расстояния между распределениями. Помимо одномерных признаков проверяют совместную структуру или представления, чувствительные к многомерному сдвигу.
-
=== Выходы модели ===
+
Порог тревоги должен учитывать размер выборки и практическую значимость. На большом потоке статистический критерий способен обнаружить очень малое различие, не влияющее на решения. При одновременной проверке множества признаков растёт число ложных сигналов. Эталонный период должен учитывать известные суточные, недельные и сезонные режимы.
-
При отсутствии меток можно контролировать распределение предсказаний <tex>P_t(\hat Y)</tex>, долю решений выше порога, неопределённость и частоту отказа модели. Это ранние индикаторы, но не прямые измерения качества. Неизменное распределение выходов может скрывать перестановку ошибок между объектами или подгруппами.
+
Полезно связывать мониторинг с моделью: изменение важного для предсказания признака обычно требует большего внимания, чем столь же заметное изменение неиспользуемого поля. Однако оценки важности сами могут быть нестабильны и не заменяют измерение качества.
-
=== Качество при наличии меток ===
+
=== Предсказания модели ===
-
Наиболее прямой сигнал деградации — изменение целевой метрики на новых размеченных объектах. Для окна <tex>W_t</tex> средняя потеря равна
+
Без меток можно отслеживать распределение прогнозов
-
::<tex>\bar\ell_t=\frac{1}{|W_t|}\sum_{i\in W_t}\ell(f(x_i),y_i).</tex>
+
::<tex>P_t(\hat Y),</tex>
-
В зависимости от задачи отслеживают точность, полноту, ROC-AUC, логарифмическую потерю, ошибку прогноза и калибровку. Общую метрику дополняют показателями по значимым сегментам.
+
доли решений выше порога, неопределённость, калибровочные суррогаты и выход объектов за область, представленную при обучении. Эти показатели дают ранний сигнал, но не измеряют точность. Распределение предсказаний может корректно измениться вслед за долей классов; оно может остаться почти прежним, хотя ошибки перераспределились между объектами.
-
Разметка часто задерживается, является неполной или зависит от прежних решений модели. Например, исход кредита наблюдается через месяцы, а метка для отклонённой заявки может никогда не появиться. Такие задержанные и селективные метки необходимо учитывать при интерпретации мониторинга.
+
=== Качество по поступившим меткам ===
-
== Методы обнаружения ==
+
Когда истинные ответы доступны, отслеживают функцию потерь, метрики классификации или регрессии, калибровку и прикладные показатели. Для последовательности ошибок <tex>e_i</tex> средняя ошибка на недавнем окне <tex>W_t</tex> равна
-
=== Двухвыборочные проверки ===
+
::<tex>\bar e_t=\frac{1}{|W_t|}\sum_{i\in W_t}e_i.</tex>
-
Проверяется нулевая гипотеза
+
Средняя метрика может скрывать деградацию в важной подгруппе. Поэтому качество проверяют по заранее определённым регионам, типам устройств, категориям объектов и другим сегментам, одновременно показывая размер и неопределённость оценки для каждой группы.
-
::<tex>H_0:P_{mathrm{src}}(X)=P_t(X)</tex>
+
=== Задержка разметки ===
-
против альтернативы различия распределений. Для непрерывного одномерного признака может применяться критерий Колмогорова—Смирнова, для категориальных частот — критерий хи-квадрат. Population Stability Index часто используется как эвристическая мера по бинам, но не является универсальным статистическим тестом: его значение зависит от способа разбиения и объёма данных.
+
Метка может появляться через дни или месяцы после прогноза. Метрики следует группировать по времени, когда был сделан прогноз, а не только по времени получения метки. Для каждой когорты проверяют '''зрелость исхода''': успела ли пройти длительность, необходимая для наблюдения положительных и отрицательных событий.
-
На больших выборках тест обнаруживает и практически ничтожные различия. При одновременной проверке множества признаков растёт вероятность ложных тревог. Поэтому пороги калибруют на исторически стабильных периодах, учитывают множественные сравнения и дополняют статистическую значимость размером эффекта и влиянием на модель.
+
Сравнение незрелой свежей когорты со зрелой исторической создаёт систематическое смещение. Поэтому мониторинг должен отдельно показывать ранние неразмеченные сигналы и запаздывающую оценку качества, не выдавая одно за другое.
-
=== Фиксированные и адаптивные окна ===
+
== Методы обнаружения изменений ==
-
Фиксированное окно сравнивают с эталоном или с предыдущим окном. Короткое окно быстрее реагирует, но даёт более шумную оценку; длинное устойчивее, но увеличивает задержку обнаружения.
+
=== Фиксированные окна ===
-
ADWIN (''Adaptive Windowing'') поддерживает окно переменной длины для числового потока. Алгоритм проверяет разбиения окна на старую и новую части и при статистически значимом различии их средних удаляет старую часть. ADWIN можно применять, например, к последовательности ошибок модели; сам по себе детектор не определяет причину изменения и не обязан автоматически переобучать модель.<ref name="adwin">{{статья |автор=Bifet A., Gavaldà R. |заглавие=Learning from Time-Changing Data with Adaptive Windowing |издание=Proceedings of the 7th SIAM International Conference on Data Mining |год=2007 |страницы=443–448 |doi=10.1137/1.9781611972771.42 |ссылка=https://epubs.siam.org/doi/abs/10.1137/1.9781611972771.42}}</ref>
+
Простейшая схема сравнивает недавнее окно с эталонным периодом либо два соседних окна. Короткое окно быстрее реагирует, но даёт шумные оценки; длинное устойчивее, но обнаруживает изменение с задержкой. Размер окна и пороги выбирают на временно упорядоченных исторических данных, воспроизводя реальные задержки меток и сезонность.
-
=== Контроль ошибки ===
+
Один неизменный эталон со временем может устареть. Обновляемый эталон лучше отражает текущий режим, но способен постепенно «принять» нежелательное изменение как норму. Поэтому часто сохраняют одновременно исходную обучающую базу и более свежую эксплуатационную базу.
-
Если метки поступают достаточно быстро, детектор строят по последовательности потерь или ошибок. Такой сигнал ближе к практическому риску, чем любое изменение входа. Однако рост ошибки может быть вызван не дрейфом концепта, а поломкой признаков, изменением разметки или ошибкой вычислительного конвейера.
+
=== ADWIN ===
-
== Реакция на дрейф ==
+
ADWIN (''Adaptive Windowing'') предназначен для последовательности ограниченных скалярных наблюдений, например ошибок классификатора или выбранной числовой статистики. Алгоритм поддерживает окно переменной длины и рассматривает его разбиения на более старую и более новую части. Если различие средних превышает порог, зависящий от допустимой вероятности ложной тревоги и объёма данных, старая часть окна отбрасывается.<ref name="adwin">{{статья |автор=Bifet A., Gavaldà R. |заглавие=Learning from Time-Changing Data with Adaptive Windowing |издание=Proceedings of the 7th SIAM International Conference on Data Mining |год=2007 |страницы=443–448 |ссылка статьи=https://doi.org/10.1137/1.9781611972771.42}}</ref>
-
Сигнал мониторинга должен запускать диагностику, а не безусловное переобучение. Сначала проверяют качество и происхождение данных, изменения продукта, сегменты с наибольшим вкладом и наличие реальной деградации.
+
В стабильный период окно может расти и использовать больше наблюдений; после сигнала изменения оно сокращается. ADWIN обнаруживает изменение среднего поданной скалярной последовательности, а не произвольное изменение любого многомерного распределения. Для таблицы с несколькими признаками необходимо заранее определить отдельные скалярные потоки или статистики и учитывать множественные проверки. Если на вход подаётся ошибка модели, скорость сигнала зависит от задержки меток.
-
Возможные меры зависят от подтверждённого типа изменения:
+
Детектор не устанавливает причину изменения и не выбирает действие. Он лишь сообщает, что средние более старой и более новой частей выбранного окна статистически несовместимы в рамках его предпосылок и порога; это не является полной проверкой стационарности последовательности.
-
* при ковариатном сдвиге — взвешивание, сбор данных в непокрытых областях или переобучение;
+
== Адаптация модели ==
-
* при label shift — переоценка долей классов и порога, если выполняется предположение <tex>P(X\mid Y)=\mathrm{const}</tex>;
+
 
-
* при дрейфе концепта — обновление данных и модели либо изменение набора признаков и постановки задачи;
+
Сигнал мониторинга должен запускать диагностику, а не безусловное переобучение. После подтверждения содержательного изменения применяют одну или несколько стратегий.
-
* при технической неисправности — исправление и, при возможности, повторная обработка данных без обучения на ошибочном периоде.
+
=== Периодическое переобучение ===
=== Периодическое переобучение ===
-
Обновление по расписанию просто в эксплуатации, но может быть запоздалым при резком дрейфе и избыточным в стабильные периоды. Частота должна учитывать скорость накопления разметки, стоимость обучения и риск устаревания.
+
Переобучение по расписанию предсказуемо с точки зрения эксплуатации, вычислительного бюджета и аудита. Однако оно расходует ресурсы в стабильные периоды и может опоздать после резкого изменения. Без проверки свежих данных и сравнения с действующей моделью расписание способно регулярно выпускать модель хуже предыдущей.
 +
 
 +
=== Скользящее окно ===
 +
 
 +
Обучение только на последних <tex>k</tex> наблюдениях быстро забывает устаревший режим. Цена этого — меньший эффективный объём выборки и потеря редких либо сезонных случаев. Размер окна задаёт компромисс между скоростью адаптации и дисперсией оценки.
 +
 
 +
Окно следует определять по времени наступления события, а не случайному числу последних строк, если скорость потока меняется.
-
=== Скользящее окно и забывание ===
+
=== Взвешивание по давности ===
-
Модель можно обучать только на последних <tex>k</tex> наблюдениях или уменьшать вес старых объектов:
+
Старые наблюдения можно не удалять, а постепенно уменьшать их вес, например
::<tex>w_i=\lambda^{t-i},\qquad 0<\lambda<1.</tex>
::<tex>w_i=\lambda^{t-i},\qquad 0<\lambda<1.</tex>
-
Малое окно или быстрое забывание ускоряет адаптацию, но повышает дисперсию и стирает редкие либо сезонные режимы.
+
Такое затухание даёт плавную адаптацию, но не гарантирует соответствия реальной скорости дрейфа. Параметр <tex>\lambda</tex> выбирают на прошлых временных периодах с имитацией фактической доступности данных и меток.
-
=== Онлайн-обучение и ансамбли ===
+
=== Онлайн-обучение ===
-
Онлайн-алгоритмы обновляют параметры по мере поступления объектов. Ансамбли могут добавлять модели, обученные на свежих данных, и уменьшать вес устаревших. Эти методы быстрее реагируют, но требуют контроля версий, воспроизводимости и защиты от накопления ошибок обратной связи.
+
[[онлайн-обучение|Онлайн-алгоритм]] обновляется по мере поступления новых размеченных примеров и может быстро реагировать на изменение. Одновременно возрастают риски обучения на временной аномалии, повреждённых данных или обратной связи от собственных решений. Нужны ограничения на обновление, журналирование версий, контрольные выборки и возможность отката.
-
Новую модель проверяют на временно более позднем периоде, затем запускают в теневом режиме или на ограниченной доле трафика с возможностью отката. В задачах высокого риска рандомизированный A/B-тест не всегда допустим; способ внедрения должен соответствовать предметной области.
+
=== Ансамбли ===
-
== Оценивание системы при дрейфе ==
+
Ансамбль может добавлять модели, обученные на свежих данных, уменьшать вес устаревших моделей и сохранять специалистов для повторяющихся режимов. Это повышает гибкость, но усложняет калибровку, интерпретацию, выбор правила обновления и контроль вычислительной стоимости.
-
Систему мониторинга оценивают не только по качеству модели после адаптации. Важны доля ложных тревог, вероятность пропуска, задержка обнаружения, стоимость разметки и вычислений, время восстановления и устойчивость к сезонности.
+
=== Коррекция без полного переобучения ===
-
Для потоковых алгоритмов применяют последовательную оценку (''prequential evaluation''): очередной размеченный объект сначала используется для проверки текущей модели, а затем — для её обновления. Для пакетных систем используют разбиение по времени: обучение всегда предшествует валидации и тесту. Случайное перемешивание периодов может скрыть реальный дрейф и допустить утечку будущей информации.
+
При подтверждённом чистом label shift иногда достаточно скорректировать вероятности классов и порог решения. При изменении <tex>P(Y\mid X)</tex> может потребоваться обучение на свежих метках, изменение признаков или пересмотр постановки задачи. Если причина сигнала — неисправность конвейера, правильным действием является исправление и восстановление данных, а не адаптация модели.
-
== Практический контур мониторинга ==
+
== Практический порядок действий ==
-
# До внедрения фиксируют версии данных, преобразований, модели, эталонные распределения и целевые метрики.
+
# До внедрения фиксируют версии данных и преобразований, эталонные распределения, целевые метрики, подгруппы и допустимые задержки меток.
-
# Для критичных полей задают проверки схемы, диапазонов, пропусков и новых категорий.
+
# В эксплуатации отдельно контролируют контракт данных, входные признаки, предсказания и качество по зрелым меткам.
-
# Определяют сопоставимые окна, сезонные эталоны, минимальный объём выборки и правила множественных проверок.
+
# После сигнала определяют затронутые признаки, интервалы, источники и подгруппы; проверяют журналы поставщиков данных и недавние изменения продукта.
-
# Раздельно контролируют признаки, выходы модели и качество после поступления меток.
+
# Исключают изменение схемы, единиц измерения, версии вычисления признаков, неполную когорту меток и ошибку расчёта метрики.
-
# Сигнал связывают с сегментами, важностью признаков и практическим размером эффекта.
+
# Проверяют, связано ли статистическое изменение с деградацией модели или бизнес-показателя и имеет ли эффект практическую величину.
-
# До адаптации исключают поломку конвейера, изменение определения метки и селективность наблюдений.
+
# Формулируют гипотезу о типе сдвига и проверяют её предпосылки; не назначают стратегию только по названию тревоги.
-
# Новую модель проверяют на будущем временном периоде, сравнивают с действующей и сохраняют возможность отката.
+
# Кандидатную адаптацию оценивают на последующих временных интервалах без перемешивания будущих наблюдений в прошлое.
-
# После обновления продолжают мониторинг: исчезновение одного сигнала не доказывает устранение причины.
+
# Новую модель сравнивают с действующей по общей метрике, подгруппам, калибровке и эксплуатационным ограничениям; сохраняют возможность отката.
-
== Ограничения ==
+
Если решения модели влияют на будущие наблюдения, мониторинг отражает одновременно изменение среды и политики сбора. Например, рекомендательная система получает отклики преимущественно на показанные ею объекты, а кредитная модель видит исходы только по одобренным заявкам. Такой контур обратной связи требует анализа механизма отбора данных, а не только сравнения таблиц.
-
Детектор сдвига не устанавливает его причину и не выбирает автоматически правильную реакцию. Без меток обычно нельзя доказать, что изменилась именно зависимость <tex>P(Y\mid X)</tex>. Также невозможно гарантировать обнаружение произвольного сдвига конечной выборкой: чувствительность зависит от вида изменения, размерности, объёма окна и выбранного представления.
+
== Ограничения мониторинга ==
-
Частые тревоги создают усталость операторов, а частое переобучение может сделать систему нестабильной. Обучение на данных, сформированных прошлыми решениями модели, способно усиливать обратную связь. В кредитовании, найме и рекомендациях среднее качество может оставаться стабильным при одновременном ухудшении для отдельной группы, поэтому мониторинг дополняют анализом сегментов и последствий решений.
+
Детектор сдвига не доказывает его причину и не выбирает правильное действие. Мониторинг без разметки способен обнаружить изменения наблюдаемых входов и выходов, но не измеряет непосредственно ошибку и не гарантирует обнаружение изменения <tex>P(Y\mid X)</tex>.
-
== Философский аспект ==
+
Отсутствие тревоги также не доказывает стабильность: детектор может не видеть совместный сдвиг, редкую подгруппу или новый тип объекта. Напротив, тревога может быть вызвана ожидаемой сезонностью, маркетинговой кампанией или безвредным изменением малоинформативного признака.
-
Дрейф показывает, что модель описывает не неизменный мир, а закономерности исторических наблюдений, собранных при конкретных условиях. Изменение среды может сделать прежние статистические связи непригодными даже без изменения кода модели.
+
Качество меток само может дрейфовать. Изменение инструкции разметчика, состава экспертов или доступного горизонта наблюдения способно выглядеть как деградация модели. Поэтому происхождение и версия целевой переменной входят в мониторинг наравне с входами.
-
Способность обнаруживать пределы применимости является частью надёжности интеллектуальной системы. При этом мониторинг не превращает модель в автономного наблюдателя: человек по-прежнему определяет эталон, допустимый риск, смысл тревоги и условия, при которых систему разрешено обновлять.
+
Адаптация создаёт собственные риски. Частое переобучение увеличивает вариативность системы, может закреплять ошибки и исторические смещения и затрудняет аудит. Правила обнаружения, диагностики, выпуска и отката следует проектировать как единый эксплуатационный процесс.
 +
 
 +
== Связь с философией искусственного интеллекта ==
 +
 
 +
Дрейф показывает ограниченность представления модели о мире: закономерность, найденная в исторических данных, действует лишь при определённых условиях сбора и применения. Модель не знает автоматически, сохранились ли эти условия после внедрения.
 +
 
 +
Поэтому надёжность системы определяется не только качеством исходного обучения, но и способностью обнаруживать изменение области применимости, получать обратную связь и пересматривать решения. При этом статистический сигнал не заменяет содержательного объяснения того, что именно изменилось.
== См. также ==
== См. также ==
* [[Машинное обучение]]
* [[Машинное обучение]]
-
* [[Онлайн-обучение]]
+
* [[Инкрементное обучение]]
-
* [[Скользящий контроль]]
+
* [[Рекомендательные системы]]
* [[Рекомендательные системы]]
-
* [[A/B-тестирование]]
+
* [[A/B тестирование]]
-
* [[Причинное машинное обучение]]
+
-
 
+
-
== Примечания ==
+
-
 
+
-
<references />
+
== Литература ==
== Литература ==
-
* {{статья |автор=Gama J., Žliobaitė I., Bifet A., Pechenizkiy M., Bouchachia A. |заглавие=A Survey on Concept Drift Adaptation |издание=ACM Computing Surveys |год=2014 |том=46 |номер=4 |страницы=44:1–44:37 |doi=10.1145/2523813}}
+
<references />
-
* {{статья |автор=Sugiyama M., Krauledat M., Müller K.-R. |заглавие=Covariate Shift Adaptation by Importance Weighted Cross Validation |издание=Journal of Machine Learning Research |год=2007 |том=8 |номер=35 |страницы=985–1005 |ссылка=https://www.jmlr.org/papers/v8/sugiyama07a.html}}
+
-
* {{статья |автор=Bifet A., Gavaldà R. |заглавие=Learning from Time-Changing Data with Adaptive Windowing |издание=Proceedings of the 7th SIAM International Conference on Data Mining |год=2007 |страницы=443–448 |doi=10.1137/1.9781611972771.42 |ссылка=https://epubs.siam.org/doi/abs/10.1137/1.9781611972771.42}}
+
-
* {{статья |автор=Lipton Z. C., Wang Y.-X., Smola A. |заглавие=Detecting and Correcting for Label Shift with Black Box Predictors |издание=Proceedings of the 35th International Conference on Machine Learning |год=2018 |том=80 |страницы=3122–3130 |ссылка=https://proceedings.mlr.press/v80/lipton18a.html}}
+
-
* {{статья |автор=Rabanser S., Günnemann S., Lipton Z. C. |заглавие=Failing Loudly: An Empirical Study of Methods for Detecting Dataset Shift |издание=Advances in Neural Information Processing Systems |год=2019 |том=32 |страницы=1394–1406 |ссылка=https://proceedings.neurips.cc/paper/2019/hash/846c260d715e5b854ffad5f70a516c88-Abstract.html}}
+
{{DEFAULTSORT:Дрейф данных}}
{{DEFAULTSORT:Дрейф данных}}
[[Категория:Машинное обучение]]
[[Категория:Машинное обучение]]
-
[[Категория:Энциклопедия анализа данных]]
 

Текущая версия

Статья написана с использованием LLM GPT-5.6 Terra High и проверена участником Oleg Batsiev 17:50, 19 июля 2026 (MSD).

Промпты и описание редакторской проверки приведены в Обсуждение:Дрейф данных.


Содержание

Дрейф данных (англ. data drift) — изменение статистических свойств данных, поступающих в модель после её обучения и внедрения. В прикладной практике этим выражением иногда называют любой распределительный сдвиг (distribution shift). В более узком смысле data drift означает изменение распределения входных признаков P(X), тогда как изменение зависимости целевой переменной от признаков P(Y\mid X) называют дрейфом концепта (concept drift).

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

Формальная постановка

Пусть при обучении совместное распределение признаков X и целевой переменной Y имело вид

P_{\mathrm{train}}(X,Y),

а в момент эксплуатации t оно равно

P_t(X,Y).

Распределительный сдвиг имеет место, если

P_t(X,Y)\ne P_{\mathrm{train}}(X,Y).

Совместное распределение допускает два разложения:

P(X,Y)=P(Y\mid X)P(X)=P(X\mid Y)P(Y).

Они позволяют различить идеализированные типы сдвига. В реальной системе несколько множителей могут изменяться одновременно, поэтому наблюдаемое изменение не всегда однозначно относится к одному типу.[1]

Для фиксированной модели f риск в момент t равен

R_t(f)=\mathbb{E}_{(X,Y)\sim P_t}\left[\ell(f(X),Y)\right],

где \ell — функция потерь. Изменение P_t(X,Y) влияет на качество лишь постольку, поскольку меняется средняя потеря модели. Поэтому статистически заметный сдвиг может быть практически безвредным, а небольшое изменение в критической области признакового пространства — существенно ухудшать качество.

Важно не смешивать три разных наблюдаемых сигнала:

  • изменение распределения входов P_t(X);
  • изменение распределения предсказаний P_t(\hat Y);
  • изменение риска или прикладной метрики по истинным ответам.

Ни один из этих сигналов в общем случае не следует автоматически из другого.

Типы распределительного сдвига

Ковариатный сдвиг

Ковариатный сдвиг (covariate shift) — случай, когда распределение признаков изменилось,

P_t(X)\ne P_{\mathrm{train}}(X),

но условное распределение цели при фиксированных признаках осталось прежним:

P_t(Y\mid X)=P_{\mathrm{train}}(Y\mid X).

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

При этих предпосылках новый риск можно представить через обучающее распределение:

R_t(f)=\mathbb{E}_{P_{\mathrm{train}}}\left[w(X)\ell(f(X),Y)\right],\qquad w(x)=\frac{p_t(x)}{p_{\mathrm{train}}(x)}.

Перевзвешивание требует условия покрытия: области, имеющие ненулевую вероятность при эксплуатации, должны быть представлены при обучении. Если p_{\mathrm{train}}(x) близка к нулю там, где p_t(x) велика, отношение плотностей становится неустойчивым, а недостающую информацию невозможно восстановить одними весами.

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

Сдвиг априорных вероятностей классов

Сдвиг априорных вероятностей классов (label shift, prior probability shift) определяется условиями

P_t(Y)\ne P_{\mathrm{train}}(Y),
P_t(X\mid Y)=P_{\mathrm{train}}(X\mid Y).

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

При label shift обычно изменяются и P(X), и апостериорное распределение P(Y\mid X). Поэтому его нельзя определять через неизменность P(Y\mid X): сохраняется именно P(X\mid Y). При подтверждённых предпосылках можно оценить новые доли классов и скорректировать вероятности либо порог решения. Такая коррекция ненадёжна, если одновременно изменилось P(X\mid Y), модель плохо откалибрована или изменилось содержательное правило присвоения класса.

Дрейф концепта

Дрейф концепта — изменение зависимости целевой переменной от признаков:

P_t(Y\mid X)\ne P_{\mathrm{train}}(Y\mid X).

Например, после изменения кредитной политики одинаковые наблюдаемые характеристики заёмщика могут соответствовать другому риску, а после модернизации оборудования прежние показания датчиков — иной вероятности неисправности. Распределение P(X) при этом может измениться или остаться прежним.

Если P(X) стабильно, такой дрейф принципиально нельзя подтвердить одним сравнением неразмеченных входов. Для его обнаружения нужны целевые метки, проверенные косвенные сигналы или дополнительные предположения. Следовательно, отсутствие feature drift не доказывает сохранение качества.

Смешанные случаи

Идеализированные определения полезны для выбора метода диагностики, но эксплуатационные изменения часто смешаны. Маркетинговая кампания может одновременно изменить состав пользователей P(X), долю положительных исходов P(Y) и связь между признаками и целью P(Y\mid X). В таком случае коррекция только одного множителя не устраняет проблему.

Изменение во времени

В обзорах дрейфа различают несколько временных форм:[1]

  • резкий дрейф (abrupt drift) — один режим быстро сменяется другим;
  • постепенный дрейф (gradual drift) — старый и новый режимы некоторое время встречаются одновременно, а доля нового режима растёт;
  • инкрементальный дрейф (incremental drift) — концепт проходит через последовательность промежуточных состояний;
  • повторяющийся дрейф (recurring drift) — ранее наблюдавшийся режим возвращается, например вследствие сезонности.

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

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

Причины статистического сигнала

Изменение среды

Дрейф может отражать реальное изменение процесса:

  • поведение пользователей, рынка или состава аудитории;
  • появление новых товаров, устройств, категорий и каналов взаимодействия;
  • изменение законодательства, бизнес-правил или внешней среды;
  • старение, калибровку или замену оборудования;
  • влияние решений самой модели на последующие данные.

Неисправность данных

Похожий сигнал возникает из-за технической ошибки:

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

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

Мониторинг

Схема и качество данных

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

Такие проверки не заменяют статистический мониторинг, но помогают отделить неисправность от естественного изменения среды.

Входные признаки

Для числовых признаков сравнивают квантили, гистограммы, средние и доли пропусков; для категориальных — частоты, новые и исчезнувшие значения. Используют двухвыборочные статистические критерии и расстояния между распределениями. Помимо одномерных признаков проверяют совместную структуру или представления, чувствительные к многомерному сдвигу.

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

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

Предсказания модели

Без меток можно отслеживать распределение прогнозов

P_t(\hat Y),

доли решений выше порога, неопределённость, калибровочные суррогаты и выход объектов за область, представленную при обучении. Эти показатели дают ранний сигнал, но не измеряют точность. Распределение предсказаний может корректно измениться вслед за долей классов; оно может остаться почти прежним, хотя ошибки перераспределились между объектами.

Качество по поступившим меткам

Когда истинные ответы доступны, отслеживают функцию потерь, метрики классификации или регрессии, калибровку и прикладные показатели. Для последовательности ошибок e_i средняя ошибка на недавнем окне W_t равна

\bar e_t=\frac{1}{|W_t|}\sum_{i\in W_t}e_i.

Средняя метрика может скрывать деградацию в важной подгруппе. Поэтому качество проверяют по заранее определённым регионам, типам устройств, категориям объектов и другим сегментам, одновременно показывая размер и неопределённость оценки для каждой группы.

Задержка разметки

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

Сравнение незрелой свежей когорты со зрелой исторической создаёт систематическое смещение. Поэтому мониторинг должен отдельно показывать ранние неразмеченные сигналы и запаздывающую оценку качества, не выдавая одно за другое.

Методы обнаружения изменений

Фиксированные окна

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

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

ADWIN

ADWIN (Adaptive Windowing) предназначен для последовательности ограниченных скалярных наблюдений, например ошибок классификатора или выбранной числовой статистики. Алгоритм поддерживает окно переменной длины и рассматривает его разбиения на более старую и более новую части. Если различие средних превышает порог, зависящий от допустимой вероятности ложной тревоги и объёма данных, старая часть окна отбрасывается.[1]

В стабильный период окно может расти и использовать больше наблюдений; после сигнала изменения оно сокращается. ADWIN обнаруживает изменение среднего поданной скалярной последовательности, а не произвольное изменение любого многомерного распределения. Для таблицы с несколькими признаками необходимо заранее определить отдельные скалярные потоки или статистики и учитывать множественные проверки. Если на вход подаётся ошибка модели, скорость сигнала зависит от задержки меток.

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

Адаптация модели

Сигнал мониторинга должен запускать диагностику, а не безусловное переобучение. После подтверждения содержательного изменения применяют одну или несколько стратегий.

Периодическое переобучение

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

Скользящее окно

Обучение только на последних k наблюдениях быстро забывает устаревший режим. Цена этого — меньший эффективный объём выборки и потеря редких либо сезонных случаев. Размер окна задаёт компромисс между скоростью адаптации и дисперсией оценки.

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

Взвешивание по давности

Старые наблюдения можно не удалять, а постепенно уменьшать их вес, например

w_i=\lambda^{t-i},\qquad 0<\lambda<1.

Такое затухание даёт плавную адаптацию, но не гарантирует соответствия реальной скорости дрейфа. Параметр \lambda выбирают на прошлых временных периодах с имитацией фактической доступности данных и меток.

Онлайн-обучение

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

Ансамбли

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

Коррекция без полного переобучения

При подтверждённом чистом label shift иногда достаточно скорректировать вероятности классов и порог решения. При изменении P(Y\mid X) может потребоваться обучение на свежих метках, изменение признаков или пересмотр постановки задачи. Если причина сигнала — неисправность конвейера, правильным действием является исправление и восстановление данных, а не адаптация модели.

Практический порядок действий

  1. До внедрения фиксируют версии данных и преобразований, эталонные распределения, целевые метрики, подгруппы и допустимые задержки меток.
  2. В эксплуатации отдельно контролируют контракт данных, входные признаки, предсказания и качество по зрелым меткам.
  3. После сигнала определяют затронутые признаки, интервалы, источники и подгруппы; проверяют журналы поставщиков данных и недавние изменения продукта.
  4. Исключают изменение схемы, единиц измерения, версии вычисления признаков, неполную когорту меток и ошибку расчёта метрики.
  5. Проверяют, связано ли статистическое изменение с деградацией модели или бизнес-показателя и имеет ли эффект практическую величину.
  6. Формулируют гипотезу о типе сдвига и проверяют её предпосылки; не назначают стратегию только по названию тревоги.
  7. Кандидатную адаптацию оценивают на последующих временных интервалах без перемешивания будущих наблюдений в прошлое.
  8. Новую модель сравнивают с действующей по общей метрике, подгруппам, калибровке и эксплуатационным ограничениям; сохраняют возможность отката.

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

Ограничения мониторинга

Детектор сдвига не доказывает его причину и не выбирает правильное действие. Мониторинг без разметки способен обнаружить изменения наблюдаемых входов и выходов, но не измеряет непосредственно ошибку и не гарантирует обнаружение изменения P(Y\mid X).

Отсутствие тревоги также не доказывает стабильность: детектор может не видеть совместный сдвиг, редкую подгруппу или новый тип объекта. Напротив, тревога может быть вызвана ожидаемой сезонностью, маркетинговой кампанией или безвредным изменением малоинформативного признака.

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

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

Связь с философией искусственного интеллекта

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

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

См. также

Литература

Личные инструменты