Анализ сообществ в социальных сетях Николай Скворцов Социальные сети как области с интенсивным использованием данных Телекоммуникационные связи (звонки, адресные книги и др.) Информационные сети (медиа, цитирование, сайты) Данные о социальных связях (территориальные, родственные, взаимодействия, знакомства, …) Данные о совместном использовании ресурсов Социальные сети в интернет (Facebook,VK, LinkedIn, …) Организационные взаимодействия Составляющие сетей Участники (персоны, организации, сообщества) Ресурсы (книги, видео, фотографии) Атрибуты (профили, анкеты, текст комментариев) Отношения (друзья, оценки, метки, посещения, публикации, цитирования, комментарии, транзакции, взаимодействия, роли) Рассматриваемые классы задач над сетями Участники и ресурсы сети не равнозначны из-за различий в рассматриваемых связях между ними Участники и ресурсы сети образуют связанные структуры Обнаружение и анализ сообществ Социальные сети – живые системы Ранжирование участников по различным критериям Моделирование развития сетей с разными свойствами Устойчивость сети к воздействиям Моделирование распространения событий различной природы Необходимость анализа больших сетей Подходы к редуцированию и распараллеливанию вычислений над сетями План лекции Представление сетей Метрики центральности вершин Алгоритмы выявления сообществ Представление сетей Граф G = (V,E) V – Вершины (Участники, Ресурсы) E – Рёбра (Отношения) Ориентированные рёбра (дуги) Атрибуты вершин и рёбер A C D Например, вес, тип, метрики структуры графа Матрица смежности M B Элементы множества V по горизонтали и вертикали Mij = 1, если между вершинами i и j есть ребро, иначе 0 A B C D A 0 1 0 1 B 1 0 1 1 C 1 0 0 0 D 1 0 1 0 Центральность вершин сети Свойства вершин Метрики центральности вершин Степень вершины – количество рёбер, соединяющих вершину с другими Для ориентированных сетей определяют входящую и исходящую полустепени вершины Центральность вершин – ранжирование их важности по некоторому критерию, учитывающему структуру всего графа по степеням вершин – по количеству соседей вершины по посредничеству – по количеству минимальных путей, проходящих через вершину по близости к центру – по средней длине минимальных путей от вершины к другим вершинам сети по собственному вектору – с учётом центральности соседних вершин Для ориентированных графов Престиж вершины – метрика центральности вершины по входным дугам Влияние вершины – метрика центральности вершины по выходным дугам Центральность вершин сети (2) По степеням По близости По посредничеству По собственным векторам Сетевые сообщества Сообщество (связанная подгруппа) – это группа вершин социальной сети, которые связаны существенно большим количеством рёбер, чем между сообществами Зачем искать сообщества? Параметры и поведение сети могут сильно отличаться от сообщества к сообществу Исследование изоляции подгрупп (слабое распространение информации) Исследование влиятельных участников на подгруппы Локализация хранения и обработки информации о взаимодействии участников Вложенные сообщества Перекрывающиеся сообщества Другие цели Возможные критерии определения сообществ Взаимность связей множества участников Частота связей Близость и достижимость вершин Относительная частота связей между членами и нечленами сообщества Другие критерии Задача выявления сообществ Сеть G: n вершин, m рёбер Cообщество C: nC вершин, mC рёбер mext внешних рёбер Базовый подход Плотность графа = 2m / (n (n - 1)) Плотность внутренних связей сообщества int (С) = 2mC / (nC (nC - 1)) int (С) > Плотность внешних связей ext (C) = mext / (nC (n - nC)) ext (С) < Задача обнаружения сообществ состоит в максимизации суммы разностей плотности (int - ext) по всем сообществам сети Локальные подходы к обнаружению сообществ Локальные подходы принимают во внимание структуры, обнаруживаемые в графах Клика – подграф, в котором каждая вершина связана со всеми остальными в подграфе Связь каждый с каждым Неприменимо центральное расположение вершин k-ядро – подграф, в котором каждая вершина связана минимум с k другими вершинами того же подграфа 3 4 Локальные подходы к обнаружению сообществ (2) n-клика – подграф, в котором максимальное расстояние между любыми двумя вершинами не больше n 2 p-клика – подграф, в котором вершины имеют не менее p-той части соседних вершин того же подграфа Перколяция клик – максимальное объединение k-клик, любые две из которых соединены набором смежных k-клик Все перечисленные подходы – NP-полные задачи 2 Глобальные подходы к обнаружению сообществ Применение глобальных свойств сетей в качестве критериев сообществ Используются различные критерии сходства вершин Случайное блуждание – количество посещений вершины при случайных переходах по графу Центральность по посредничеству – количество кратчайших путей, проходящих через вершину Модульность вершин – характеристика, основанная на разности между фактическим количеством рёбер подграфа и ожидаемым количеством рёбер, если бы это была случайная сеть Иерархические подходы с использованием мер сходства вершин Агломеративные подходы – итеративное слияние подгрупп вершин, сходных по разным критериям Разделяющие подходы – итеративное удаление рёбер между слабо связанными вершинами Иерархические алгоритмы Расчёт веса для всех пар вершин По различным критериям (например, улавливание сообществом случайного блуждания) Инициация: n несвязанных вершин Добавление рёбер между парами в порядке убывания веса Получаем дерево вложенных компонентов Уровень среза определяет детализацию сообществ По посредничеству рёбер Посредничество (betweenness) – количество кратчайших путей графа, проходящих через ребро Иерархический алгоритм по посредничеству рёбер удаляет рёбра с высоким показателем посредничества (мосты), разбивая сеть на компоненты Эти компоненты являются сообществами полной сети Пока посредничество любого ребра больше порогового значения Удалить ребро с наибольшим посредничеством Пересчитать посредничество Плохо масштабируется Удаление дуги влияет на посредничество других рёбер (расчёт кратчайших путей всех пар за один проход – O(N3)) • По модульности подгруппы Рассмотрим рёбра в пределах сообщества или между сообществом и остальной частью сети Модульность: di d j 1 Q Aij 2m ij 2m A – матрица смежности didj/2m – вероятность ребра между двумя вершинами, пропорциональная их степеням – находятся ли обе вершины в одном сообществе Агломеративный подход (ci , c j ) Инициализация: каждая вершина является сообществом Жадная стратегия: последовательно соединяются сообщества с наибольшим увеличением Q До тех пор, пока Q <= 0 от при соединении любых сообществ Подграф представляет собой сообщество, если число ребер внутри подграфа превышает ожидаемое число внутренних ребер, которое этот подграф имел бы в нулевой модели (случайной сети) ожидаемая последовательность степеней соответствует реальной последовательности степеней графа Спектральная кластеризация Каждую вершину графа описываем точкой в многомерном вещественном пространстве Строится лапласиан D - диагональная матрица степеней А – матрица смежности графа Находятся собственные числа и векторы матрицы Оптимальное решение – минимизация собственных чисел Однако первое собственное число пропускается, так как выделяет всю сеть как одно сообщество Спектральная кластеризация (2) Сообщества (k-means): {1, 2, 3, 4} {5, 6, 7, 8, 9} 19 Спектральная кластеризация по модульности Матрица модульности Сообщества {1, 2, 3, 4} {5, 6, 7, 8, 9} Итоги Определение сообщества вершины Определение сообщества группы Клика, перколяция клик Определение сообществ в иерархической сети Клика, k-клика Агломеративные и разделяющие иерархические подходы Определение сообществ сети в целом Методы на основе сходства вершин, спектральная кластеризация