Распределённый расчёт графовых статистик на реальных и синтетических социальных графах Кирилл Чихрадзе 2 апреля 2013 План доклада: 1. Что есть граф? Типы графов и сетей. 2. Основные статистики графа: определения и примеры. 3. Параллелизация алгоритмов по подсчётам статистик. Граф – это упорядоченная пара G=(V, E), где V – непустое множество вершин (или узлов), а E – множество пар вершин, называемых рёбрами Граф – это упорядоченная пара G=(V, E), где V – непустое множество вершин (или узлов), а E – множество пар вершин, называемых рёбрами Типы графов Граф – это упорядоченная пара G=(V, E), где V – непустое множество вершин (или узлов), а E – множество пар вершин, называемых рёбрами Типы графов Неориентированные 1 4 2 3 5 Граф – это упорядоченная пара G=(V, E), где V – непустое множество вершин (или узлов), а E – множество пар вершин, называемых рёбрами Типы графов Неориентированные 1 4 Ориентированные 1 4 2 2 3 3 5 5 Типы сетей Нейронные сети: вершины – нейроны, рёбра – соединения между ними. Типы сетей Нейронные сети: вершины – нейроны, рёбра – соединения между ними. Белковые сети: вершины – белки, рёбра – физическое взаимодействие между ними. Типы сетей Нейронные сети: вершины – нейроны, рёбра – соединения между ними. Белковые сети: вершины – белки, рёбра – физическое взаимодействие между ними. Дорожные сети: вершины – пересечения дорог, рёбра – собственно дороги. Типы сетей Нейронные сети: вершины – нейроны, рёбра – соединения между ними. Белковые сети: вершины – белки, рёбра – физическое взаимодействие между ними. Дорожные сети: вершины – пересечения дорог, рёбра – собственно дороги. Коммуникационные сети моделируют E-mail связи с рёбрами, представляющими собственно связи. father@gmail.com LenO4ka_99@mail.ru mother@gmail.com Alex_21@yandex.ru Типы сетей Нейронные сети: вершины – нейроны, рёбра – соединения между ними. Белковые сети: вершины – белки, рёбра – физическое взаимодействие между ними. Дорожные сети: вершины – пересечения дорог, рёбра – собственно дороги. Коммуникационные сети моделируют E-mail связи с рёбрами, представляющими собственно связи. Сети цитирования: вершины – статьи, рёбра – цитирования этих статей Типы сетей Нейронные сети: вершины – нейроны, рёбра – соединения между ними. Белковые сети: вершины – белки, рёбра – физическое взаимодействие между ними. Дорожные сети: вершины – пересечения дорог, рёбра – собственно дороги. Коммуникационные сети моделируют E-mail связи с рёбрами, представляющими собственно связи. Сети цитирования: вершины – статьи, рёбра – цитирования этих статей. Вэб-графы: вершины – страницы, рёбра – гиперссылки между ними. Типы сетей Нейронные сети: вершины – нейроны, рёбра – соединения между ними. Белковые сети: вершины – белки, рёбра – физическое взаимодействие между ними. Дорожные сети: вершины – пересечения дорог, рёбра – собственно дороги. Коммуникационные сети моделируют E-mail связи с рёбрами, представляющими собственно связи. Сети цитирования: вершины – статьи, рёбра – цитирования этих статей. Вэб-графы: вершины – страницы, рёбра – гиперссылки между ними. Социальные сети. Социальный граф — это граф, узлы которого представлены социальными объектами, такими как пользовательские профили с различными атрибутами (например: имя, день рождения, родной город и т. д.), сообщества, медиаконтент и т. д., а ребра — социальными связями между ними. План доклада: 1. Что есть граф? Типы графов и сетей. 2. Основные статистики графа: определения и примеры. 3. Параллелизация алгоритмов по подсчётам статистик. Степень вершины — количество рёбер графа, инцидентных данной вершине. 1 3 1 4 0 2 2 Расстояние между вершинами — наименьшее число рёбер пути, соединяющего две вершины. Диаметр графа — это максимальное из расстояний между парами его вершин. 1 2 d=1 3 1 1 2 3 5 3 2 d=2 4 d=4 Компонента связности неориентированного графа — некоторое множество вершин графа такое, что для любых двух вершин из этого множества существует путь из одной в другую, и не существует пути из вершины этого множества в вершину не из этого множества. 4 3 7 5 2 1 6 Компонента связности неориентированного графа — некоторое множество вершин графа такое, что для любых двух вершин из этого множества существует путь из одной в другую, и не существует пути из вершины этого множества в вершину не из этого множества. 4 3 7 5 2 1 6 Ориентированный граф называется сильно связным, если любые две его вершины сильно связаны. Две вершины s и t графа сильно связаны, если существует ориентированный путь из s в t и ориентированный путь из t в s. Компонентами сильной связности ориентированного графа называются его максимальные по включению сильно связные подграфы. Коэффициент кластеризации измеряет плотность подграфа, состоящего из вершин, находящегося на расстоянии единицы от центрального актора. 2| 𝑒𝑗𝑘 : 𝑣𝑗 , 𝑣𝑘 ∈ 𝑁𝑖 , 𝑒𝑗𝑘 ∈ 𝐸 | 𝑐𝑖 = 𝑘𝑖 (𝑘𝑖 − 1) | 𝑒𝑗𝑘 : 𝑣𝑗 , 𝑣𝑘 ∈ 𝑁𝑖 , 𝑒𝑗𝑘 ∈ 𝐸 | 𝑐𝑖 = 𝑘𝑖 (𝑘𝑖 − 1) Глобальный коэффициент кластеризации: с= 𝟑∗число треугольников в сети 𝟔∗число треугольников в сети = число "вилок" число путей длины 𝟐 1 треугольник и 8 «вилок» с= 𝟑 𝟖 Зачем нужны эти статистики: - сравнение сгенерированных и сэмплированных графов; - классификация графов; - сравнение моделей генерации случайных графов; - контроль качества техник сэмплирования; Безмасштабная сеть Безмасштабная сеть − сеть, в которой распределение степеней подчиняется 𝑝𝑜𝑤𝑒𝑟 𝑙𝑎𝑤: 𝑷 𝒌 ~ 𝒌−𝜷 Свойства: - «малый мир» (эффективный диаметр мал); - наличие т.н. хабов – вершин, степени которых очень велики по сравнению со степенями остальных узлов; - малочувствительность к поврежедениям/иерархичность (большие хабы окружены меньшими, а те, в свою очередь, ещё меньшими, что позволяет сохранять почти все связи при потере одного из хабов); Безмасштабная сеть Примеры: - социальные сети; - семантические сети; - различные компьютерные сети, включая WWW; - белковые сети; - схемы авиационных линий; Распределение степеней вершин Классическое Power law доля от всех вершин 𝒑 𝒙 = 𝑪𝒙−𝜶 Распределение степеней вершин в Facebook (средняя степень = 280) степень степень Распределение степеней вершин количество вершин Распределение степеней вершин в сэмпле Twitter (средняя степень = 15, V=11,316,811) степень (входящая) степень (исходящая) Распределение степеней вершин Распределение степеней вершин в сэмпле Amazon (средняя степень = 17, V=403,394) количество вершин Граф Amazon: вершины – товары, рёбра между вершинами – если два товара часто покупают вместе. степень Распределение степеней вершин количество вершин Распределение степеней вершин в Web-Google (средняя степень = 12, V=875,713) вершины – страницы, рёбра – гиперссылки степень (входящая) степень (исходящая) Распределение степеней вершин количество вершин Распределение степеней вершин в Google+ (средняя степень = 265, V=102,100) степень (входящая) степень (исходящая) Диаметр Доля пар вершин на указанном расстоянии N(h) показывает процент пар вершин, достижимых за h шагов. Facebook 𝑵(𝒉) Расстояние (h) Диаметр Доля пар вершин на указанном расстоянии N(h) показывает процент пар вершин, достижимых за h шагов. Facebook 𝒉𝒎𝒂𝒙 𝑵(𝒉) 𝒅𝒆𝒇𝒇 = 𝒉=𝟏 Расстояние (h) 𝑵 𝒉 −𝑵 𝒉−𝟏 𝒉∗ 𝑵 𝒉𝒎𝒂𝒙 − 𝑵(𝟎) Диаметр Доля пар вершин на указанном расстоянии N(h) показывает процент пар вершин, достижимых за h шагов. Facebook 𝒉𝒎𝒂𝒙 𝑵(𝒉) 𝒅𝒆𝒇𝒇 = 𝒉=𝟏 𝑵 𝒉 −𝑵 𝒉−𝟏 𝒉∗ 𝑵 𝒉𝒎𝒂𝒙 − 𝑵(𝟎) 𝒅𝑼.𝑺. = 𝟒. 𝟑 𝒅𝑮𝒍𝒐𝒃𝒂𝒍 = 𝟒. 𝟕 Расстояние (h) Количетво пар вершин на указанном расстоянии Диаметр N(h) показывает количество пар вершин, достижимых за h шагов. Twitter 𝒅𝒆𝒇𝒇 = 𝟒. 𝟗𝟐 Расстояние (h) Количетво пар вершин на указанном расстоянии Диаметр N(h) показывает количество пар вершин, достижимых за h шагов. Amazon 𝒅𝒆𝒇𝒇 = 𝟖. 𝟖𝟖 Расстояние (h) Количетво пар вершин на указанном расстоянии Диаметр N(h) показывает количество пар вершин, достижимых за h шагов. Web-Google 𝒅𝒆𝒇𝒇 = 𝟗. 𝟏𝟐 Расстояние (h) Количетво пар вершин на указанном расстоянии Диаметр N(h) показывает количество пар вершин, достижимых за h шагов. Google+ 𝒅𝒆𝒇𝒇 = 𝟒. 𝟒𝟐 Расстояние (h) количество компонент Компоненты связности размер компоненты Наибольшая компонента связности графа Facebook – 99,91% средний коэффициент кластеризации Коэффициент кластеризации Для пользователя Facebook со степенью 100 средний коэффициент кластеризации 0.14, т.е. 14% его друзей состоят в друзьях друг у друга. степень средний коэффициент кластеризации Коэффициент кластеризации Twitter 𝒄𝒄𝒂𝒗𝒆𝒓𝒂𝒈𝒆 = 𝟎. 𝟎𝟗 степень средний коэффициент кластеризации Коэффициент кластеризации Amazon 𝒄𝒄𝒂𝒗𝒆𝒓𝒂𝒈𝒆 = 𝟎. 𝟒𝟏 степень средний коэффициент кластеризации Коэффициент кластеризации Web-Google 𝒄𝒄𝒂𝒗𝒆𝒓𝒂𝒈𝒆 = 𝟎. 𝟓𝟏 степень средний коэффициент кластеризации Коэффициент кластеризации Google+ 𝒄𝒄𝒂𝒗𝒆𝒓𝒂𝒈𝒆 = 𝟎. 𝟒𝟑 степень Сравнения с помощью статистик Сгенерированный граф Facebook 𝒅𝒆𝒇𝒇 = 𝟒. 𝟓𝟓 𝒅𝒆𝒇𝒇 = 𝟒. 𝟒𝟐 Наибольшая компонента – 99,97% Наибольшая компонента – 99,91% План доклада: 1. Что есть граф? Типы графов и сетей. 2. Основные статистики графа: определения и примеры. 3. Параллелизация алгоритмов по подсчётам статистик. Распределённый алгоритм подсчёта диаметра Распределённый алгоритм подсчёта диаметра Распределённый алгоритм подсчёта диаметра Распределённый алгоритм подсчёта диаметра 𝒅 𝒏+𝒎 𝑻𝒊𝒎𝒆 𝒄𝒐𝒎𝒑𝒍𝒆𝒙𝒊𝒕𝒚 𝒐𝒇 𝑯𝑨𝑫𝑰 − 𝑶( ) 𝑴 𝑺𝒑𝒂𝒄𝒆 𝒄𝒐𝒎𝒑𝒍𝒆𝒙𝒊𝒕𝒚 𝒐𝒇 𝑯𝑨𝑫𝑰 − 𝑶( 𝒏 + 𝒎 𝐥𝐨𝐠 𝒏) 𝒏 − количество вершин; 𝒎 − количество рёбер; d – количество итераций; M – количество машин Определяет эффективный диаметр – расстояние, за которое 90% связанных пар вершин достигнут друг друга. Распределённый алгоритм подсчёта распределения степеней Mapper Reducer