Программный модуль построения социальных графов сообществ сети "ВКонтакте"
Модулярность - скалярная величина из заданного отрезка, количественно описывающая неформальное определение структуры сообществ. "ВКонтакте" - социальная сеть с удобным интерфейсом и функционалом для общения и обмена информацией между пользователями.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 30.08.2021 |
Размер файла | 942,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
Программный модуль построения социальных графов сообществ сети «ВКонтакте»
Вронский К.А., Шеленок Е.А.
Вронский К. А. - студент группы ИС(аб)-71 кафедры «Автоматика и системотехника», Шеленок Е. А. - канд. техн. наук, доц. кафедры «Автоматика и системотехника.
В статье рассматривается разработка алгоритмического и программного обеспечение для построения социальных графов сообществ сети «ВКонтакте», позволяющее визуализировать получаемые результаты. В качестве инструментов решения задачи используются: положения теории графов, язык программирования Python, редактор исходного кода Visual Studio Code, визуализатор графов Gephi.
Ключевые слова: социальный граф, социальная сеть «ВКонтакте», теория графов, матрица смежности, модулярность, Python, Gephi.
The Software Module for Construction of Social Graphs of the “Vk.Com” Network Communities
Vronskiy K. A. - Pacific National University, Khabarovsk, Russian Federation Shelenok E. A. - Pacific National University, Khabarovsk, Russian Federation
Abstract: The article discusses the development of algorithmic- and software for building social graphs of the “vk.com” network communities, which allows to visualize the obtained results. The graph theory, the Python programming language, the source code editor Visual Studio Code and the graph visualizer Gephi are used as tools to solve the problem
Keywords: social graph, social network “vk.com”, graph theory, adjacency matrix, modularity, Python, Gephi.
Введение
Социальная сеть - это социальная структура, состоящая из узлов (обычно это лица или организации), которые связаны одним или более типами взаимозависимости, такими как: ценности, взгляды, мнения, идеи, дружба, финансовые взаимоотношения, конфликты, торговля и так далее. Аналитики социальных сетей оперируют терминами «узлы» и «связи».
Узел - это отдельный актор в пределах этой сети; связи - это отношения между узлами. Модель социальной сети может быть очень сложной: они включают в себя самые разные уровни связей от семейных до национальных и общечеловеческих. Социальные сети играют важную роль в том, как люди решают проблемы (например, выбор товара), функционируют организации, происходит личностный рост и развитие, обучение.
В самой простой форме социальная сеть это карта всех релевантных связей между узлами, и ее основу составляет социальный граф - явление, лежащее на стыке дискретной математики и социологии. Социальный граф представляет собой множество вершин, представляющих участников сети и различные виды социальных связей между ними. Возможны два вида связей: «явные», такие как друзья или коллеги, и «неявные», например, такие как одногруппники. Все пользователи с их историей переписки, фотографиями, видеофайлами и персональными данными хранятся в базах данных распределенных серверных кластеров.
В настоящее время одной из самых актуальных задач современной науки о данных является задача построения и визуализации социальных графов для различных сообществ или отдельных пользователей социальных сетей с целью анализа результатов по разным аспектам: социальным, культурным, профессиональным и другим. В настоящей работе с использованием языка Python, среды Visual Studio Code и редактора Gephi рассматриваются результаты проектирования программно-алгоритмического обеспечения системы построения социальных графов сообществ сети «ВКонтакте».
Социальные графы, сообщества и модулярность
К настоящему моменту времени четкого формального определения, какой граф можно называть социальным, не существует. Ясно, что в основе этого понятия лежит граф знакомств между людьми в некотором обществе. Можно сказать, что социальный граф -- это специальный вид графов, который характеризуется следующим набором свойств [1]:
Одна большая общая компонента связности, которая захватывает большинство вершин.
Распределение на степенях вершин. Социальные сети относятся к так называемым безмасштабным сетям (Scale-free network). Это означает, что количество вершин убывает [2].
Среднее расстояние. Социальные сети в среднем имеют очень маленькое расстояние между двумя случайными вершинами. Это свойство может быть продемонстрирована на модели современного общества. Существует так называемый феномен тесного мира (или теория шести рукопожатий), согласно которому любые два человека на планете разделены в среднем пятью уровнями общих знакомых и, соответственно, шестью уровнями связей.
Коэффициент кластеризации. Существует множество коэффициентов для графа, которые показывают некоторую его качественную характеристику. Обычно эту характеристику сравнивают с ее средним значением на случайном графе [1].
Структура сообществ. Коэффициент кластеризации показывает, насколько сильно вершины склонны образовывать группы (или сообщества), которые характеризуются тем, что вершины, входящие в одну группу, соединены между собой гораздо плотнее, чем со всем остальным графом. Если объединить вершины в сообщества, то можно без потери информации о структуре графа исследовать его на более абстрактном уровне. На рис. 1 первый граф (слева) имеет явные 3 сообщества, в то время как второй граф (справа) - нет.
Рис. 1. Пример графа, имеющего структуру сообществ (слева) и графа, не имеющего сообществ (справа)
Представленный список свойств не является полным, однако, на нем видна специфичность социальных графов, что позволяет выделить их в отдельную категорию.
Так же, как и социальный граф, понятие сообщества сложно формализовать. На концептуальном уровне сообществом называется такая группа вершин, что внутригрупповые связи гораздо плотнее межгрупповых [ 1]. Обычно дается предположение, что сообщество состоит из одной компоненты связности. В противном случае его можно разделить на несколько более мелких сообществ.
В настоящей работе используется предположение, согласно которому каждая вершина графа входит в одно и только одно сообщество. При этом, что из предположения следует, что сообщества полностью покрывают граф. Тогда можно говорить о поиске сообществ в графе как о задаче поиска разбиения множества вершин на подмножества, которое минимизирует некоторый функционал.
Изначально не известно истинное разбиение на сообщества. Такая ситуация встречается чаще всего, особенно для графов большого размера. В таком случае для оценки качества используется значение функционала модулярности, предложенным Ньюманом и Гирваном в ходе разработки алгоритма кластеризации вершин графа [3].
Модулярность - это скалярная величина из отрезка [-1, 1], которая количественно описывает неформальное определение структуры сообществ и вычисляется по формуле:
где Ay - элементы матрицы смежности графа; diи dj степени i и j вершины графа; Ciи Cj -- метки вершины (номер сообщества, к которому относится вершина); m -- общее количество ребер в графе; ф(C, C. ) -- дельта-функция: равна единице, если Ci= Cj, иначе нулю.
Задача поиска выделения сообществ в графе сводится к поиску значений С,, максимизирующих значение модулярности.
Формула имеет множество обобщений, например, для взвешенных гра - фов, под Aj понимается вес ребра, соединяющего вершины іи j, а
Исходя из вышесказанного можно выделить следующие достоинства модулярности:
Модулярность достаточно просто интерпретируется. Ее значение равно разности между долей ребер внутри сообщества и ожидаемой доли связей, если бы ребра были размещены случайно.
Модулярность возможно эффективно пересчитывать при небольших изменениях в кластерах. Например, если добавить изолированную вершину в кластер С, то изменение функционала для взвешенного графа можно посчитать как
где ?tot- сумма весов ребер внутри сообщества С; ?tot- сумма весов всех ребер инцидентных вершинам из С; d, -- сумма весов ребер инцидентных вершине i; di?in-- сумма весов ребер соединяющих вершину d, и вершину из С; m-- сумма весов всех ребер [4].
Недостатками модулярности являются:
Функционал не является непрерывным, и задача его оптимизации - дискретная. Для поиска глобального оптимума используют приближенные схемы. Некоторые из них оптимизируют значение функционала, другие по значению модулярности выбирают наилучшее решение из найденных, то есть без гарантий локальной оптимальности решения.
Проблема разрешающей способности (невозможность анализа сообщества небольшого размера). Эта проблема решается путем использования модифицированного функционала, который сохраняет все достоинства и добавляет параметр масштабирования [5].
Инструментарий VKAPI
«ВКонтакте» - это социальная сеть, самая популярная в русскоязычном сегменте интернета, с удобным интерфейсом и функционалом для общения и обмена друг с другом информацией. Как и в других социальных сетях, принцип действия основан на создании пользователями персональных страниц - так называемых профилей, и обмена различной информацией, как текстовой, в виде небольших сообщений, так и графической (обмен изображениями и фотографиями).
Если рассматривать «ВКонтакте» как источник необходимой информации для парсинга, можно столкнутся со следующими проблемными группами пользователей, которые не будут попадать в нашу выборку, по причине неактуальности или конфиденциальности данных: удаленные пользователи, не активные пользователи, пользователи с закрытым профилем.
На рис. 2 представлено предположительное изменение активности пользователей с течением времени [6].
Рис. 2. Возможное изменение активности пользователей с течением времени
API ВКонтакте (VKAPI) - это интерфейс, который позволяет получать информацию из базы данных сайта «vk.com» с помощью http-запросов к специальному серверу. Синтаксис запросов и тип возвращаемых ими данных строго определены на стороне самого сервиса, который установил ограничение на количество отправляемых запросов в секунду - 3 и в сутки - 3000
Например, для получения данных о пользователе с идентификатором 351601988 необходимо составить запрос такого вида:
https://api.vk.com/method/users .get?user_id=351601988&v=5.52
Рассмотрим отдельно все его составляющие.
https:// -- протокол соединения.
api.vk.com/method-- адрес API-сервиса.
users.get-- название метода APIВКонтакте. Методы представляют условные команды, которые соответствуют той или иной операции с базой данных: получение информации, запись или удаление.
?user_id=351601988&v=5.52 -- параметры запроса. Мы сообщаем серве-ру, что хотим получить данные о пользователе с id=351601988 и формат этих данных должен соответствовать версии API5.52.
В ответ сервер вернет JSON-объект с запрошенными данными (или сообщение об ошибке). JSON- это формат записи данных в виде пар «имя свойства»: «значение».
Например, ответ на подобный запрос может выглядеть так: {"response":[{"id": 351601988, "first_name": "Кирилл", "last_name": "Вронский"}]}
Основные результаты
С целью построения социальных графов сообществ и пользователей сети «ВКонтакте» было рарзаьотано программное обеспечение, основанное на возможностях инструментария VKAPI. В качестве целевых данных будут выступать социальный граф, визуализированный по одному из алгоритмов [7] и графики зависимостей центральностей от показателя ранжирования Пейджа [1] и файл формата «json», в котором будут храниться структурированные данные. Входными данными программы служат уникальная ссылка пользователя, либо ссылка сообщества (группы). Программа получает в теле запроса следующие данные: фамилия, идентификатор пользователя, имя, пол, город и данные об образовательном(-ых) учреждении(-иях). Анализ сообществ. Рассмотрим работоспособность алгоритма на примере анализа сообщества «Двигатель ФАИТ ТОГУ» (короткая ссылка «fait_ik»), состоящего из 273 человек. Процесс получения данных показан на рис. 3.
Рис. 3. Процесс получения данных подписчиков сообщества
В качестве результата выполнения программа выведет графики зависимостей центральностей от показателя ранжирования Пейджа, что показано на рис. 4.
Рис. 4. Графики зависимости центральностей от показателя ранжирования Пэйджа (сверху - центральность по степени и близости, снизу - центральность по посредничеству и влиятельности)
модулярность социальный сеть интерфейс
Выходные данные в формате «.json» будут иметь разную степень заполненности, что обусловлено условиями конфиденциальности, установленными каждым пользователем. На рис. 5 представлены данные о пользователе, с максимально необходимой степенью заполненностью профиля.
Рис. 5. Выходные данных о пользователях в файле «fait_ik.json»
Выходные параметры формата «.graphml», необходимые для их дальнейшей их обработки в визуализаторе графов Gephi, имеют вид, представленный на рис. 6.
Рис. 6.Выходные данных о пользователях в файле «fait ik.json»
Далее анализируем полученный граф в визуализаторе графов Gephi. При экспорте файла в визуализатор, устанавливается, что данный граф имеет 273 узла и 2000 ребер. Для анализа использован алгоритм силового атласа. Для упрощения восприятия информации выведем для каждого узла графа имя пользователя, расположенные таким образом, чтобы соседние узлы не мешали друг другу (рис. 7).
Рис. 7. Результирующий граф
С помощью встроенной функции вычисления модулярности выделим сообщества, в которых состоят пользователи на найденном графе. Для увеличения точности работы алгоритма рандомизируем значения, что позволяет получить лучшую декомпозицию и установим разрешение в размере 1.5, чтобы алгоритм не учитывал мелкие сообщества. Полученные результаты в виде графа, представленного на рис. 8, где цвет каждого узла соответствует найденным сообществам полученным сообществам.
Рис. 8. Граф с выделением сообществ
С целью получения информации в разрезе мелких сообществах достаточно установить разрешение поиска сообществ в размере 1.0. Таким образом мы получим граф, показанный на рис. 9.
Рис. 9. Граф с учетом мелких сообществ
Рис. 10. Граф с сортировкой по полу пользователей (зеленый - мужской, розовый - женский)
По сравнению с прошлым тестом число сообществ в графе увеличилось с 13 до 17. Коэффициент модулярности увеличился с 0,342 до 0,430. Это обусловлено тем, что в данном случае алгоритм учитывает более мелкие сообщества и, согласно формуле (1), пропорционально увеличивает количество матриц смежности для вычисления коэффициента модулярности.
Отметим, что при парсинге данных пользователей в параметры графа также заносились их пол, город, университет. Таким образом мы имеем возможность представить граф, в котором узлы будут выделены соответствующим цветом для каждого из возможных значений (рис. 10 - 12). Метка nullозначает, что пользователь не заполнил или скрыл эти данные в своем профиле. Для упрощения восприятия при визуализации информации и сортировке узлов по данным значениям был использован алгоритм круговой укладки графа с запретом перекрытия имен узлов.
Рис. 11. Граф с сортировкой по университету пользователей
Рис. 12. Граф с сортировкой по городу проживания пользователей
Заключение
Разработано программно-алгоритмическое обеспечение на основе языка программирования Python с использованием инструментария VKAPIна основе данных профилей пользователей - подписчики сообщества (группы). Выполнен статистический анализ на основе отношений различных видов центральностей с показателями ранжирования Пейджа, что напрямую отражает корреляционные коэффициенты, которые показывают взаимосвязь между узлами графа. С использованием средств Gephi проведен визуальный анализ, позволяющий выделять в полученном графе сообщества с заданным разрешением (точностью), позволяя исследовать тот или иной круг лиц на отношение к определенной компании (сообществу), то есть предсказывать их.
Разработанное программное обеспечение способно в кратчайшие сроки получать необходимую для статистического и визуального анализа информацию разной степени заполненности.
Литература
1. Sherman M. Implicit vs. explicit social graphs, Matt Sherman's blog of web, 2011, URL: http://clipperhouse.com/2011/06/19/implicit-vs-explicit-social-graphs/ (retrieved date February 3, 2014).
2. Briggs G. Building the Implicit Social Graph, The Moz Blog, 2011.
3. Russell M. A. Mining the Social Web. - O'Reilly Media, 2011.
4. Cruz I.F., Tamassia R. How to visualize a graph: Specification and algorithms // Technical report Tufts University. - 1994.
5. Kobourov S. G. Spring embedders and force directed graph drawing algorithms. - 2012, Retrieved from http://arxiv.org/abs/1201.3011
6. Abraham A., Hassanien A. E., Snвsel V. Computational Social Network Analysis: Trends, Tools and Research Advances. - London: Springer, 2009.
7. Goble G., The History of Social Networking // Digital Trends. - 2012, URL: http://www.digitaltrends.com/features/ (retrieved date January 12, 2014).
Размещено на Allbest.ru
...Подобные документы
Сущность понятия "социальная сеть". Открытые, закрытые сети, система "друзей", "групп". Имидж человека в социальных сетях. Поиск должников банков. Популярные сети Рунета. Социальная сеть "ВКонтакте", ее популярность в России. Современные средства общения.
презентация [4,6 M], добавлен 14.12.2011Характеристика предпосылок возникновения и развития Интернет-технологий. Исследование влияния социальной сети Вконтакте на общественные коммуникации, основных достоинств и недостатков общения через сеть. Анализ статистики пользователей и структуры сайта.
курсовая работа [43,5 K], добавлен 19.12.2011История развития и классификация социальных сетей. Характеристика наиболее популярных социальных сетей. Сети Рунета: ВКонтакте, Одноклассники, Мой круг, Мой мир (на www.mail.ru), RuSpace. Социальная сеть Facebook как лидер среди социальных сетей.
реферат [4,0 M], добавлен 23.06.2012Внедрение информационных технологий. Использование социальных сетей в образовании. Создание группы "Помощь в педпрактике" в "ВКонтакте". Использование группы в образовательном процессе. Основные отличия специализированных социальных сетей от обычных.
курсовая работа [905,1 K], добавлен 10.01.2014Разработка системы мониторинга пользовательских запросов в крупной социальной сети - ООО "В Контакте". Анализ маркетингового положения компании в сфере социальных сетей. Характеристика потребительского сегмента. Техническая поддержка социальных сетей.
дипломная работа [3,0 M], добавлен 25.10.2015История создания и развития крупнейших социальных сетей в интернете. Анализ роста количества рекламы в них. Принципы построения рейтинга популярности. Опасности, которые они несут для человека и возможность использования его конфиденциальной информации.
реферат [411,6 K], добавлен 19.01.2015Метод минимального сечения, его модификации. Граф с выраженной структурой сообществ. Иерархическая и частичная кластеризации. Случайно генерируемые графы. Оптимизация найденной структуры. Связь между количеством кластеров, модулярностью и спектром.
реферат [807,9 K], добавлен 22.10.2016Характерные особенности социальной сети. Описание социальных сетей "Facebook", "Вконтакте", "Одноклассники". Разработка собственного подобного сайта, с регистрацией профилей, загрузкой изображений, отправкой сообщений, поиском, разграничением приватности.
курсовая работа [1,9 M], добавлен 30.01.2014Автоматизация учета и управления, использование тиражных программных продуктов системы "1С: Предприятие". OLE - технология управления и обмена информацией между программным интерфейсом другими приложениями. Установка среды разработки, совместимой с 1С.
курсовая работа [558,9 K], добавлен 20.03.2013Типы сетей: одноранговые, с выделенным сервером. Принцип действия модели OSI. Сетевые операционные системы. Работа с сетевыми картами и устройствами связи. Схема обмена информацией между элементами системы поликлиники. Программный пакет Net Cracker.
дипломная работа [3,7 M], добавлен 15.03.2013Организация информационного обмена между пользователями образовательного учреждения и обеспечение доступа к Интернету. Технические требования к сети. Поэтажный план здания, расположение учебного и административного корпусов. Составление сметы расходов.
курсовая работа [600,6 K], добавлен 15.03.2011Понятие высоконагруженных компьютерных систем. Традиционные качества, интерактивность, распределенная система, большое количество пользователей. Распределение задач сервером. Балансировка нагрузки. Исследование высоконагруженных систем Google и Вконтакте.
дипломная работа [552,9 K], добавлен 11.12.2015Использование социальных сетей и медиа компаниями. Программа исследования факторов подписки на официальные аккаунты брендов в Twitter и Instagram. Применение мобильного Интернета целевыми группами российских потребителей. Тестируемые гипотезы и модель.
дипломная работа [2,9 M], добавлен 30.12.2015Основные принципы построения промышленных сетей. Интерфейсы RS485, RS422, RS232: принципы построения и основные параметры. Зависимость максимальной скорости передачи "токовой петли" от длины неэкранированной витой пары. Протоколы обмена информацией.
дипломная работа [336,5 K], добавлен 26.05.2014Циклы обмена информацией в режиме прямого доступа к памяти. Управляющие сигналы, формируемые процессором и определяющие моменты времени. Запросы на обмен информацией по прерываниям. Мультиплексирование шин адреса и данных. Протоколы обмена информацией.
лекция [29,0 K], добавлен 02.04.2015Классификация компьютерных сетей как совокупности аппаратных и программных средств, позволяющих объединить компьютеры в единую распределенную систему обработки, хранения и обмена информацией. Функции сетевых операционных систем Unix, Linux, Windows.
презентация [108,0 K], добавлен 04.05.2012Особенности кластеризации социальных сетей, методы распознавания сообществ. Особенности локального прореживания графа. Разработка рекомендаций по выбору метода кластеризации для выделенных классов задач. Оптимизация процесса дальнейшей обработки данных.
курсовая работа [1,8 M], добавлен 30.06.2017Понятие и история развития социальной сети как веб-сайта, предназначенного для общения между людьми и обмена информации. Главные функции, задачи и направления их деятельности, правила и цели размещения рекламы. Опасности размещения персональных данных.
презентация [1,4 M], добавлен 18.05.2015Количество социальных сетей в Интернете и численность их участников. Форумы и блоги как наиболее распространенные формы общения с помощью Web-технологий. Регистрация пользователей, учетные данные, сеанс работы в среде сети. Виды поиска информации.
реферат [10,0 K], добавлен 13.02.2011Анализ системы распределенных локальных сетей и информационного обмена между ними через Интернет. Отличительные черты корпоративной сети, определение проблем информационной безопасности в Интернете. Технология построения виртуальной защищенной сети – VPN.
курсовая работа [3,7 M], добавлен 02.07.2011