ML-Based Anti-Fraud System 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
ML-Based Anti-Fraud System 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

ML-система антифрода

Фрод-команды работают быстро. Новую схему мошенничества обнаружили — через 48 часов мошенники адаптировались под правило-исключение. Rule-based антифрод всегда опаздывает на один шаг. ML-система с поведенческим анализом и anomaly detection успевает ловить паттерны раньше, чем правила написаны.

Типы фрода и методы детекции

Транзакционный фрод. Несанкционированные транзакции по скомпрометированным картам/аккаунтам. Классическая бинарная классификация — fraud/not-fraud на уровне транзакции. Ключевые признаки: velocity (сколько транзакций за последний час), geography (новая страна), device fingerprint, merchant category.

Account takeover (ATO). Захват аккаунта: смена пароля, добавление нового устройства, вывод средств. Детектируется через поведенческую аномалию — пользователь вдруг начинает вести себя иначе, чем 6 месяцев истории.

Synthetic identity fraud. Мошенник создаёт «синтетическую» личность из реальных фрагментов данных разных людей. Детектируется через граф-анализ: несоответствия в identity graph, необычные паттерны формирования кредитной истории.

Friendly fraud (chargeback abuse). Реальный пользователь заявляет, что транзакция не была авторизована. Задача — отличить реальный фрод от злоупотребления chargeback. Поведенческие признаки и история диспутов.

Архитектура real-time системы

Антифрод на транзакциях — это задача с жёсткими latency требованиями: решение нужно за 100–300ms до авторизации транзакции. Это диктует архитектуру:

Транзакция → Kafka → Feature Store → ML-модель → Decision Engine → Ответ
               ↑
        Online features:          Offline features (pre-computed):
        - velocity (Redis)        - customer risk profile
        - device fingerprint      - merchant risk score
        - session behavior        - historical patterns

Feature Store — критически важный компонент. Online features (velocity, текущая сессия) — из Redis, latency <5ms. Offline features (профиль клиента за 90 дней) — pre-computed в Feast или Hopsworks, latency <20ms.

Модель. XGBoost или LightGBM для core скоринга. ONNX Runtime для инференса — латентность в 3–5x ниже, чем Python скоринг на сырой модели. Цель: P99 latency <50ms только для ML-части.

Граф-анализ для синтетического фрода

Это наиболее технически интересная часть. Транзакционный граф: узлы — аккаунты, устройства, IP, телефоны; рёбра — транзакции, связи. Паттерны фрода в графе:

  • Один device_fingerprint → много аккаунтов (device sharing у фрод-ринга)
  • Star pattern: новые аккаунты все отправляют деньги одному получателю
  • Cyclic transfers: A→B→C→A — отмывание через кольцо

Graph Neural Networks (GraphSAGE, GAT) на транзакционном графе дают +5–12% AUC по сравнению с tabular моделями без графовых признаков.

import torch_geometric as pyg

class FraudGNN(torch.nn.Module):
    def __init__(self):
        super().__init__()
        self.conv1 = pyg.nn.SAGEConv(in_channels=64, out_channels=128)
        self.conv2 = pyg.nn.SAGEConv(128, 64)
        self.classifier = torch.nn.Linear(64, 1)

    def forward(self, x, edge_index):
        x = F.relu(self.conv1(x, edge_index))
        x = self.conv2(x, edge_index)
        return torch.sigmoid(self.classifier(x))

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

Платёжная система, 2.5 млн транзакций в день. Исходная система: 47 жёстких правил. Потери от фрода: 0.18% от оборота. Правила писали неделями, мошенники обходили через 3–5 дней.

После внедрения ML-антифрода:

  • Потери от фрода: 0.06% (снижение в 3x)
  • False Positive Rate (честные транзакции заблокированы): снизился с 2.1% до 0.4%
  • Новый паттерн фрода детектируется автоматически через аномалию, правило пишется только для white-listing исключений
  • Время реакции на новую схему: 4–6 часов вместо недели

P99 latency инференса: 38ms (ONNX Runtime + Redis для online features).

Работа с имбалансом в антифроде

Соотношение fraud/legit: типично 1:500 – 1:2000. При таком imbalance:

  • Sampling: undersample majority class для обучения, но оценивать на реальном распределении
  • Метрики: не accuracy (бессмысленна при 1:2000), а precision@recall=0.9, Average Precision, Kolmogorov-Smirnov статистика
  • Порог не 0.5: подбираем threshold под бизнес-требование — сколько FP допустимо при каком уровне recall

Monitoring и champion-challenger

Фрод-паттерны дрейфуют. PSI мониторинг ежедневно. Champion-challenger: новая версия модели на 10% трафика параллельно с champion. Переключение при подтверждённом улучшении метрик.

Сроки: 6–10 недель для базовой транзакционной системы, 4–7 месяцев для комплексного решения с граф-анализом и real-time feature store.