Cloned Boy
Professional
- Messages
- 874
- Reaction score
- 696
- Points
- 93
Образовательный разбор алгоритма и реальных кейсов.
Ключевая идея:
Диаграмма:
Анализ:
Где:
Вывод:
→ Аккаунт A самый рискованный.
Ранжирование риска карт, аккаунтов и IP.
Поиск центральных узлов в мошеннических схемах.
Инструмент для расследований (связь "жертва → мул → обналичивание").
Пример запроса для анализа:
Хотите разобрать как сочетать PageRank с машинным обучением? Или примеры из практики? Спрашивайте!
1. Что такое PageRank?
Алгоритм PageRank, разработанный Google для ранжирования веб-страниц, в банках адаптирован для оценки "важности" и рискованности сущностей (карт, аккаунтов, IP).Ключевая идея:
Чем больше "входящих связей" (транзакций, ассоциаций) у объекта, тем выше его "вес" в системе.
2. Как банки используют PageRank?
2.1. Выявление ключевых узлов мошенничества
Пример графа:Диаграмма:
Code:
graph LR
A[Карта 111] -->|Перевод $500| B[Аккаунт X]
C[Карта 222] -->|Перевод $500| B
D[Карта 333] -->|Перевод $500| B
B -->|Обналичивание| E[Криптобиржа Y]
- Аккаунт X получает деньги с множества карт → высокий PageRank → помечается как "мул" (money mule).
- Криптобиржа Y — конечная точка обналичивания → тоже высокий риск.
2.2. Ранжирование подозрительных BIN/карт
- Связи: Карта используется в 50+ аккаунтах → её PageRank растет.
- Действие: Банк блокирует карту и проверяет связанные аккаунты.
Code:
PR(A) = (1-d) + d * (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))
- PR(A) — вес объекта А (например, карты).
- T1...Tn — объекты, связанные с А.
- C(Ti) — количество исходящих связей у Ti.
- d — коэффициент затухания (~0.85).
3. Реальные кейсы в банках
Кейс 1. Обнаружение "бот-сетей"
- Данные: 1000 аккаунтов регистрируются с одного IP.
- Граф: Связь IP → Аккаунты.
- PageRank: IP получает максимальный вес → блокировка всей сети.
Кейс 2. Поиск организаторов фрода
- Данные: Деньги с жертв поступают на 10 карт, затем объединяются на одной.
- PageRank: Итоговый аккаунт имеет высший вес → приоритет для расследования.
4. Техническая реализация
4.1. Инструменты
- Neo4j (графовая БД):
cypher:
Code:MATCH (c:Card)-[r:USED_BY]->(a:Account) RETURN c.number, pagerank(a) AS risk_score ORDER BY risk_score DESC
- Apache Spark GraphX: Для Big Data.
4.2. Код на Python (NetworkX)
Python:
import networkx as nx
# Создаём граф транзакций
G = nx.DiGraph()
G.add_edges_from([
("Карта 1", "Аккаунт A"),
("Карта 2", "Аккаунт A"),
("Аккаунт A", "Криптобиржа X")
])
# Считаем PageRank
pagerank = nx.pagerank(G, alpha=0.85)
print(pagerank)
Вывод:
Python:
{'Карта 1': 0.2, 'Карта 2': 0.2, 'Аккаунт A': 0.5, 'Криптобиржа X': 0.1}
5. Ограничения и улучшения
- Проблема: Ложные срабатывания (например, общий IP в коворкинге).
- Решение:
- Комбинация с ML-моделями (анализ поведения).
- Временные графы: Учёт "возраста" связей (новые связи рискованнее).
6. Где изучить глубже?
- Документация:
- Курсы:
- "Graph Analytics for Financial Services" (Coursera).
- Исследования:
- Статьи IEEE о применении PageRank в фрод-детекшн.
Итог
PageRank в банках — это:


Пример запроса для анализа:
"Показать 10 карт с самым высоким PageRank за последний месяц, получивших переводы от 50+ аккаунтов".
Хотите разобрать как сочетать PageRank с машинным обучением? Или примеры из практики? Спрашивайте!