AI-детекція шахрайських транзакцій: LightGBM, ONNX

Шахрайські транзакції завдають збитків бізнесу, а хибні спрацювання антифроду дратують клієнтів. Ми розробляємо AI-системи детекції на базі LightGBM та ONNX, які аналізують операції в реальному часі. Наша команда реалізує проєкт під ключ — від feature engineering до підтримки, забезпечуючи надійний захист без зриву термінів.
Часті запитання

Ми інтегруємо AI-детектор шахрайських транзакцій на базі LightGBM та ONNX Runtime, який аналізує кожну транзакцію за 50–200ms. За цей час система збирає velocity-ознаки з Redis, обчислює z-score відхилень, перевіряє merchant risk DB і віддає score моделі. Якщо модель помиляється з False Positive, клієнт втрачає гроші та нерви. Якщо пропускає шахрая — втрачає ще більше. Ми будуємо ML-детектори під ключ, які знижують FPR до 0.5% без втрати у виявленні. Нижче — технічна реалізація.

Наш досвід — понад 10 проектів у фінтех, де ми вирішували проблему координації ознак та дрейфу концепцій. Кожен проект — це індивідуальне налаштування feature engineering, порогів та онлайн-навчання. Ми використовуємо LightGBM з cost-sensitive навчанням та експортуємо модель в ONNX Runtime для інференсу з latency 3–8ms. Feature store на базі Redis та PostgreSQL забезпечує real-time retrieval всіх ознак. Моніторинг дрейфу через ADWIN та Page-Hinkley тести дозволяє автоматично перенавчати модель при зміні фрод-патернів. Результат: P99 latency рішення 67ms при 800 000 транзакцій на день, FPR знижено з 3.2% до 0.6%. Економія від зниження FP склала мільйони гривень щомісяця.

Які ознаки забезпечують 80% прогностичної сили?

Група Приклади Джерело
Velocity features Кількість транзакцій за 1 хв/1 год, сума, унікальні merchant'и Redis sliding window (<5ms)
Deviation from history Z-score суми, нова країна, незвичний час Feature store (профіль клієнта)
Contextual risk signals Chargeback rate merchant'а, device first seen, BIN mismatch Merchant risk DB, device DB, BIN-таблиця
def build_transaction_features(txn: Transaction, customer_profile: CustomerProfile, velocity: VelocityStore) -> np.ndarray:
    features = {  # Velocity
        "txn_count_1h": velocity.count(txn.card_id, window="1h"),
        "amount_sum_1h": velocity.sum(txn.card_id, "amount", window="1h"),
        "unique_merchants_24h": velocity.nunique(txn.card_id, "merchant_id", window="24h"),
        # Deviation
        "amount_zscore": (txn.amount - customer_profile.avg_amount) / customer_profile.std_amount,
        "is_new_country": int(txn.country not in customer_profile.known_countries),
        "hour_is_unusual": int(txn.hour not in customer_profile.active_hours),
        # Context
        "merchant_chargeback_rate": merchant_risk_db.get(txn.merchant_id),
        "device_first_seen_days": device_db.days_since_first_seen(txn.device_id),
        "bin_country_mismatch": int(txn.bin_country != txn.transaction_country)
    }
    return np.array(list(features.values()), dtype=np.float32)

Чому LightGBM оптимальний для антифрод-систем?

LightGBM — оптимальний вибір для більшості продакшн-кейсів: швидкий інференс (в 1.5 раза швидше за CatBoost по latency), відмінна робота з пропусками (не всі ознаки завжди доступні), інтерпретованість через SHAP. Експорт в ONNX та інференс через ONNX Runtime дають latency 3–8ms на типовому наборі ознак. Це залишає достатньо бюджету на feature retrieval з Redis та фінальний decision engine. Докладніше — LightGBM документація.

Як ми виставляємо пороги та враховуємо вартість помилок?

Класична помилка: оптимізувати на AUC та обирати поріг 0.5. В антифроді це неправильно. Вартість помилок асиметрична: FN (пропустити шахрая) — прямі втрати, рівні сумі транзакції; FP (заблокувати легальну транзакцію) — вартість обслуговування скарги та втрати від негативного UX. Будуємо cost matrix для вибору optimal threshold під реальну економіку. Для великих сум поріг знижується, для невеликих — підвищується (динамічний threshold за сумою).

Як реалізується онлайн-навчання та адаптація до дрейфу?

Фрод-патерни змінюються швидко. Раз на місяць — занадто рідко. Реалізуємо:

Mini-batch online learning. Модель оновлюється кожні 24 години на нових розмічених транзакціях (розмітка — за фактом chargeback + ручна верифікація). LightGBM підтримує continue training.

Concept drift detection. ADWIN або Page-Hinkley тест на вхідному потоці ознак. При детекції дрейфу — автоматичне перенавчання з повідомленням команди.

Shadow mode. Нова версія моделі паралельно рахує score на 100% трафіку без впливу на рішення. Порівнюємо метрики через 48 годин — деплой при підтвердженому покращенні.

Практичний кейс

Клієнт — еквайрингова компанія, 800 000 транзакцій на день. Проблема: стара rule-based система давала False Positive Rate 3.2% — кожна 31-ша легальна транзакція блокувалася. Втрати від FP: скарги, churn, репутація у merchant'ів.

Після ML-детектора (LightGBM, 180 ознак, ONNX Runtime):

  • FPR знизився до 0.6%.
  • Fraud Detection Rate при тому ж FPR: +34%.
  • P99 latency рішення (feature retrieval + inference): 67ms.
  • Автоматичне виявлення нового фрод-патерну (хвиля по конкретному BIN): 3 години замість дня ручного аналізу.

Ключовий інсайт: 60% приросту точності дало додавання velocity-ознак з різними часовими вікнами (1 хв / 5 хв / 1 год) — вони захоплюють координовані атаки на кілька карток одночасно.

Порівняння пакетного та онлайн-навчання

Параметр Пакетне навчання Онлайн-навчання
Частота оновлення Раз на місяць Щоденно
Адаптація до дрейфу Низька Висока (ADWIN)
Інфраструктура Проста Потребує pipeline
Латенсія оновлення Години Хвилини

Що входить у реалізацію під ключ

  • Feature engineering: розробка та валідація ознак, feature store на базі Redis + PostgreSQL.
  • Модель: LightGBM з cost-sensitive навчанням, експорт в ONNX.
  • Інфраструктура: ONNX Runtime на Kubernetes, pipeline для онлайн-навчання.
  • Моніторинг: drift detection (ADWIN), розподіл score, FPR/Recall.
  • Документація: model card, технічна документація, runbook.
  • Навчання: тренінг команди замовника, передача коду та доступів.
  • Підтримка: 3 місяці постпродакшн супроводу.

Типові помилки при впровадженні

  • Використовувати AUC як єдину метрику — неправильно, потрібно враховувати cost matrix.
  • Ігнорувати дрейф ознак — модель швидко застаріває.
  • Не робити shadow mode перед деплоєм — ризикуєте погіршити метрики.

Етапи впровадження

  1. Аналітика (1–2 тижні): збір вимог, аудит даних, прототип ознак.
  2. Проектування (1 тиждень): архітектура feature store, ML pipeline, моніторинг.
  3. Розробка (2–4 тижні): модель, сервіс інференсу, online learning цикл.
  4. Тестування (1 тиждень): A/B-тест в shadow mode, перевірка метрик.
  5. Деплой (1 тиждень): production-запуск, налаштування моніторингу.
  6. Супровід (3 місяці): оптимізація ознак, усунення drift.

Терміни та вартість

Базовий детектор — 4–8 тижнів, production-система з real-time feature store, онлайн-навчанням та моніторингом — 10–16 тижнів. Вартість розраховується індивідуально після оцінки вашого проекту. Гарантуємо зниження FPR мінімум на 50% від поточних значень.

Замовте консультацію для оцінки вашого проекту. Зв'яжіться з нами, щоб обговорити деталі та отримати пропозицію.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142