Распределенный поиск сообществ в социальных сетях большого

advertisement
МОСКОВСКИЙ ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ
(ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ)
КАФЕДРА ИСП (875)
Дипломная работа на тему:
Распределенный поиск сообществ в социальных сетях большого
размера
Студент
Бузун Н.О.
Научный руководитель
к.ф.-м.н
Турдаков Д.Ю.
Зав. кафедрой ИСП
д.ф-м.н, профессор
Иванников В.П.
МОСКВА 2014
Оглавление
1
2
3
4
5
6
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.
Свойства сообществ в социальном графе . . . . . . . . . . . . . . . . . .
2.2.
Правдоподобие структуры сообществ . . . . . . . . . . . . . . . . . . . .
Обзор существующих решений рассматриваемой задачи или ее модификаций
3.1.
Методы обнаружения сильно пересекающихся сообществ . . . . . . . .
3.2.
Методы, использующие эго-сообщества . . . . . . . . . . . . . . . . . . .
3.3.
Распределенные методы . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.
Обзор работ по LP методам . . . . . . . . . . . . . . . . . . . . . . . . .
Исследование и построение решения задачи . . . . . . . . . . . . . . . . . . . .
4.1.
Предварительная обработка . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.
Поиск эгосообществ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.
Распространение меток . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.
Пост-обработка сообществ . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.
Временная сложность . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6.
Сходимость процесса распространения меток . . . . . . . . . . . . . . .
4.7.
Распределенная реализация . . . . . . . . . . . . . . . . . . . . . . . . .
Описание практической части . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.
Сравнение с референсными сообществами . . . . . . . . . . . . . . . . .
5.2.
Недостатки LP методов . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.
Сравнение LP стратегий . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.
Свойство эго-сообществ . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5.
Синтетические графы . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6.
Измерение правдоподобия . . . . . . . . . . . . . . . . . . . . . . . . . .
5.7.
Предсказание атрибутов . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.8.
Производительность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.9.
Обсуждение метода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
3
3
4
6
6
7
8
8
12
12
12
13
14
16
16
17
19
19
19
20
22
22
22
24
24
26
28
Аннотация
Структура сообществ является одной из самых важных и характерных черт социальных
сетей. Многочисленные методы выявления неявных сообществ пользователей из социального графа были предложены в последние годы. Тем не менее, большинство из них имеют
проблемы с производительностью и масштабируемостью, которые делают их не применимыми для анализа современных социальных сетей (миллиарды пользователей и более). В этой
работе представлен EgoLP – эффективный и полностью распределенный метод для выявления социальных сообществ. Метод основан на распространении меток сообществ через
сеть с помощью индивидуальных кругов друзей пользователей. Экспериментальная оценка
Apache Spark реализации метода показала, что он превосходит наиболее эффективные на
текущий момент алгоритмы в смысле а) сходства извлеченных и эталонных сообществ в
синтетических сетях; б) точности предсказания атрибутов пользователей в Facebook основанном исключительно на вхождении в неявные сообщества; в) правдоподобия обнаруженной
структуры сообщества в соответствии с предложенной генеративной моделью. В то же время,
метод сохраняет близкую к линейной сложность от числа ребер и, следовательно, применим
к социальным графам до 109 пользователей.
1
Введение
Общение в социальных сетях, как известно, имеет естественную модульную структуру [9].
Пользователи социальных сетей, как правило, объединяются либо явно (с помощью встроенного функционала образования групп) или неявно (путем установления связей, основанных
на общей принадлежности, роли, деятельности, кругов общения, интересов, функции или
какого-либо другого типа связи).
На данный момент не существует общепринятого формального определения сообщества.
Обзорные статьи [1, 2] содержат многочисленные определения, которым можно сопоставить
различные контр-примеры.
В соответствии с общей теорией идентификации [3], люди присоединяются к группам, исходя из идентичности (то есть на основании интереса к обсуждаемым темам) или так называемого “bond attachment” (то есть, социальных отношений). Однако, поддержание множества
кругов общения и категорий в явном виде займет у пользователя массу времени. Кроме того,
для многих людей может быть неудобным явно объявить членство в некоторых группах (политика / религия / личная жизнь / игры) из-за давления со стороны сверстников. Наконец,
некоторые виды групп (географические / образовательные / профессиональные) основаны
на сходстве атрибутов и не могут быть полностью восстановлены, в связи с неполнотой информации о пользователях.
В то же время, раскрытие структуры неявных сообществ социальной сети (извлечение
списка сообществ для выбранного пользователя) обеспечит дополнительный источник данных для многих аналитических приложений и служб. Именно поэтому методы кластеризации
графов привлекли большое внимание со стороны исследователей по всему миру. Например,
широко востребованы такие задачи, как коллаборативная фильтрация при типе отношений
покупатель-товар, обнаружение социального сходства, категоризация текстового контента и
фильтрация спама. Недавние исследования [23, 22] показывает, что системы рекомендаций
(использующие коллаборативную фильтрацию) могут получить выигрыш от привлечения
нескольких видов взаимосвязанных объектов. Кроме вида отношений покупатель-товар, система должна также уметь учитывать сообщества покупателя по интересам, категории товара и дополнительные его характеристики. Причина в том, что разреженная структура
наблюдаемой матрицы рейтингов покупатель-товар ведет к значительному переобучению.
Таким образом, дополнительные виды отношений, в том числе структура сообществ, играют
роль регуляризаторов в таких задачах.
Было установлено, что сообщества пользователей онлайновых социальных сетей сильно
перекрываются: например, в LiveJournal пользователь участвует в ∼ 3 группах в среднем [7].
Кроме того, даже в сетях с небольшим средним числом сообществ на одного пользователя
распределение числа сообществ подчиняется степенному закону [19]. Таким образом, всегда
существуют пользователи, входящие в несколько десятков сообществ, что делает их сильно перекрывающимися. Большинство из предложенных методов обнаружения сильно перекрывающихся сообществ [1, 2] страдают от высокой вычислительной сложности и плохой
масштабируемости, что делает их практически неприменимыми для случаев, когда размер
входных данных находится за пределами 10-100 миллионов пользователей.
В данной работе предложен EgoLP – эффективный и полностью распределенный метод
для извлечения неявных сообществ пользователей социальных сетей, имея в распоряжении
данные о попарной связи между пользователями. Данный алгоритм рассматривает синхронно каждого пользователя и определяет его эгосообщества (egomunities) [11]. Последние являются сплоченными подгруппами внутри эго-сети – сеть ближайших соседей пользователя
(например, друзей или последователей). Все пользователи затем инициализируется уникальными метками сообществ и начинают многократно обмениваться присвоенными метками на
основе предопределенных правил взаимодействия (стратегий). Во время итераций, эгосообщества используются для группировки меток, пришедших каждому пользователю от его
соседей в социальном графе. Наконец, сообщества проходят стадию пост-обработки c целью
1
разделить плохо связанные сообщества на более мелкие.
Основные преимущества предложенного метода можно резюмировать следующим образом:
• новый подход к использованию эгосообществ для обнаружения глобальных сообществ:
эгосообщества помогают объединять и фильтровать сообщения, распространяющиеся
между узлами графа; в результате, популярные сообщества (метки) внутри эгосообщества имеют более высокие шансы быть принятыми вершиной и пересланными далее;
• метод распределенного извлечения эгосообществ из крупных графов;
• способ идентификации слабо связанных сообществ и разделения их на более плотные
под-сообщества;
• улучшение точности в сравнении с многими другими популярными методами выявления структуры сильно перекрывающихся сообществ;
• эффективная распределенная реализация на основе Apache Spark1 с помощью вычислительной модели Pregel [4];
• низкая вычислительная сложность: O(m/w), где m – число ребер графа, w – размер
вычислительного кластера;
• близкая к линейной масштабируемость, которая позволяет обрабатывать графы до 109
узлов в разумные сроки.
Другие вклады работы включают:
• детальный анализ алгоритмов распространения меток и сравнение различных стратегий распространения меток;
• новый способ для оценки структуры сообществ на основе генеративной вероятностной
модели, которая сочетает в себе большинство важных свойств структуры социальных
сообществ.
Остальная часть работы организована следующим образом. Проблема выявления социальных сообщества определяется в разделе 2. Раздел 3 содержит обзор релевантных исследований. В разделе 4 описан предлагаемый метод шаг за шагом. Результаты оценки точности,
производительности и масштабируемости обсуждаются в разделе 5. Приводится заключительный вывод в разделе 6 вместе с возможными направлениями усовершенствования метода.
1
http://spark.apache.org/
2
2
Постановка задачи
Ниже представлена краткая поэтапная формулировка задачи, включающая модель социального графа с сообществами, алгоритм поиска сообществ и исследование его свойств.
1. Выявить характерные свойства сообществ;
2. Задать вероятностную модель на основании свойств;
3. Предложить распределенный алгоритм поиска сообществ;
4. Исследовать сложность, масштабируемость и сходимость алгоритма;
5. Сравнить точность с другими алгоритмами на синтетических и реальных социальных
графах.
2.1.
Свойства сообществ в социальном графе
В данной работе рассмотрим сообщество как группу пользователей социального графа и
предположим, что структура сообществ в социальном графе имеет ряд характерных свойств.
Выделим наиболее интуитивно понятные и важные из них ниже. Наш метод не оптимизирует
какое-либо из свойств в явном виде, однако, эксперименты ясно демонстрируют, что многие
из требуемых свойств присутствуют в получаемых сообществах.
Рассмотрим граф G = (V, E), |V | = n, |E| = m. Множество сообществ (cover ) определяется как C = {Zc }K
c=1 , Zc ∈ V и |Zc | = nc . Ожидается, что cover имеет много перекрывающихся
элементов. Количество различных сообществ, связанных с j-м узлом, называется membership
узла и обозначается как mj ≥ 0. Внутренняя и внешняя степень узла j ∈ Zc обозначаются
как mj и kj − mj соответственно, где kj является степенью j-го узла.
Выделим следующие определяющие свойства структуры сообществ в социальных графах:
1. Отделимость соответствует интуиции, что хорошее сообщество должно заметно отделяться от остальной части сети. Это может рассматриваться как отношение количества
внутренних и внешних ребер сообщества [9]. В некоторых случаях, однако, когда узел
принадлежит многим различным сообществам, количество внешних ребер может превышать количество внутренних. В такой ситуации можно охарактеризовать сильную
(статистически значимую) связь узла j и сообщества Zc вероятностью
pjc = P(µcj ≥ mcj ),
где µcj является количеством внутренних ребер, оцененным в той или иной модели
случайного графа с такими же степенями узлов или их математическими ожиданиями.
Меньшее pjc значение означает более крепкую связь узла с сообществом.
Аггрегация вероятностей
f pjc , j ∈ Zc
по всем членам сообщества (наподобие B-score или C-score [15]) может лучше охарактеризовать отделимость, нежели отношение числа внутренних и внешних ребер;
2. Плотность означает, что вероятность двух узлов быть соединенными увеличивается с
количеством общих сообществ, к которым они принадлежат [7, 13]. Связь между i и j,
как правило, моделируется с помощью Aij – независимые случайные величины:
Aij ∈ Bernoulli(1 − exp(λij )),
X
λij =
(zic zjc λc + εg(zic , zjc , ki , kj , kijc )),
c
3
где zic = 1 означает, что i входит в сообщество Zc , kijc – количество общих друзей
внутри Zc , λc – параметр модели, связанный с вероятностью ребра внутри c, ε – малый
параметр, A – матрица смежности графа.
3. Cohesiveness характеризует внутреннюю структуру сообщества. Должно быть относительно трудно разделить сообщество на под-сообщества.
Формальное определение этого свойства для Zc можно сформулировать как:
P
i∈S,j6∈S Aij
,
min
S⊆Zc min(A(S), A(Zc \ S)
X
A(S) =
Aij .
i∈S,j∈S
4. Большинство узлов внутри эгосообщества разделяют одно или несколько общих глобальных сообществ. Экспериментальное обоснование этого свойства приведено в разделе 5.4.;
5. Cohesion: если ребро (i, j) находится внутри сообщества Zc то большинство общих соседей i и j также принадлежат Zc [11];
6. Узлы низкой степени, как правило, являются частью немногих сообществ, в то время
как узлы высоких степеней, являются членами большего числа групп [9];
7. Количество ребер в сообществе увеличивается супер-линейно с ростом размера сообщества [9];
8. Membership пользователя имеет степенное распределение [9];
9. Размер сообщества имеет степенное распределение [20].
2.2.
Правдоподобие структуры сообществ
Одним из лучших способов формализации задачи обнаружения сообществ является определение вероятностной модели графа. Отмеченные выше свойства структуры сообществ
можно объяснить с помощью модели, описанной в данном разделе.
Используя вышеуказанную модель для генерации ребер и применения аппроксимацию
Пуассона, получаем следующее распределение для Aij :
!
X
X
Aij =
Aijc ∈ Po
(λ1c + λ2c kijc ) ,
c
c
Aijc ∈ Po(λ1c + λ2c kijc ), i, j ∈ c,
α2 2
α1 2
λ1c ∈ N
, σ , λ2c ∈ N
,σ ,
nγc
nγc
где P(Aijc = 1) вероятность ребра (i, j) внутри сообщества c, kijc – общее количество друзей i и j внутри сообщества c, нормированное на полусумму степеней i и j, Po – распределение Пуассона, N – нормальное распределение, A – матрица смежности (двоичная или
целочисленная), nc – количество узлов внутри c. Эта модель предполагает существование
эпсилон-сообщества, включающего все узлы графа для учета ребер между сообществами.
Поскольку параметр распределения λ1 + λ2 kijc (связанный с вероятностью ребра в сообществе) зависит от количества общих друзей, модель учитывает также свойство Cohesion.
Рост числа внутренних ребер в зависимости от размера выражается в распределениях λ1 ,
4
λ2 . Регуляризованное правдоподобие для всей модели может быть определено следующим
образом:
LG (C, α1 , α2 , σ, γ, β1 , β2 ) =
Y
Y
Y
= log p(Z)
p(Aij )
p(λ1c )p(λ2c )p(nc )
p(kv |mv )p(mv ),
i<j
v∈V
c∈C
где Z – пользователь-сообщество индекс матрица (априорные знания), mv – membership v
распределенный по степенному закону с β1 параметром, nc – размер сообщества ∈ распределенный по степенному закону с β2 параметром, что соответствует требуемым свойствам,
p(kv |mv ) – некоторая неубывающая функция. Априорную вероятность матрицы Z можно вычислить, исходя из интерпретации в виде двудольного графа, одну часть которого составляют вершины, а другую – сообщества. Вероятность ребра в таком графе равна произведению
membership вершины и размера сообщества, нормированных на общее число ребер
m n X
mv nc v c
+ (1 − Zcv ) log 1 −
.
log p(Z) =
Zcv log
M
M
c,v
Первое слагаемое внутри суммы близко к nc log(nc /n), второе – к (n − nc ) log(1 − nc /n), при
условии, что mv . 10 изменяется незначительно в сравнении с nc . Также стоит учесть инвариантность Z относительно перенумерации сообществ. В результате приходим к следующему
аппроксимирующему выражению
Y nc nc nc n−nc
p(Z) = |C|!
1−
.
n
n
c∈C
В итоге, целью системы поиска сообществ является нахождение такой конфигурации (C,
α1 , α2 , σ, γ, β1 , β2 ), которая является точкой максимума L, а цель системы, оценивающей
качество найденных сообществ, состоит в нахождении конфигурации (α1 , α2 , σ, γ, β1 , β2 ),
максимизирующей L.
Привлечение свойства эгосообществ (раздел 5.4.) позволяет определить дополнение к первоначальной функции правдоподобия:
Y Y Y
p(j ∈ Ze ),
Lego (C, λ3 ) = log
v∈V e∈E(v) j∈e
где p(j ∈ Ze ) ∈ Be(λ3 ) – есть вероятность того, что j-й узел из egomunity e расположен
внутри Ze – сообщество наиболее покрывающее e, E(v) – набор egomunities v-го узла.
В случае, если узлы графа имеют в дополнение категориальные атрибуты, модель может
быть расширена за счет добавки Latr , в которой вероятность наличия атрибута у пользователя рассчитывается как усредненная вероятность данного атрибута в сообществах, содержащих пользователя.
Y Y P Zvc Wca c
P
,
Latr (C, W ) = log
Z
vc
c
v∈V
a∈A(v)
где A(v) – атрибуты пользователя v, W – вес атрибута a внутри сообщества c.
В итоге, основной задачей данного исследования является предложение распределенного
алгоритма поиска сообществ, удовлетворяющих вышеперечисленным свойствам, в социальных графах с сильно пересекающейся кластерной структурой. В частности, найденные сообщества должны иметь высокие значения правдоподобия, сформулированного в этом разделе,
в сравнении с наиболее современными методами. Помимо того, сложность алгоритма должна
быть близка к линейной.
5
3
Обзор существующих решений рассматриваемой задачи или ее модификаций
Ниже приведены различные методы обнаружения сообществ, оказавшихся наиболее эффективными для решения поставленной задачи. Также сделан акцент на тех алгоритмах,
которые соотносятся с нашим методом в различных аспектах.
3.1.
Методы обнаружения сильно пересекающихся сообществ
Рассматривая различные методы кластеризации социальных графов, можно выделить
три основных класса алгоритмов, которые обеспечивают хорошую точность в выявлении
структуры сильно перекрывающихся сообществ. Эти классы включают алгоритмы, основанные на базе графических моделей, методы локальной оптимизации и методы распространения меток. Ниже кратко описан подход с графическими моделями и локальной оптимизацией, а также приведем несколько доводов о проблемах их масштабируемой и эффективный
по времени реализации. Наконец, будет рассмотрен класса распространения меток, который
имеет методы, допускающие вполне естественную распределенную реализацию.
Графические модели. Каждый алгоритм в этом классе имеет дело с параметрическим
распределением на множестве графов с фиксированным количеством узлов. Параметр включает матрицу инцидентности узел-сообщество. В целом результат генерации представляет
собой последовательность ребер (независимых случайных величин с распределение Пуассона, Бернулли или Гамма). Поэтому такие модели соответствуют функциям правдоподобия,
похожим на предложенную в разделе 2. Примерами методов из данного класса являются
MOSES [13], BCD [12], AGM [7], CESNA [8] и д.р. Эти алгоритмы могут быть легко адаптированы для обработки различных типов сетей, в том числе сетей с атрибутами у вершин [8].
Проблематичным этапом здесь является способ оптимизации: функция правдоподобия обычно имеет много неприемлемых точек максимума; максимизация поиск может быть нестабильной в зависимости от начальных значений и интервалов параметров; обычно требуются трудоемкие оптимизационные техники (MCMC, multistart). Распределенная оптимизация здесь
может стать проблематичной из-за зависимых переменных и массивных передач данных (с
общими параметрами правдоподобия) между узлами кластера.
Локальная оптимизация. Алгоритм из этого класса оптимизирует некоторую локальную функцию качества для каждого сообщества независимо. Функцией качества может быть
отношение внешних и внутренних ребер или треугольников (GCE [14])). Самый популярный
представитель этого семейства – метод OSLOM [16], который формирует сообщество, сравнивая его с подграфом вершин сообщества с теми же степенями в случайном графе. Независимая обработка сообществ дает больше свободы для оптимизационного процесса, но в то же
время она требует дополнительных (пре-) пост-обработок: инициализации сообществ (случайные окрестности вершин [16], клики [14], плотные ядра [6]), объединения части сильно
пересекающихся сообществ. Обработка больших графов данными методами чувствительна
к пределу памяти, выделенной для одного сообщества и его окрестности.
Распространение меток. Парадигма распространение меток (LP) может рассматриваться как популярное направление современных методов обнаружения сообществ. Простые
и интуитивно понятные методы из данного класса обеспечивают идеальное сочетание свойств
приемлемой точности обнаружения сообществ, низкой вычислительной сложности, простоты
реализации с точки зрения современных вычислительных парадигм распределенной обработки графов (Pregel [4], GraphX [29]).
Общие и отличительные характеристики методов в этом семействе состоят в процессе
обмена метками сообществ между узлами графа, которые накапливают пришедшие метки
и отправляют сообщения соседним узлам, чтобы сообщить об обновленной коллекции меток. Алгоритм 1 описывает абстрактного представителя семейства. Большинство популярных методов на LP основе (в том числе LPA [30], SLPA [5], BMLPA [6], and COPRA [31])
6
соответствуют этому шаблону и отличаются только инициализацией меток и стратегиями
обмена.
Однако такие способы страдают от общих недостатков, которые подробно описаны в разделе 5.2.. Исследовав методы с парадигмой LP, в этом исследовании предложены простые, но
эффективные эвристики для решения обнаруженных характерных недостатков LP. В то же
время, удалось избежать дорогостоящих вычислений (к примеру, таких как rough cores в методе BMLPA), чтобы в результате сложность оставалась близкой к линейной (см. раздел 4.5.)
.
Data: Graph (V, E)
Parameters: T , r
Result: Communities set {Ci }, Ci ⊂ V
for v ∈ V do
/*
* initialize labels collection
* for example v.labels = array[int](v.index)
*/
v.labels: array[int] = initStrategy();
end
for i = 1:T do
for v ∈ V do
/* For each neighbour (f ) v draws elements from v.labels according to some sender
Strategy and sends them to f */
v.edges.foreach{f ⇒ senderStrategy(v, f )};
end
for v ∈ V do
/* v updates v.labels array with the selected labels according to some receiver
Strategy */
v.labels += receiverStrategy(incomeMessages);
end
end
for v ∈ V do
/* Remove elements from v.labels with low frequency using threshold r */
v.labels.group.filter{(l, f req) ⇒ f req > r};
end
Convert labels arrays to communities set;
Algorithm 1: Абстрактный представитель методов распространения меток.
3.2.
Методы, использующие эго-сообщества
Soundarajan др. [25] в своей работе предлагают алгоритм Node Perception осуществляющий слияние эгосообществ в более крупные глобальные сообщества. Они сначала находят
сообщества в эго-сети каждого пользователя, а затем строят мета-сеть, соединяя найденные
сообщества. Далее, в мета-сети производится кластеризация для получения результирующих
сообществ. Алгоритм DEMON, рассмотренный в Coscia et al. [17] можно рассматривать как
конкретного экземпляра этого шаблона. Существует, однако, важное отличие: эгосообщества
извлекаются не из эго-сети каждого пользователя, а из так называемой EgoMinusEgo сети
(эго-сеть без центрального узла и всех смежных ему ребер). Эта модификация позволяет
избежать “шума ”, вызванного наличием одного узла, связанного со всей остальной частью
7
эго-сети. EgoClustering метод, предложенный в Rees et al. [26] также очень похож на вышеперечисленные, за исключением лишь определения эгосообществ как непересекающиеся
компонент эго-сети после устранения центрального со всеми его ребрами.
Позже работа Rees et al. [27, 28] предоставила еще один способ для агрегирования меток
локальных социальных групп для получения сообществ. Алгоритм начинается с определения групп друзей и назначения каждой такой группе уникального идентификатора (ID).
Члены каждой группы ведут переговоры на счет общего глобального сообщества путем распространения их идентификаторов друг к другу. Вместо того, чтобы обсуждать различные
возможные комбинации идентификаторов, в данном методе самый низкий ID выбирается в
качестве общего ID. Процесс повторяется до конвергенции, то есть до тех пор, пока общие
ID групп не перестанут меняться. Важно отметить, что некоторые узлы помечены как не
распространяющие метки в самом начале на основе сравнения групп друзей.
В отличие от предыдущих подходов, наш метод использует эгосообщества в качестве средства для агрегации и фильтрации сообщений, распространяющихся между узлами. Вместо
того, чтобы взаимодействовать с каждым из соседей, узел, главным образом, взаимодействует со своими эгосообществами, через которые в некотором смысле и передаются сообщения.
В результате, самые популярные идентификаторы сообществ (метки) внутри одного эгосообщества получают более высокие шансы быть принятыми и переданными далее.
3.3.
Распределенные методы
Масштабируемость стала важным и крайне желательным свойством методов обнаружения сообщество в связи с ростом клиентской базы поставщиков социальных услуг. Известные
масштабируемые реализации включают в себя: LPA помощью Hadoop MapReduce 2 , SLPA
на основе MPI [34], the Louvian method using Apache Giraph 3 , метод propinquity dynamics
с помощью Hadoop MapReduce [35], спектральный метод кластеризации с использованием
Hadoop MapReduce [36], метод Shingling помощью Hadoop MapReduce [37], масштабируемое
обнаружение сообществ [38] и многие другие.
Насколько нам известно, эта работа является первой, где рассматривается Apache Spark
реализация метода обнаружения сообществ. Во-первых, здесь используется специальная реализация Pregel на Apache Spark для экономного и эффективного осуществления процесса обмена сообщениями между узлами графа. Во-вторых, происходит выигрыш от Resilient
Distributed Datasets (RDDs) – распределенные структуры данных, идеально подходящие для
реализации итерационных алгоритмов. Кроме того, в этой работе предложено несколько оптимизаций, которые помогают уменьшить объем оперативной памяти и нагрузку на сеть.
3.4.
Обзор работ по LP методам
Алгоритмы в этом разделе используют идею распространения меток из всех вершин сети,
одновременно и независимо друг от друга. Такой подход допускает простую параллелизацию
алгоритмов. Первый раз модель распространения меток (LP) была введена Raghavan др. в
их Алгоритме Распространение Меток LPA [30]. Большинство алгоритмов в этом разделе,
являются прямыми потомками LPA.
2010 – Finding overlapping communities in networks by label propagation (COPRA)
Исторически это была первая LPA модификация, имеющая дело с перекрывающимися
сообществами. Здесь каждая вершина содержит набор меток с их коэффициентами принадлежности. На каждом шаге значения данных коэффициентов отражают, какая часть соседей
узла имеет какие метки. К настоящему времени COPRA рассматривается чуть ли не как
2
3
http://www.akshaybhat.com/LPMR/
http://sotera.github.io/distributed-louvain-modularity/
8
базовый алгоритм для других потомков LPA, которые стремятся поддерживать пересекающиеся кластеры. Результаты точности поиска сообществ методом COPRA были превзойдены
SLPA [5] в случае более или менее высокой (реалистичной, другими словами) степени пересечения. BMLPA [6] также улучшает результаты, полученные от COPRA. В своей работе
COPRA требуется параметр, который ограничивает максимальное количество сообществ, к
которым узел может принадлежать. Это оказывается неэффективным для сетей с разнородными степенями принадлежности к сообществам.
2011 – Community detection using a Neighbourhood Strength Driven Label Propagation
Algorithm
Это еще одна модификация первоначального LPA. Автору не известны исследования, в
которых данный метод сравнивался с SLPA или BMLPA явно, но, насколько можно судить
по результатам, представленным в данной статье свидетельствуют о менее эффективном
подходе. Тем не менее, некоторые идеи могут оказаться полезными в сочетании с другими,
например, для ускорения процесса обнаружения сообществ.
Данный алгоритм в своем первоначальном виде предназначен для обнаружения только
непересекающихся кластеров. Одна из двух основных идей, предлагаемых в статье, основана
на разделении всех узлов на внутренние и пограничные (внутренний узел отличается тем,
что все его соседи имеют ту же метку) . Также есть разделение на активные и пассивные
узлы ( узел, который не изменит свою метку при попытке обновления называется является
пассивным) . Очевидно, что все внутренние узлы являются пассивными по определению.
Идея, которая позволяет значительно ускорить алгоритм заключается в том, что нам не
обновить все узлы во время распространения меток, а только те, которые являются активными. Эмпирические результаты измерения производительности, предоставленные в статье,
показывают высокую эффективность такого подхода.
Еще одна идея от авторов статьи состоит в том, что когда узел выбирает какую метку
принять он учитывает не только то, сколько его соседей прислали данную метку, но и то,
насколько хорошо каждый из них связан с другими своими соседями. Специальный коэффициент вводится в правила обновления меток для этой цели, хотя и выбор его остается
неясным.
2012 – Balanced Multi-Label Propagation for overlapping community detection in
social networks (BMLPA)
Одной из главных идей, реализованных авторами статьи, является инициализация процесса распространения меток плотными перекрывающимися ядрами. Это очень похоже по
идее на использования максимальных клик в GCE [14], но занимает гораздо меньше времени, памяти и оказывается более эффективным (по сути инициализация занимает меньше
времени, чем сам процесс распространения меток).
Другая идея этой статьи заключается избавлении от параметра, используемого в COPRA
и использовании порогового параметра. Авторы этой работы предлагают суммировать распределения меток в узлах, нормализуя полученную сумму в соответствии с самой большой
компонентой. Затем, если какая-то из компонент ниже порога, то соответствующая метка
будет удалена из памяти узла.
2011 – Unfolding communities in large complex networks: Combining defensive and
offensive label propagation for core extraction
Одной из полезных идей этой статьи является штраф LPA меток после каждого шага
распространения. Таким образом, если метка пришла в новый узел, она будет иметь меньше
шансов двигаться дальше (при этом ограничивается избыточный рост сообществ). Это может
9
быть изменено так, чтобы штраф меток начинался только после того, их сообщества достигли некоторых специальных размеров или при достижении какого-либо другого граничного
значения.
Авторы предлагают нам два подхода – оборонительный и наступательный. Оборонительный подход отдает предпочтения (в смысле активности распространения) более центральным
вершинам сообщества, в то время как наступательный вариант делает более активными вершины, прилежащие к границам. В результате, оборонительный подход является способным
обнаруживать сообщества, даже если последние очень слабо определены в топологии сети.
Наступательный, в свою очередь, делает акцент на границе каждого сообщества и расширяет те, которые сильно выражены на фоне остальных. Лучшие результаты достигается, когда
два описанных подхода к распространению меток используются по очереди.
2011 – Robust network community detection using balanced propagation
Цель этой LPA модификации, предложенной в [32] является совершенствование надежности, стабильность и производительность (как побочный эффект) LPA. Это касается асинхронных реализаций LPA (когда результат зависит от порядка обновления узлов). Эффект
достигается за счет рассмотрения узлов сети в некотором специальном порядке и их обработки в соответствии с ним.
2012 – Overlapping community detection using a community optimized graph swarm
Алгоритм, предложенный Рисом и Галлахером, формально не относится к LPA, но так же
опирается на децентрализованное распространение идентификаторов от отдельных узлов.
Каждый узел считается автономным агентом, принимая собственные решения, например,
касающиеся отправки и получения сообщений. Одна из основных идей Риса и Галлахера
том, что если три узла связаны в треугольник, то они должны разделять общий интерес (и,
следовательно, образуют микро-сообщество). Если они имеют только два ребра, соединяющие их из трех возможных, то никакого общего интереса нет, и они принадлежат к разным
общинам (также, возможно, будет наблюдаться перекрытие двух сообществ в этом случае).
Это перекликается с определением сообщества в социальных медиа ресурсах, предложенным
Пападопулос и соавт. [33].
Алгоритм может быть разделен на несколько этапов. Сначала идет инициализации, где
каждый узел присваивает уникальный идентификатор. Далее, группы друзей определяются
для каждого узла (они также получают свои уникальные идентификаторы, которые состоят
из базового ID агента и уникального дополнительного десятичного значения). После этого,
находятся не распространяющие узлы (на основе совмещения треугольников, групп дружбы и др.); они будут своего рода препятствием в процессе распространения ID. Обнаружив
не распространяющие узлы, осуществляется переход к распространению идентификаторов
групп друзей. Когда этот процесс стабилизируется, сообщества можно определить, просто
попросив каждого агента предоставить список принятых ID.
2013 – LabelRank: A stabilized Label Propagation Algorithm for community detection
in networks
В данной работе вводится набор операторов для контроля и стабилизации динамики распространения сообщений между узлами. Испытания на реальных сетях, предоставляемые
авторами, показывают, что LabelRank значительно улучшает качество обнаруженных общин
по сравнению с LPA и Infomap.
LabelRank основан на распространении распределений по сообществам. Во время выполнения, каждый узел сохраняет полученные от своих усредненные распределения. Более
детально – происходит применение 4 операторов: распространения , инфляции , отсечки
и условного обновления.
10
Распространение. В каждом узле все распределение меток сохраняется и распространился к соседям. Каждый узел имеет вектор длины N с информацией о вероятности его
принадлежности сообществу в графе. На каждой итерации новый вероятностный вектор вычисляется для каждого узла, который состоит из векторов вероятностей своих соседей на
предыдущем шаге времени.
Инфляция. Этот оператор применяется для увеличения вероятности меток, которые
получили более высокую вероятность при распространении за счет меток, которые в распространении получили низкие вероятности. Данный оператор требует фиксированный параметр силы ребалансировки распределений.
Отсечка служит для снижения остроты проблем с памятью. Удаляет метки, которые
имеют вероятности ниже порогового R ∈ [0; 1]. Алгоритм не чувствителен к порогу отсечки,
так что разумно установить его, скажем, равным 0.1 и оставить в покое настройку оптимальной производительности.
Условное обновление. Описанный выше процесс обнаруживает правильное распределение
у многих вершин задолго до окончательной сходимости, и после этого, качество обнаруженных сообществ уменьшается. Использование данного оператора означает, что узел обновляет
свое распределение, только если он значительно отличается от своих соседей в плане набора меток, что позволяет сохранить обнаруженные сообщества и зафиксировать завершение
работы метода на основе дефицита изменений в сети.
Таким образом, было выделено три класса алгоритмов, наиболее эффективных для решения поставленной задачи, с которыми планируется проводить сравнение EgoLP. Также
рассмотрены различные модификации стратегий отправки и приема меток в LP алгоритмах, которые выборочно сравниваются в разделе практической части.
11
4
Исследование и построение решения задачи
EgoLP состоит из четырех основных этапов: предварительная обработка, поиск эгосообществ, распространение меток, пост-обработка. Описание алгоритма предоставлено с некоторыми замечаниями о реализации Apache Spark для каждой из этих стадий.
Проектные решения в значительной степени мотивированы результатами экспериментальной оценки простейшего алгоритма распространения меток (см. раздел 5.2. для деталей).
Автор попытался устранить обнаруженные недостатки, повысить точность результатов, и в
то же время не испортить масштабируемости или вычислительной сложности.
4.1.
Предварительная обработка
Определенная часть узлов с максимальными степенями (hubs) удаляются из графа в самом начале. Такие узлы прикрепляются к сообществам в конце фазы распространения меток.
Эта эвристика упрощает обработку больших графов (балансировка процессора, сложность
поиска эгосообществ) и уменьшает влиятельность вершин с большой степенью (5.2.).
Опционально веса присваиваются ребрам пропорционально количеству случаев, когда
смежные узлы были включены в одно сообщество (в предыдущих запусках EgoLP). Этот
подход используется для повышения надежности любого рандомизированного алгоритма обнаружения сообществ [18] (шумовые сообщества, полученные в одном запуске алгоритма не
влияют на веса ребер значительно).
4.2.
Поиск эгосообществ
Опишем распределенную процедуру, которая собирает эго-сети и выполняет LP (k) алгоритм (раздел 5.2.) со следующими параметрами для поиска эгосообществ: T e – количество
итераций, r – порог отсечения меток, minc – минимальный размер эгосообщества, minu –
мин относительный размер объединения эгосообществ.
В алгоритме 2 узлы графа обрабатываются в группах [V0 , . . . , VI−1 ]. Узлы из группы Vi
совершают три основных действия. Во-первых, узел v ∈ Vi посылает список друзей к соседям со степенью в d раза выше, чем степень v и к соседям из Vi+1 . Далее он получает
пересечения списков друзей (ответы) от высокой степени соседей и полные списки друзей из
других соседей. Наконец, когда вся эго-сеть собрана в узле v, он выполняет локальный алгоритм обнаружения сообществ, удаляет эгосообщества размера < minc и заменяет найденные
эгосообщества {Ci } на одно со всеми соседями, если
T
| i Ci |
< minu.
v.degree
Предполагается, что эгосообщества с размером < minc не гарантируют включение в сообщества, и малого размера объединение эгосообществ может означать, что кластерная структура
в эго-сети не была выявлена должным образом.
Сбор ребер эго-сетей разделяется на I шагов для предотвращения переполнения памяти,
снижения сложности сортировки (зависит сверхлинейно от количества Spark RDD разделов)
и нагрузки на сеть за счет использования общих смежных узлов из группы на предыдущем
шаге. Простая теоретическая оценка показывает, что наименьшая нагрузка на сеть lI достигается, когда I ∈ [2, 4] : lI /l1 ∼ 0.75.
Важно отметить, что полученные эгосообщества для пользователей социальных сетей
являются ценными per se. В частности, они могут быть использованы в любом приложении, которое опирается на кругах дружбы в контактах целевого пользователя (например, в
качестве замены для ручной группировки контактов в Facebook и Google+).
12
Data: Graph (V, E)
Parameters: I, T e, r, minc, minu, k, d
Result: Egomunities set {Eik }, Eik ⊂ Vi .friendList
[V0 , . . . , VI−1 ] = split V by hash function (v % I);
V−2 = V−1 = VI = VI+1 = ∅;
for i = -2:I do
for v ∈ Vi+2 do
for u adj v if u.degree > d * v.degree do
send v.adjnodes to u;
end
end
for v ∈ Vi do
create egonet(seed = v);
findEgomunities(T e, r, minc, minu, k);
for u adj v if u ∈ Vi+1 do
send common (u, v).adjnodes to u;
end
end
for v ∈ V \ Vi do
for u adj v if u ∈ Vi+1 do
send v.adjnodes to u;
end
for income message from u do
send common (u, v).adjnodes to u;
end
end
end
findEgomunities(T e, r, minc, minu, k):
for i = 1:Te do
make LP(k) iteration;
each node send/add k labels;
end
for v ∈ egonet do
remove elements from v.labels with frequency < r;
end
remove
egomunities with size ≤ minc;
T
| i Ci |
if v.degree < minu then
egomunities = array(all egonet nodes);
end
Algorithm 2: Поиск эгосообществ.
4.3.
Распространение меток
В этом разделе приводится описание алгоритма распространения меток с конкретными
стратегиями взаимодействия узлов (см. алгоритм 1) для раскрытия глобальной структуры
сообществ входного графа:
• Стратегия отправителя: для каждого смежного ребра отправитель случайно извлекает
ls элементов из своей labels коллекции и удаляет дубликаты. Так, узел с большим
количеством сообществ посылает больше меток в среднем. Каждой метке может быть
13
опционально назначен вес, равный весу соответствующего ребра, и умноженный на
штраф за размер сообщества (*).
• Стратегия принимающего: входящие метки распределяются между эгосообществами в
соответствии с индексами отправителей. Наиболее частые lr меток в каждом эгосообществе затем добавляется к labels map (label → weight) в узле-приемнике. Размер map
ограничен mx. Если граф взвешенный, то частота метки вычисляется как сумма весов
ребер, связанных с меткой. В противном случае, все метки рассматриваются эквивалентно. Суммарное количество меток нормируется на некоторую величину в интервале
(0.5, 1).
В случае ориентированных графов стратегия отправителя использует только исходящие
ребра и стратегия принимающего использует только входящие ребра.
Предлагаемая эго-стратегия принимающего обеспечивает следующие преимущества по
сравнению с другими методами на LP основе (см. раздел 5.2. для количественного сравнения):
• оценивается более точно число меток, которые необходимо принять и добавить в labels
(частично решает проблемы недостатка сообществ и наличия шумовых меток);
• наиболее частые метки рассчитываются независимо в разных эгосообществах, что позволяет выявить сообщества с различной силой связи с узлом (частично решает проблему доминирующего сообщества).
Для выполнения распределенного процесса LP используется алгоритм 3. В дополнение к
схеме алгоритма 1 приводятся некоторые детали взаимодействия Spark workers 4 .
Поскольку распределение размера сообществ степенное, метки, соответствующие крупным сообществам, должны иметь более низкий приоритет. Для этой цели веса меток умножается на коэффициент штрафа
αk max(k, nc )−α−1 ,
(*)
где nc является размером сообщества, параметр k имеет оптимальное значение в диапазоне
[30, 40], параметр α – оптимален в диапазоне [−0, 1, 0, 1].
4.4.
Пост-обработка сообществ
Большинство LP методов не обеспечивают связность и сплоченность сообществ (раздел
5.2.). Поэтому на финальной стадии применяется процедура пост-обработки, чтобы выявить
возможные под-сообщества в каждом сообществе, полученном на этапе распространения меток. Здесь используются известные свойства матрицы Лапласиан для проверки, является ли
сообщество кандидатом для дополнительного поиска под-сообществ внутри него:
~
L = A − diag(d),
где A – матрица смежности, d~ – степени узлов.
Первое наименьшее собственное значение L всегда равно нулю. Но второе наименьшее
собственное значение позволяет оценить, насколько хорошо это сообщество соединено внутри: ноль означает наличие непересекающиеся компонент, в то время как низкие значения
(< λx ) указывают на неудовлетворительную связность [39]. EgoLP пытается улучшить результаты, применяя LP (k) к такого рода “подозрительным” сообществам. Вся процедура
представлена в алгоритме 4.
4
Worker является процессом Java, ответственным за вычисления одном на узле Spark кластера.
14
Data: Graph (V, E), egomunities
Parameters: T , ls, lx, lr, mx, T2 , r
Result: Communities set {Ci }, Ci ⊂ V
for i = 1:T do
for v ∈ V do
for u adj v do
assign weights to labels (eq. *);
draw and send ls labels to u;
end
end
for w ∈ W orkers do
for vw ∈ w do
push labels into map (label → weight);
trim map to size lx;
end
end
for v ∈ V do
for w ∈ W orkers do
unite combined maps (label → weight);
end
v.labels += receiverStrategy(unitedMap, lr);
trim v.labels map to size mx;
end
end
add hubs to V ;
for i = 1:T2 do
send/receive iteration without egomunities (single egomunity is neighbours set);
end
for v ∈ V do
v.labels.group.filter{(l, f req) ⇒ f req > r};
end
Algorithm 3: Распространение меток.
Data: Graph (V, E), communities set {Ci }, Ci ⊂ V
Parameters: cx, λx , k, T , r, minc
Result: Communities set {Si }, ∀i ∃j : Si ⊂ Cj
Remove communities with size > cx;
for Ci ∈ C do
if 2-nd min|eigenvalue (L)| < λx then
find subcommunities by LP(k) (T , r, minc);
find connected components in subcommunities;
remove Ci ;
end
end
Algorithm 4: Локальная пост-обработка сообществ.
Наименьшие собственные значения могут быть получены приближенно за счет численного решения линейного уравнения за время O(mc ), где mc является количеством внутренних
ребер в c-м сообществе.
После, само разделенное сообщество можно удалить или сохранить, что также касается некоторых под-сообществ, пересекающихся с другими глобальными сообществами. Для
15
этого дополнительного этапа можно использовать правдоподобие сообществ (раздел 2.2.) в
качестве критерия удаления.
4.5.
Временная сложность
Измерения времени на кластере с 18 Spark workers показывают, что отношение вычисления / коммуникация составляет около 10 % для поиска эгосообществ и 15 % для распространения меток.
Осуществим детальную оценку сложности алгоритма для каждой стадии, состоящей из
операций во внешней памяти и сетевых. Основные характерные переменные: n – количество
узлов графа, m – количество ребер, ki – степень узла j, Fj – список узлов, связанных с узлом
j, – Spark RDD partitions (суммарное количество параллельных нитей), w – количество
Spark workers.
Сложность предварительной обработки состоит из загрузки графа, удаления хабов и дополнительного обновления весов ребер. Таким образом, эта процедура зависит, в основном,
от времени O(m/w), необходимого для загрузки входного графа с диска.
Сложность этапа поиска эгосообществ включает в себя время пересылки списков друзей,
необходимое для формирования эго-сетей, и время поиска эгосообществ во всех эго-сетях.
Пусть i-й узел графа получает Fj список от j-го соседа, только если dki ≥ kj и делает двунаправленную Fi отправку, если dki < kj . Таким образом, средняя сложность этой операции
ki
n
1 XX
Ek
kj [dki ≥ kj ] + ki [dki < kj ] =
w
i=1 j=1
=
ki
X
n
Eki
Ekj (kj [dki ≥ kj ]|ki ) + Ekj ([dki < kj ]|ki ) =
w
j=1
m
n
2−β
O(Ek k 3−β ) = O(kmax
),
w
w
где 1 < β < 2 параметр степенного распределения степеней вершин.
На стадии распространения меток каждый (загружается с диска) узел v собирает l меток
из всех Spark RDD разделов с как минимум с одним v-м соседом. Эта операция приводит к
l = min(p ∗ lx, kv ∗ ls) и сложность LP равна O (T m/w) . Сложность последнего шага постобработки зависит, в основном, от времени, необходимого для группировки ребер по индексам
сообщества:
m
m
O
∗ cx ∗ K +
,
nw
w
где K – число сообществ, выбранных для расщепления.
Подводя итоги трех компонент получаем:
m
m
2−β
O
k
+T +
∗ cx ∗ K .
w max
nw
=
2−β
Последний компонент является относительно небольшим, T ∈ [10, 20], kmax
∈ [20, 50] из-за
удаления хабов. Таким образом, общая сложность EgoLP может быть приближена с O(m/w).
4.6.
Сходимость процесса распространения меток
Рассмотрим упрощенный детерминированный способ распространения меток, в котором
принимающая вершина складывает дискретные распределения меток по всем соседям вместе
со своим, далее выполняется нормировка и вершине присваивается новое распределение по
меткам. Обозначим за kp1 , . . . , pn k общее распределение по меткам, где pvc = P(Zvc = 1).
16
Введем также стохастическую матрицу перехода P , Pij = (A+λI)ij /(kj +λ). За одну итерацию
обмена метками происходит следующее преобразование
X
X
kp1 , . . . , pn k := kp1 , . . . , pn kP = Pj1 pj , . . . ,
Pjn pj .
j
j
Таким образом k итераций алгоритма распространения меток соответствуют умножению
исходной конфигурации kp1 , . . . , pn k на матрицу P k . P является неразложимой (предположительно, социальный граф состоит из одной компоненты) и апериодичной (P11 > 0). Тогда по теореме об эргодичности для неразложимой и апериодичной матрицы переходных
вероятностей (см. Кельберт–Сухов [40]) P k сходится к некоторой матрице П со скоростью
геометрической прогрессии:
kPik − Пi k = O(|λ2 |k ),
где λ2 – ближайшее по модулю к λ1 = 1 собственное значение матрицы P .
Качественные рассуждения для стохастического варианта распространения меток с использованием эгосообществ свидетельствуют об аналогичной скорости сходимости. Во-первых
группировка меток по эгосообществам, приводит к независимому суммированию более схожих распределений, в результате чего такая сумма должна быстрее стабилизироваться,
нежели сумма по всем соседям вершины. Во-вторых семплирование меток из распределений kp1 , . . . , pn k и добавление только наиболее частотных меток исключает добавление новых
маловероятных элементов в коллекцию меток вершины. Приведенная качественная аргументация не претендует на строгое обоснование, однако эксперименты по измерению скорости
сходимости алгоритмов распространения меток, проведенные к примеру в [5], подтверждают теоретическую оценку. В среднем EgoLP достаточно 20-25 итераций для сходимости к
равновесной конфигурации сообществ (см. Рис. 9).
4.7.
Распределенная реализация
Основная часть реализации EgoLP основана на Pregel вычислительной парадигме [4].
Многие алгоритмы оптимизации, использующие Pregel Message Passing Interface (аналогично
алгоритму 1 в разделе 3) страдают от синхронного обновления меток в узлах: узел после
сбора информации от соседних узлов может сделать неправильное решение, не принимая во
внимание обновление коллекции меток соседей.
Одним из способов решения этой проблемы является использование коэффициента релаксации λ для сообщений. Каждое сообщение устанавливается равным произведению λ и
значения из предыдущей итерации плюс 1 - λ умноженное на обновленное значение. В EgoLP
добавляются новые метки к массиву меток в каждом из узлов, образованном на предыдущей итерации. Таким образом, узлы не меняют свои состояния значительно и непредсказуемо
после одной итерации.
Другое замечание, связанное с распределенными алгоритмами Pregel, является локальная агрегация сообщений. Если стратегия приемника является функцией с произвольным
порядком аргументов, то сообщения могут быть частично агрегированы на каждом из Spark
Worker и переданы в более компактном виде конечному получателю. Это снижает нагрузку
на сеть и делает вычисления более сбалансированными.
Что касается конфигурации Spark environment, следующие переменные важны:
• параллелизм: вычисляется с распределенным массивом RDD выполняются параллельно в отдельных разделах, количество которых должно быть установлено достаточно
высоким, чтобы предотвратить нехватку памяти. С другой стороны, более высокие
значения параллелизма увеличивают время сортировки RDD сверхлинейно;
• Serializer buffer size должен быть установлен оптимально: высокое значение приводит
к меньшему объему свободной памяти и большим количеством работы для сборщика
мусора;
17
• Worker timeout и допустимое количество открытых файлов должно быть установлено
достаточно высоким.
Рис. 1: Общая схема работы EgoLP.
Подведем резюме по данному разделу. Рассмотрены детально все этапы работы метода
EgoLP, принадлежащего к классу LP и использующего такие свойства сообществ как Плотность, Cohesiveness, свойство эгосообществ, степенное распределение размеров сообществ.
Теоретически обоснована линейная сложность EgoLP от числа ребер в графе и приведено
несколько универсальных аспектов распределенной реализации алгоритма.
18
5
Описание практической части
Результаты оценки точности EgoLP с синтетическими и реальными графами представлены с использованием различных метрик качества. Кроме того, проведено сравнение с другими популярными методами обнаружения сообществ.
5.1.
Сравнение с референсными сообществами
Традиционно для измерения точности любого метода обнаружения сообществ предполагается использование графов с предзаданными эталонными сообществами. Алгоритм возвращает множество сообществ, после чего производится сравнение с эталонным набором
сообществ. Для оценки сродства двух наборов (X, Y ), как правило, применяется NMI мера [20]:
1
N M I(X, Y ) = 1 − [H(X|Y )norm + H(Y |X)norm ]
2
Для каждой переменной сообщества Xk ищется ближайший Yk в смысле условного количества информации H(Xk |Yj ) ∈ minj , где Xk является случайной величиной, соответствующей вероятности появления вершины в сообществе k. Hnorm рассчитывается как нормировка
H(Xk |yk ) по количеству всей информации о Xk и усреднение по всем сообществам в X.
Диапазон NMI составляет [0; 1], минимальное значение означает совершенно разные наборы сообществ, максимальное значение соответствует идентичным наборам.
5.2.
Недостатки LP методов
В начале исследования была проведена оценка LP(k) – алгоритм распространения меток
с простейшими стратегиями обмена меток:
• Стратегия отправителя: равновероятно извлечь k меток;
• Стратегия принимающего: сохранить наиболее частые k меток.
Обратите внимание, что LP (k) эквивалентен популярному SLPA [5] алгоритму, если k =
1.
Проведены эксперименты с использованием LFR генераторов графов [20] со следующими
параметрами генерации:
• N (число вершин): 3000;
• on (число вершин в перекрывающихся сообществах): 2000;
• om (membership для каждого из on узлов): 3;
• k (средняя степень): 40;
• maxc (максимальный размер сообщества): 100-150.
Были обнаружены следующие проблемы, характерные для LP(k) методов:
1. Влиятельные вершины: если есть узлы со степенью гораздо более высокой, чем в средняя (> 3 раз) их метки приводят к образованию огромных сообществ по сравнению с
эталонными сообществами (см. таблицу 1);
2. Недостаток сообществ на промежуточных итерациях: при фиксированном узле одно из
сообществ, становится доминирующим и вытесняют другие. В то же время, как правило, узел имеет более одного сообщества; Проблема была обнаружена путем измерения
количества сообществ в зависимости от прошедших LP итераций (Рис. 2);
19
Таблица 1: Демонстрация проблемы “Влиятельные вершины”. Cx – максимальный размер
сообщества. #C500 – количество сообществ размера более 500. Ось абсцисс соответствует
максимальной степени вершины в графе (maxk).
maxk
EgoLP NMI
EgoLP Cx
LP(3) NMI
LP(3) Cx
LP(3) #C500
80
120 160 200 320
0.87 0.84 0.83 0.80 0.70
96
97
92
97
191
0.61 0.52 0.47 0.43 0.31
357 2123 2998 1094 2817
0
1
2
2
3
3. Процесс распространения меток может привести к слабо связанным или даже несвязанным сообществам. Разделения сообществ в под-сообщества при помощи LP(2) алгоритма на 0,05-0,15 улучшают NMI значения (см. таблицу 2);
4. Вершина добавляет слишком много “шума” в качестве элементов массива меток. Процедура распространения меток инициализируется при помощи эталонных сообществ и
далее процесс обмена метками приводит к непрерывному уменьшению NMI от 1,0 до
0.85-0.8 (Рис. 3).
Как видно из результатов эксперимента, EgoLP улучшает точность LP (k) и, таким образом, помогает уменьшить указанные недостатки.
Таблица 2: Демонстрация проблемы слабо связных сообществ. Таблица содержит значения
NMI для EgoLP и LP(3) с наличием и без стадии пост-обработки. ’fr’ – доля сообществ,
разделенных в процессе пост-обработки.
2
3
4
om
EgoLP
0.88 0.73 0.74
EgoLP + post 0.85 0.64 0.62
EgoLP fr
15% 30% 27%
LP(3)
0.78 0.21 0.14
LP(3) + post 0.85 0.27 0.20
LP(3) fr
26% 19% 13%
5.3.
Сравнение LP стратегий
На рисунке 4 приведено несколько стратегий процесса передачи/приема при распространении меток. Они состоят из стохастических и детерминированных EgoLP и LP (k) алгоритмов с дополнительной штраф-эвристикой. Штраф означает, что метки, связанные с сообществами большего размера имеют более низкий вес (раздел 4.3.).
1. EgoLP : Стохастический вариант EgoLP, описанный в разделе4;
2. EgoLP+pen: стохастический EgoLP со штраф-эвристикой;
3. EgoLP_d : детерминированный вариант EgoLP, в котором вместо генерации меток каждая вершина посылает усеченное дискретное распределение над сообществами к каждому соседу в графе. Стратегия приемник здесь смешивает усредненное распределение
от соседей с распределением прежним в приемнике и удаляет низкочастотные метки
сообществ;
20
400
●
●
ref_om4
communities count
300
●
egolp_om4
egolp_om3
ref_om3
200
lp3_om3
100
lp3_om4
10
15
LP iterations
20
25
Рис. 2: Демонстрация проблемы недостатка сообществ на промежуточных итерациях. ’lp3’ –
LP(3) метод, ’ref’ – реальное число эталонных сообществ в графе.
1.00
●
●
NMI
0.95
●
●
egolp
0.90
lp3
0.85
0
5
10
15
LP iterations
20
25
Рис. 3: Демонстрация проблемы шумовых меток.
●
●
NMI
factor(label)
0.75
● EgoLP
EgoLP+pen
EgoLP_d
EgoLP_d+pen
LP(3)
LP(3)+pen
LP_d+pen
0.50
●
0.25
●
●
0.00
2
3
4
om
5
6
Рис. 4: Сравнение различных LP стратегий на LFR графах.
4. EgoLP_d+pen: детерминированный EgoLP со штраф-эвристикой;
5. LP(k) and LP(k)+pen: простой стохастической LP (с дополнительным штрафом), кото21
рый генерирует и добавляет k меток на каждом шаге отправки / получения;
6. LP_d+pen: детерминированный алгоритм LP со штраф-эвристикой, идентичный BMLPA
алгоритму [6]. Этот метод представляет собой частный случай EgoLP_d + pen метода,
где каждый узел имеет только одно эгосообщество.
По эксперименту на рис 4 структура эгосообществ играет ключевую роль в процессе распространения меток. Стохастические варианты EgoLP и LP имеют более высокие значения
NMI в среднем, нежели детерминированные. Штраф оказался достаточно полезным дополнением, что делает методы более стабильным, когда средний membership достаточно большой.
Лучший показатель качества имеет EgoLP+pen алгоритм.
5.4.
Свойство эго-сообществ
Большинство узлов внутри эгосообщества разделяют одно или несколько общих глобальных сообществ. Экспериментальные результаты приведены в таблице 3.
Таблица 3: Корреляция эгосообществ и глобальных сообществ в LFR графах в зависимости
от среднего membership узла (om). NMI – среднее значение NMI при сравнении эгосообществ
пользователя и частей глобальных сообществ в эго-сети пользователя, FR - средняя доля
эгосообщества покрытая каким-либо глобальным сообществом (при условии, что покрытие
составляет > 0, 5, иначе корреляция берется равной 0), Р - вероятность эгосообщества быть
полностью покрытым каким-либо глобальным сообществом.
2
3
4
5
6
om
NMI 0.78 0.50 0.57 0.32 0.41
FR 0.93 0.68 0.72 0.39 0.53
P
0.50 0.14 0.16 0.05 0.10
5.5.
Синтетические графы
Сравним методы EgoLP с GCE, OSLOM, SLPA и MOSES, которые имеют самые высокие
NMI значения в большинстве случаев в соответствии с обзором [1]. Рисунки 5 и 6 дают
сводку результатов для LFR и CKB [19] графов. Оптимальные параметры EgoLP приведены
в таблице 4.
Хотя OSLOM и MOSES показывают достаточно хорошие результаты, они не могут обрабатывать большие графы (> 1M узлов), так как перебор соседних вершин сообщества и
попарное сравнение сообществ требует много времени; в то же время, обработать 10M графа
занимает примерно 1 час (на кластере с 20 рабочих узлов) для EgoLP.
5.6.
Измерение правдоподобия
Если эталонное множество сообществ не доступно, то можно также оценивать качество
найденных сообществ с помощью функции правдоподобия графа в вероятностной модели,
введенной в разделе 2.2..
Для эксперимента с реальными социальными графами была взята Facebook100 – коллекция сетей из ста американских колледжей и университетов [21]. Все сети являются неориентированными, бинарными и содержат атрибуты вершин (факультет, пол, магистр, общежитие / дом, год, школа). Сообщества, сформированные разными методами, сравниваются по
качеству при помощи метрики L = (LG +Lego +Latr )/n. Результаты представлены в таблице 5.
22
Таблица 4: Оптимальные параметры EgoLP. Ego обозначает стадию поиска эгосообществ, on = 0.5.
om
# итераций Ego
минимальный размер эгосообщества
минимальный размер объединения
# пересылаемых меток Ego
порог Ego
# итераций EgoLP
порог EgoLP
максимальный membership
# отправляемых меток EgoLP
# принимаемых меток EgoLP
максимальный размер таблицы combiner
# пересылаемых меток в завершающем LP
# итераций в пост обработке
# пересылаемых меток в пост обработке
порог в пост обработке
3
6
15
14
5
3
0.8 0.6
3
5
0.06 0.08
19
25
0.1 0.06
20
10
10
5
3
1
40
20
2
2
15
15
1
3
0.15 0.15
Таблица 5: Сравнение различных методов по метрике правдоподобия на графах из
Facebook100. Наилучшие значения выделены жирным шрифтом, второсортные значения выделены курсивом.
dataset EgoLP SLPA GCE OSLOM
Caltech
-113
-120
-119
-116
Cal65
-206
-207
-225
-217
Lehigh
-233
-233
-259
-257
Princeton -273
-315
-311
-318
UChicago -193
-211
-221
-214
Wellesley
-194
-207
-218
-209
MOSES
-106
-177
-207
-248
-174
-176
Таблица 6: Точность предсказания номера общежития и года выпуска студентов из набора
данных Facebook100.
dataset/attribute
UChicago/year
UChicago/dorm
Caltech/year
Caltech/dorm
Wellesley/year
Princeton/year
Lehigh/year
Cal65/year
average
EgoLP
0.64
0.57
0.51
0.79
0.71
0.82
0.74
0.71
0.69
GCE
0.56
0.54
0.44
0.85
0.75
0.77
0.71
0.60
0.65
OSLOM
0.62
0.55
0.42
0.83
0.75
0.78
0.71
0.63
0.66
MOSES
0.72
0.66
0.70
0.78
0.86
0.88
0.87
0.70
0.77
SLPA
0.56
0.41
0.38
0.70
0.75
0.68
0.70
0.68
0.61
Измерения правдоподобия на Facebook100 графах описывает ранг EgoLP как не самый
лучший, но близкий к лучшему. Самая высокая средняя точность была продемонстрирована
с помощью алгоритма MOSES, который в свою очередь имеет низкое качество на LFR графах
и уже упомянутые проблемы с масштабируемой реализацией (Раздел 3.1.).
23
Рис. 5: Оценка точности EgoLP и других методов на LFR графах. Верхний график: on =
0.5N , нижний график: on = 0.8N .
0.75
●
●
●
●
factor(label)
●
● EgoLP
EgoLP+pen
GCE
MOSES
OSLOM
SLPA
NMI
0.50
0.25
0.00
3
4
5
om
6
7
0.75
factor(label)
●
● EgoLP
EgoLP+pen
GCE
MOSES
OSLOM
SLPA
NMI
●
0.50
●
●
0.25
●
0.00
3
5.7.
4
5
om
6
7
Предсказание атрибутов
Найденные сообщества также оценены по их полезности в задачах классификации [24].
Входные данные взяты из графов Facebook100 [21]. Были применены различные алгоритмы,
чтобы найти сообщества, и после чего метками сообществ воспользовались как векторами
признаков для обучения классификатора5 . Качество оценивалось по точности предсказания
года окончания учебы и общежития. В этом приложении MOSES демонстрирует лучший
результат и EgoLP находится на второй позиции.
Резюмируя разделы сравнения точности поиска сообществ, отметим, что EgoLP имеет
наиболее высокие значения NMI при сравнении на синтетических графах. При сравнении
величины правдоподобия и точности предсказания атрибутов на графах из Facebook100,
EgoLP незначительно уступает методу из класса графических моделей.
5.8.
Производительность
Для оценки скорости работы было сгенерировано множество случайных социальных графов с 22, 50, 100, 217, 434 и 920 миллионами узлов и средней степенью 100. Эксперимент
5
http://scikit-learn.org, GradientBoostingClassifier parameters: n estimators 1000, learning rate 0.005, min
samples split 5, subsample 0.4
24
Рис. 6: NMI результаты сравнения точности на CKB графах. ’beta’ обозначает параметр
степенного распределения membership.
●
0.75
●
●
●
●
NMI
factor(label)
●
● EgoLP+pen
GCE
MOSES
OSLOM
SLPA
0.50
0.25
0.00
3.00
3.25
3.50
beta
3.75
4.00
был проведен на кластере с 18 узлами, всего 100 ядер, 24 Гб оперативной памяти и 4×1 Tb
жестких диска на каждом узле кластера. Во время каждого эксперимента были выполнены
10 итераций распространения меток. Рисунок 8 демонстрирует результаты.
Рис. 7: Скорость EgoLP (1/time) в зависимости от количества Spark workers: ’ego’ – стадия поиска эгосообществ, ’lp’ – стадия распространения меток, ’sum’ – суммарное время,
’[ego|lp|sum]_p’ – фиксированное (50) число элементов распределенного массива RDD на
одного worker.
●
0.022
ego
●
sum
0.05
lp
●
0.018
●
ego_p
speed (1/min)
speed (1/min)
0.04
0.03
lp_p
sum
0.02
●
sum_p
0.014
●
0.010
●
sum_p
0.01
●
10
15
workers count
20
10
15
workers count
20
Для измерения масштабируемости использовался граф с 25 миллионов узлов и 100 средней степенью. Эксперимент проводился на кластере с 18 , 15, 12 , 9 и 6 узлами (12 ядер, 24
Гб оперативной памяти , 4×1 Tb жестких диска на каждый узел) . Рисунок 7 иллюстрирует
результаты эксперимента для разных стадий EgoLP . Средний коэффициент масштабируемости 4speed/4workers составляет около 0,0012 для суммарной линии всех этапов и k- раз
( k = 2, 2.5, 3 в 7) приращение узлов кластера приводит к k-раз увеличению скорости. В
некоторых случаях необходимо иметь фиксированное число разделов Spark RDD на одного
воркера (например, если узлы кластера добавляются синхронно с ростом графа). Экспери25
Рис. 8: Время выполнения EgoLP в зависимости от размера графа: ’ego’ – стадия поиска
эгосообществ, ’lp’ – стадия распространения меток, ’sum’ – суммарное время, ’post’ – стадия пост-обработки. Сравнение времени работы рассмотренных алгоритмов при локальном
запуске (второй график).
15000
sum
300
10000
●
TIME_seconds
time (hours)
200
lp
ego
● EgoLP
GCE
MOSES
OSLOM
5000
100
●
●
post
●
0
●●
0
●
●
0
250
500
graph size (M)
750
1000
●
0
●
25000
50000
n
75000
100000
менты для этого сценария демонстрируют более плохую масштабируемость по сравнению с
фиксированной суммой разделов по всем узлам кластера.
В текущей реализации EgoLP используется диск как статическая память для графа .
Дело в том, что Spark позволяет сохранить все данные в памяти, но это требуется более 1000
машин с 5 Гб оперативной памяти на каждой для обработки исключительно в оперативной
памяти. Так, в относительно небольших кластерах каждый Spark worker на каждой Pregel
итерации загружает по частям отведенный ему набор узлов . Это довольно дорогая операция,
но из-за медленного обмена сообщениями, средняя стоимость ресурсов кластера значительно
ниже, когда граф хранится на диске.
Измерение скорости сходимости к стационарному набору сообществ осуществлялось на
LFR графах размером в 5000, 10000 и 20000 вершин. В результате, получено подтверждение
теоретической оценки экспоненциальной скорости сходимости (см. Рис. 9). Для достижения
стационарного состояния необходимо выполнить 20-25 итераций, независимо от изменения
размера графа в пределах [5000, 20000] вершин.
В итоге, мы подкрепили теоретическое обоснование линейной сложности алгоритма экспериментальной проверкой. Проверена применимость алгоритма к социальным графам большого размера (порядка 109 пользователей).
5.9.
Обсуждение метода
В итоге, разработан метод EgoLP, способный обрабатывать различные типы сетей: взвешенный / бинарный, ориентированный / неориентированный. Предположительно, метод
имеет эффективные расширения для графов с несколькими типами ребер и атрибутами вершин.
В принципе, EgoLP является уникальным алгоритмом в классе LP (см. раздел 3.1.): может точно выявить сообщества с достаточной степенью перекрытия ( средний membership
пользователя 5 − 10 ). В алгоритме удалось устранить все упомянутые недостатки, присущие типичному LP алгоритму: hubs effect, отсутствие сообществ на промежуточных стадиях,
плохо связанные сообщества, “шум” в массиве меток.
Результаты экспериментов показали, что многие из свойств, требуемых в разделе 2, выполняются для сообществ, найденных EgoLP . Тем не менее, существуют некоторые ограни26
Рис. 9: Сходимость EgoLP в зависимости от количества итераций. EgoLP_d – детерминированный вариант.
●
0.8
●
●
●
●
●
●
●
●
0.6
NMI
factor(label)
●
● EgoLP
EgoLP_d
0.4
●
0.2
10
20
iterations
30
чения: наш алгоритм не способен обнаружить иерархическую структуру сообществ. Таким
образом, он непригоден для обнаружения больших сообществ таких, как людей из одного
города или крупной организации, потому что они содержат меньшие плотные компоненты.
27
6
Заключение
Итого, в результате данного исследования
1. Выявлены наиболее характерные свойства сообществ;
2. Предложена генеративная модель, объединяющая все требуемые свойства;
3. Предложен алгоритм EgoLP – линейный, полностью распределенная способ извлечения неявных сообществ пользователей социальных сетей. Насколько автору известно,
EgoLP единственный представитель LP методов, способной обнаруживать сильно перекрывающиеся сообщества. Полученные сообщества удовлетворяют большинству необходимых свойств;
4. Теоретически и экспериментально доказана линейная сложность от количества ребер.
Эксперимент с масштабируемостью демонстрирует хороший прирост скорости с увеличением числа узлов кластера, но и некоторые ограничения также имеются, связанные
с необходимостью увеличивать параллелизм Spark с увеличением размера графа;
5. EgoLP превосходит наиболее точные методы на синтетических графах;
6. Правдоподобие EgoLP на подграфах Facebook не лучшее, но близко к лучшему значению.
По данной работе подана статья на конференцию COSN 2014 – N. Buzun a al. “EgoLP:
Fast and Distributed Community Detection in Billion-node Social Networks”.
Патент на метод EgoLP по номером P20140009930, “Fast amd Distributed Detection for
Overlapping Community”, был получен 2014.01.27 в Корее.
Возможные будущие направления включают реализацию обработки в памяти, обобщение
метода для сетей с атрибутами и поиска иерархии сообществ.
Иерархия сообществ и вложенные сообщества. Общий и универсальный способ
выявления иерархии сообществ заключается в создании сети найденных из найденных сообществ и запуска того же алгоритма, чтобы найти кластерную структуру на новом уровне.
Недостатком этого подхода является независимое формирование сообществ на разных уровнях, что приводит к понижению точности. Можно осуществить естественный учет иерархии в
нашем алгоритме, несколько модифицировав стратегии отправителя и получателя: начиная
с самого высокого уровня определить массив меток для каждого сообщества для хранения
меток, приходящих из других сообществ того же уровня. К сожалению, эта эвристика может
не быть непосредственно применима в распределенном алгоритме и требует упрощения в
смысле сложности вычислений.
EgoLP в оперативной памяти. Spark позволяет выполнять итерации EgoLP исключительно в памяти и это дает возможность в несколько раз ускорить алгоритм. В то же время
на это требуются слишком дорогие ресурсы кластера (около 1000 машин с 5 ГБ ОЗУ для
1B графа). Предполагается, что можно найти, во-первых, несколько больших сообществ с
малым размером пересечения специализированным алгоритмом, а затем выполнить EgoLP
независимо в каждом большом сообществе.
Сети с атрибутами. Атрибуты пользователей в социальных сетях играют важную роль
в неявных сообществах. Поэтому целесообразно обобщить EgoLP для графов с бинарными
(категориальными) атрибутами узлов.
28
Литература
[1] N. Buzun, A. Korshunov. Innovative methods and measures in overlapping community
detection. Proceedings of International Workshop on Experimental Economics in Machine
Learning 2012, KU-Leuven, pp. 20-32. 2012.
[2] J. Xie, S. Kelley, B. K. Szymanski. Overlapping community detection in networks: the state
of the art and comparative study. CoRR abs/1110.5813. 2011.
[3] D. A. Prentice, D. T. Miller, and J. R. Lightdale. Asymmetries in attachments to groups
and to their members: Distinguishing between common-identity and common-bond groups.
Personality and Social Psychology Bulletin, 20(5):484–493, 1994.
[4] G. Malewicz, M. H. Austern, A. J.C Bik, J. C. Dehnert, I. Horn, N. Leiser, G. Czajkowski.
Pregel: a system for large-scale graph processing. In Proceedings of the 2010 ACM SIGMOD
International Conference on Management of data (SIGMOD ’10). ACM, New York, NY, USA,
135-146. 2010.
[5] J. Xie, B. K. Szymanski, X. Liu. SLPA: Uncovering Overlapping Communities in Social
Networks via A Speaker-listener Interaction Dynamic Process. CoRR abs/1109.5720. 2011.
[6] S. Gregory, Z. Wu, Y. Lin, H. Wan, S. Tian. Balanced Multi-Label Propagation for
Overlapping Community Detection in Social Networks. Springer Vol. 27. 2012.
[7] J. Yang, J. Leskovec. Community-Affiliation Graph Model for Overlapping Network
Community Detection. Data Mining (ICDM), 2012 IEEE. 2012.
[8] J. Yang, J. McAuley, J. Leskovec. Community Detection in Networks with Node Attributes.
ICDM’13. 2013.
[9] J. Yang and J. Leskovec. Defining and Evaluating Network Communities based on Groundtruth. ICDM, 2012.
[10] A. Mislove, M. Marcon, K. P. Gummadi, P. Druschel, B. Bhattacharjee. Measurement and
Analysis of Online Social Networks. 5-th ACM/USENIX Internet Measurement Conference.
2007.
[11] A. Friggeri, G. Chelius, E. Fleury. Triangles to Capture Social Cohesion. CoRR,
abs/1107.3231. 2011.
[12] M. Mørup, MN. Schmidt. Bayesian community detection. Neural Comput. 2012
Sep;24(9):2434-56. 2012.
[13] A. McDaid, N. Hurley. Detecting highly overlapping communities with Model-based
Overlapping Seed Expansion. ASONAM. 2010.
[14] C. Lee, F. Reid, A. McDaid, N. Hurley. Detecting highly overlapping community structure
by greedy clique expansion. arXiv:1002.1827. 2010.
29
[15] A. Lancichinetti, F. Radicchi, J.J. Ramasco. Statistical significance of communities in
networks. Phys. Rev. E 81, 046110. 2010.
[16] A. Lancichinetti, F. Radicchi, J.J. Ramasco, S. Fortunato. Finding statistically significant
communities in networks. PLoS ONE 6. 2011.
[17] M. Coscia, G. Rossetti, F. Giannotti, D. Pedreschi. DEMON: a Local-First Discovery Method
for Overlapping Communities. CoRR, abs/1206.0629, 2012.
[18] A. Lancichinetti, S. Fortunato. Consensus clustering in complex networks. Scientific Reports
2, 336. 2012.
[19] K. Chykhradze, A. Korshunov, N. Buzun, R. Pastukhov, N. Kuzyurin, D. Turdakov, H. Kim.
Distributed generation of billion-node social graphs with overlapping community structure.
In proceedings of Complex Networks V. Studies in Computational Intelligence Volume 549,
2014, pp 199-208.
[20] A. Lancichinetti, S. Fortunato. Benchmarks for testing community detection algorithms on
directed and weighted graphs with overlapping communities. Phys. Rev. 2009.
[21] A. L. Traud, P. J. Mucha, M. A. Porter. The Social Structure of Facebook Networks.
arXiv:1102.2166v1 [cs.SI]. 2005.
[22] X. Wang, J. Sun, Z. Chen, C. Zhai. Latent semantic analysis for multiple-type interrelated
data objects. In Proceedings of the 29th annual international ACM SIGIR conference on
Research and development in information retrieval (SIGIR ’06). ACM, New York, NY, USA,
236-243. 2006.
[23] D. H. Stern, R. Herbrich, T. Graepel. Matchbox: large scale online bayesian recommendations.
In Proceedings of the 18th international conference on World wide web (WWW ’09). ACM,
New York, NY, USA, 111-120. 2009.
[24] C. Lee, P. Cunningham. Benchmarking community detection methods on social media data.
CoRR, abs/1302.0739. 2013.
[25] S. Soundarajan, J.E. Hopcroft. Use of Local Group Information to Identify Communities in
Networks. ACM Transactions on Knowledge Discovery from Data (TKDD). 2014
[26] B. S. Rees, K. B. Gallagher. EgoClustering: Overlapping. Community. Detection. via. Merged.
Friendship-Groups. - The Influence of Technology on Social Network Analysis and Mining.
Lecture Notes in Social Networks, 2013.
[27] B. S. Rees, K. B. Gallagher (2012). Overlapping community detection using a community
optimized graph swarm. Social Netw. Analys. Mining, 2, 405-417.
[28] B. S. Rees, K. B. Gallagher. Detecting Overlapping Communities in Complex Networks Using
Swarm Intelligence for Multi-threaded Label Propagation. Complex Networks. Studies in
Computational Intelligence Volume 424, 2013, pp 111-119.
[29] R. Xin, J. Gonzalez, M. Franklin, I. Stoica. GraphX: A Resilient Distributed Graph System
on Spark. GRADES (SIGMOD workshop), 2013
[30] U. N. Raghavan, R. Albert, and S. Kumara. Near linear time algorithm to detect community
structures in large-scale networks. Physical Review E, vol. 76, no. 3, p. 036106, 2007.
[31] S. Gregory. Finding overlapping communities in networks by label propagation. New Journal
of Physics, vol. 12, no. 10, p. 103018, 2010.
30
[32] L. Subelj, M. Bajec. Robust network community detection using balanced propagation. The
European Physical Journal B, Volume 81, 2011.
[33] S. Papadopoulos, Y. Kompatsiaris, A. Vakali, P. Spyridonos. Community detection in Social
Media. Data Min. Knowl. Discov. 24,stable 2012.
[34] K. Kuzmin, S. Y. Shah, B. K. Szymanski. Parallel Overlapping Community Detection with
SLPA. SocialCom, 2013
[35] Y. Zhang, J. Wang, Y. Wang, L. Zhou. Parallel Community Detection on Large Networks
with Propinquity Dynamics. KDD ’09
[36] S. Tsironis , M. Sozio, M. Vazirgiannis. Accurate Spectral Clustering for Community Detection
in MapReduce. 2013
[37] I. Rytsareva, A. Kalyanaraman. An efficient MapReduce algorithm for parallelizing large-scale
graph clustering. ParGraph - Workshop on Parallel Algorithms and Software for Analysis of
Massive Graphs, Held in conjunction with HiPC’11, Bengaluru, India, 2011.
[38] A. Prat-Perez, D. Dominguez-Sal, J.-L. Larriba-Pey. High quality, scalable and parallel
community detection for large real graphs. Proceedings of the 23rd international conference
on World wide web (WWW’2014).
[39] M. E. J. Newman. Spectral methods for network community detection and graph partitioning.
Phys. Rev. E 88, 042822 2013
[40] Кельберт М.Я., Сухов Ю.М. Вероятность и статистика в примерах и задачах. Том 2:
Марковские цепи как отправная точка теории случайных процессов, М.: МЦНМО, 2007.
31
Download