AI Fraudulent Transaction Detection Implementation

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
AI Fraudulent Transaction Detection Implementation
Complex
~2-4 weeks
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1212
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    822

AI-детекция мошеннических транзакций

Разница между антифрод-системой и детектором мошеннических транзакций — в фокусе. Антифрод — широкая дисциплина: захват аккаунтов, синтетические личности, friendly fraud. Детектор транзакций решает более узкую задачу: конкретная транзакция — мошенническая или нет? Решение нужно за 50–200ms, до авторизации.

Признаки транзакции для ML-модели

Три группы признаков определяют 80% предсказательной силы:

Velocity features. Сколько транзакций с этой карты за последние 1 минуту / 15 минут / 1 час / 24 часа. Количество уникальных merchant'ов. Суммарный объём. Вычисляются из Redis sliding window — это онлайн-признаки с latency <5ms.

Deviation from history. Насколько транзакция отличается от профиля владельца: нетипичная страна, нетипичный MCC-код, нетипичное время суток, нетипичная сумма (>3σ от personal baseline). Профиль строится заранее и хранится в feature store.

Contextual risk signals. Риск merchant'а (chargeback rate), риск IP/device (не видели раньше или в black list), BIN-риск (карта из страны X, транзакция в стране Y).

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 — оптимальный выбор для большинства продакшн-кейсов: быстрый инференс, хорошая работа с пропусками (не все признаки всегда доступны), интерпретируемость через SHAP.

Экспорт в ONNX и инференс через ONNX Runtime дают latency 3–8ms на типичном наборе признаков. Это оставляет достаточно бюджета на feature retrieval из Redis и финальный decision engine.

Пороги и cost-sensitive learning

Классическая ошибка: оптимизировать на AUC и выбирать порог 0.5. В антифроде это неправильно. Стоимость ошибок асимметрична:

  • FN (пропустить мошенника): прямые потери = сумма транзакции
  • FP (заблокировать легальную транзакцию): стоимость обслуживания жалобы + потери от негативного UX

Строим cost matrix, находим optimal threshold под реальную экономику. Для крупных сумм порог снижается, для небольших — повышается (динамический threshold по сумме).

Онлайн-обучение и drift адаптация

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

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 час) — они захватывают координированные атаки на несколько карт одновременно.

Сроки: 4–8 недель для базового детектора, 10–16 недель для production-системы с real-time feature store, онлайн-обучением и мониторингом.