Upload
-
View
516
Download
6
Embed Size (px)
Citation preview
Методы анализа социальных графов и поиска
сообществ Муромцев Никита
Научный руководитель: Баева Наталия Валерьевна
2/49
Содержание
1. Основные понятия a. Граф и социальный граф b. Что такое сообщества в графах
2. Зачем производить поиск сообществ 3. Метрики графов 4. Критерии качества разбиения на сообщества 5. Основные методы выделения сообществ 6. Модели социальных графов 7. Примеры разбиений 8. Литература
2
3/49
1. Основные понятия
4/49
Что такое социальный граф
Социальный граф (далее граф) – набор сущностей и отношений: • сущности (вершины) – социальные объекты (книги, статьи,
люди); • вершины обладают специфическими свойствами; • ребра – методы социального взаимодействия • типы отношений: список использованной литературы,
цитирование, круги общения и т.п. • В зависимости от выбора связей для рассмотрения,
получаются разные графы
Граф – совокупность непустого множества вершин и наборов пар вершин (связей).
5/49
Особенности социального графа Социальный граф
• Динамический – меняется под действием многих вершин
• Натуральный – имеет естественную природу образования
• Пример: корпорация, взаимоотношения внутри отдела и между отделами
Обычный граф • Статический – меняется
под действием внешних факторов
• Как правило создаётся в рамках эксперимента или на основе наблюдений
• Пример: диаграмма классов в программе
6/49
Свойства социального графа
7/49
Типы социального графа • Цельные сети - отношения в пределах определённо
очерченных границ • Электронная почта • Социальная сеть
• Эго-сети – каждый элемент выборки в подобном анализе обозначается как «эго», а узлы, связанные с эго, обозначаются как «другие» • Список друзей одного человека
• Неполные сети – выборка из относительных данных, созданная методом снежного кома • Выборка + друзья выборки + друзья друзей выборки • Сообщество + другие сообщества подписчиков
8/49
Что такое сообщества в графах
Сообщество – группа вершин в графе такая что: • состоит из одной компоненты
связности (всегда есть связь между вершинами);
• имеет более плотные связи внутри, чем снаружи;
• может пересекаться с другими сообществами.
Граф из 3-х компонент
9/49
2. Зачем поиск сообществ
10/49
Что можно представить в виде графа • Люди и их социальные взаимоотношения • Люди и их интересы • Интернет-ресурсы и ссылки • Научная литература и цитаты • Бизнес процессы и связи между ними • Протеины и их взаимодействия • Блуждания пользователей по сайтам
Важную роль играет тип связей – из одного источника мы можем получить разные графы. Пример: три типа связей – коллеги по работе, собутыльники, друзья по игровому клубу.
11/49
Зачем производить поиск сообществ • Маштабирование графов (Рост размера и
сложности) • Поиск определенной группы вершин (людей,
связанных научных работ) • Поиск смежных тематик (смежный контент,
совместимые научные работы) • Определение альфа-точек (влиятельные вершины) • Предсказание действий вершин из одного
сообщества и рекомендации • Идентификация пользователей (поиск одного
пользователя в разных сетях) • Выявление «настоящих связей»
12/49
3. Метрики графов
13/49
Метрики графов - связи • Гомогенность – степень, с которой схожие по какому-то
признаку участники формируют связи между собой в сравнении с несхожими.
• Множественность – количество форм, содержащихся в связи (прочность отношений). Пример: коллега по работе и друг, множественность = 2.
• Обоюдность/Взаимность – степень, с которой двое участников отвечают друг другу взаимностью в сфере дружеских или других взаимодействий.
• Закрытость сети – степень, в которой друзья пользователя являются друзьями друг другу.
• Соседство – склонность участников иметь больше связей с теми, кто находится ближе.
14/49
Метрики графов - распределение
• Структурные дыры – отсутствие связи между двумя частями сети
• Мост – вершины, заполнители структурных дыр • Центральность – степень важности вершин • Расстояние – минимальное количество связей
(рёбер) между вершинами • Сила связи – количество путей между вершинами • Плотность – отношение прямых связей в сети к
общему возможному количеству связей
15/49
Метрики графов - сегментация
• Коэффициент кластеризации – мера вероятности, с которой два партнёра одного узла являются приятелями.
• Сплоченность – степень, с которой участники связаны напрямую друг с другом при помощи социальных связей.
• Структурная сплочёность – минимальное количество участников, которые, будучи удаленными из группы, развалят группу.
• Клика – группа, в которой все пользователи имеют «прямые» связи.
16/49
Метрики графов - центральность • Центральность по степени - количество связей у вершины • Центральность по посредничеству – число кратчайших путей от
всех до всех, проходящих через данную вершину • Центральность по близости – сумма расстояний от вершины до
всех вершин
• Центральность собственного вектора – зависимость между центральностью вершины и центральностями её соседей (сумма центральностей соседних вершин, поделенных на const)
• Альфа центральность – распределение влияния вершины между своих соседей
• Центральность Каца – количество всех вершин связанных с вершиной, умноженное на коэффициент в зависимости от удаленности этих вершин
17/49
4. Критерии
18/49
Критерии качества разбиения
• Модулярность • Редакторское расстояние для
разбиений • Нормализованная взаимная
информация
19/49
Модулярность Описывает, насколько при заданном разбиении графа на группы плотность внутригрупповых связей больше плотности межгрупповых связей. Плюсы: • Модулярность возможно эффективно пересчитывать
при небольших изменениях в кластерах. Минусы: • Функционал не непрерывный, задача его
оптимизации — дискретная. • Функционал не видит маленькие сообщества.
20/49
Модулярность
21/49
Редакторское расстояние для разбиений split-join distance = минимальному количеству операций необходимых для преобразования одного разбиения в другое: • Добавить вершину в существующее сообщество. • Удалить вершину из существующего сообщества. • Создать новое сообщество с 1 вершиной. • Удалить сообщество с 1 вершиной.
Т.е. чем больше значение, тем более непохожи сообщества
22/49
Нормализованная взаимная информация
H(X) H(Y)
I(X;Y) H(X|Y) H(Y|X)
H(X;Y)
23/49
Нормализованная взаимная информация
24/49
5. Методы выделения
25/49
Основные методы выделения сообществ • Betweenness — количество кратчайших путей между всеми
парами вершин, проходящих через данное ребро. • Fastgreedy — метод, основанный на жадной оптимизации
функции модулярности. • Multilevel — метод, основанный на многоуровневой
оптимизации функции модулярности, c использованием эвристики.
• LabelPropogation — метод, основанный на присвоении меток к каждой вершине и максимальной встречаемости.4
• Walktrap — подход, основанный на случайном блуждании. • Infomap — метод случайного блуждания, основанный на
понятии информационных потоков в сетях, кодирования и сжатия информации.
• Eigenvector — метод, основанный на собственных векторах матрицы модулярности, которая получается из матрицы смежности.
26/49
Betweenness
• Подсчет коэффициентов “центральности по посредничеству” на всех ребрах графа.
• Поочередное удаление ребер с самым большим коэффициентом.
• Сообществами считаются оставшиеся компоненты связности.
• Процедура удаления связей завершается, когда достигает максимума модулярность результирующего разбиения.
Число кратчайших путей, проходящих через данное ребро
27/49
Fastgreedy
• Инициализация сообществ в каждой вершине.
• Объединение сообществ, в результате которого максимальным образом увеличивается модулярность.
• Выход, если дальнейшее увеличение значения функционала модулярности невозможно.
Жадная оптимизация модулярности.
28/49
Multilevel
1. Инициализация сообществ в каждой вершине 2. Первый Этап
a. Жадно максимизируем модулярность путем перемещения вершины в сообщество вершины-соседа
b. Нет перемещений – Выход. 3. Второй этап
a. Создать метаграф из полученных сообществ с суммарным весом всех ребер
b. Перезапустить алгоритм на метаграфе
Многоуровневая оптимизация модулярности.
29/49
Multilevel
30/49
LabelPropogation
• Каждую вершину определяем в своё сообщество. • Определяем в случайном порядке каждую вершину
в то сообщество, в которое входит большинство соседей данной вершины.
• Повторяем, пока происходят изменения.
Для нейтрализации зависимости от порядка, на каждой итерации алгоритма выбирается новый случайный порядок перебора. Результаты нескольких разметок можно агрегировать пересечением.
Вершина относится к тому сообществу, что и большинство ее соседей.
31/49
Walktrap • Инициализация сообществ в каждой вершине. • Вычисление расстояния между всеми смежными вершинами. • На каждом шаге:
• Выбрать два сообщества C1 и C2, объединение которых минимизирует изменение среднего квадратов расстояний между каждой вершиной графа и их совместным сообществом.
• Объединить эти сообщества в одно новое, C3. Обновить расстояния между сообществами.
• На n−1 шаге мы получим одно сообщество. Таким образом, выводится дендрограмма (дерево группировки) для вершин графа.
• Выбираем наилучшее разбиение, максимизирующее модулярность.
32/49
Walktrap
33/49
Infomap
• Каждая вершина в сообществе имеет уникальный код
• Происходит случайное блуждание по графу • При переходе в другое сообщество записывается
• код сообщества из которого вышли • код нового сообщества • код вершины, в которую попали
• При переходе внутри сообщества записываются коды вершин
• Далее оцениваются вероятности перехода
Минимизация кода для случайного пути
34/49
Infomap
35/49
Eigenvector
36/49
Методы агрегирования результатов
• Агрегирование кластеризацией (любым из методов)
• Агрегирование базовыми методами • Пересечением • Выделением метаграфа и применением к
нему метода выделения сообщества
Агрегирование нужно для усреднения полученных результатов работы нескольких методов
37/49
Методы агрегирования результатов - кластеризация • Номер сообщества из каждого разбиения – признак • Запустить любой метод кластеризации с
категориальными признаками
Особенности: • Чувствителен к методу • Чувствителен к метрике • Не гарантирует локальность оптимума • Не гарантирует улучшение результата
38/49
6. Модели соц. графов
39/49
Модели социальных графов Потенциально могут заменить «реальные» социальный графы. • Функционально-управляемые модели – нацелены на
воспроизведение статистических характеристик графа (степенное распределение и динамические изменения плотности).
• Модель Барабаши — Альберт • Модель «Горящий лес»
• Намеренно-управляемые модели – сфокусированы на эмуляцию процесса создания оригинального графа.
• Случайный обход/случайные блуждания • Ближайший сосед
• Структурно-управляемые модели – на основе статистических данных из структуры графа, воспроизводить случайные графы с теми же структурными ограничениями.
• Графы Кронекера • dK-графы
40/49
7. Примеры разбиений
41/49
Примеры выделения сообществ – digg.com
42/49
Кластеризация сайтов в интернете
За 2015 год 18 кластеров Ссылка
43/49
Кластеризация сайтов в интернете
За 2015 год 18 кластеров Без прореживания Ссылка
44/49
Кластеризация сайтов в интернете
За 2014 год 12 кластеров Ссылка
45/49
Примеры выделения сообществ – ВК
45
46/49
8. Литература
47/49
Литература 1. http://igraph.org/c/#docs – описание методов 2. http://www.dialog-21.ru/digests/dialog2010/materials/html/78.htm? 3. http://habrahabr.ru/company/darudar/blog/139911/ 4. http://postnauka.ru/longreads/20259http://www.machinelearning.ru/wiki/imag
es/6/60/2015_417_SlavnovKA.pdf 5. http://www.hse.ru/edu/vkr/?id=125365020 6. http://www.hse.ru/edu/vkr/?id=153012854 7. http://dix.ontos.ru/dix/bookmarklet.jsp 8. http://habrahabr.ru/company/dca/blog/264811/ 9. http://modis.ispras.ru/wp-content/uploads/2010/10/comdet16.pdf 10.http://www.machinelearning.ru/wiki/images/7/76/Pres_for_IPPI_report.pdf 11.https://en.wikipedia.org/wiki/Centrality 12.http://modis.ispras.ru/wp-content/uploads/2010/10/comdet16.pdf 13.http://habrahabr.ru/company/dca/blog/264811/
48/49
Инструменты
• GraphX • Apache Giraph • graph-tool • Gephi • GraphLab Create • networkX • Алгоритм марковскойкластеризации (MCL)
http://micans.org/mcl/index.html • igraph
49/49
СПАСИБО ЗА ВНИМАНИЕ!!!