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

Современные финансовые потоки строятся по сетевым принципам: акционеры, компании, посредники и брокеры формируют гигантскую веб-структуру транзакций. Традиционные SQL-решения зачастую не в силах эффективно «пробежать» по скрытым путям, соединяющим узлы этого графа — особенно если нужно найти цепочку через семь организаций, связанных кардиналом мирового капитала. Графовые базы данных (GraphDB) предлагают естественный способ моделировать такие сложные взаимосвязи и отвечать на запросы скорости мысли — буквально в одну-две строчки Cypher-кода.
Нативные связи. В реляционных БД связи между записями реализуются через внешние ключи и JOIN’ы, а в GraphDB ребро считается самостоятельным объектом с собственными свойствами.
Гибкая схема. Новые типы связей или узлов добавляются без миграций таблиц: свойство узла — это просто ещё одно поле.
Высокая скорость обхода. Следование по ребрам («traversal») в памяти базируется на прямых указателях, а не на сканировании индексов.
Ключевые компоненты:
Узел (Node). Представляет компанию, акционера, банковский счёт или брокерский договор.
Ребро (Relationship). Олицетворяет транзакцию, долевое участие, семейную связь между инсайдерами.
Свойства (Properties). Любой узел и любое ребро могут нести метаданные: даты, суммы, роли участников.
Метаданные графа. Индексы по ключевым свойствам (например, ИНН или номер счета) обеспечивают быстрый доступ к стартовым точкам обхода.
Пример:
Один из проектов требовал быстро вычислять цепочку передачи активов через более чем 50 контрагентов. Построив в Neo4j граф с узлами «Компания» и «Лицо», а также ребрами «Владеет» и «Транзакция», удалось снизить время выполнения сложного запроса с 30 секунд (реляционная БД) до 200 мс.
Графовые БД дают в руки не просто хранилище, но и целый набор алгоритмов для анализа структуры.
PageRank. Вычисляет «важность» узла через алгоритм случайных блужданий. Позволяет отсеять малоактивные организации и сфокусироваться на ключевых игроках.
Betweenness Centrality. Измеряет, сколько кратчайших путей проходит через узел. Служит для выявления «моста» между двумя кластерами компаний.
Louvain / Label Propagation. Позволяют разбить сеть компаний и лиц на кластеры, внутри которых связи наиболее плотные. Это критично, когда инсайдеры действуют через небольшие «ячейки» организаций.
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.
Контекст задачи. На одном из российских фондовых рынков регулятор заподозрил утечку внутренней информации: после сделки крупного акционера котировки двинулись в ожидаемом тренде уже через полчаса.
Шаги решения:
Загрузка и трансформация данных.Алгоритм Louvain выявил локальный кластер из трёх компаний, управляемых одним холдингом, несмотря на разные ИНН.
Команда запустила MATCH-запрос на поиск циклических транзакций между этими компаниями за 7 дней до ключевого собрания совета директоров.
Результат показал два ранее неизвестных «прокладки» — фирмы-однодневки, через которые проходили наибольшие объёмы сделок.
Применение Betweenness Centrality выявило, что одна из фирм-однодневок обладала коэффициентом более чем в два раза выше среднего.
Небольшая ремарка:
Когда впервые увидел граф транзакций, где «невинная» фирма выступала центральным узлом сети, сердце колотилось ровно так же, как при просмотре детектива. Только вместо Шерлока — Cypher-запрос.
Графовые базы данных позволяют взглянуть на финансы не как на разрозненные таблицы, а как на живую сеть отношений. При правильном моделировании и применении алгоритмов графового анализа удаётся максимально быстро находить скрытые цепочки и «узловые» точки, ответственные за инсайдерские сделки. К тому же такой подход даёт широкие возможности для расширения: подключение социальных сетей, веб-скрейпинг новостей, интеграция с BI-дашбордами.
В мире, где финансовые потоки становятся всё более запутанными, владение графовой разведкой — не просто дань моде, а насущная необходимость.
нечасто среди нынешнего кворума попадаюцца знакомые с теорграфом))