Формальная постановка:
Пусть
Задача обнаружения пересекающихся сообществ может быть определена через матрицу принадлежности
- Для пересекающихся сообществ:
$0 \leq F_{vc} \leq 1, \forall v \in V, \forall c \in C$ - Для непересекающихся сообществ:
$F_{vc} \in {0, 1}$
Особенности пересекающихся сообществ:
- Узел может принадлежать одновременно нескольким сообществам
- Степень принадлежности может быть непрерывной величиной (soft clustering)
- Более реалистично отражает структуру многих реальных сетей (социальные сети, биологические сети и др.)
Основная идея:
- Вместо разделения узлов на сообщества, разделяем множество ребер
- Сообщества определяются через отношения между узлами, а не через сами узлы
- Узел принадлежит сообществу, если он имеет смежные ребра, принадлежащие этому сообществу
Иллюстративный пример: Человек может играть в футбол с друзьями по выходным и работать с коллегами по будням. При этом некоторые коллеги могут быть его друзьями. Таким образом, человек имеет два типа отношений: "играет в футбол с" и "работает с", и принадлежит двум сообществам: "футбольные игроки" и "коллеги".
Математическая реализация:
-
Строится линейный граф
$L(G)$ , где:- Вершины
$L(G)$ соответствуют ребрам исходного графа$G$ - Две вершины в
$L(G)$ соединены ребром, если соответствующие ребра в$G$ имеют общую вершину
- Вершины
-
Выполняется разделение вершин линейного графа на непересекающиеся сообщества
-
Вершина исходного графа принадлежит сообществу, если инцидентные ей ребра принадлежат этому сообществу в линейном графе
История развития:
- Evans и Lambiotte (2009-2010) первыми применили разделение узлов линейного графа для получения разделения ребер исходного графа
- Kim и Jeong (2011) предложили модифицированную версию метода Infomap для обнаружения link communities
- Evans (2010) расширил подход линейного графа на кликовые графы
Основная идея метода: Метод LPAM объединяет подход link partitioning с алгоритмом Partitioning Around Medoids (PAM) для обнаружения пересекающихся сообществ в сетях с заданным количеством кластеров.
Этапы алгоритма LPAM:
-
Построение линейного графа:
- Создается линейный граф
$L(G)$ исходного графа$G$ - Вершины
$L(G)$ соответствуют ребрам$G$ - Ребра в
$L(G)$ соединяют вершины, соответствующие смежным ребрам в$G$
- Создается линейный граф
-
Обнаружение непересекающихся сообществ в линейном графе:
-
Вычисляется матрица расстояний
$D = (d_{ij}) \in \mathbb{R}^{m \times m}$ для вершин$L(G)$ -
В работе используются два типа функций расстояния:
-
Commute distance - время, необходимое случайной прогулке, чтобы дойти от узла
$i$ до узла$j$ и вернуться обратно - Amplified commute distance - модификация commute distance, дающая более точные результаты
-
Commute distance - время, необходимое случайной прогулке, чтобы дойти от узла
-
Применяется алгоритм Partitioning Around Medoids (PAM) для получения
$k$ кластеров
-
-
Преобразование кластеров ребер в кластеры узлов:
- Узел
$v$ принадлежит сообществу$c$ с коэффициентом$F_{vc}$ , пропорциональным количеству смежных ребер, принадлежащих кластеру$c$ - Параметр
$\theta$ контролирует степень пересечения сообществ: с увеличением$\theta$ возрастает степень пересечения
- Узел
Вычислительная сложность:
- Точная версия: экспоненциальная сложность
$O(2^{|E|})$ , так как задача k-median является NP-полной - Эвристическая версия: использует метод CLARANS с теоретической сложностью, близкой к квадратичной
Преимущества метода LPAM:
- Естественным образом порождает пересекающиеся сообщества
- Может работать с заданным количеством кластеров
- Использует более информативные метрики расстояния (commute distance и его усиленную версию)
- Экспериментальные результаты показывают конкурентоспособность с существующими методами
Визуальное представление: На рисунке 1 статьи показан пример 8×8 решетки и соответствующего линейного графа. Кластеры выделены цветными прямоугольниками, медоиды на линейном графе представлены большими кругами, а в исходном графе медоиды обозначены жирными ребрами.
Экспериментальные результаты:
- Метод был протестирован на реальных сетях и синтетических бенчмарках
- Для небольших и средних сетей был найден точный результат
- Для крупных сетей использовалась эвристическая версия LPAM
- Результаты показали, что эвристическая версия дает решения, близкие к точным
- Метод конкурентоспособен с существующими подходами по метрикам F1, ONMI и другим
Заключение по методы LPAM: Метод LPAM представляет собой эффективный подход к обнаружению пересекающихся сообществ, основанный на комбинации link partitioning и алгоритма Partitioning Around Medoids. Он преобразует задачу поиска пересекающихся сообществ в задачу поиска непересекающихся сообществ в линейном графе, что позволяет использовать хорошо изученные методы для непересекающихся кластеров и естественным образом получать пересекающиеся сообщества в исходной сети.
Основная идея метода:
BIGCLAM (Cluster Affiliation Model for Big Networks) - это метод обнаружения пересекающихся сообществ, основанный на модели аффилиаций узлов к сообществам. В отличие от многих существующих методов, BIGCLAM учитывает, что пересечения сообществ часто имеют более плотную структуру связей, чем непересекающиеся части сообществ.
Ключевые принципы:
- Сообщества возникают из-за общих аффилиаций узлов к группам
- Узел может иметь разную степень принадлежности к разным сообществам
- Плотность связей в пересечениях сообществ выше, чем в непересекающихся частях
Математическая модель:
-
Представление сообществ:
- Модель использует матрицу принадлежности
$F \in \mathbb{R}^{N \times K}$ , где$F_{uc} \geq 0$ обозначает степень принадлежности узла$u$ к сообществу$c$ - Чем выше значение
$F_{uc}$ , тем сильнее узел$u$ связан с сообществом$c$
- Модель использует матрицу принадлежности
-
Генерация сети:
- Вероятность существования ребра между узлами
$u$ и$v$ определяется как:$$p(u, v) = 1 - \exp(-F_u \cdot F_v^T)$$ - Эта вероятность увеличивается с количеством общих сообществ и силой аффилиаций
- Вероятность существования ребра между узлами
-
Оптимизационная задача:
- Цель: найти матрицу
$F$ , максимизирующую правдоподобие наблюдаемой сети$$\hat{F} = \underset{F \geq 0}{\arg\max} , l(F)$$ где$$l(F) = \sum_{(u,v) \in E} \log(1 - \exp(-F_u F_v^T)) - \sum_{(u,v) \notin E} F_u F_v^T$$
- Цель: найти матрицу
Алгоритмическая реализация:
-
Оптимизация:
- BIGCLAM формулируется как задача неотрицательного матричного разложения (NMF)
- Используется модифицированный блочный стохастический градиентный спуск
- Для ускорения вычислений применяется оптимизация, описанная в статье, которая ускоряет алгоритм примерно в 100 раз
-
Определение числа сообществ
$K$ :- Для больших сетей: метод удержания (hold-out)
- 20% пар узлов резервируются для проверки
- Варьируя
$K$ , обучают модель на 80% пар узлов - Выбирается
$K$ с максимальным правдоподобием на удерживаемом наборе
- Для малых сетей (менее 50 ребер): критерий BIC
$BIC(K) = -2l(\hat{F}) + NK \log|E|$ - Выбирается
$K$ , минимизирующий BIC
- Для больших сетей: метод удержания (hold-out)
-
Масштабируемость:
- Для очень больших сетей применяется
$l_1$ -регуляризация:$$\underset{F_{uc} \geq 0}{\arg\max} , l(F) - \lambda \sum_{u,c} |F_{uc}|$$ - Регуляризация обеспечивает разреженность матрицы
$F$ , снижая требования к памяти - Для LiveJournal (4 млн узлов, 35 млн ребер) с 20 потоками время обработки составляет около одного дня
- Для очень больших сетей применяется
Преимущества метода BIGCLAM:
-
Точность:
- Превосходит существующие методы по метрикам F1-score, Omega-index и Recall
- В 98% случаев находит истинные сообщества с высокой точностью (F1 > 0.85)
- В 27% случаев обнаруживает сообщества почти идеально (F1 > 0.95)
-
Масштабируемость:
- Может обрабатывать сети с сотнями тысяч узлов за 20 минут
- Обрабатывает сети в 10-100 раз быстрее, чем другие методы
- Позволяет анализировать сети с миллионами узлов (в 10 раз больше, чем предыдущие методы)
-
Гибкость модели:
- Естественным образом моделирует различные типы структур:
- Непересекающиеся сообщества
- Пересекающиеся сообщества
- Иерархически вложенные сообщества
- Учитывает плотные соединения в пересечениях сообществ
- Естественным образом моделирует различные типы структур:
Заключение по BIGCLAM: BIGCLAM – очень стройный метод в котором идеи матричной факторизации применяются для поиска пересекающихся сообществ