Дрейф данных
Материал из MachineLearning.
| Строка 4: | Строка 4: | ||
{{TOCright}} | {{TOCright}} | ||
| - | '''Дрейф данных''' (англ. ''data drift'') — изменение статистических свойств данных, поступающих в модель после её обучения и внедрения. В | + | '''Дрейф данных''' (англ. ''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>X</tex> и целевой переменной <tex>Y</tex> имело вид | ||
| Строка 22: | Строка 22: | ||
::<tex>P_t(X,Y)\ne P_{\mathrm{train}}(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 |doi=10.1145/2523813 |ссылка=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>; | ||
| + | * изменение риска или прикладной метрики по истинным ответам. | ||
| + | |||
| + | Ни один из этих сигналов в общем случае не следует автоматически из другого. | ||
== Типы распределительного сдвига == | == Типы распределительного сдвига == | ||
| Строка 48: | Строка 54: | ||
::<tex>P_t(Y\mid X)=P_{\mathrm{train}}(Y\mid X).</tex> | ::<tex>P_t(Y\mid X)=P_{\mathrm{train}}(Y\mid X).</tex> | ||
| - | Например, после запуска продукта в новом регионе может измениться состав пользователей, хотя связь между наблюдаемыми характеристиками | + | Например, после запуска продукта в новом регионе может измениться состав пользователей, хотя связь между наблюдаемыми характеристиками и целевым действием внутри каждой области признакового пространства сохраняется. |
| - | При | + | При этих предпосылках новый риск можно представить через обучающее распределение: |
| - | ::<tex>w(x)=\frac{p_t(x)}{p_{\mathrm{train}}(x)}.</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>p_{\mathrm{train}}(x)</tex> близка к нулю там, где <tex>p_t(x)</tex> велика, отношение плотностей становится неустойчивым, а недостающую информацию невозможно восстановить одними весами. | |
| - | Заметный ковариатный сдвиг может почти не влиять на качество, если изменились | + | Заметный ковариатный сдвиг может почти не влиять на качество, если изменились признаки, которые модель не использует, или если модель одинаково хорошо работает в обеих областях. И наоборот, стабильность одномерных распределений отдельных признаков не исключает изменения их совместной структуры. |
=== Сдвиг априорных вероятностей классов === | === Сдвиг априорных вероятностей классов === | ||
| - | '''Сдвиг априорных вероятностей классов''' (''label shift'', ''prior probability shift'') | + | '''Сдвиг априорных вероятностей классов''' (''label shift'', ''prior probability shift'') определяется условиями |
::<tex>P_t(Y)\ne P_{\mathrm{train}}(Y),</tex> | ::<tex>P_t(Y)\ne P_{\mathrm{train}}(Y),</tex> | ||
| Строка 66: | Строка 72: | ||
::<tex>P_t(X\mid Y)=P_{\mathrm{train}}(X\mid Y).</tex> | ::<tex>P_t(X\mid Y)=P_{\mathrm{train}}(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>, модель плохо откалибрована или изменилось содержательное правило присвоения класса. |
=== Дрейф концепта === | === Дрейф концепта === | ||
| Строка 76: | Строка 82: | ||
::<tex>P_t(Y\mid X)\ne P_{\mathrm{train}}(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)</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 |doi=10.1109/TKDE.2018.2876857 |ссылка=https://doi.org/10.1109/TKDE.2018.2876857}}</ref> | |
| - | + | * '''резкий дрейф''' (''abrupt drift'') — один режим быстро сменяется другим; | |
| + | * '''постепенный дрейф''' (''gradual drift'') — старый и новый режимы некоторое время встречаются одновременно, а доля нового режима растёт; | ||
| + | * '''инкрементальный дрейф''' (''incremental drift'') — концепт проходит через последовательность промежуточных состояний; | ||
| + | * '''повторяющийся дрейф''' (''recurring drift'') — ранее наблюдавшийся режим возвращается, например вследствие сезонности. | ||
| - | + | Постепенный и инкрементальный дрейф различаются характером перехода: в первом случае смешиваются наблюдения из старого и нового режимов, во втором сам режим последовательно изменяется. Кратковременный выброс, единичная аномалия и циклическое колебание внутри ожидаемого диапазона не обязательно означают новый устойчивый концепт. | |
| - | + | Временная форма влияет на адаптацию. После резкого изменения полезно быстро уменьшить влияние старых данных; при повторяющихся режимах полное забывание истории может, напротив, ухудшить модель. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | Похожий | + | == Причины статистического сигнала == |
| + | |||
| + | === Изменение среды === | ||
| + | |||
| + | Дрейф может отражать реальное изменение процесса: | ||
| + | |||
| + | * поведение пользователей, рынка или состава аудитории; | ||
| + | * появление новых товаров, устройств, категорий и каналов взаимодействия; | ||
| + | * изменение законодательства, бизнес-правил или внешней среды; | ||
| + | * старение, калибровку или замену оборудования; | ||
| + | * влияние решений самой модели на последующие данные. | ||
| + | |||
| + | === Неисправность данных === | ||
| + | |||
| + | Похожий сигнал возникает из-за технической ошибки: | ||
* изменилась схема таблицы, единица измерения или кодировка категории; | * изменилась схема таблицы, единица измерения или кодировка категории; | ||
| - | * нарушился порядок вычисления признаков; | + | * нарушился порядок или версия вычисления признаков; |
| - | * выросла доля пропусков | + | * выросла доля пропусков, дубликатов или несогласованных ключей; |
| - | * | + | * обучение и эксплуатация используют разные преобразования; |
| - | * метки стали поступать с ошибкой | + | * метки стали поступать с ошибкой либо по изменившемуся правилу; |
| + | * нарушилось соединение таблиц или временное выравнивание событий. | ||
| - | Во втором случае переобучение на повреждённых данных не адаптирует систему, а закрепляет | + | Во втором случае переобучение на повреждённых данных не адаптирует систему, а закрепляет неисправность. Поэтому проверка контракта и конвейера данных должна предшествовать содержательной интерпретации дрейфа. |
== Мониторинг == | == Мониторинг == | ||
| - | === | + | === Схема и качество данных === |
| + | |||
| + | Сначала контролируют свойства, нарушение которых само является ошибкой: типы и диапазоны значений, обязательные поля, уникальность ключей, долю пропусков, свежесть данных, версии справочников и преобразований. Полезно отдельно проверять момент события и момент загрузки, чтобы задержка поставки не выглядела как изменение поведения пользователей. | ||
| - | + | Такие проверки не заменяют статистический мониторинг, но помогают отделить неисправность от естественного изменения среды. | |
=== Входные признаки === | === Входные признаки === | ||
| - | Для числовых признаков сравнивают квантили, гистограммы и | + | Для числовых признаков сравнивают квантили, гистограммы, средние и доли пропусков; для категориальных — частоты, новые и исчезнувшие значения. Используют двухвыборочные статистические критерии и расстояния между распределениями. Помимо одномерных признаков проверяют совместную структуру или представления, чувствительные к многомерному сдвигу. |
| - | Порог | + | Порог тревоги должен учитывать размер выборки и практическую значимость. На большом потоке статистический критерий способен обнаружить очень малое различие, не влияющее на решения. При одновременной проверке множества признаков растёт число ложных сигналов. Эталонный период должен учитывать известные суточные, недельные и сезонные режимы. |
| - | === Предсказания === | + | Полезно связывать мониторинг с моделью: изменение важного для предсказания признака обычно требует большего внимания, чем столь же заметное изменение неиспользуемого поля. Однако оценки важности сами могут быть нестабильны и не заменяют измерение качества. |
| + | |||
| + | === Предсказания модели === | ||
Без меток можно отслеживать распределение прогнозов | Без меток можно отслеживать распределение прогнозов | ||
| Строка 129: | Строка 150: | ||
::<tex>P_t(\hat Y),</tex> | ::<tex>P_t(\hat Y),</tex> | ||
| - | доли решений выше порога, неопределённость | + | доли решений выше порога, неопределённость, калибровочные суррогаты и выход объектов за область, представленную при обучении. Эти показатели дают ранний сигнал, но не измеряют точность. Распределение предсказаний может корректно измениться вслед за долей классов; оно может остаться почти прежним, хотя ошибки перераспределились между объектами. |
=== Качество по поступившим меткам === | === Качество по поступившим меткам === | ||
| - | Когда истинные ответы доступны, отслеживают | + | Когда истинные ответы доступны, отслеживают функцию потерь, метрики классификации или регрессии, калибровку и прикладные показатели. Для последовательности ошибок <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>\bar e_t=\frac{1}{|W_t|}\sum_{i\in W_t}e_i.</tex> | ||
| - | + | Средняя метрика может скрывать деградацию в важной подгруппе. Поэтому качество проверяют по заранее определённым регионам, типам устройств, категориям объектов и другим сегментам, одновременно показывая размер и неопределённость оценки для каждой группы. | |
| - | + | === Задержка разметки === | |
| - | == Методы обнаружения == | + | Метка может появляться через дни или месяцы после прогноза. Метрики следует группировать по времени, когда был сделан прогноз, а не только по времени получения метки. Для каждой когорты проверяют '''зрелость исхода''': успела ли пройти длительность, необходимая для наблюдения положительных и отрицательных событий. |
| + | |||
| + | Сравнение незрелой свежей когорты со зрелой исторической создаёт систематическое смещение. Поэтому мониторинг должен отдельно показывать ранние неразмеченные сигналы и запаздывающую оценку качества, не выдавая одно за другое. | ||
| + | |||
| + | == Методы обнаружения изменений == | ||
=== Фиксированные окна === | === Фиксированные окна === | ||
| - | Простейшая схема сравнивает недавнее окно с эталонным периодом либо два соседних окна. Короткое окно быстрее реагирует, но даёт шумные оценки; длинное устойчивее, но обнаруживает изменение с задержкой. Размер окна и пороги | + | Простейшая схема сравнивает недавнее окно с эталонным периодом либо два соседних окна. Короткое окно быстрее реагирует, но даёт шумные оценки; длинное устойчивее, но обнаруживает изменение с задержкой. Размер окна и пороги выбирают на временно упорядоченных исторических данных, воспроизводя реальные задержки меток и сезонность. |
| + | |||
| + | Один неизменный эталон со временем может устареть. Обновляемый эталон лучше отражает текущий режим, но способен постепенно «принять» нежелательное изменение как норму. Поэтому часто сохраняют одновременно исходную обучающую базу и более свежую эксплуатационную базу. | ||
=== ADWIN === | === ADWIN === | ||
| - | ADWIN (''Adaptive Windowing'') предназначен для последовательности ограниченных скалярных наблюдений, например ошибок классификатора или выбранной статистики. Алгоритм поддерживает окно переменной длины и | + | 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 |doi=10.1137/1.9781611972771.42 |ссылка=https://doi.org/10.1137/1.9781611972771.42}}</ref> |
| + | |||
| + | В стабильный период окно может расти и использовать больше наблюдений; после сигнала изменения оно сокращается. ADWIN обнаруживает изменение среднего поданной скалярной последовательности, а не произвольное изменение любого многомерного распределения. Для таблицы с несколькими признаками необходимо заранее определить отдельные скалярные потоки или статистики и учитывать множественные проверки. Если на вход подаётся ошибка модели, скорость сигнала зависит от задержки меток. | ||
| - | + | Детектор не устанавливает причину изменения и не выбирает действие. Он лишь сообщает, что выбранная последовательность перестала выглядеть стационарной в рамках его предпосылок и порога. | |
== Адаптация модели == | == Адаптация модели == | ||
| - | Сигнал | + | Сигнал мониторинга должен запускать диагностику, а не безусловное переобучение. После подтверждения содержательного изменения применяют одну или несколько стратегий. |
=== Периодическое переобучение === | === Периодическое переобучение === | ||
| - | Переобучение по расписанию предсказуемо с точки зрения эксплуатации и аудита. Однако оно расходует ресурсы в стабильные периоды и может опоздать после резкого изменения. Без проверки | + | Переобучение по расписанию предсказуемо с точки зрения эксплуатации, вычислительного бюджета и аудита. Однако оно расходует ресурсы в стабильные периоды и может опоздать после резкого изменения. Без проверки свежих данных и сравнения с действующей моделью расписание способно регулярно выпускать модель хуже предыдущей. |
=== Скользящее окно === | === Скользящее окно === | ||
Обучение только на последних <tex>k</tex> наблюдениях быстро забывает устаревший режим. Цена этого — меньший эффективный объём выборки и потеря редких либо сезонных случаев. Размер окна задаёт компромисс между скоростью адаптации и дисперсией оценки. | Обучение только на последних <tex>k</tex> наблюдениях быстро забывает устаревший режим. Цена этого — меньший эффективный объём выборки и потеря редких либо сезонных случаев. Размер окна задаёт компромисс между скоростью адаптации и дисперсией оценки. | ||
| + | |||
| + | Окно следует определять по времени наступления события, а не случайному числу последних строк, если скорость потока меняется. | ||
=== Взвешивание по давности === | === Взвешивание по давности === | ||
| Строка 171: | Строка 202: | ||
::<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> выбирают на прошлых временных периодах с имитацией доступности данных и меток. | + | Такое затухание даёт плавную адаптацию, но не гарантирует соответствия реальной скорости дрейфа. Параметр <tex>\lambda</tex> выбирают на прошлых временных периодах с имитацией фактической доступности данных и меток. |
=== Онлайн-обучение === | === Онлайн-обучение === | ||
| - | Онлайн-алгоритм обновляется по мере поступления новых примеров и может быстро реагировать на изменение. Одновременно возрастают риски обучения на временной аномалии, повреждённых данных или обратной связи от собственных решений. Нужны ограничения на обновление, журналирование версий и возможность отката. | + | [[онлайн-обучение|Онлайн-алгоритм]] обновляется по мере поступления новых размеченных примеров и может быстро реагировать на изменение. Одновременно возрастают риски обучения на временной аномалии, повреждённых данных или обратной связи от собственных решений. Нужны ограничения на обновление, журналирование версий, контрольные выборки и возможность отката. |
=== Ансамбли === | === Ансамбли === | ||
| - | Ансамбль может добавлять модели, обученные на свежих данных, уменьшать вес устаревших моделей и сохранять специалистов для повторяющихся режимов. Это повышает гибкость, но усложняет интерпретацию, | + | Ансамбль может добавлять модели, обученные на свежих данных, уменьшать вес устаревших моделей и сохранять специалистов для повторяющихся режимов. Это повышает гибкость, но усложняет калибровку, интерпретацию, выбор правила обновления и контроль вычислительной стоимости. |
| - | + | === Коррекция без полного переобучения === | |
| + | |||
| + | При подтверждённом чистом label shift иногда достаточно скорректировать вероятности классов и порог решения. При изменении <tex>P(Y\mid X)</tex> может потребоваться обучение на свежих метках, изменение признаков или пересмотр постановки задачи. Если причина сигнала — неисправность конвейера, правильным действием является исправление и восстановление данных, а не адаптация модели. | ||
== Практический порядок действий == | == Практический порядок действий == | ||
| - | # До внедрения фиксируют версии данных и преобразований, эталонные распределения, целевые метрики и допустимые задержки меток. | + | # До внедрения фиксируют версии данных и преобразований, эталонные распределения, целевые метрики, подгруппы и допустимые задержки меток. |
| - | # В эксплуатации отдельно контролируют | + | # В эксплуатации отдельно контролируют контракт данных, входные признаки, предсказания и качество по зрелым меткам. |
| - | # После сигнала определяют затронутые признаки, интервалы и подгруппы; проверяют журналы поставщиков данных и недавние изменения продукта. | + | # После сигнала определяют затронутые признаки, интервалы, источники и подгруппы; проверяют журналы поставщиков данных и недавние изменения продукта. |
| - | # Исключают | + | # Исключают изменение схемы, единиц измерения, версии вычисления признаков, неполную когорту меток и ошибку расчёта метрики. |
| - | # Проверяют, связано ли | + | # Проверяют, связано ли статистическое изменение с деградацией модели или бизнес-показателя и имеет ли эффект практическую величину. |
| - | # | + | # Формулируют гипотезу о типе сдвига и проверяют её предпосылки; не назначают стратегию только по названию тревоги. |
| - | # Новую модель сравнивают | + | # Кандидатную адаптацию оценивают на последующих временных интервалах без перемешивания будущих наблюдений в прошлое. |
| + | # Новую модель сравнивают с действующей по общей метрике, подгруппам, калибровке и эксплуатационным ограничениям; сохраняют возможность отката. | ||
| - | Если решения модели влияют на | + | Если решения модели влияют на будущие наблюдения, мониторинг отражает одновременно изменение среды и политики сбора. Например, рекомендательная система получает отклики преимущественно на показанные ею объекты, а кредитная модель видит исходы только по одобренным заявкам. Такой контур обратной связи требует анализа механизма отбора данных, а не только сравнения таблиц. |
== Ограничения мониторинга == | == Ограничения мониторинга == | ||
| Строка 199: | Строка 233: | ||
Детектор сдвига не доказывает его причину и не выбирает правильное действие. Мониторинг без разметки способен обнаружить изменения наблюдаемых входов и выходов, но не измеряет непосредственно ошибку и не гарантирует обнаружение изменения <tex>P(Y\mid X)</tex>. | Детектор сдвига не доказывает его причину и не выбирает правильное действие. Мониторинг без разметки способен обнаружить изменения наблюдаемых входов и выходов, но не измеряет непосредственно ошибку и не гарантирует обнаружение изменения <tex>P(Y\mid X)</tex>. | ||
| - | Отсутствие тревоги также не | + | Отсутствие тревоги также не доказывает стабильность: детектор может не видеть совместный сдвиг, редкую подгруппу или новый тип объекта. Напротив, тревога может быть вызвана ожидаемой сезонностью, маркетинговой кампанией или безвредным изменением малоинформативного признака. |
| + | |||
| + | Качество меток само может дрейфовать. Изменение инструкции разметчика, состава экспертов или доступного горизонта наблюдения способно выглядеть как деградация модели. Поэтому происхождение и версия целевой переменной входят в мониторинг наравне с входами. | ||
| - | Адаптация создаёт собственные риски. Частое переобучение увеличивает вариативность системы, может | + | Адаптация создаёт собственные риски. Частое переобучение увеличивает вариативность системы, может закреплять ошибки и исторические смещения и затрудняет аудит. Правила обнаружения, диагностики, выпуска и отката следует проектировать как единый эксплуатационный процесс. |
== Связь с философией искусственного интеллекта == | == Связь с философией искусственного интеллекта == | ||
| Строка 207: | Строка 243: | ||
Дрейф показывает ограниченность представления модели о мире: закономерность, найденная в исторических данных, действует лишь при определённых условиях сбора и применения. Модель не знает автоматически, сохранились ли эти условия после внедрения. | Дрейф показывает ограниченность представления модели о мире: закономерность, найденная в исторических данных, действует лишь при определённых условиях сбора и применения. Модель не знает автоматически, сохранились ли эти условия после внедрения. | ||
| - | Поэтому надёжность системы определяется не только качеством исходного обучения, но и способностью обнаруживать изменение области применимости, получать обратную связь и пересматривать решения. При этом | + | Поэтому надёжность системы определяется не только качеством исходного обучения, но и способностью обнаруживать изменение области применимости, получать обратную связь и пересматривать решения. При этом статистический сигнал не заменяет содержательного объяснения того, что именно изменилось. |
== См. также == | == См. также == | ||
| Строка 215: | Строка 251: | ||
* [[Рекомендательные системы]] | * [[Рекомендательные системы]] | ||
* [[A/B-тестирование]] | * [[A/B-тестирование]] | ||
| - | |||
== Литература == | == Литература == | ||
Версия 13:16, 19 июля 2026
| | Статья написана с использованием LLM GPT-5.6 Terra High и проверена участником Oleg Batsiev 18:20, 11 июля 2026 (MSD).
Промпты и описание редакторской проверки приведены в Обсуждение:Дрейф данных. |
Дрейф данных (англ. data drift) — изменение статистических свойств данных, поступающих в модель после её обучения и внедрения. В прикладной практике этим выражением иногда называют любой распределительный сдвиг (distribution shift). В более узком смысле data drift означает изменение распределения входных признаков , тогда как изменение зависимости целевой переменной от признаков
называют дрейфом концепта (concept drift).
Дрейф важен для рекомендательных систем, кредитного скоринга, обнаружения мошенничества, медицинской диагностики и промышленного мониторинга. Модель и её программный код могут оставаться неизменными, но качество способно меняться вместе с пользователями, внешней средой, правилами принятия решений или процессом сбора данных. Вместе с тем обнаруженное различие распределений ещё не доказывает деградацию модели и не является автоматическим основанием для переобучения.
Формальная постановка
Пусть при обучении совместное распределение признаков и целевой переменной
имело вид
а в момент эксплуатации оно равно
Распределительный сдвиг имеет место, если
Совместное распределение допускает два разложения:
Они позволяют различить идеализированные типы сдвига. В реальной системе несколько множителей могут изменяться одновременно, поэтому наблюдаемое изменение не всегда однозначно относится к одному типу.[1]
Для фиксированной модели риск в момент
равен
где — функция потерь. Изменение
влияет на качество лишь постольку, поскольку меняется средняя потеря модели. Поэтому статистически заметный сдвиг может быть практически безвредным, а небольшое изменение в критической области признакового пространства — существенно ухудшать качество.
Важно не смешивать три разных наблюдаемых сигнала:
- изменение распределения входов
;
- изменение распределения предсказаний
;
- изменение риска или прикладной метрики по истинным ответам.
Ни один из этих сигналов в общем случае не следует автоматически из другого.
Типы распределительного сдвига
Ковариатный сдвиг
Ковариатный сдвиг (covariate shift) — случай, когда распределение признаков изменилось,
но условное распределение цели при фиксированных признаках осталось прежним:
Например, после запуска продукта в новом регионе может измениться состав пользователей, хотя связь между наблюдаемыми характеристиками и целевым действием внутри каждой области признакового пространства сохраняется.
При этих предпосылках новый риск можно представить через обучающее распределение:
Перевзвешивание требует условия покрытия: области, имеющие ненулевую вероятность при эксплуатации, должны быть представлены при обучении. Если близка к нулю там, где
велика, отношение плотностей становится неустойчивым, а недостающую информацию невозможно восстановить одними весами.
Заметный ковариатный сдвиг может почти не влиять на качество, если изменились признаки, которые модель не использует, или если модель одинаково хорошо работает в обеих областях. И наоборот, стабильность одномерных распределений отдельных признаков не исключает изменения их совместной структуры.
Сдвиг априорных вероятностей классов
Сдвиг априорных вероятностей классов (label shift, prior probability shift) определяется условиями
Например, доля мошеннических операций может измениться, тогда как распределения признаков внутри классов «мошенничество» и «обычная операция» остаются прежними.
При label shift обычно изменяются и , и апостериорное распределение
. Поэтому его нельзя определять через неизменность
: сохраняется именно
. При подтверждённых предпосылках можно оценить новые доли классов и скорректировать вероятности либо порог решения. Такая коррекция ненадёжна, если одновременно изменилось
, модель плохо откалибрована или изменилось содержательное правило присвоения класса.
Дрейф концепта
Дрейф концепта — изменение зависимости целевой переменной от признаков:
Например, после изменения кредитной политики одинаковые наблюдаемые характеристики заёмщика могут соответствовать другому риску, а после модернизации оборудования прежние показания датчиков — иной вероятности неисправности. Распределение при этом может измениться или остаться прежним.
Если стабильно, такой дрейф принципиально нельзя подтвердить одним сравнением неразмеченных входов. Для его обнаружения нужны целевые метки, проверенные косвенные сигналы или дополнительные предположения. Следовательно, отсутствие feature drift не доказывает сохранение качества.
Смешанные случаи
Идеализированные определения полезны для выбора метода диагностики, но эксплуатационные изменения часто смешаны. Маркетинговая кампания может одновременно изменить состав пользователей , долю положительных исходов
и связь между признаками и целью
. В таком случае коррекция только одного множителя не устраняет проблему.
Изменение во времени
В обзорах дрейфа различают несколько временных форм:[1]
- резкий дрейф (abrupt drift) — один режим быстро сменяется другим;
- постепенный дрейф (gradual drift) — старый и новый режимы некоторое время встречаются одновременно, а доля нового режима растёт;
- инкрементальный дрейф (incremental drift) — концепт проходит через последовательность промежуточных состояний;
- повторяющийся дрейф (recurring drift) — ранее наблюдавшийся режим возвращается, например вследствие сезонности.
Постепенный и инкрементальный дрейф различаются характером перехода: в первом случае смешиваются наблюдения из старого и нового режимов, во втором сам режим последовательно изменяется. Кратковременный выброс, единичная аномалия и циклическое колебание внутри ожидаемого диапазона не обязательно означают новый устойчивый концепт.
Временная форма влияет на адаптацию. После резкого изменения полезно быстро уменьшить влияние старых данных; при повторяющихся режимах полное забывание истории может, напротив, ухудшить модель.
Причины статистического сигнала
Изменение среды
Дрейф может отражать реальное изменение процесса:
- поведение пользователей, рынка или состава аудитории;
- появление новых товаров, устройств, категорий и каналов взаимодействия;
- изменение законодательства, бизнес-правил или внешней среды;
- старение, калибровку или замену оборудования;
- влияние решений самой модели на последующие данные.
Неисправность данных
Похожий сигнал возникает из-за технической ошибки:
- изменилась схема таблицы, единица измерения или кодировка категории;
- нарушился порядок или версия вычисления признаков;
- выросла доля пропусков, дубликатов или несогласованных ключей;
- обучение и эксплуатация используют разные преобразования;
- метки стали поступать с ошибкой либо по изменившемуся правилу;
- нарушилось соединение таблиц или временное выравнивание событий.
Во втором случае переобучение на повреждённых данных не адаптирует систему, а закрепляет неисправность. Поэтому проверка контракта и конвейера данных должна предшествовать содержательной интерпретации дрейфа.
Мониторинг
Схема и качество данных
Сначала контролируют свойства, нарушение которых само является ошибкой: типы и диапазоны значений, обязательные поля, уникальность ключей, долю пропусков, свежесть данных, версии справочников и преобразований. Полезно отдельно проверять момент события и момент загрузки, чтобы задержка поставки не выглядела как изменение поведения пользователей.
Такие проверки не заменяют статистический мониторинг, но помогают отделить неисправность от естественного изменения среды.
Входные признаки
Для числовых признаков сравнивают квантили, гистограммы, средние и доли пропусков; для категориальных — частоты, новые и исчезнувшие значения. Используют двухвыборочные статистические критерии и расстояния между распределениями. Помимо одномерных признаков проверяют совместную структуру или представления, чувствительные к многомерному сдвигу.
Порог тревоги должен учитывать размер выборки и практическую значимость. На большом потоке статистический критерий способен обнаружить очень малое различие, не влияющее на решения. При одновременной проверке множества признаков растёт число ложных сигналов. Эталонный период должен учитывать известные суточные, недельные и сезонные режимы.
Полезно связывать мониторинг с моделью: изменение важного для предсказания признака обычно требует большего внимания, чем столь же заметное изменение неиспользуемого поля. Однако оценки важности сами могут быть нестабильны и не заменяют измерение качества.
Предсказания модели
Без меток можно отслеживать распределение прогнозов
доли решений выше порога, неопределённость, калибровочные суррогаты и выход объектов за область, представленную при обучении. Эти показатели дают ранний сигнал, но не измеряют точность. Распределение предсказаний может корректно измениться вслед за долей классов; оно может остаться почти прежним, хотя ошибки перераспределились между объектами.
Качество по поступившим меткам
Когда истинные ответы доступны, отслеживают функцию потерь, метрики классификации или регрессии, калибровку и прикладные показатели. Для последовательности ошибок средняя ошибка на недавнем окне
равна
Средняя метрика может скрывать деградацию в важной подгруппе. Поэтому качество проверяют по заранее определённым регионам, типам устройств, категориям объектов и другим сегментам, одновременно показывая размер и неопределённость оценки для каждой группы.
Задержка разметки
Метка может появляться через дни или месяцы после прогноза. Метрики следует группировать по времени, когда был сделан прогноз, а не только по времени получения метки. Для каждой когорты проверяют зрелость исхода: успела ли пройти длительность, необходимая для наблюдения положительных и отрицательных событий.
Сравнение незрелой свежей когорты со зрелой исторической создаёт систематическое смещение. Поэтому мониторинг должен отдельно показывать ранние неразмеченные сигналы и запаздывающую оценку качества, не выдавая одно за другое.
Методы обнаружения изменений
Фиксированные окна
Простейшая схема сравнивает недавнее окно с эталонным периодом либо два соседних окна. Короткое окно быстрее реагирует, но даёт шумные оценки; длинное устойчивее, но обнаруживает изменение с задержкой. Размер окна и пороги выбирают на временно упорядоченных исторических данных, воспроизводя реальные задержки меток и сезонность.
Один неизменный эталон со временем может устареть. Обновляемый эталон лучше отражает текущий режим, но способен постепенно «принять» нежелательное изменение как норму. Поэтому часто сохраняют одновременно исходную обучающую базу и более свежую эксплуатационную базу.
ADWIN
ADWIN (Adaptive Windowing) предназначен для последовательности ограниченных скалярных наблюдений, например ошибок классификатора или выбранной числовой статистики. Алгоритм поддерживает окно переменной длины и рассматривает его разбиения на более старую и более новую части. Если различие средних превышает порог, зависящий от допустимой вероятности ложной тревоги и объёма данных, старая часть окна отбрасывается.[1]
В стабильный период окно может расти и использовать больше наблюдений; после сигнала изменения оно сокращается. ADWIN обнаруживает изменение среднего поданной скалярной последовательности, а не произвольное изменение любого многомерного распределения. Для таблицы с несколькими признаками необходимо заранее определить отдельные скалярные потоки или статистики и учитывать множественные проверки. Если на вход подаётся ошибка модели, скорость сигнала зависит от задержки меток.
Детектор не устанавливает причину изменения и не выбирает действие. Он лишь сообщает, что выбранная последовательность перестала выглядеть стационарной в рамках его предпосылок и порога.
Адаптация модели
Сигнал мониторинга должен запускать диагностику, а не безусловное переобучение. После подтверждения содержательного изменения применяют одну или несколько стратегий.
Периодическое переобучение
Переобучение по расписанию предсказуемо с точки зрения эксплуатации, вычислительного бюджета и аудита. Однако оно расходует ресурсы в стабильные периоды и может опоздать после резкого изменения. Без проверки свежих данных и сравнения с действующей моделью расписание способно регулярно выпускать модель хуже предыдущей.
Скользящее окно
Обучение только на последних наблюдениях быстро забывает устаревший режим. Цена этого — меньший эффективный объём выборки и потеря редких либо сезонных случаев. Размер окна задаёт компромисс между скоростью адаптации и дисперсией оценки.
Окно следует определять по времени наступления события, а не случайному числу последних строк, если скорость потока меняется.
Взвешивание по давности
Старые наблюдения можно не удалять, а постепенно уменьшать их вес, например
Такое затухание даёт плавную адаптацию, но не гарантирует соответствия реальной скорости дрейфа. Параметр выбирают на прошлых временных периодах с имитацией фактической доступности данных и меток.
Онлайн-обучение
Онлайн-алгоритм обновляется по мере поступления новых размеченных примеров и может быстро реагировать на изменение. Одновременно возрастают риски обучения на временной аномалии, повреждённых данных или обратной связи от собственных решений. Нужны ограничения на обновление, журналирование версий, контрольные выборки и возможность отката.
Ансамбли
Ансамбль может добавлять модели, обученные на свежих данных, уменьшать вес устаревших моделей и сохранять специалистов для повторяющихся режимов. Это повышает гибкость, но усложняет калибровку, интерпретацию, выбор правила обновления и контроль вычислительной стоимости.
Коррекция без полного переобучения
При подтверждённом чистом label shift иногда достаточно скорректировать вероятности классов и порог решения. При изменении может потребоваться обучение на свежих метках, изменение признаков или пересмотр постановки задачи. Если причина сигнала — неисправность конвейера, правильным действием является исправление и восстановление данных, а не адаптация модели.
Практический порядок действий
- До внедрения фиксируют версии данных и преобразований, эталонные распределения, целевые метрики, подгруппы и допустимые задержки меток.
- В эксплуатации отдельно контролируют контракт данных, входные признаки, предсказания и качество по зрелым меткам.
- После сигнала определяют затронутые признаки, интервалы, источники и подгруппы; проверяют журналы поставщиков данных и недавние изменения продукта.
- Исключают изменение схемы, единиц измерения, версии вычисления признаков, неполную когорту меток и ошибку расчёта метрики.
- Проверяют, связано ли статистическое изменение с деградацией модели или бизнес-показателя и имеет ли эффект практическую величину.
- Формулируют гипотезу о типе сдвига и проверяют её предпосылки; не назначают стратегию только по названию тревоги.
- Кандидатную адаптацию оценивают на последующих временных интервалах без перемешивания будущих наблюдений в прошлое.
- Новую модель сравнивают с действующей по общей метрике, подгруппам, калибровке и эксплуатационным ограничениям; сохраняют возможность отката.
Если решения модели влияют на будущие наблюдения, мониторинг отражает одновременно изменение среды и политики сбора. Например, рекомендательная система получает отклики преимущественно на показанные ею объекты, а кредитная модель видит исходы только по одобренным заявкам. Такой контур обратной связи требует анализа механизма отбора данных, а не только сравнения таблиц.
Ограничения мониторинга
Детектор сдвига не доказывает его причину и не выбирает правильное действие. Мониторинг без разметки способен обнаружить изменения наблюдаемых входов и выходов, но не измеряет непосредственно ошибку и не гарантирует обнаружение изменения .
Отсутствие тревоги также не доказывает стабильность: детектор может не видеть совместный сдвиг, редкую подгруппу или новый тип объекта. Напротив, тревога может быть вызвана ожидаемой сезонностью, маркетинговой кампанией или безвредным изменением малоинформативного признака.
Качество меток само может дрейфовать. Изменение инструкции разметчика, состава экспертов или доступного горизонта наблюдения способно выглядеть как деградация модели. Поэтому происхождение и версия целевой переменной входят в мониторинг наравне с входами.
Адаптация создаёт собственные риски. Частое переобучение увеличивает вариативность системы, может закреплять ошибки и исторические смещения и затрудняет аудит. Правила обнаружения, диагностики, выпуска и отката следует проектировать как единый эксплуатационный процесс.
Связь с философией искусственного интеллекта
Дрейф показывает ограниченность представления модели о мире: закономерность, найденная в исторических данных, действует лишь при определённых условиях сбора и применения. Модель не знает автоматически, сохранились ли эти условия после внедрения.
Поэтому надёжность системы определяется не только качеством исходного обучения, но и способностью обнаруживать изменение области применимости, получать обратную связь и пересматривать решения. При этом статистический сигнал не заменяет содержательного объяснения того, что именно изменилось.

