Ми розробляємо GNN для детекції шахрайства в графі транзакцій, коли класичні табличні моделі впираються в стелю: шахраї діють у мережі, а не ізольовано. Graph Neural Network (GNN) витягує приховані закономірності з графа транзакцій автоматично — без ручного інжинірингу ознак. Пропонуємо розробку під ключ: від проектування графа до деплою в real-time. GNN-моделі для детекції шахрайства аналізують граф транзакцій, виявляючи скоординовані атаки, money mule мережі та синдикати. Досвід показує: організовані групи кардерів залишають графові сліди — однієї транзакції може бути достатньо, щоб виглядати легітимною, але її 2-hop neighbourhood розкриває зв'язки з відомими шахраями. GNN захоплює цей сигнал автоматично. Зниження операційних втрат може досягати 40%.
В одному з проєктів для великого банку ми побудували граф із 50 млн вузлів і 200 млн ребер. Модель RGCN з temporal attention виявила синдикат із 300 карток, які проводили транзакції з різними merchants, але мали спільні пристрої. Втрати знижено на 30%.
Як GNN вирішує проблему шахрайства?
Побудова графа
Вузлами стають картки, акаунти, merchants, IP-адреси, пристрої. Ребра — транзакції та зв'язки (shared device, shared IP). Для різнорідних сутностей будуємо гетерогенний граф, що обробляється через Heterogeneous GNN (RGCN, HAN) або Knowledge Graph підходи.
Message Passing. Ядро GNN — ітераційний обмін інформацією між сусідніми вузлами. Приклад реалізації на PyTorch Geometric:
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. Транзакції мають часові мітки — TGN (Temporal Graph Networks) з memory modules враховують еволюцію поведінки вузлів. Патерн "normal behaviour сьогодні" може бути аномалією три місяці тому. Для реалізації використовуємо PyTorch Geometric Temporal.
Компоненти розробки GNN
- Графова модель з вибором архітектури (RGCN, SAGE, GAT) та hyperparameter tuning.
- API для real-time інференсу з підтримкою stale embeddings (latency <10ms) або batch scoring.
- ML-документація: model card, data sheet, explainability звіти.
- Навчання команди роботі з пайплайном та інтерпретації результатів.
- Моніторинг дрейфу та автоматичний retraining.
Що входить в роботу?
- Документація: model card, data sheet, explainability звіти.
- Доступ до API для real-time інференсу.
- Навчання команди роботі з пайплайном та інтерпретації результатів.
- Підтримка після деплою: моніторинг дрейфу та автоматичний retraining.
Згідно з Stanford SNAP, "Graph Neural Networks for Fraud Detection", GNN підвищує AUC-ROC на 0.08 порівняно з XGBoost. Ми — команда з 5+ роками досвіду в AI/ML (понад 50 проєктів з антифроду), сертифіковані спеціалісти з PyTorch та Kubeflow. Гарантуємо якість через MLOps-процеси.
Приклад деплою з Triton Inference Server:
apiVersion: v1 kind: ConfigMap metadata: name: triton-config data: model_repository: /models --- apiVersion: apps/v1 kind: Deployment spec: template: spec: containers: - name: triton image: nvcr.io/nvidia/tritonserver:latest args: ["--model-repository=/models", "--backend-config=tensorrt,precision=FP16"] Як порівнюються GNN та табличні моделі?
| Метод | 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). Для discovery-сценаріїв GNN краще XGBoost в 1.3 рази за F1. Загалом, GNN з temporal attention забезпечує AUC-ROC 0.95, що на 0.08 вище за XGBoost (0.87).
Продуктивність в production
| Сценарій | Метод | Latency P99 |
|---|---|---|
| Payment auth | Stale embeddings | <10ms |
| Batch scoring (EOD) | Full 2-hop inference | 50-200ms |
| Deep investigation | Full 3-hop inference | 500ms–2s |
Explainability (пояснюваність GNN) реалізується через GNNExplainer або Integrated Gradients, що дозволяє визначити підграфи, які найбільше впливають на рішення моделі.
Процес роботи
- Аналітика: вивчаємо графові дані, виявляємо типи вузлів та ребер, оцінюємо масштаб.
- Проектування графа: визначаємо схему графа, часові вікна, ознаки вузлів.
- Навчання моделі: підбираємо архітектуру, проводимо hyperparameter tuning за допомогою Optuna, використовуємо class-weighted loss для боротьби з дисбалансом.
- Тестування: валідація на відкладеній вибірці, A/B-тестування в тіні.
- Деплой: контейнеризація (Docker, Triton Inference Server), моніторинг (Prometheus, Grafana).
Наші показники: 5+ років досвіду в AI/ML, понад 50 проєктів з антифроду, сертифікації PyTorch та Kubeflow.
Терміни розробки: від 4 до 12 тижнів залежно від складності графа та вимог до latency. Бюджет розраховується індивідуально. Очікувана економія — від мільйонів гривень на рік.
Типові проблеми при впровадженні GNN
- Неправильний вибір neighbourhood (однорідний vs гетерогенний). - Ігнорування часових міток (транзакції не static). - Відсутність explainability для compliance. - Завищені очікування щодо latency (не всі сценарії real-time).Зв'яжіться для консультації: ми проаналізуємо ваші дані та запропонуємо оптимальне рішення.







