greenmir
greenmir личный блог
02 августа 2025, 04:45

Графовая разведка: как графовые базы данных выявляют скрытые связи между контрагентами и инсайдерами

В статье описывается применение графовых баз данных для обнаружения сложных и скрытых цепочек взаимодействий между юридическими лицами и физическими лицами на финансовом рынке. Рассматриваются ключевые алгоритмы, архитектурные приёмы моделирования и реальные примеры практического применения, включая кейс по анализу инсайдерских сделок.
Графовая разведка: как графовые базы данных выявляют скрытые связи между контрагентами и инсайдерами


 

 

Введение

Современные финансовые потоки строятся по сетевым принципам: акционеры, компании, посредники и брокеры формируют гигантскую веб-структуру транзакций. Традиционные SQL-решения зачастую не в силах эффективно «пробежать» по скрытым путям, соединяющим узлы этого графа — особенно если нужно найти цепочку через семь организаций, связанных кардиналом мирового капитала. Графовые базы данных (GraphDB) предлагают естественный способ моделировать такие сложные взаимосвязи и отвечать на запросы скорости мысли — буквально в одну-две строчки Cypher-кода.


 1. Модель и архитектура графовой БД 

Почему граф, а не реляция?

  • Нативные связи. В реляционных БД связи между записями реализуются через внешние ключи и JOIN’ы, а в GraphDB ребро считается самостоятельным объектом с собственными свойствами.

  • Гибкая схема. Новые типы связей или узлов добавляются без миграций таблиц: свойство узла — это просто ещё одно поле.

  • Высокая скорость обхода. Следование по ребрам («traversal») в памяти базируется на прямых указателях, а не на сканировании индексов.

Ключевые компоненты:

  • Узел (Node). Представляет компанию, акционера, банковский счёт или брокерский договор.

  • Ребро (Relationship). Олицетворяет транзакцию, долевое участие, семейную связь между инсайдерами.

  • Свойства (Properties). Любой узел и любое ребро могут нести метаданные: даты, суммы, роли участников.

  • Метаданные графа. Индексы по ключевым свойствам (например, ИНН или номер счета) обеспечивают быстрый доступ к стартовым точкам обхода.

Пример:
Один из проектов требовал быстро вычислять цепочку передачи активов через более чем 50 контрагентов. Построив в Neo4j граф с узлами «Компания» и «Лицо», а также ребрами «Владеет» и «Транзакция», удалось снизить время выполнения сложного запроса с 30 секунд (реляционная БД) до 200 мс.


2. Алгоритмы и шаблоны поиска

Графовые БД дают в руки не просто хранилище, но и целый набор алгоритмов для анализа структуры.

2.1 Алгоритмы центральности

  • PageRank. Вычисляет «важность» узла через алгоритм случайных блужданий. Позволяет отсеять малоактивные организации и сфокусироваться на ключевых игроках.

  • Betweenness Centrality. Измеряет, сколько кратчайших путей проходит через узел. Служит для выявления «моста» между двумя кластерами компаний.

2.2 Выявление сообществ

  • Louvain / Label Propagation. Позволяют разбить сеть компаний и лиц на кластеры, внутри которых связи наиболее плотные. Это критично, когда инсайдеры действуют через небольшие «ячейки» организаций.

2.3 Шаблонный поиск (Pattern Matching)

  • Cypher MATCH. Удобный язык для описания искомого паттерна, например, цепочки вида:

  • MATCH (p:Person)-[:OWNS]->(c1:Company)-[:TRANSACTED*1..4]->(c2:Company)<-[:OWNS]-(q:Person) WHERE p.role = 'insider' AND q.role = 'insider' RETURN p, c1, c2, q

    Этот запрос ищет двух инсайдеров, связанных через 1–4 транзакции между своими компаниями.

  • Subgraph Isomorphism. При поиске точных совпадений сложных схем (например, три стороны, меняющие активы по кругу) движки GraphDB применяют оптимизированные алгоритмы VF2.


3. Практический кейс: выявление инсайдерских нитей

Контекст задачи. На одном из российских фондовых рынков регулятор заподозрил утечку внутренней информации: после сделки крупного акционера котировки двинулись в ожидаемом тренде уже через полчаса.

Шаги решения:

Загрузка и трансформация данных.
  • Импорт истории торгов и раскрытых регистров в формате CSV/JSON.
  • Выделение сущностей: «акционеры», «компании», «события (собрания, пресс-релизы)».
Построение графа.
  • Узлы: участники, компании, тип события.
  • Ребра: «принадлежит», «участвует», «публикация».
Анализ сообществ.
  • Алгоритм Louvain выявил локальный кластер из трёх компаний, управляемых одним холдингом, несмотря на разные ИНН.

Выявление подозрительных путей.
  • Команда запустила MATCH-запрос на поиск циклических транзакций между этими компаниями за 7 дней до ключевого собрания совета директоров.

  • Результат показал два ранее неизвестных «прокладки» — фирмы-однодневки, через которые проходили наибольшие объёмы сделок.

Уточняющий анализ — центральность.
  • Применение Betweenness Centrality выявило, что одна из фирм-однодневок обладала коэффициентом более чем в два раза выше среднего.

Небольшая ремарка:
Когда впервые увидел граф транзакций, где «невинная» фирма выступала центральным узлом сети, сердце колотилось ровно так же, как при просмотре детектива. Только вместо Шерлока — Cypher-запрос.


Вывод

Графовые базы данных позволяют взглянуть на финансы не как на разрозненные таблицы, а как на живую сеть отношений. При правильном моделировании и применении алгоритмов графового анализа удаётся максимально быстро находить скрытые цепочки и «узловые» точки, ответственные за инсайдерские сделки. К тому же такой подход даёт широкие возможности для расширения: подключение социальных сетей, веб-скрейпинг новостей, интеграция с BI-дашбордами.

В мире, где финансовые потоки становятся всё более запутанными, владение графовой разведкой — не просто дань моде, а насущная необходимость.

5 Комментариев
  • ( ° ͜ʖ͡°)╭∩╮
    02 августа 2025, 06:31
    удивлён, аднака))
    нечасто среди нынешнего кворума попадаюцца знакомые с теорграфом))
  • А.К.
    02 августа 2025, 06:27
    Пошла жара! )))
  • IliaM
    02 августа 2025, 10:27
    Есть open source решения такой разведки?
  • Чёрный Ленин
    02 августа 2025, 11:11
    Отлично 👍

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн