Современный интернет немыслим без социальных сетей, а социальные сети — без понятия социального графа. В этой статье мы подробно разберём, что скрывается за этим термином, как устроены социальные графы, какие задачи они решают и как их можно визуализировать с помощью программных инструментов.
Что такое социальный граф
Социальный граф (Social Graph) — это граф, узлы которого представлены социальными объектами, такими как пользовательские профили с различными атрибутами (например: имя, день рождения, родной город), сообщества, медиаконтент и т.д., а рёбра — социальными связями между ними.
Идея Social Graph проста и заключается в том, чтобы создать график социальных взаимоотношений на основе имеющихся в сети пользовательских данных. Иными словами, социальный граф — это карта связей: кто с кем дружит, кто на кого подписан, кто с кем работает и общается.
Основные элементы социального графа
- Узлы (вершины) — аккаунты пользователей, сообщества, страницы брендов, медиаконтент;
- Рёбра (связи) — дружба, подписки, комментарии, лайки, репосты, совместные чек-ины;
- Атрибуты узлов — имя, возраст, город, место работы, интересы.
Граф интересов, развитие концепции
Вокруг социального графа сегодня ведётся активная дискуссия о будущем развитии сети. Один из ключевых концептов — граф интересов. Он должен быть точным и выразительным и принимать во внимание:
- Явно объявленные интересы, например, Like на Facebook или интересы, указанные в профиле на LinkedIn;
- Неявные интересы — выведенные на основе активности пользователя: щелчки мышью, комментарии, теги к фотографиям, чек-ины.
Социальные сети часто являются источником этой информации. Данные социального графа, описывающие конкретных пользователей — место работы, вид деятельности, интересы, круг друзей — позволяют управлять множеством взаимоотношений с огромным количеством знакомых.
Научный взгляд на социальные графы
В рамках теории экономической социодинамики, классовой теории организации общества, теории иерархичности потребностей и системно-антропологического подхода исследованы такие свойства социального графа, как:
- размер, количество узлов в сети;
- мерность, структурная сложность связей;
- связанность — насколько плотно узлы соединены друг с другом.
Для описания сложных взаимоотношений между людьми, сообществами и иными единицами, входящими в условные группы, социальные графы подходят как нельзя лучше. В академической среде эта тема изучается в курсах по анализу социальных сетей: рассматриваются модели Эрдёша–Реньи, распределения Бернулли и Пуассона, поиск кластеров и ответы на вопросы «кто чаще всего и с кем общается?».
Практика: как нарисовать социальный граф на Python
Для визуализации социального графа удобно использовать библиотеки NetworkX и Matplotlib. Ниже пример простого класса-отрисовщика:
Пример кода (draw.py):
- Импортируем модули: networkx как nx и matplotlib.pyplot как plt;
- Создаём класс Drawer, в конструкторе которого хранится экземпляр класса Graph из модуля NetworkX, именно в нём будет находиться наш социальный граф;
- В методе draw отрисовываем граф с заданными параметрами: размер узлов, цвет узлов и рёбер, форма узлов;
- Устанавливаем размер изображения в дюймах и сохраняем результат в файл, например graph.png.
Такой подход позволяет наглядно представить структуру социальной сети: выявить лидеров мнений, кластеры общения и изолированные группы.
Графика для социальных сетей
Отдельное направление — графика для социальных сетей. Она включает в себя абсолютно всё: от историй в Instagram до баннеров в Twitter и видео в Facebook. Для упрощения создания графики существуют сервисы с готовыми шаблонами (например, StoryboardThat), которые помогают экономить драгоценное время при оформлении страниц социальных сетей и блогов.
Где узнать больше
Учебные материалы и лекции по анализу социальных сетей доступны в открытом доступе, например на страницах университетских курсов: www.leonidzhukov.* (адрес частично скрыт). Там можно найти слайды лекций о моделях случайных графов и функциях распределения.
Социальный граф — это фундаментальная модель современного интернета. Он помогает описывать и анализировать связи между людьми, строить рекомендательные системы, выявлять сообщества и прогнозировать поведение пользователей. Понимание принципов его работы полезно как разработчикам и аналитикам, так и всем, кто интересуется устройством социальных сетей.