Кластеризация Социальных графов Артур Кадурин Группа сегментирования аудитории Социальный граф Все любят подарочки Тестовый датасет Подарков: 100.000 Дарений: 50.000.000 Кластеризация процедура упорядочивания объектов в сравнительно однородные группы Какой подарок лучше? • Расстояние в метрическом пространстве • Попарные меры схожести • Наборы атрибутов • Кластеризация графа Похожесть по Жаккару Плюшки MCL Треугольник наоборот Размер имеет значение 1. Lipkus, Alan H (1999), A proof of the triangle inequality for the Tanimoto distance, J Math Chem 2. Levandowsky, Michael; Winter, David (1971), Distance between sets, Nature Хороший у вас план, товарищ Жуков! • Строим граф подарок-пользователь • Считаем коэффициенты Жаккара • Кластеризуем • ?????? • PROFIT!!! MCL http://micans.org/mcl/ Люди, вы не перестаете меня удивлять… Яйца и туфли Разные цветы или разные цвета? С новым годом и добрым утром! Женщины и дети Закругленная подпись Что-то в этом есть. • Простая идея • Простая реализация • Интерпретируемый результат • Не совсем социальный граф Акция: уведи друга! Найти тех кто хочет уйти Найти тех кто много уведет Найти тех кто много приведет Выступить на BigData Conf :) Есть игровые сессии и можно построить граф В этом графе можно посчитать клевые метрики На их основе обучить какой-нибудь регрессор Отранжировать пользователей по влиятельности Центральность • Betweenness centrality • Closeness centrality • Eigenvector centrality • Degree centrality Ты – это твое окружение. То насколько ты важен для своего окружения влияет только на твое окружение NetworkX и Community networkx.github.io perso.crans.org/aynaud/communities/ Fast unfolding of communities in large networks: arxiv.org/pdf/0803.0476.pdf Кажется работает Количество уведенных X: предсказанное Y: реальное Кажется работает 2: Возвращение. Доля уведенных в top X% Красная: рандом Синяя: предсказание Пошаманили с фичами Доля уведенных в top X% Красная: рандом Синяя: предсказание Ну и кто кого? Самое интересное ВНИМАНИЕ!!! Дальше будет матан и алгоритмы! Пожалуйста, не забудьте пристегнуться. Модулярность Мера плотности ребер внутри сообществ по сравнению с плотностью между ними Кластеризуем в два счета Fast unfolding of communities in large networks: arxiv.org/pdf/0803.0476.pdf Кластеризуем Fast unfolding of communities in large networks: arxiv.org/pdf/0803.0476.pdf Жираф большой – ему видней. Каждая вершина хранит какое-то значение У вершин есть доступ к своим ребрам Каждое ребро тоже хранит какое-нибудь значение Вершины могут отправлять сообщения другим вершинам Все вычисления делятся на супершаги В текущем супершаге доходят сообщения отправленные в предыдущем Все «активные» вершины выполняют код Если «активных» вершин не осталось – процесс завершается Больше некуда 5 5 5 5 4 5 5 5 2 4 5 5 Модулярность. Шаг 1: Правая часть. С1 1 ki 1 i:1 ki A 1 Модулярность. Шаг 2: Левая часть. 1 i:1 ki 1 С1:Σ j:1 kj 2 i:1 ki_in С1 Модулярность. Шаг 3: Итог. A:m i:1 ki_in С1:Σ j:1 kj_in Результат Финальный алгоритм 1. Считаем прирост модулярности при переезде 2. Переезжаем тех у кого он положительный 3. Повторяем пока можем 1-2 4. Объединяем классы в новые вершины 5. Повторяем пока можем 1-4 А мне параллельно Преимущество оказалось недостатком Исходный алгоритм может не сойтись Но если добавить блокировки, то все хорошо Спасибо за внимание! Артур Кадурин