Интеллектуальный анализ данных для прогнозного анализа социальных сетей

Опубликовано: 2022-03-11

Социальные сети в той или иной форме существовали с тех пор, как люди начали взаимодействовать друг с другом. Действительно, объединив двух или более человек, вы получите основу социальной сети. Поэтому неудивительно, что в сегодняшнем мире, где Интернет вездесущ, онлайновые социальные сети стали абсолютно повсеместными.

В этом мире онлайн-социальных сетей особенно захватывающим явлением последнего десятилетия стал взрывной рост Twitter, часто описываемого как «SMS Интернета». Запущенный в 2006 году, Twitter быстро завоевал мировую популярность и вошел в десятку самых посещаемых веб-сайтов в мире. По состоянию на май 2015 года Twitter насчитывает 302 миллиона активных пользователей, которые в совокупности публикуют 500 миллионов твитов в день. И эти цифры постоянно растут.

Учитывая этот огромный объем данных социальных сетей, аналитики пришли к выводу, что Twitter является виртуальной сокровищницей информации для интеллектуального анализа данных, анализа социальных сетей и информации для определения тенденций общественного мнения и поддержки (или противодействия) различным политическим и социальные инициативы. Компании, занимающиеся наукой о данных, находят трендовые темы в Твиттере все более полезными в качестве ценного показателя для измерения общественного мнения.

анализ социальных сетей и интеллектуальный анализ данных

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

Выборы

Всеобщие президентские выборы прошли в Бразилии 5 октября 2014 года. Ни один кандидат не получил более 50% голосов, поэтому 26 октября был проведен второй тур выборов.

В первом туре Дилма Руссефф (Partido dos Trabalhadores) набрала 41,6% голосов, опередив Эсио Невеша (Partido da Social Democracia Brasileira) с 33,6% и Марину Силву (Partido Socialista Brasileiro) с 21,3%. Руссеф и Невес участвовали во втором туре 26 октября, при этом Руссефф была переизбрана с небольшим отрывом, 51,6% против 48,4% Невеса. Анализ в этой статье конкретно относится к второму туру выборов 26 октября.

Partido dos Trabalhadores (PT) — одна из крупнейших политических партий Бразилии. Это политическая партия действующего и бывшего президентов Дилмы Руссеф и Луиса Инасиу Лула да Силва. Partido da Social Democracia Brasileira (PSDB) — политическая партия предыдущего президента Фернандо Энрике Кардосо.

Интеллектуальный анализ данных и извлечение данных о трендах Twitter

Я начал интеллектуальный анализ данных социальных сетей, извлекая данные Twitter Trend Topic для 14 бразильских городов, для которых данные предоставляются через Twitter API, а именно: Бразилиа, Белен, Белу-Оризонти, Куритиба, Порту-Алегри, Ресифи, Рио-де-Жанейро, Сальвадор, Сан. Пауло, Кампинас, Форталеза, Гояния, Манаус и Сан-Луис.

Я запросил Twitter REST API, чтобы получить 10 самых популярных тем Twitter Trend для этих 14 городов за 20-минутный интервал (ограниченный некоторыми ограничениями, которые Twitter имеет для своего API). Ограничение запроса этими 14 городами осуществляется путем указания их Yahoo! GeoPlanet WOEID (где на Земле ID).

Для этого доказательства концепции я использовал Python и библиотеку Twitter (умело названную «twitter»), чтобы получить все данные социальных сетей за день второго тура выборов (26 октября), а также за два дня до этого (октябрь 24 и 25). Каждый день я выполнял около 70 различных запросов, чтобы определить актуальные темы.

Ниже приведен пример объекта JSON, возвращаемого в ответ на каждый запрос (этот пример основан на запросе данных от 26 октября в 00:40:00 и показывает данные только для Белу-Оризонти).

 [{"created_at": "2014-10-26T02:32:59Z", "trends": [{"url": "http://twitter.com/search?q=%23GolpeNoJN", "name": "#GolpeNoJN", "query": "%23GolpeNoJN", "promoted_content": null}, {"url": "http://twitter.com/search?q=%23SomosTodosDilma", "name": "#SomosTodosDilma", "query": "%23SomosTodosDilma", "promoted_content": null}, {"url": "http://twitter.com/search?q=%23EAecio45Confirma", "name": "#EAecio45Confirma", "query": "%23EAecio45Confirma", "promoted_content": null}, {"url": "http://twitter.com/search?q=Uilson", "name": "Uilson", "query": "Uilson", "promoted_content": null}, {"url": "http://twitter.com/search?q=%22Lucas+Silva%22", "name": "Lucas Silva", "query": "%22Lucas+Silva%22", "promoted_content": null}, {"url": "http://twitter.com/search?q=%22Marcelo+Oliveira%22", "name": "Marcelo Oliveira", "query": "%22Marcelo+Oliveira%22", "promoted_content": null}, {"url": "http://twitter.com/search?q=Cruzeiro", "name": "Cruzeiro", "query": "Cruzeiro", "promoted_content": null}, {"url": "http://twitter.com/search?q=Tupi", "name": "Tupi", "query": "Tupi", "promoted_content": null}, {"url": "http://twitter.com/search?q=%22Real+x+Bar%C3%A7a%22", "name": "Real x Bar\u00e7a", "query": "%22Real+x+Bar%C3%A7a%22", "promoted_content": null}, {"url": "http://twitter.com/search?q=Wanessa", "name": "Wanessa", "query": "Wanessa", "promoted_content": null} ], "as_of": "2014-10-26T02:40:03Z", "locations": [{"name": "Belo Horizonte", "woeid": 455821}] }]

Краткое введение в анализ социальных сетей

Теория социальных сетей — это изучение того, как люди, организации или группы взаимодействуют с другими внутри своей сети. Существует три основных типа социальных сетей:

  • Эгоцентрические сети связаны с одним узлом или человеком (например, с вами и всеми вашими друзьями и родственниками).
  • Социально-центрические сети по умолчанию являются закрытыми сетями. Двумя часто используемыми примерами этого типа сети являются дети в классе или работники внутри организации.
  • Сети с открытой системой — это сети, в которых границы четко не определены, что обычно делает этот тип сети наиболее трудным для изучения. Тип социально-политической сети, которую мы анализируем в этой статье, является примером сети открытой системы.

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

Анализ социальных сетей исследует структуру отношений между социальными субъектами. Эти сущности часто являются людьми, но также могут быть социальными группами, политическими организациями, финансовыми сетями, жителями сообщества, гражданами страны и так далее. Эмпирическое изучение сетей играет центральную роль в социальных науках, и многие математические и статистические инструменты, используемые для изучения сетей, были впервые разработаны в социологии.

Создание сети

Чтобы создать сеть с использованием тем Twitter Trend, я определил следующие правила:

  • Каждый город является вершиной (то есть узлом) в сети.
  • Если между двумя городами есть хотя бы одна общая тенденция, то между этими городами существует преимущество (т. е. связь).
  • Каждое ребро взвешивается в соответствии с количеством общих тем трендов между этими двумя городами (т. е. чем больше общих тем трендов есть у двух городов, тем больший вес придается связи между ними).

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

Проиллюстрирован процесс создания социальной сети

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

Хотя порядок тем в тренде потенциально может иметь некоторое значение для анализа, в целях упрощения проверки концепции я решил игнорировать порядок тем в списке тем в тренде.

Топология сети

Топология сети — это, по сути, расположение различных элементов (связей, узлов и т. д.) сети. Топология анализируемой нами социальной сети не претерпевает существенных изменений в течение трех дней, поскольку узлы сети (т. е. 14 городов) остаются неизменными. Однако различия могут быть обнаружены в весах связей между узлами, поскольку количество общих тем трендов между городами варьируется в течение трех дней, как показано в приведенном ниже сравнении топологии сети на 24-й и 25-й день.

Проиллюстрирована топология социальной сети

Прогнозирование результатов выборов с использованием данных о тенденциях в Твиттере

Чтобы помочь нам в прогнозировании результатов выборов, мы учитываем не только темы тенденций, общие для городов, но и то, как содержание этих тем связано с вероятной поддержкой каждой из двух основных политических партий; т. е. Partido dos Trabalhadores (PT) и Partido da Social Democracia Brasileira (PSDB).

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

Затем для каждого узла я считаю:

  • количество его ссылок, которые включают термины, указывающие на поддержку PT
  • количество его ссылок, которые включают термины, указывающие на поддержку PSDB

Снова используя город Фортазела в качестве примера, я получил следующие подсчеты:

 Fortaleza['PT'] = 56 Fortaleza['PDSB'] = 37

Таким образом, мы делаем вывод, что жители Форталезы в целом отдают предпочтение Partido dos Trabalhadores (PT).

Результаты и выводы

На основе этого алгоритма анализ дает результаты, удивительно похожие на реальные результаты выборов, особенно если учесть общую простоту нашего подхода. Вот сравнение прогнозных результатов, основанных на данных Twitter Trend Topic, с реальными результатами выборов (красный цвет используется для обозначения Partido dos Trabalhadores, а синий — для обозначения Partido da Social Democracia Brasileira):

анализ социальных сетей и интеллектуальный анализ данных

Улучшенная научная строгость, а также более сложные алгоритмы и метрики, несомненно, еще больше улучшат результаты.

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

  • Центральность узлов. Существует множество показателей центральности узлов, которые можно использовать для определения наиболее важных или влиятельных узлов в сети. Центральность по промежуточности, например, считает узел очень важным, если он образует мосты между многими другими узлами. Центральность собственного значения, с другой стороны, основана на важности узла на количестве других очень важных узлов, которые связаны с ним.

  • Коэффициент кластеризации. Коэффициент кластеризации узла измеряет степень, в которой «соседи» узла связаны друг с другом. Это еще одна мера, которая может иметь отношение к оценке предполагаемой степени влияния узла на соседние узлы.

  • Степень центральности. Степень центральности основана на количестве связей (т. е. соединений) с узлом. Это одна из самых простых мер «значительности» узла в сети.

Но даже без такого уровня сложности результаты, полученные с помощью этого простого доказательства концепции, стали убедительной демонстрацией эффективного прогностического анализа с использованием данных Twitter Trend Topic. Очевидно, что в будущем существует потенциал для дальнейшего развития анализа данных социальных сетей.


Дальнейшее чтение в блоге Toptal Engineering:

  • Наука о графических данных с помощью Python/NetworkX