Здравствуйте, уважаемые читатели. Сегодня попробуем проанализировать одно из сообществ известной социальной сети "ВКонтакте". На предмет чего? — спросите вы. Смотреть будем на связи между участниками группы, анализировать характеристики пользователей и делать выводы.
Выбор пал на достаточно активный паблик одного высшего учебного заведения (адреса не даю во избежании недоразумений). На момент написания статье кол-во участников группы было чуть менее чем 16 тысяч человек.
1. Как собрать информацию?
Для решения искомой задачи было решено написать простой парсер данных, на входе которого — ссылка на сообщество, на выходе — файлы вершин и ребер (связи между участниками группы) для программы визуализации данных Gephi, а также вспомогательные файлы с различными характеристиками пользователей для последующего анализа. Стоит отметить, что под «связями» подразумевается, что связанная пара — «друзья» (в рамках соц. сети).На выходе:
2. Что имеем?
Для начала просмотрим общую статистику. По возрасту:*по вертикали — кол-во человек с данным возрастом, по горизонтали — непосредственно возраст
Можно заметить, что наибольшее кол-во людей в группе с возрастом 17-25 лет. Закономерно.
График отношения мужчин и женщин (по полу):
Занимательно, что большая часть аудитории — девушки. О чем это свидетельствует — на ваш суд. К сожалению, не все пользователи сети указывают свой пол (и не все верно).
График кол-ва друзей у участников:
*по вертикали — кол-во человек с данным кол-вом друзей, по горизонтали — кол-во друзей
Как видно, в среднем, участник имеет порядка 100-400 друзей.
График кол-ва подписчиков у участников:
*по вертикали — кол-во человек с данным кол-вом подписчиков, по горизонтали — кол-во подписчиков
В среднем участник имеет не более 200 подписчиков. Однако у отдельных индивидуумов искомое кол-во доходило до отметки свыше 50 000.
Также предоставляю вашему внимаю экспериментальный график, который показывает сколько людей имеют ID ниже/выше определенного значения (какого — показано на графике):
*по вертикали — диапазон ID'ов, по горизонтали — кол-во людей, входящих в этот диапазон
Для тех, кто не знает специфику ID пользователя ВКонтакте: чем больше ID, тем поздней зарегистрировался пользователь в социальной сети. Исследуя график, можно отметить, что «свежезарегистрированных» участников в сообществе больше. Причем больше в экспоненциальном отношении. Также забавный факт: есть люди в сообществе с двузначными ID (!).
3. Где же обещанные взаимосвязи между участниками?
И правда, настало время показать связи в сообществе между людьми. Сделаем это с помощью графа.Вершинами графа будут участники сообщества, ребрами — связи между ними. Трактовку понятия «связи» я описал в начале статьи,
И да, это не просто точки на белом фоне. Просто связей так много, что они слились в единую «массу».
Для справки: На 15958 вершин (пользователи) имеется 200896 ребер (связи между ними). А это в среднем по 12-13 связей на одного человека.
Розовым цветом отмечены ТОП-3 человека, которые имею наибольший вес (напоминаю, что размер вершины прямо пропорционален кол-ву связей). Ниже представлена таблица ТОП-10 людей по весу в порядке убывания:
ID VK | Имя/Фамилия | Относительный вес (шкала от 0 до 2215) |
97723 | Валерий Окунев | 2215 |
206186029 | Глеб Коломиец | 1152 |
105522823 | Ингруп Стс | 541 |
246391591 | Anya Bjork | 203 |
84298132 | Полина Клёнова | 198 |
9448597 | Артем Камаев | 192 |
212268423 | Виктор Козлов | 174 |
56572 | Данил Фёдоровых | 156 |
11190617 | Иван Чернявский | 129 |
154122439 | Константин Бородич | 128 |
Кстати, сам граф загружен в достаточно высоком разрешении (1920*1159).
4. Вывод
Беря во внимания тот факт, что самый «мощный» участник почти с двойным отрывом впереди от предыдущего, можно сделать предположение, что он играет одну из ключевых ролей в сообществе. Быть может, он является администратором? Проверить этого нельзя, т.к. контакты администрации скрыты в данном случае.Вообще, примерно таким же образом можно попытаться вычислить админов неких «подслушек», и иных сообществ, где иногда охота узнать правителей в лицо. Тот же граф в увеличенном размере чисто для «красоты»:
С вами был Петр, большое спасибо за внимание. До встречи!
Комментарии (28)
Nekto_Habr
22.06.2016 21:58+1Картинки, на мой абсолютно неавторитетный взгляд, совершенно неинформативны. Но выглядят потрясающе — действительно, как звезда с атмосферой.
NeoCode
22.06.2016 22:48+1У самого ВКонтакта наверняка имеются и дополнительные данные (вроде логов входа на сайт и поведения пользователей), и какие-нибудь мощные инструменты анализа социального графа, выявления сложных закономерностей и различных аномалий…
Интересно, как много они о нас знают? Как много знают о природе общества, о тайных законах, которые управляют людьми, их поведением и мышлением… Информация, что в отдельности не представляет никакого интереса, в совокупности миллионов аккаунтов наверняка содержит много интересного и для ученых, и для спецслужб…
lizarge
22.06.2016 23:05Исходя из моего опыта работы с графами — получение таких картинок свидетельство неправильного подхода к анализу. По сути графом есть только последняя картинка, которая абсолютно не информативна так как мало отличается просто от какого нибудь случайного распределения.
Попробуйте почитать теорию графов более глубоко, кроме того отсечь все «неважные данные» (средние показатели) и сделать новому графу развертку, что бы показать связи именно ваших розовых вершин с остальными ключевыми вершинами, будет более показательно.ParadoxFilm
23.06.2016 00:10Спасибо за критику! В след. раз буду более тщательно проводить анализ. На более маленьких сообществах получается более информативно:
lizarge
23.06.2016 11:19+1Дык у вас все инструменты под рукой:) Действуйте! В свое время в рамках диплома делал отдаленно подобные штуки, правда в другой области (анализ программ), жалею что забросил после того как сдался
Ockonal
22.06.2016 23:08Статья бессмысленная в большей части, только последний раздел заинтересовал. Попробуйте взять группу с известным администратором и проверить.
ParadoxFilm
23.06.2016 00:08Уже проверяли, и данные совпали. Тогда граф выглядел так:
Самый «жирный» как раз и был администратором.Dreamastiy
23.06.2016 09:25+1У вас на графе есть участники с весами больше 239, почему тогда «самый жирный» участник с весом 239?
vais
22.06.2016 23:36Можно попросить исходники?
ParadoxFilm
23.06.2016 00:07-6К сожалению, на данный момент не могу предоставить. Так как делались «на коленке». В будущем, как доведу до ума — возможно.
alex_the_first
22.06.2016 23:37Спасибо за статью, но все же имхо выкладывать реальные данные людей не вполне корректно…
Oxoron
23.06.2016 09:14+2А стоило скрывать ВУЗ? Почти наверняка он однозначно устанавливается по тем людям, что указаны в таблице
ТОП-10 людей по весу в порядке убывания
ParadoxFilm
23.06.2016 09:29+1Конечно, установить можно. Дело в том, что правила хабра не позволяют привести ссылку (можно счесть за рекламу).
vadkor
24.06.2016 00:18«Беря во внимания тот факт, что самый «мощный» участник почти с двойным отрывом впереди от предыдущего, можно сделать предположение, что он играет одну из ключевых ролей в сообществе. Быть может, он является администратором?»
Все гораздо проще. Он просто добавляет всех из универа и со страницей это никак не связано :)
robert_ayrapetyan
Простите, но ваша статья ни о чем…
ParadoxFilm
Хотел показать метод обнаружения «звезд» сообществ. Не получилось? Извините, что не оправдал заголовок…
ov7a
Существует более 20 разных способов определить важные узлы в графе — степень вершины, промежуточность, pagerank, и т.д. Даже в статье на википедии их 8. Почему вы выбрали самую простую (и не очень показательную)?
ParadoxFilm
Метод — Betweenness Centrality. Другие дают более худший результат.
ov7a
А как вы оцениваете «худшесть» результата?
ParadoxFilm
Различие между вершинами (или группы вершин). Если у вас имеется интерес, могу предоставить вам исходные данные вершин/ребер из статьи.
ov7a
Различие между вершинами как считете? Или имелось в виду различие между значениями меры для вершин? Но меры-то не нормированы… Можете привести подробное описание выбора меры?