March 31

Анализ социального графа: выявление связей, ближнего круга и скрытых сообществ

Анализ социального графа: выявление связей, ближнего круга и скрытых сообществ

Введение

Человек в социальных сетях не существует изолированно. Его подписчики, друзья, подписки, взаимодействия (лайки, комментарии, репосты) образуют социальный граф — сеть связей, отражающую реальные отношения, интересы и влияние. Анализ этого графа позволяет выявить ближний круг цели, ее аффилиации, иерархию в сообществах и даже скрытые связи, которые не очевидны при поверхностном просмотре. Данная статья посвящена методам и инструментам анализа социального графа.

Что такое социальный граф?

Социальный граф — это структура, где:

Вершины (ноды): Пользователи, сообщества, страницы.

Рёбра (связи): Дружба, подписки, упоминания, комментарии, лайки, репосты, совместные фото, участие в общих группах.

Типы связей и их разведывательная ценность

Друзья / подписчики

Взаимные подписки, дружба

Ближний круг, семья, коллеги

Подписки

На кого подписан пользователь

Интересы, кумиры, источники информации

Подписчики

Кто подписан на пользователя

Аудитория, влияние, потенциальные связи

Взаимодействия (лайки)

Отметки "нравится"

Интересы, поддержка, одобрение

Комментарии

Дискуссии, общение

Активные связи, уровень вовлеченности

Репосты / шеры

Распространение контента

Солидарность, согласие с позицией

Упоминания (@)

Прямые обращения

Целевые коммуникации

Совместные группы

Общие сообщества

Общие интересы, профессиональные связи

Совместные фото

Отметки на фото

Реальные встречи, знакомства

Геолокации

Отметки мест вместе

Совместное времяпрепровождение

Методология анализа социального графа

Этап 1: Сбор данных о связях

Для каждой платформы методы сбора различаются:

VKontakte (ВКонтакте):

Через официальный API (требует авторизации) можно получить список друзей, подписчиков, подписок.

Инструменты: VK API, VK Parser, TargetHunter, VK Gee.

Ограничения API: 5000 запросов в день (для приложений), но можно увеличить.

Facebook:

API Facebook строго ограничен после скандала. Получение списка друзей затруднено.

Альтернативы: ручной сбор через браузер (скроллинг), расширения (Social Analyzer), OSINT-инструменты.

Instagram:

API ограничен. Для сбора подписчиков/подписок используются парсеры (Instaloader, OSINTgram).

Instaloader: Позволяет скачивать списки подписчиков и подписок.

Twitter (X):

API позволяет получать подписчиков, подписки, упоминания.

Бесплатный API имеет ограничения; для массового сбора требуется платный доступ.

Telegram:

Сбор участников публичных чатов и каналов через клиентские боты или парсеры (Telethon, Pyrogram).

Этап 2: Визуализация графа

Собранные данные преобразуются в граф для визуального анализа.

Инструменты визуализации:

  1. Gephi:
    • Профессиональный инструмент для визуализации и анализа графов.
    • Поддерживает импорт CSV, GEXF, GraphML.
    • Алгоритмы раскладки (Force Atlas, Fruchterman-Reingold) позволяют выявить кластеры.
    • Метрики: степень (degree), посредничество (betweenness), кластеризация.
  2. Cytoscape:
    • Изначально для биологических сетей, но применим для социальных графов.
    • Мощные инструменты анализа.
  3. NetworkX (Python):
    • Библиотека для анализа графов.
    • Позволяет вычислять центральность, плотность, компоненты связности.
    • Визуализация через matplotlib или экспорт в Gephi.
  4. Maltego:
    • Платформа OSINT с встроенными трансформами для сбора связей.
    • Автоматически строит граф, позволяет добавлять новые сущности.
  5. Kumu / NodeXL:
    • Облачные инструменты для визуализации графов.

Пример кода (Python + NetworkX):

import networkx as nx
import matplotlib.pyplot as plt

# Создание графа
G = nx.Graph()

# Добавление вершин (пользователей)
G.add_node("Цель")
G.add_node("Друг_1")
G.add_node("Друг_2")
G.add_node("Коллега_1")

# Добавление связей
G.add_edge("Цель", "Друг_1", weight=5)  # вес = частота взаимодействий
G.add_edge("Цель", "Друг_2", weight=3)
G.add_edge("Цель", "Коллега_1", weight=1)
G.add_edge("Друг_1", "Друг_2", weight=2)

# Расчет центральности (важности узлов)
centrality = nx.degree_centrality(G)
print(centrality)

# Визуализация
pos = nx.spring_layout(G)
nx.draw(G, pos, with_labels=True, node_color='lightblue', edge_color='gray')
plt.show()

Этап 3: Анализ метрик графа

Для понимания структуры и выявления ключевых фигур используются метрики:

  1. Степень (Degree): Количество связей узла. Высокая степень может указывать на центральную фигуру.
  2. Центральность по посредничеству (Betweenness Centrality): Узлы, через которые проходят многие пути. Посредники между группами.
  3. Центральность по близости (Closeness Centrality): Узлы, быстро достигающие других. "Информационные хабы".
  4. Коэффициент кластеризации (Clustering Coefficient): Насколько плотно связаны соседи узла. Высокий коэффициент = плотная группа.
  5. Эксцентриситет (Eccentricity): Максимальное расстояние до других узлов. Крайние узлы сети.

Этап 4: Выявление скрытых сообществ

Алгоритмы кластеризации позволяют выделить группы узлов с высокой внутренней плотностью связей.

Методы:

  • Louvain algorithm: Обнаружение сообществ в графах.
  • Girvan-Newman: Иерархическая кластеризация.
  • K-means (на основе векторов смежности): Для больших графов.

Практические методики анализа связей

Методика 1: Выявление ближнего круга

  1. Сбор всех друзей/подписчиков цели.
  2. Фильтрация:
    • Взаимные друзья (дружба в обе стороны).
    • Пользователи, с которыми цель активно взаимодействует (лайки, комментарии).
    • Пользователи, отмеченные на совместных фото.
  3. Анализ общего:
    • Общие группы, места работы, города проживания.
    • Семейные связи (общая фамилия, фото с подписями).
  4. Ранжирование: Ближний круг — пользователи, имеющие 3+ из перечисленных признаков.

Методика 2: Анализ влияния (кто на кого влияет?)

  1. Анализ лайков: Кто чаще всего лайкает посты цели? Кого чаще всего лайкает цель?
  2. Анализ репостов: Кто репостит контент цели? Чей контент репостит цель?
  3. Анализ комментариев: С кем цель ведет диалоги? Кто комментирует ее посты?
  4. Построение ориентированного графа: Направленные связи (кто на кого подписан, кто кого лайкает) показывают направление влияния.

Методика 3: Выявление скрытых связей

Связи могут быть скрыты, если пользователи не состоят в друзьях, но пересекаются в других контекстах.

  1. Общие группы: Поиск групп, в которых состоят и цель, и потенциальные контакты.
  2. Общие геолокации: Отметки в одних и тех же местах (кафе, мероприятия, офисы).
  3. Общие упоминания: Кто упоминался в одних и тех же постах.
  4. Временные паттерны: Одновременная активность (посты в одно время, чекины в одном месте).
  5. Использование анализаторов связей: Linkurious, Palantir (для профессиональных расследований).

Методика 4: Анализ иерархии в сообществе

Если цель является участником какого-либо сообщества (группа, канал, форум), можно проанализировать ее позицию:

  1. Степень вовлеченности: Количество постов, комментариев, лайков.
  2. Взаимодействие с лидерами: Упоминания администраторов, комментарии под их постами.
  3. Связи с другими активными участниками: Анализ графа взаимодействий внутри сообщества.
  4. Определение роли: Лидер, медиатор, наблюдатель, новичок.

Инструменты для анализа социального графа

  1. Gephi: Визуализация и метрики графов.
  2. NetworkX (Python): Библиотека для анализа.
  3. Maltego: Сбор и визуализация связей.
  4. NodeXL: Плагин для Excel для анализа социальных сетей.
  5. SNA (Social Network Analysis) Toolkit: Специализированные утилиты.
  6. OSINTgram (Instagram): Сбор подписчиков и подписок.
  7. VK Parser / VK Gee: Сбор данных VK.
  8. Telethon / Pyrogram: Сбор участников Telegram.

Кейс: Расследование связей через социальный граф

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

  1. Сбор друзей и подписчиков каждого из трех лиц (VK, Instagram).
  2. Построение графа в Gephi: все три лица — центральные ноды.
  3. Анализ общих связей: Выявлены 12 пользователей, которые являются друзьями/подписчиками как минимум двух из трех лиц.
  4. Анализ общих групп: Все три лица состоят в одной закрытой группе (связанной с их деятельностью).
  5. Анализ геолокаций: Один из общих пользователей отмечался в тех же местах, что и цель, без публичного взаимодействия.
  6. Вывод: Связь между тремя лицами установлена через общих знакомых и общую группу. Скрытые связи верифицированы.

Анализ социального графа позволяет выйти за пределы очевидных связей и увидеть сложную структуру взаимоотношений цели. Ближний круг, скрытые сообщества, направление влияния — все это становится доступным при системном сборе данных о связях и их визуализации. Социальный граф является не просто набором имен, а картой социальной реальности, отражающей иерархию, доверие и коммуникационные потоки.