Кластеризация на социальных графах. Технология и применение.

реклама
Кластеризация
Социальных графов
Артур Кадурин
Группа сегментирования аудитории
Социальный граф
Все любят подарочки
Тестовый датасет
Подарков: 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
А мне параллельно
Преимущество оказалось недостатком
Исходный алгоритм может не сойтись
Но если добавить блокировки, то все хорошо
Спасибо за внимание!
Артур Кадурин
Скачать