Динамика и статика — метрики графов социальных сетей -...

13
Как узнать главу заговора Центральные метрики безмасштабных графов Сергей Зефиров, [email protected]

TAGS:

description

Из доклада вы узнаете о графах социальных сетей, их основных характеристиках и о том, где еще встречаются такие графы (число Эрдеша, интернет, биология, семантический анализ), с описанием простой схемы распределенной работы с графами и ее улучшением. Также Сергей расскажет о центральных метриках: количестве соседей, коэффициенте кластеризации, промежуточной центральности, о том, как можно быстро считать центральные метрики для изменяющихся графов, почему важно считать динамически и быстро, и как можно быстро считать промежуточную центральность.

Transcript of Динамика и статика — метрики графов социальных сетей -...

Page 1: Динамика и статика — метрики графов социальных сетей - Cергей Зефиров

Как узнать главу заговора

Центральные метрики безмасштабных графов

Сергей Зефиров, [email protected]

Page 2: Динамика и статика — метрики графов социальных сетей - Cергей Зефиров

Безмасштабные графы

➔ Социальные сети◆ Facebook◆ Twitter◆ математика (число Эрдоша)

➔ Взаимодействие белков➔ “Богатые богатеют”➔ Картина не изменится при

увеличении числа узлов

log(соседи)

log(количество узлов)

Page 3: Динамика и статика — метрики графов социальных сетей - Cергей Зефиров

Хранение графов

➔ Отношение “узел->набор соседей”◆ просто разбить (`mod` N) и хранить соседей◆ неравномерное разбиение◆ количество соседей = k * размер графа

➔ Матрица связности в гиперразреженном формате◆ тройки (i, j, вес) или даже двойки (i,j)◆ индекс компьютера = hash [i,j] `mod` N◆ гарантия оптимальности умножения

Page 4: Динамика и статика — метрики графов социальных сетей - Cергей Зефиров

Количество соседей

➔ di - количество соседей➔ A - матрица связности графа (0 или 1)➔ d = diag(A^2)/2➔ Просто, но все равно важно

Page 5: Динамика и статика — метрики графов социальных сетей - Cергей Зефиров

Коэффициент кластеризации

➔ Отношение количества треугольников у узла к количеству потенциальных треугольников

➔ cci=trianglei/(di*(di-1)/2)➔ Узел 1

◆ 2 существующихтреугольника

◆ 6 потенциальных

1

d

cb

a

Page 6: Динамика и статика — метрики графов социальных сетей - Cергей Зефиров

Где применяется

➔ Быстрая нетривиальная центральная характеристика

➔ Лидер группы в социальной сети➔ Первый зараженный вирусом узел

◆ Стремительное изменение КК узла сети означает угрозу заражения

◆ Десятые доли секунды - десятки миллионов рублей

Page 7: Динамика и статика — метрики графов социальных сетей - Cергей Зефиров

Матричная формулировка

➔ A - матрица связности, a - обновление➔ Диагональ A^3/2 - количество

треугольников➔ Просто вывести шаговое обновление:

◆ (A+a)^3-A^3=aA2+2AaA+2a2A+Aa2+a3

➔ A - сотни миллионов, a - тысячи

Page 8: Динамика и статика — метрики графов социальных сетей - Cергей Зефиров

Промежуточная центральность

➔ sab - количество кратчайших путей из a в b➔ sab(v) - проходящих через v➔ B(v) = Σa/=b/=v sab(v)/sab

◆ Сложная метрика◆ Показывает более важный центр группы

➔ Требует вычисления кратчайших путей➔ Время вычисления O(nm) (m - количество

дуг)

Page 9: Динамика и статика — метрики графов социальных сетей - Cергей Зефиров

Алгоритм (Graph alg. linear alg.)

Поиск в ширину

d = 0S = <пустая матрица>p = 0, p(r) = 1f = A(r, :)while f .= 0 do d = d + 1 p = p + f S(d, :) = f f = fA׬p

Обновление коэффициентов

while d ≥ 2 do w = S(d,:)×(1+u)÷p w = Aw w = w×S(d−1,:)×p u = u + w d = d − 1

Суммирование значений

b = b + u

S - логическая, f - плав. точка

Page 10: Динамика и статика — метрики графов социальных сетей - Cергей Зефиров

Результаты

➔ исходники тут:◆ https://github.com/thesz/small-demos/tree/master/betweenness

➔ генератор и несколько вариантов, включая самый первый

➔ время O(nm), память O(N+M) (должна быть)

➔ память растет быстрее: 27M для 2^10 узлов, 101M для 2^11, 388M для 2^12

Page 11: Динамика и статика — метрики графов социальных сетей - Cергей Зефиров

Обсуждение

➔ ленивость, скорее всего➔ однако!

◆ перевести IntMap на Int32 - экономия и ускорение● не более 109 элементов на узле

◆ сделать специализацию IntMap Double● вместо указателя, тэга и Double только Double● потребуется вдвое меньше памяти

➔ 128G ОЗУ - 221 узлов сети◆ 40 машин/Twitter

Page 12: Динамика и статика — метрики графов социальных сетей - Cергей Зефиров

k-промежуточная центральность

➔ Промежуточная центральность чувствительна к удалению узлов

➔ Считаем кратчайшие+k пути◆ примерно совпадает с обычной◆ более устойчива к изменению топологии