Как работают графовые алгоритмы в Sift: Образовательный разбор

Cloned Boy

Professional
Messages
870
Reaction score
695
Points
93
Анализ технологий антифрода без нарушения этических и юридических границ.

1. Что такое графовые алгоритмы в антифрод-системах?​

Sift и подобные системы используют теорию графов для выявления связей между сущностями (пользователи, устройства, платежи), которые вручную обнаружить невозможно.

Базовые понятия:
  • Узел (Node): Пользователь, карта, IP-адрес, устройство.
  • Ребро (Edge): Связь между узлами (например, «использовал карту» или «вошел с IP»).
  • Вес ребра: Сила связи (количество транзакций, время взаимодействия).

2. Типы графов в Sift​

2.1. Граф связей аккаунтов​

Цель: Найти мультиаккаунтинг (один человек → несколько профилей).

Пример:
  • Узел Аккаунт1 связан с Картой123 и IP 8.8.8.8.
  • Узел Аккаунт2 тоже использует Карту123 → система объединяет их в кластер мошенничества.
Как это выглядит в коде (условно):
Python:
import networkx as nx

G = nx.Graph()
G.add_edge("Аккаунт1", "Карта123", weight=5)  # 5 транзакций
G.add_edge("Аккаунт2", "Карта123", weight=1)  # 1 транзакция

# Находим связанные узлы
fraud_cluster = nx.node_connected_component(G, "Аккаунт1")
print(fraud_cluster)  # {'Аккаунт1', 'Аккаунт2', 'Карта123'}

2.2. Граф устройств​

Цель: Обнаружить устройства, связанные с мошенничеством.

Проверяемые параметры:
  • Цифровой отпечаток (браузер, ОС, разрешение экрана).
  • Совместное использование одного IP/прокси.
Пример срабатывания:
  • 10 аккаунтов заходят с одного устройства, но используют разные карты → фрод-кольцо.

2.3. Граф транзакций​

Цель: Выявить подозрительные денежные потоки.

Анализируемые данные:
  • Время транзакции (миллисекунды между операциями).
  • Суммы (шаблоны: $9.99, $10.00 — тестовые платежи).
  • Получатели (связи с черными списками).
Визуализация:
diagram.jpg


Code:
graph LR
    A[Аккаунт1] -->|$100| B[МагазинX]
    A -->|$100| C[МагазинY]
    D[Аккаунт2] -->|$100| B
    D -->|$100| C

Здесь Аккаунт1 и Аккаунт2 синхронно платят одним суммам — подозрительно.

3. Ключевые алгоритмы​

3.1. Обнаружение сообществ (Community Detection)​

  • Алгоритм Лувена или Girvan-Newman группирует узлы в кластеры.
  • Применение: Находит группы аккаунтов, связанных общими картами/IP.

3.2. PageRank для важности узлов​

  • Адаптация Google PageRank: вычисляет «влиятельность» узла в графе.
  • Пример: Карта, использованная в 50 аккаунтах, получает высокий вес → блокировка.

3.3. Выявление аномалий (Graph Neural Networks)​

  • GNN анализируют неочевидные связи (например, общие поведенческие паттерны).

4. Как Sift принимает решение?​

  1. Строит граф на основе данных (аккаунты, устройства, платежи).
  2. Применяет алгоритмы для поиска кластеров/аномалий.
  3. Присваивает риск-скор:
    • 0–30 — норма.
    • 31–70 — проверка вручную.
    • 71–100 — блокировка.
Пример:
Если аккаунт связан с узлом из черного списка (например, IP мошенника), его скоринг растет.

5. Легальные аналоги для тестирования​

Для исследований можно использовать:
  • NetworkX (Python): Построение графов.
  • Neo4j: Графовая база данных.
  • Данные из открытых источников: Например, социальные графы Twitter.
Пример кода для анализа транзакций:
Python:
import networkx as nx
from community import community_louvain  # Алгоритм Лувена

G = nx.Graph()
G.add_edges_from([(1, 2), (2, 3), (3, 4), (4, 5), (5, 1)])  # Пример графа
partition = community_louvain.best_partition(G)  # Находим сообщества
print(partition)  # {1: 0, 2: 0, 3: 0, 4: 1, 5: 1} — два кластера

6. Как улучшается защита?​

  • Графы в реальном времени: Анализ связей до завершения транзакции.
  • Обучение на синтетических данных: Имитация атак для тренировки моделей.
  • Интеграция с биометрией: Добавление узлов «Face ID»/«Touch ID» в граф.

Вывод​

Sift использует графовые алгоритмы для:
✅ Выявления скрытых связей (аккаунты → карты → устройства).
✅ Обнаружения аномалий (GNN, PageRank).
✅ Присвоения риска (блокировка до ущерба).

Для легального применения:
  • Изучайте NetworkX, Neo4j.
  • Анализируйте открытые datasets (например, транзакции Bitcoin).

Интересует конкретный алгоритм (например, как GNN обучают на графах)? Или примеры из банковских систем?
 
Top