Разработка GNN для детекции мошенничества в графе транзакций

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Разработка GNN для детекции мошенничества в графе транзакций
Сложная
~2-4 недели
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1229
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1166
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    863
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1077
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    563
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    829

Разработка GNN для детекции мошенничества в графе транзакций

Транзакции — по природе реляционные: каждая транзакция связывает отправителя и получателя. Граф транзакций несёт информацию, которую табличные модели не видят. GNN (Graph Neural Networks) эксплуатируют эту структуру напрямую.

Почему GNN для антифрода

Классические подходы (GBM, логистическая регрессия) работают с признаками отдельной транзакции. Но мошенники действуют в сети: кардеры работают через посредников, money mule сети структурированы иерархически, синдикаты координируют активность.

Пример: мошенническая транзакция, изолированно рассматриваемая, ничем не отличается от легитимной (сумма нормальная, время нормальное, merchant нормальный). Но если посмотреть на 2-hop neighbourhood — соседние узлы являются известными мошенниками. GNN захватывает этот сигнал автоматически.

Архитектура GNN для fraud detection

Построение графа

Узлы: карты, аккаунты, merchants, IP-адреса, устройства. Рёбра: транзакции + связи между сущностями (shared device, shared IP).

Гетерогенный граф (heterogeneous graph): разные типы узлов и рёбер. Требует Heterogeneous GNN (HAN, RGCN) или Knowledge Graph подходов.

Message Passing

Ядро GNN — итерационный обмен информацией между соседними узлами:

import torch
from torch_geometric.nn import SAGEConv, GATConv, HeteroConv
from torch_geometric.data import HeteroData

class FraudGNN(torch.nn.Module):
    def __init__(self, in_channels, hidden_channels, out_channels):
        super().__init__()
        self.conv1 = HeteroConv({
            ('card', 'transacts', 'merchant'): SAGEConv(in_channels, hidden_channels),
            ('card', 'shares_device', 'card'): GATConv(in_channels, hidden_channels, heads=4),
            ('merchant', 'receives', 'card'): SAGEConv(in_channels, hidden_channels),
        }, aggr='sum')
        self.conv2 = HeteroConv({...})
        self.classifier = torch.nn.Linear(hidden_channels, 2)

    def forward(self, x_dict, edge_index_dict):
        x_dict = self.conv1(x_dict, edge_index_dict)
        x_dict = {key: F.relu(x) for key, x in x_dict.items()}
        x_dict = self.conv2(x_dict, edge_index_dict)
        return self.classifier(x_dict['card'])

Temporal GNN

Транзакции имеют временные метки — важно учитывать: паттерн "normal behaviour сегодня" может быть аномалией три месяца назад. TGN (Temporal Graph Networks) с memory modules для хранения истории каждого узла.

Работа с дисбалансом классов

Фрод — 0.1–1% транзакций. Специфичные техники для графовых данных:

  • GraphSMOTE: oversample minority class в embedding space, генерируя новые узлы
  • Class-weighted loss: inversely proportional to class frequency
  • Imbalanced sampling: при mini-batch sampling включать пропорционально больше positive examples

Производительность в production

Проблема: inference GNN требует neighborhood lookup — при каждом запросе нужно загружать N-hop neighbourhood из БД. Для real-time сценариев (payment authorization):

Stale feature caching: pre-computed node embeddings обновляются каждые N минут, inference — instant lookup.

Mini-batch inference: для batch scoring (e.g., EOD reconciliation) — полный граф processing.

Approximate neighbourhood: для latency-sensitive scenarios — ограничение глубины до 2 hops, sampling соседей.

Latency P99:

  • Stale embeddings: <10ms
  • Full 2-hop inference: 50–200ms
  • Full 3-hop inference: 500ms–2s

Сравнение с baseline

Метод AUC-ROC Precision@5% F1
Logistic Regression 0.76 0.31 0.41
XGBoost (tabular) 0.87 0.52 0.58
GNN (2-hop) 0.93 0.71 0.69
GNN + temporal 0.95 0.78 0.74

Gain от GNN наиболее значителен для organized fraud (networks, syndicates) — именно там граф-информация наиболее ценна.

Explainability

GNN-объяснения через GNNExplainer / Attention weights (GAT). Для каждой флагированной транзакции: какие соседние узлы и рёбра наиболее влияли на решение. Необходимо для compliance и ручных reviews.