Виявлення аномалій
Виявлення аномалій
Виявлення аномалій (Anomaly Detection) - це виявлення незвичайних спостережень, патернів або змін в даних, які відхиляються від «норми» і можуть сигналізувати про збої, шахрайство, інциденти безпеки, помилки даних або рідкісні бізнес-події. Нижче - системний погляд: від формулювання завдань до експлуатації та управління алертами.
1) Типи аномалій і постановки
Точкові (point anomalies): одиничні спостереження поза нормою (сплеск депозитів по одному користувачеві).
Контекстуальні: відхилення з урахуванням контексту (високе навантаження вночі - ок, вдень - аномалія).
Колективні: група звичайних точок в незвичайній послідовності (серія дрібних транзакцій).
Структурні: зміна режиму/розподілу (change-point; нова сезонність).
Аномалії якості даних: пропуски, дублікати, склейки, розсинхронізація міток часу, «плоскі» сенсори.
- Наглядове: є розмічені аномалії (рідко, дорого).
- Напів-наглядове (one-class): навчаємо «норму», все інше - аномально.
- Ненадзорне: шукаємо «рідкісне/віддалене» без міток.
2) Дані та підготовка
Межі норми: горизонти і сезонності (година/день/тиждень), календарні події, вихідні, акції.
Фічі: лаги, ковзні статистики (mean/median/EMA), квантильні ознаки, енкодинги категорій, лічильники рідкості, агрегати по вікнах 7/30/90.
Очищення: дедуплікація, виправлення часових зон, вирівнювання частоти, хендлінг пропусків (інтерполяція/forward-fill/моделі відновлення).
Стандартизація/робастність: RobustScaler/ранги/вінзоризація для стійкості до викидів.
Point-in-time коректність: без витоків майбутнього при генерації фіч.
3) Методи виявлення
3. 1. Статистика та правила
z-score/робастний z (median, MAD), IQR/бокс-пліт, експоненціальне згладжування з довірчими коридорами.
Контрольні карти (Shewhart, CUSUM, EWMA): для виробничих процесів і потокових метрик.
Квантильні пороги (динамічні по вікнах), сезонно-квантильні пороги.
3. 2. Відстані, щільності, кластера
kNN distance, Local Outlier Factor (LOF) - локальна рідкість.
DBSCAN/HDBSCAN - шумові точки поза кластерами.
PCA/Robust PCA - аномалії → висока залишкова помилка/статистика SPE; Hotelling’s T².
3. 3. Ансамблі та дерева
Isolation Forest - ізолює рідкісні точки короткими шляхами.
Randomized Thresholding/Bagging на базових правилах - швидкі бейзлайни для прода.
3. 4. Реконструкція та ймовірнісні
Autoencoder/VAE (в т.ч. LSTM/Transformer для послідовностей): аномалія = висока помилка реконструкції.
Probabilistic forecasting (квантильні прогнози): вихід за передбачені інтервали - сигнал.
Байєсівські моделі/потоки нормалізуючих перетворень - явна невизначеність.
3. 5. Часові ряди та зміни режимів
ARIMA/ETS/Prophet/TBATS - прогноз + відхилення.
Change-point detection: BOCPD, RuLSIF/критерії дивергенції, Pruned Exact Linear Time (PELT).
Matrix Profile/Discord discovery - пошук «найбільш несхожих підпослідовностей».
3. 6. Багатовимірні та графові
Multivariate TS: VAR, TCN/TFT, LSTM-VAE; крос-кореляції та спільні інтервали довіри.
Графи: аномальні підпуті/вузли (наприклад, в мережевому трафіку або платіжних ланцюжках).
4) Вибір методу: Практична матриця
5) Оцінка якості при рідкісних аномаліях
Дисбаланс: ROC-AUC може вводити в оману; орієнтуйтеся на PR-AUC, precision @k, recall@FPR≤x%, F1, Matthews CC.
Часова метрика: Average Time To Detect (ATTD), частка «ранніх детекцій».
Стабільність: частка флапінгу (часті включення/вимикання алерта), середня довжина «тихих» періодів.
Cost-based: матриця витрат (хибно-позитивні/хибно-негативні), цінність попереджених інцидентів.
Валідація: тимчасові спліти, out-of-time вікна, групові спліти (за користувачами/пристроями), бек-тести.
6) Порогові стратегії та калібрування
Статичні пороги: прості, але ламаються при сезонності.
Динамічні: per-segment/per-hour квантильні, адаптуються до навантажень і «тихих годинників».
Перцентиль по швидкій: 99. 5-й/99. 9-й для high-precision; можна робити per-bucket за категоріями.
Калібрування скорингу: isotonic/temperature для ймовірностей; згладжування алертів (debounce, «N з M»).
Гістерезис: різні пороги на вхід/вихід зі стану аномалії.
7) Інтерпретованість і RCA (root cause analysis)
Глобально: важливості фіч (gain/permutation), PCA-навантаження, профілі сегментів, внесок компонентів у помилку реконструкції.
Локально: SHAP/LIME на скорах або на допоміжних моделях.
Атрибуція за рядками: внесок тренду/сезонності/регресорів (свята, кампанії).
Деталізація: «аномальний сегмент → аномальна фіча → аномальні об'єкти».
Каузальність: difference-in-differences/контрфакти для відділення маркетингового ефекту від «справжньої» аномалії.
8) Продакшен і MLOps
Сервінг: синхронний (низька затримка, gRPC/REST) і асинхронний (батч/мікробатч).
Фічестор: узгодженість онлайн/офлайн, point-in-time, SLA на генерацію ознак.
Версіонування: моделі, пороги, схеми, конфіги; зберігайте артефакти і «зліпки» даних.
Алертінг: пріоритизація (P1-P3), дедуплікація, suppression вікна (ніч/свята), авто-закриття при нормалізації.
Fail-safe: автоматична деградація до правил/простих детекторів, таймаути, обмеження QPS.
Shadow/Canary: порівняння нового детектора з поточним, offline- →shadow - →canary - →full.
Feedback loop: інтерфейс розмітки алертів, напів-автоматичний релейблінг і дотренування.
9) Зниження alert-fatigue
Бандлінг: групуйте близькі за часом/сегментом алерти в один інцидент.
SLO на алерти: мета по precision/кількості алертів за зміну.
Escalation policy: зростання пріоритету при тривалості/масштабі.
Rate limiting: не більше N алертів за вікно; «тихий період» після спрацювання.
Дворівнева схема: дешевий грубий детектор (високий recall) + дорогий прецизійний верифікатор.
10) Чек-лист впровадження
- Визначено види аномалій та бізнес-цінність їх детекції
- Враховані сезонності/календар; побудовані контекстні ознаки
- Обрано метод: швидкий бейзлайн + потенційно складніший
- Порогова стратегія (динамічні/пер-сегментні) і гістерезис
- Метрики: PR-AUC, ATTD, cost-metrics, звіти по сегментах
- План інтерпретації та RCA; дашборди Drill-down
- Алерт-політики, suppression, дедуплікація
- Логування скорингу, версії, вхідних фіч; реплей бек-тестів
Процедури ретрейнінгу та контроль дрейфу (PSI/JS-div)
- Документація: контракти даних, SLO, рунібуки
11) Типові патерни
«Прогноз + відхилення»: навчаємо імовірнісний прогноз (квантилі 5-95%), сигнал при виході за інтервал.
«Реконструктор»: Autoencoder/Robust PCA → алерт за високою reconstruction error.
«Ізолятор»: Isolation Forest для табличних/мультифіч; швидко, мало налаштувань.
«Локальна рідкість»: LOF/кNN-distance - хороший для сегментів з різною щільністю.
«Зміна режиму»: BOCPD/PELT + валідація причин (реліз, акція, інцидент).
«Двоетапний»: rule-based фільтр → ML-верифікатор (зниження помилкових).
12) Моніторинг детектора
Якість: PR-AUC/precision @k/ATTD в ковзному вікні, частка підтверджених алертів.
Дані: пропуски, лаги, незвичайна кардинальність, сплески подій.
Дрейф: PSI/KL/JS за ключовими фічами і швидкістю, дрейф цільовий (якщо є мітки).
Операційка: затримка інференсу, QPS, відмовостійкість, частка деградацій.
13) Розмітка та активне навчання
Стратегії розмітки: top-k по швидкій, різноманітність по кластерах, «прикордонні» кейси.
Синтетика: ін'єкції аномалій (контрольовані) для стрес-тестів.
Active learning: дозапрошуємо мітки у аналітиків для спірних інцидентів.
Weak supervision: правила/евристики як слабкі мітки + агрегатори ярликів.
14) Безпека, етика, комплаєнс
Приватність: мінімізація полів, псевдонімізація, доступ за ролями.
Прозорість: пояснюваність причин алерта і дій автоматизації.
Аудит: журнал рішень, відтворюваність порогів/версій/даних.
Справедливість: контроль bias за сегментами (особливо для антифроду/скорингу).
Міні-глосарій
Change-point: момент зміни розподілу/режиму ряду.
PR-AUC: площа під кривою precision-recall, стійка при рідкісних позитивних.
PSI: індекс стабільності населення, метрика дрейфу розподілів.
Matrix Profile/Discord: спосіб знайти «найбільш несхожу» підпослідовність.
Підсумок
Ефективний контур виявлення аномалій - це не один «розумний» алгоритм, а поєднання: коректний контекст (сезонність/календар), робастні ознаки, продумана порогова політика, інтерпретований RCA, жорстка операційка (SLO/алерт-політики) і цикл поліпшень через зворотний зв'язок. Такий підхід знижує помилкові тривоги і підвищує реальну користь від аномалій - від раннього виявлення збоїв до запобігання втрат.