Slide 1

Slide 1 text

Алгоритмы выделения сообществ Анастасия Андреевна Корепанова м.н.с. лаборатории ТиМПИ [email protected] Максим Викторович Абрамов Доцент кафедры информатики [email protected]

Slide 2

Slide 2 text

Социальный граф 2/16 • Кластер • Группа • Сообщество

Slide 3

Slide 3 text

Пример 3/16

Slide 4

Slide 4 text

Карате клуб Закари (Zachary’s karate club) 4/16 Wayne W. Zachary An Information Flow Model for Conflict and Fission in Small Groups // Journal of Anthropological Research. 1977. Vol. 33. Pp. 452-473.

Slide 5

Slide 5 text

Другие применения 5/16 1) Криминология. Выделение криминальных сообществ, которые могут распространять и поддерживать терроризм и т.д.; 2) Здравоохранение. Выделение групп, уязвимых к эпидемии; 3) Политика. Влияние политических идей на социальные группы; 4) Маркетинг. Таргетированная реклама, сегментация клиентов и т.д.; 5) …..

Slide 6

Slide 6 text

Сообщества 6/16 Сообщества (очень неформально) — группы узлов, такие что между узлами одного сообщества гораздо больше связей, чем между группами Свойства: • Между любыми двумя узлами существует путь • Короткий путь • Плотность (высокая частота связей внутри группы) • Отделимость (чаще со своими, чем с чужими)

Slide 7

Slide 7 text

Типы сообществ 7/16 Непересекающиеся сообщества & Пересекающиеся сообщества

Slide 8

Slide 8 text

Меры​ 8/16 Как можно измерить? • Плотность сообщества • Разрез грaафа • Модулярность

Slide 9

Slide 9 text

Плотность сообщества 9/16 • , — граф, — множество вершин графа, — множество рёбер графа • = , = || • — набор вершин графа , образующих сообщество • — число вершин в сообществе , — число рёбер в сообществе • Плотность графа = ( − 1)/2 • Внутренняя плотность сообщества = ( − 1)/2 • Внешняя плотность = ( − )/2 > >

Slide 10

Slide 10 text

Разрез графа (Graph cut) 10/16 Сколько рёбер нужно убрать, чтобы отделить сообщество от графа? = 1 + 2 • Graph cut: = cut 1 , 2 = σ∈1,∈2 • Ratio cut: = cut 1 , 2 |1 | + cut 1 , 2 |2 | • Normalized cut: = cut 1 , 2 Vol(1 ) + cut 1 , 2 (2 ) , Vol 1 = ෍ ∈1,∈

Slide 11

Slide 11 text

Модулярность 11/16 Доля рёбер от общего числа рёбер, которые попадают в данные группы минус ожидаемая доля рёбер, которые попали бы в те же группы, если бы они были распределены случайно. = 1 2 ෍ − 2 ( , )

Slide 12

Slide 12 text

Модулярность 12/16 − сообщество узла , − вес ребра между и j, σ ( , ) σ = 1 2 ෍ ( , ) , = ቊ 1, если = 0 иначе = 1 2 ෍ − число рёбер в графе 2 , Доля ребер внутри сообщества от общего числа рёбер: Вероятность, что в случайном графе между узлами будет ребро: где − степень узла

Slide 13

Slide 13 text

Модулярность 13/16 Чем выше модулярность, тем лучше.

Slide 14

Slide 14 text

Обобщим 14/16 Знаем, как оценить кластеризацию. А как её найти? • Точное решение — полный перебор • Решается жадными, эвристическими, приближёнными алгоритмами • Обычно решается несколькими алгоритмами сразу, с помощью разных метрик выбирается наилучший • Фиксируем количество кластеров или решаем рекурсивно

Slide 15

Slide 15 text

Алгоритмы 15/16 1. Matrix Factorization 2. Deep Learning 3. Label Propagation, Percolation and Random Walks 4. Tensor Decomposition 5. Spectral Methods 6. Temporal Methods 7. Cyclic Patterns 8. Centrality and Cuts 9. Physics Inspired 10. Block Models 11. Hypergraphs 12. ….

Slide 16

Slide 16 text

Фиксированное количество кластеров 16/16

Slide 17

Slide 17 text

Рекурсивное деление 17/16

Slide 18

Slide 18 text

Фиксированное количество кластеров 18/16

Slide 19

Slide 19 text

Степень посредничества 19/16

Slide 20

Slide 20 text

Степень посредничества 20/16

Slide 21

Slide 21 text

Степень посредничества ребра 21/16 Чем больше кратчайших путей через ребро проходит, тем оно круче: = ෍ ≠ () , − количество кратчайших путей между и .

Slide 22

Slide 22 text

Степень посредничества ребра 22/16 Алгоритм Гирван — Ньюмена (Girvan–Newman algorithm). Повторяем, пока есть рёбра: Считаем степень посредничества всех рёбер; Удаляем ребро с наибольшей степенью.

Slide 23

Slide 23 text

Карате клуб Закари (Zachary’s karate club) 23/16

Slide 24

Slide 24 text

Карате клуб Закари (Zachary’s karate club) 24/16

Slide 25

Slide 25 text

Карате клуб Закари (Zachary’s karate club) 25/16

Slide 26

Slide 26 text

Карате клуб Закари (Zachary’s karate club) 26/16 Лучший: кластеры = 6, модулярность = 0.345.

Slide 27

Slide 27 text

Алгоритм Лёвена 27/16 V.D. Blondel, J.-L. Guillaume, R. Lambiotte, E. Lefebvre, 2008 "The Louvain method" • Эвристический метод для жадной оптимизации модулярности • Несколько фаз • Вычислительно простой Модулярность: = 1 2 ෍ − 2 ( , )

Slide 28

Slide 28 text

Алгоритм Лёвена 28/16

Slide 29

Slide 29 text

Алгоритм Лёвена 29/16 Кластеры = 4, модулярность = 0.445.

Slide 30

Slide 30 text

Карате клуб Закари (Zachary’s karate club) 30/16

Slide 31

Slide 31 text

Карате клуб Закари (Zachary’s karate club) 31/16

Slide 32

Slide 32 text

Источники 32/16 • https://theconversation.com/the-math-behind-trumps-tweets-100314 • Santo Fortunato Community detection in graphs // Physics Reports. 2010. Vol. 486. Issues 3–5. Pp 75-174. • Материалы лекций Л.Е. Жукова по курсу «Social Network Analysis»

Slide 33

Slide 33 text

Алгоритмы выделения сообществ Анастасия Андреевна Корепанова м.н.с. лаборатории ТиМПИ [email protected] Максим Викторович Абрамов Доцент кафедры информатики [email protected]