Выделение сообществ в графе взаимодействующих объектов

advertisement
Выделение сообществ в графе
взаимодействующих объектов
Докладчик: Коломейченко М.И., выпускник ВШЭ, аспирант ИСА РАН
Научный руководитель: Чеповский Андрей Михайлович, к. т. н., доцент
кафедры информационной безопасности
План презентации
1.
2.
3.
4.
5.
6.
Введение
Постановка задачи
Динамический алгоритм Росваля-Бергстрома
Модификация алгоритма
Тестирование
Заключение
Введение
Социальная сеть:
• Множество агентов (индивиды, семьи, группы,
организации)
• Множество отношений между агентами
(знакомство, дружба, сотрудничество)
Основное свойство сообществ: вершины одной
группы имеют высокую плотность связей между
собой и низкую плотность связей с вершинами
из других групп.
Постановка задачи
Дан граф 𝐺 = 𝑉, 𝐸 , где:
• 𝑉 – множество вершин, |𝑉| = 𝑛
• 𝐸 – множество ребер, |𝐸| = 𝑙
Необходимо найти разбиение вершин на 𝑚 непересекающихся групп
Введем отображение 𝜔: 𝑉 → 1, … , 𝑚 , которое для каждой вершины 𝑣 из 𝑉 ставит в
соответствии номер сообщества, к которому она принадлежит
С𝑖 = 𝑣 ∈ 𝑉: 𝜔 𝑣 = 𝑖 ∀𝑖 ∈ 1, … , 𝑚 - множество вершин одного сообщества,
причем
𝑚
С𝑖 = 𝑉 и С𝑖 ⋂𝐶𝑗 = ∅ ∀𝑖 ≠ 𝑗: 𝑖, 𝑗 ∈ 1, … , 𝑚
𝑖=1
Основные концепции
Рассмотрим идею двухуровневого кодирования вершин:
• сообщества имеют уникальные имена
• вершины внутри одного сообщества имеют уникальные имена
• вершины из разных сообществ могут иметь одинаковые имена
Аналогия: Именование городов и улиц: названия городов
уникальны, названия улиц в разных городах могут повторяться
Сведем задачу оценки качества выбранного разбиения к задаче
сжатия пути случайного блуждания по графу.
Основные концепции
Запустим процесс случайного блуждания по графу.
Заметим, что значительная часть пути случайного блуждания будет
проходить по вершинам одного сообщества и значительно реже будут
выполняться переходы между сообществами.
Результат: путь случайного блуждания - последовательность вершин
Для разных вариантов разбиения графа на сообщества будет получаться
различное кодирование вершин => количество бит, необходимое для
кодирования пути (одного и того же) случайного блуждания будет
варьироваться.
Основные концепции
Критерий качества разбиения вершин: чем меньше бит
необходимо для кодирования пути случайного блуждания, тем
лучше выбрано разбиение вершин на сообщества
• Не будем запускать случайное блуждание
• Для заданного разбиения оценим лишь количество бит,
необходимое для кодирования одного шага блуждания
Основные концепции
Введем функцию L:
• меру качества полученного разбиения вершин на сообщества
• количество бит, необходимое для кодирования одного шага
случайного блуждания при выбранном разбиении вершин на
сообщества
Динамический алгоритм Росваля-Бергстрома
1. Каждая вершина рассматривается как отдельное сообщество.
2. Случайным образом перебираем пары сообществ для слияния,
выбираем ту пару, которая даст максимальное уменьшение L.
3. Повторяем процесс до тех пор, пока не сможем уменьшить L.
Мера L качества разбиения
𝐿 = 𝑞𝐻 𝒬 +
𝑚
𝑖
𝑝
𝐻(𝒫
)
𝑖=1 𝑖
m – количество выделенных сообществ
q – вероятность перехода случайного блуждания между
сообществами
𝐻 𝒬 - энтропия перемещения между сообществами
𝑝𝑖 - вероятность случайного блуждания остаться в сообществе 𝑖
𝐻(𝒫 𝑖 ) – энтропия перемещения внутри сообщества 𝑖
Применимость алгоритма
• Вычислительная сложность: 𝑂(𝑚) , где m – количество ребер в
графе
• Может учитывать ориентацию и вес связи
• Не учитывают информационные характеристики социальных
сетей
Модификация алгоритма
Введем 𝜇(𝑣𝑖 , 𝑣𝑗 ) ∈ [0; 1] - меру близости двух вершин 𝑣𝑖 и 𝑣𝑗 по
хранящемуся в них множеству атрибутов (пара: тип - значение),
чем меньше значение, тем ближе вершины.
Тогда для невзвешенного графа можно определить вес ребра:
𝑤(𝑣𝑖 ,𝑣𝑗 ) = 1 − 𝜇(𝑣𝑖 , 𝑣𝑗 )
Таким образом алгоритм будет учитывать информационные
характеристики социальных сетей.
Тестирование
1. Случайные графы на основе модели GN
• 128 вершин: 4 сообщества по 32 вершины, средняя степень вершины
равна 16
• Недостатки: маленькие графы, фиксированные размер и количество
сообществ, вершины имеют близкую степень
Тестирование
2. Случайные графы на основе модели LFR
• Наличие связи между вершиной 𝑖 c
вершинами своего сообщества
определяются вероятностью 𝑝𝑖𝑖𝑛 , c
вершинами из других сообществ вероятностью 𝑝𝑖𝑜𝑢𝑡
• Достоинства: неограниченный размер
графов, разнообразие размеров и
количества сообществ, разнообразные
степени вершин
• Недостатки: сложное моделирование
реальной социальной сети
500 вершин
Тестирование
𝑉 = 10000
𝑝𝑖𝑜𝑢𝑡 = 0.1
|E| = 53152 при <k> = 4
|E| = 350440 при <k> = 35
Тестирование
3. На реальных графах социальных сетей
Подграф vk.ru, 172 вершины, 3026 связей
Тестирование
3. На реальных графах социальных сетей
Подграф vk.ru, 300 вершины, 1357 связей
Заключение
Динамический алгоритм Росваля-Бергстрома применим к задаче
выделения сообществ в социальных сетях за счет:
• Высокой скорости работы
• Хорошего качества получаемых разбиений
Предложенная модификация позволяет учитывать информационное
содержание сети
Проведено разнообразное тестирование на сгенерированных и
реальных графах
Спасибо за внимание!
Download