Исследуем сообщество ВКонтакте


image

Здравствуйте, уважаемые читатели. Сегодня попробуем проанализировать одно из сообществ известной социальной сети "ВКонтакте". На предмет чего? — спросите вы. Смотреть будем на связи между участниками группы, анализировать характеристики пользователей и делать выводы.
Выбор пал на достаточно активный паблик одного высшего учебного заведения (адреса не даю во избежании недоразумений). На момент написания статье кол-во участников группы было чуть менее чем 16 тысяч человек.

Почему выбран именно этот паблик?
На мой субъективный взгляд, кол-во номинальных участников было минимальным. Также социальные связи показались достаточно интересными. Таким образом, эти факторы сыграли немалую роль в выборе сообщества.
Заинтересовавшихся милости прошу под кат.

1. Как собрать информацию?

Для решения искомой задачи было решено написать простой парсер данных, на входе которого — ссылка на сообщество, на выходе — файлы вершин и ребер (связи между участниками группы) для программы визуализации данных Gephi, а также вспомогательные файлы с различными характеристиками пользователей для последующего анализа. Стоит отметить, что под «связями» подразумевается, что связанная пара — «друзья» (в рамках соц. сети).
image
На выходе:
image

2. Что имеем?

Для начала просмотрим общую статистику. По возрасту:

*по вертикали — кол-во человек с данным возрастом, по горизонтали — непосредственно возраст
Можно заметить, что наибольшее кол-во людей в группе с возрастом 17-25 лет. Закономерно.

График отношения мужчин и женщин (по полу):
image
Занимательно, что большая часть аудитории — девушки. О чем это свидетельствует — на ваш суд. К сожалению, не все пользователи сети указывают свой пол (и не все верно).

График кол-ва друзей у участников:
image
*по вертикали — кол-во человек с данным кол-вом друзей, по горизонтали — кол-во друзей
Как видно, в среднем, участник имеет порядка 100-400 друзей.

График кол-ва подписчиков у участников:
image
*по вертикали — кол-во человек с данным кол-вом подписчиков, по горизонтали — кол-во подписчиков
В среднем участник имеет не более 200 подписчиков. Однако у отдельных индивидуумов искомое кол-во доходило до отметки свыше 50 000.

Также предоставляю вашему внимаю экспериментальный график, который показывает сколько людей имеют ID ниже/выше определенного значения (какого — показано на графике):
image
*по вертикали — диапазон ID'ов, по горизонтали — кол-во людей, входящих в этот диапазон
Для тех, кто не знает специфику ID пользователя ВКонтакте: чем больше ID, тем поздней зарегистрировался пользователь в социальной сети. Исследуя график, можно отметить, что «свежезарегистрированных» участников в сообществе больше. Причем больше в экспоненциальном отношении. Также забавный факт: есть люди в сообществе с двузначными ID (!).

3. Где же обещанные взаимосвязи между участниками?

И правда, настало время показать связи в сообществе между людьми. Сделаем это с помощью графа.
Вершинами графа будут участники сообщества, ребрами — связи между ними. Трактовку понятия «связи» я описал в начале статьи, если кто забыл. В силу большого кол-ва людей граф будет едва ли читабельным. Однако, чем больше связей — тем больше размер вершины. Это позволяет выделиться «звездам»:
image
И да, это не просто точки на белом фоне. Просто связей так много, что они слились в единую «массу».
Для справки: На 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. Вывод

Беря во внимания тот факт, что самый «мощный» участник почти с двойным отрывом впереди от предыдущего, можно сделать предположение, что он играет одну из ключевых ролей в сообществе. Быть может, он является администратором? Проверить этого нельзя, т.к. контакты администрации скрыты в данном случае.
Вообще, примерно таким же образом можно попытаться вычислить админов неких «подслушек», и иных сообществ, где иногда охота узнать правителей в лицо. Тот же граф в увеличенном размере чисто для «красоты»:
image

С вами был Петр, большое спасибо за внимание. До встречи!


Комментарии (28):

  1. robert_ayrapetyan
    /#9670174 / +16

    Простите, но ваша статья ни о чем…

    • ParadoxFilm
      /#9670396

      Хотел показать метод обнаружения «звезд» сообществ. Не получилось? Извините, что не оправдал заголовок…

      • ov7a
        /#9671294

        Существует более 20 разных способов определить важные узлы в графе — степень вершины, промежуточность, pagerank, и т.д. Даже в статье на википедии их 8. Почему вы выбрали самую простую (и не очень показательную)?

        • ParadoxFilm
          /#9671412

          Метод — Betweenness Centrality. Другие дают более худший результат.

          • ov7a
            /#9671420

            А как вы оцениваете «худшесть» результата?

            • ParadoxFilm
              /#9671466

              Различие между вершинами (или группы вершин). Если у вас имеется интерес, могу предоставить вам исходные данные вершин/ребер из статьи.

              • ov7a
                /#9671566

                Различие между вершинами как считете? Или имелось в виду различие между значениями меры для вершин? Но меры-то не нормированы… Можете привести подробное описание выбора меры?

  2. Nekto_Habr
    /#9670218 / +1

    Картинки, на мой абсолютно неавторитетный взгляд, совершенно неинформативны. Но выглядят потрясающе — действительно, как звезда с атмосферой.

  3. NeoCode
    /#9670290 / +1

    У самого ВКонтакта наверняка имеются и дополнительные данные (вроде логов входа на сайт и поведения пользователей), и какие-нибудь мощные инструменты анализа социального графа, выявления сложных закономерностей и различных аномалий…
    Интересно, как много они о нас знают? Как много знают о природе общества, о тайных законах, которые управляют людьми, их поведением и мышлением… Информация, что в отдельности не представляет никакого интереса, в совокупности миллионов аккаунтов наверняка содержит много интересного и для ученых, и для спецслужб…

  4. lizarge
    /#9670310

    Исходя из моего опыта работы с графами — получение таких картинок свидетельство неправильного подхода к анализу. По сути графом есть только последняя картинка, которая абсолютно не информативна так как мало отличается просто от какого нибудь случайного распределения.
    Попробуйте почитать теорию графов более глубоко, кроме того отсечь все «неважные данные» (средние показатели) и сделать новому графу развертку, что бы показать связи именно ваших розовых вершин с остальными ключевыми вершинами, будет более показательно.

    • ParadoxFilm
      /#9670406

      Спасибо за критику! В след. раз буду более тщательно проводить анализ. На более маленьких сообществах получается более информативно:
      image

      • lizarge
        /#9671034 / +1

        Дык у вас все инструменты под рукой:) Действуйте! В свое время в рамках диплома делал отдаленно подобные штуки, правда в другой области (анализ программ), жалею что забросил после того как сдался

  5. Ockonal
    /#9670314

    Статья бессмысленная в большей части, только последний раздел заинтересовал. Попробуйте взять группу с известным администратором и проверить.

    • ParadoxFilm
      /#9670404

      Уже проверяли, и данные совпали. Тогда граф выглядел так:
      image
      Самый «жирный» как раз и был администратором.

      • Dreamastiy
        /#9670730 / +1

        У вас на графе есть участники с весами больше 239, почему тогда «самый жирный» участник с весом 239?

        • Primus_IP
          /#9671434

          Это, видимо порядковые номера.

        • ParadoxFilm
          /#9671476

          Действительно, это не вес, это порядковый номер (ID) вершины.

  6. vais
    /#9670356

    Можно попросить исходники?

    • ParadoxFilm
      /#9670400 / -6

      К сожалению, на данный момент не могу предоставить. Так как делались «на коленке». В будущем, как доведу до ума — возможно.

  7. mnepohyi
    /#9670368

    Можно соус?

    • ParadoxFilm
      /#9670402

      Ответ выше. Спасибо за интерес!

  8. alex_the_first
    /#9670374

    Спасибо за статью, но все же имхо выкладывать реальные данные людей не вполне корректно…

    • mnepohyi
      /#9670394 / +4

      В статье же только паблик инфа.

  9. Oxoron
    /#9670708 / +2

    А стоило скрывать ВУЗ? Почти наверняка он однозначно устанавливается по тем людям, что указаны в таблице

    ТОП-10 людей по весу в порядке убывания

    • ParadoxFilm
      /#9670740 / +1

      Конечно, установить можно. Дело в том, что правила хабра не позволяют привести ссылку (можно счесть за рекламу).

  10. vadkor
    /#9672600

    «Беря во внимания тот факт, что самый «мощный» участник почти с двойным отрывом впереди от предыдущего, можно сделать предположение, что он играет одну из ключевых ролей в сообществе. Быть может, он является администратором?»

    Все гораздо проще. Он просто добавляет всех из универа и со страницей это никак не связано :)