#24 декабря 2011 года в Твиттере: сеть упоминаний

4 года назад состоялись митинги на Поклонной Горе и Проспекте Сахарова, по которым я собрал из Твиттера данные и несмотря на редкие и спорадические подходы к их анализу успел сделать по ним около десятка презентаций на зарубежных и иногда даже отечественных конференциях, сдать в печать одну англоязычную публикацию и почти написать вторую. Однако все эти результаты каким-то мистическим образом так ни разу и не всплывали в данном блоге кроме как в виде фоновой картинки его заголовка, на которой представлена сеть “реплаев” между пользователями, ключевые акторы которой всем хорошо известны, но по политико-эстетическим причинам оттуда скрыты.

В очередной юбилей данного события я решил хоть как-то исправить это недоразумение и, заборов перфекционизм, запостить хоть что-то вместо традиционного ничего. И начать, пожалуй, лучше всего с данных, т.к. благодаря интересу к ним всё, в общем-то и началось. Но прежде немного истории. На тот момент, а по большому счёту и по сей день, Twitter представлял наиболее простой и удобный способ к собственным данным, чего, увы, не скажешь о качестве самих данных с точки зрения интерпретации, социологической и не только. Первое время единственным поставщиком действительно интересных сетевых данных были крупные IT-конференции вроде RIF и RIW. Однако зимой 2012 года произошёл ряд всем известных политических событий после которых русскоязычный сегмент данной сети претерпел значительные изменения.

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

К 24 декабря 2011 года уже сложилась традиция использовать в рамках подобных мероприятий хэштеги, составленные по формуле дата+месяц. Безусловно, были и другие типа #КартонныйМитинг, но они носили явное оценочное суждение и наверняка привели бы к искажению картины. Поэтому был выбран наиболее нейтральный из популярных хэштег #24дек. Выбор одного единственного хэштега также был обусловлен чисто финансовыми соображениями. Для сбора данных я использовал сервис DataSift, которая на тот момент была одной из двух лицензированных платформ, занимающихся продажей данных из Твиттера. Второй был Gnip, после покупки которого Твиттер разорвал контракт с DataSift монополизировав таким образом данный рынок. Приятной особенностью сервиса DataSift была возможность покупки данных по схеме Pay-as-you-Go, т.е. “поштучно” или “на развес”, задав фильтр по интересующим ключевым словам, а также ряду других параметром. А так как ценник там формировался в зависимости от сложности запроса и в том числе от числа ключевых слов, я решил ограничиться одним, самым популярным и очевидным вариантом. Если бы я тогда знал, что бесплатно можно получить данные большего объема и лучшего качества, всё бы могло сложиться иначе, но это уже совсем другая история заслуживающая отдельного поста.

Если же вкратце, то всего получилось 24 378 сообщения от 3 485 уникальных пользователей. Среди этих сообщений примерно половина содержала упоминание того или иного пользователя, что позволяло построить и визуализировать связи между ними в виде сетевой визуализации, представленной ниже.

Сеть упоминаний между пользователями.
Сеть упоминаний между пользователями.

Данный вид визуализации был немного причёсан из эстетических соображений, дабы продемонстрировать политический “ландшафт” пользователей по аналогии с глобусом. Размером здесь показана популярность пользователя, т.е. число раз, когда он был упомянут другими, а цветом — принадлежность к тому или иному кластеру, выделенному автоматически. Несмотря на то, что представители противоборствующих сил некоторым образом кучкуются вместе, чёткой и однозначной их поляризации, наподобие той, что была получена на знаменитой ныне визуализации Лады Адамик, отображающей связи между политическими блогами в США перед выборами 2004 года, здесь увидеть нельзя. Свидетельствует ли это об отсутствии эффекта “Echo Chamber” при котором люди получают и производят только ту информацию, что близка их взглядам, не обмениваясь ею со сторонниками противоположных точек зрения, сказать сложно. По крайней мере без тщательного анализа содержания сообщений.

На самом деле, в сыром виде, всё выглядит несколько менее приглядно:

Сеть упоминаний между пользователями: непричёсанный вид.
Сеть упоминаний между пользователями: непричёсанный вид.

Несмотря на меньшие эстетические качества, вторая картинка гораздо лучше подчёркивает факт аномальной удалённости пользователя @alex_yarosh и его окружения от остальных. Также столь аномальное скопление пользователей, которые ретвитили только одного пользователя, которого можно условно назвать “лидером мнений” (да простят меня Лазарсфельд и преподаватели социологии), являлось визуальным признаком на то, что все они являлись ботами. Являлись ли они таковыми или нет — смотрите в следующей серии.

Сетевая визуализация упоминаний в Твиттере во время TechCrunch Moscow (#tcmoscow)

Продолжая тему конструктивной критики материалов Forbes, популяризирующих анализ социальных сетей, обращусь к другой публикации, вышедшей полгода назад, которая была посвящена анализу сетевых данных из Твиттера.

На сей раз статья практически не вызывает упрёков, а заголовок и вовсе достоин аплодисментов, т.к. над Clout Score в академическом мире не смеялся только ленивый. Единственным замечанием, которое стоило бы добавить к её тексту, является комментарий по поводу ограничений на количество и, как следствие, качество данных из Твиттера, которые можно собрать с помощью NodeXL.

Поэтому вместо критики позволю себе лишь проиллюстрировать сказанное в статье примером из наших реалий. Как я неоднократно говорил в своих выступлениях, а может быть даже и где-то писал, один из немногих типов данных из Твиттера в России, которые можно относительно смело анализировать с помощью NodeXL — это тематические конференции, связанные с Интернетом и IT. Одна из таких конференций прошла как раз вчера — речь идёт о TechCrunch Moscow.

Сегодня днём я собрал в Твиттере небольшой датасет, основанный на официальном хэштеге мероприятия #tcmoscow. Среди полученных данных оказалось 1735 твитов, содержащих упоминание других пользователей твиттера. Подобного рода данные вполне пригодны для сетевого анализа, поэтому я на скорую руку сделал по ним описательный анализ и визуализацию.

Вот картинка, аналогичная тем, что представлены в статье Forbes:
twitter mention network visualization techcrunch moscowЭта же картинка + результаты описательной статистики в галерее NodeXL.
Если пользоваться классификацией, приведённой в статье, то она как раз таки идеально вписывается в тип

2. In-Group Network: Seen at conferences and tight knit groups of people, this type of network rarely ventures outside of its membership. A big miss in most cases if you are a brand. Here’s an example of one for Social Business.

Все конференции, которые я анализировал подобным образом (как правило, это были РИФы и RIW), выглядели примерно также.

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

К сожалению, сделать ту картинку более читабельной и тем более интерактивной у меня времени не хватило, поэтому пока что для более подробного ознакомления предлагаю аналогичный граф, построенный в Gephi:

 

UPD. Интерактивная версия данного графа, выполненная на основе Node.js находится здесь.

Также выкладываю небольшой список наиболее очевидных ТОПов по собранным данным (цифра во втором столбце отображает количество упоминаний).

ТОП-10 самых популярных пользователей

@tcmoscow 254
@techcrunch 142
@digitaloctober 141
@mikebutcher 113
@sbeloussov 91
@acronis 82
@runacapital 61
@nginx 45
@metkere 40
@m1try 32

ТОП-10 хэштегов:

#tcmoscow 1187
#techcrunch 35
#digitaloctober 26
#acronis 16
#startups 12
#facebook 7
#medesk 7
#video 7
#russianstartuprating 6
#10tracks 6

ТОП-10 ссылок:

http://bit.ly/1225c7o 63
http://goo.gl/sznkWV 16
http://tcrn.ch/19ru4qs 14
http://tc.digitaloctober.ru/startups 7
http://tcrn.ch/18sSaUA 6
http://Oktogo.ru 6
http://www.proved.co 6
http://instagram.com/p/hsjDbuE10L/ 6
http://tc.digitaloctober.com/ 5
http://instagram.com/p/hqa87tJtKm/ 4

На сегодня всё.

Визуализация социальной сети сотрудников Oxford Internet Institute

Во время Summer Doctoral Programme в Oxford Internet Institute, с которой я только что вернулся, был вид групповой деятельности, под названием legacy project. По сути, это должен был быть мини-проект, выполненный в группе за неделю. Причём результатом проекта должен был стать какой-либо артефакт в виде презентации, визуализации и чего-либо ещё, что можно разместить на сайте Института.

Записавшись в группу, посвященную метода исследований в Интернете, я, наивный, полагал, что мы займёмся чем-нибудь прикладным. Например, проанализируем записи в Твиттере с хэштегом мероприятия. Какой там?! Впечатлённые ghost tour по Оксфорду, коллеги решили устроить… ЦИРК! Т.е. театрализованное представление с ролями, репликами и т.д. Результат я чуть позже выложу, благо он уже есть на YouTube.

Я же в подобного рода мероприятиях не участвовал с детства, поэтом решил в очередной раз отличиться самостоятельно. Т.к. анализ твиттора уже попса, то я заморочился и нарисовал визуализацию связей между исследователями Oxford Internet Institute на основе участия в совместных проектах.

К сожалению, свободного времени катастрофически нехватало, поэтому пока ограничился статичной картинкой. В дальнейшем планирую на этих данных протестировать плагин Gephi для экспорта интерактивных визуализаций.

Список исследовательских проектов Института, на основе которого была построена данная визуализация, можно посмотреть на сайте Oxford Internet Institute.

P.S. Угадаете с трёх раз, кто является директором Института?

Первый блин в Gephi

Поняв, что желаемую динамическую визуализацию сети концептов, используемых в ходе дискуссий в LiveJournal, я получу скорее в Gephi, нежели в ORA, решил перебороть первое неприятие и познакомиться с программой поближе.

К сожалению, первые впечатления только усилились. Более непродуманного и нелогичного интерфейса я ещё в жизни не встречал! После 2х часов мучений, максимум, чего мне удалось добиться, было это:

Данная визуализация построена по данным широко известного в узких кругах скандала под названием “Куракингейт”. В данном случае узлы представляют блоггеров, а связи — комментирование одним блоггером записей или комментариев другого блоггера.

Лично мне бы хотелось как минимум наличия стрелок на конце линий, однако в Gephi эта задача не из тривиальных. Буду разбираться дальше.

Динамическая визуализация сети комментирования Живого Журнала в ORA

Развлечения ради сделал динамическую визуализацию сети комментирования в Живом Журнале с помощью ORA. Каждый узел – блоггер, оставивший комментарий, каждая связь указывает на блоггера, которому этот комментарий адресован. В качестве объекта был использован пост об отчислении студенток-активисток с соцфака МГУ и последовавшая за ним дискуссия.

Dynamic Visualization of Comment Networks in LiveJournal from Jarens Gald on Vimeo.

В общем-то, ORA – не самый подходящий инструмент для данной задачи, т.к. здесь не хватает возможности динамического изменения размера узла/веса связи в зависимости от центральности/количества комментариев. Точнее, это теоретически можно сделать, но вручную, сохраняя каждую картинку как кадр для *.gif анимации. Нужно будет предложить добавить подобный функционал автоматически.

В идеале, хотелось бы получить что-то наподобие этого:

Но, как я уже говорил, с Gephi у меня пока отношения не складываются. Будем работать.