GNN for Transaction Fraud Detection

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
GNN for Transaction Fraud Detection
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

Разработка 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.