Как бы ни гремели скандалы про PRISM, про персональные данные и их утечки, социальные сети так и манят поведать о себе всё: какие котята нравятся, с кем ты дружишь и почему с утра такой не выспавшийся.
Целая энциклопедия о поведении большинства интернет-активной публики лежит совсем рядом, и мне всегда хотелось её пощупать. С одной стороны, эти данные лежат вроде бы в открытом доступе, но просто взять и проанализировать их не так легко — всё слишком неструктурировано и разрозненно. К тому же, насколько я знаю, пригодных для машинного анализа наборов данных о соцсетях практически не существует. А для России — так и подавно.
Выбора не оставалось, и пришлось, зловеще хохоча по ночам, писать простеньких пауков для соцсетей ВКонтакте, Одноклассники, МойМир и русского сегмента Фейсбук, которые за несколько месяцев неспешно собрали более или менее статистически-корректный семпл данных. Собиралась только та информация, которую люди сами о себе рассказали. А рассказали они много.
О том, что удалось выудить из таких данных, и пойдет рассказ.
Как же так?
Признаюсь, это исследование далеко не первое. Соцсети (а особенно Фейсбук и ВКонтакте) открыто изучали уже много раз. И даже ваш покорный слуга писал статью про шесть рукопожатий, собрав для этого полный граф друзей из ВКонтакте.
Но не единым Вконтактом живет рунет. Хотелось заглянуть в то, что творится в других соцсетях, не менее обитаемых, а также понять отличия в их аудитории.
Сбор данных
Это наш не первый опыт сбора больших данных под покровом ночи. Так что в быстром темпе в пять рук на Qt/C++ и Python были написаны четыре паука, которые, неспешно прогуливаясь по отдельным соцсетям, записывали в базу все, что они встретили.
Разные соцсети по-разному относятся к парсингу. Проблемы возникали с Одноклассниками и Фейсбуком, у которых, как оказалось, есть довольно хитрая система детекта подозрительных ботов. К счастью, она по большей части нацелена на спамеров, а наши боты с этой точки зрения выглядят розовыми и пушистыми, и нам кое-как удалось настроить более-менее стабильный, хоть и очень медленный сбор.
Аналитика
Выкачать много данных — легко, всего лишь два месяца сбора. Но паранойя шагает по планете, и у большинства людей открытый профиль в соцсети выглядит очень скудно. Львиная доля информации доступна только лишь для друзей. Но дело в том, что сами-то друзья чаще всего открыты!
И на основании их можно вычислить довольно много интересного. К примеру, город, возраст и ВУЗ. Да и еще много чего. Для затравки покажу график зависимости реального возраста от медианы возрастов друзей:
Как можно догадаться, реальный возраст по большей части весьма связан с медианой возрастов друзей. Так что даже если вы параноик, то ваши друзья выдадут многое о вас просто своим наличием.
Для хранения и анализа мы решили, как большие мальчики, использовать HBase/Hadoop. Это стильно, модно, молодежно, к тому же уже был опыт дрессировки подобных технологий. В результате из того, что мы насобирали, были рассчитаны (т.е. либо приведены к единому виду, либо выделены из социальных связей) примерно 50 параметров. Недурно. Далее из общего набора данных была сделана случайная выборка по одному миллиону пользователей из каждой соцсети и тщательно проанализирована. Подобный финт был сделан для того, чтобы хоть немного нормализовать аудиторию разных соцсетей с разным количеством пользователей.
Далее, собственно, самое вкусное, что удалось выяснить.
Возраст
Для начала, было бы интересно узнать возрастную структуру разных социальных сетей.
В качестве возраста использовался либо сам возраст, если человек не постеснялся указать свой год рождения, либо его аппроксимация на основе даты окончания школы/ВУЗа. Подобный маневр был необходим по большей части из-за Вконтакте и Фейсбука, у которых точный возраст известен для 40% и 20% пользователей соответственно.
Получилась примерно такая картина.
Забавно. Увидев это, можно определенно заметить следующие особенности:
- В Одноклассниках сидит публика постарше.
- Те, кто помоложе, почти полным составом сидят ВКонтакте. Странный выброс в районе 14 лет объясняется тем, что самый последний год рождения, который возможно выбрать в профиле — 1999. Вот все, кто моложе, его и выбирают. Защита детей и маркировка 14+ в действии.
- В Фейсбук люди идут уже в сознательном возрасте, младше 18 там почти никого нет.
А как дела обстоят с половозрастной структурой? Пол был либо взят как есть, если в соцсети вообще есть возможность его указать, либо рассчитан на основании имени следующим образом. Если большинство людей, носящих имя “Александр” — мужчины, то будем всех Александров с неизвестным полом считать мужчинами. Подобный подход работает для подавляющего количества имен, но имеет некоторые проблемы с Женями и Сашами.
Прекрасно. Я всегда это подозревал:
- В Одноклассниках большая часть аудитории — женщины. Предлагаю администрации переименовать сеть в Одноклассницы, это будет ближе к правде.
- В остальных соцсетях тоже чувствуется общий перевес в сторону женщин, но уже не такой фатальный.
- Общий провал в количестве мужчин до 1976 года можно объяснить тем грустным фактом, что мужчины в среднем возрасте умирают раньше и чаще женщин. Полагаю, подобная зависимость отражает общую демографическую ситуацию для этой группы людей. Берегите мужчин.
Далее был рассчитан некий абстрактный показатель активности человек в соцсетях в виде набора нескольких правил: “есть аватарка”, “друзей более 50”, “недавно был в сети” и т.п. За срабатывание каждого такого правила в общую копилку профиля падало несколько баллов. И вот так выглядит распределение этого показателя по разным соцсетям:
Удивительно, но ВКонтакте просто фонтанирует молодыми и гиперактивными пользователями, запал которых угасает (или чутко перенаправляется в семейное русло) только к 35 годам. В Одноклассниках основная активность начинается аж в 30 лет. А в МойМир и Фейсбук в этом плане ситуация более плачевная — там болото.
Нецензурная лексика
Возраст и активность это конечно хорошо, но очень уж скучно. И для того, чтобы не уснуть, для каждого человека в выборке было рассчитано количество найденых в его постах матерных слов. Особенно забавно было составлять словарь таких слов. Размерность по оси ординат — количество слов на 10 последних постов.
Очевидно, что лет с 15 молодые люди смелеют настолько, что могут невозбранно материться прямо у себя на странице. Лично я свой первый “Х*Й” на школьном дворе написал еще в 12, но правда анонимно. Излияние нецензурной лексики продолжается эдак годов до 23-х. Потом, видимо, наступает серьезность и пора уже стать взрослым. Весьма капитанское утверждение, но теперь оно хотя бы доказано фактами.
Популярность имен
Теперь пришла пора препарировать имена. Мне всегда казалось, что имена имеют разную популярность во времени. Иногда прямо-таки чувствуется своеобразная мода называть детей как-то необычно. И теперь это можно увидеть своими глазами.
Тенденция налицо: популярные ранее имена стремительным домкратом теряют свою былую популярность.
- К примеру, Александром в старые-добрые времена называли каждого восьмого мальчика, а теперь всего лишь каждого 50-го. Перевелись Александры нынче.
- Популяция Владимиров стабильно сокращается вот уже 50 лет.
- Заметны волны моды на имена Алексей и Игорь.
С женскими именами ситуация выглядит похожим образом:
В общем, тот же стремительный домкрат, но внимание стоит обратить на следующие особенности:
- Популярные женские имена еще сильнее растеряли свою популярность, нежели мужские. Видимо, если рождается девочка, родители изо всех сил напрягают свою фантазию и изрыгают на свет Изольду, Мальвину или Даздраперму. Но если появляется мальчик, то чего напрягаться-то: и Александр сойдет.
- Переломный момент с падением популярности приходится на конец 70-х и начало 80-х. Повеяло западом, оттепелью и вот результат: каждый родитель теперь соревнуется в оригинальности имен своих детей.
Модели телефонов
Идем далее. У всех постов на стене ВКонтакте есть забавная метка, если этот пост сделан с телефона под управлением iOS/Android. И это тоже можно (и даже нужно) проанализировать.
Интересно, но у iPhone явный перекос в сторону прекрасного пола, что неудивительно. “Папа, купи мне айфон, что я как дура тут хожу” — пожалуй, довольно популярная фраза, снящаяся в кошмарах многим молодым папам. А Андроид начинает пользоваться повышенным спросом у суровых мужиков за 30.
Семейное положение
Бабушка всегда говорила мне, что вот в ее времена быть холостым (или, что еще хуже, незамужней) в 25 было равносильно катастрофе. Что в дальнейшем, обычно, приводило к лекции на тему “жениться тебе надо, барин” и “все уже переженились, а ты один как сыч”. Мне всегда хотелось аргументов в этом споре, и теперь их есть у меня.
Хочу отметить, что семейное положение было проанализировано только среди тех, кто его указал.
Очень интересны следующие факты:
- В 27 лет женаты только половина из тех, кто указал свое семейное положение. А вы-то говорили.
- Молодежь чаще ходит в статусе “холост/не-замужем”, чем “встречается”. Ходит-ходит, а потом хлоп — и “женат/замужем”.
Вредные привычки
Теперь можно перейти к вредным привычкам: курению и употреблению алкоголя. Этот параметр есть только ВКонтакте, но многие его старательно заполняют, чем мы и воспользуемся.
Прискорбно, но любовь к алкоголю и курению только усиливается с возрастом. Некоторое плато наступает только аж к 30 годам, что несколько меня удивило. Где-то к 40 некоторые одумываются и пытаются исправить ситуацию, но уже поздно пить Боржоми.
Рост и вес
В МойМир в профиле есть забавные параметры: рост и вес. Не могу объяснить, чем руководствовался чей-то великий разум, который их туда добавил. Но параметры есть, и будет глупо их не разглядеть через призму нашего любопытства.
Я предполагал увидеть менее контрастный график. Но получилось именно так. Полагаю, объяснить эту странность можно тем, что женщины чаще гордятся своим небольшим ростом, а большой рост скрывают. У мужчин ситуация выглядит ровным счетом наоборот: стыдно на весь интернет признаться, что в тебе всего 150см, но если в тебе под два метра, то это должны узнать обязательно все.
С другой стороны, женщины в среднем ниже мужчин и все может быть гораздо проще.
С весом ситуация примерно такая же, как и с ростом. Женщины после 60кг резко перестают упоминать о своем весе. Зато мужчины — всегда пожалуйста. Сто двадцать? Да не проблема, хорошего человека должно быть много.
Вообще, взаимосвязь роста и веса описана во многих медицинских источниках. И на этом графике она налицо. Забавно отметить то, что низкорослые девочки обычно тяжелее мальчиков.
Пол
Еще когда я был маленьким, я всегда подозревал, что девочки чаще дружат с девочками. И в отместку им дружил по большей части с мальчиками. Полагаю, пришло время подтвердить эту тенденцию.
Да, можно заметить четкую связь с тем, что у девочек в друзьях девочки. Если вы обладатель мужского пола, а в друзьях у вас одни дамы, то у меня для вас плохие новости.
Лайки
Лайки — удивительная вещь. Еще шесть лет назад их не существовало, а теперь это неотъемлемый атрибут любой социальной сети.
Всегда подозревал, что прекрасный пол лайкают значительно чаще. И этот тренд продолжается чуть ли не до 30 лет, но потом потихоньку сходит на нет. С возрастом, к счастью, ценности меняются.
Лайк это феномен нынешних времен. Девушки нервно считают, сколько людей полайкало их новую аватарку с осенними листочками. а этим временем в голове моей звучит диалог: “Папа, а как ты познакомился с мамой?” — “Ну я полайкал ее аву, и тут понеслось”.
Политика
Как бы хабр ни был вне политики, она нынче сочится из всех щелей. В соцсетях даже поле специальное есть, описывающее политические взгляды, которое мы сейчас препарируем.
- Лично я удивлен тем, что нынче существует столько людей, гордо отметивших свое равнодушие к политике. Количество таких людей плавно уменьшается с возрастом, но незначительно.
- С возрастом количество консерваторов и либералов растет. Видимо, за счет людей с индифферентными политическими взглядами.
На этом красивые графики закончились. Но веселье — еще нет.
Данные
Создать такой чудесный набор данных для анализа и не поделиться им — преступление против человечества. Поэтому было решено выложить его в открытый доступ, но так, чтобы не задеть права и приватность людей, попавших в этот набор данных:
- Профили анонимизированы, нет имени, фамилии, даты рождения, ВУЗа и адреса профиля. Теоретически некоторые из профилей возможно деанонимизировать, но это будет сделать довольно нелегко.
- Набор данных является семплом, объем которого ровно 4 млн. профилей, по 1 млн. для каждой соцсети.
- Сбор и анализ этого добра, как мне кажется, удовлетворяет закону о персональных данных. Ключевые слова: общедоступные данные (пользователи это выложили сами), анонимизация (нет ФИО, даты рождения и т.п.), использование в научных некоммерческих целях.
- Лицензия на данные: Creative Commons Attribution Shake-alike Noncommercial (CC-BY-NC-SA).
- Данные в формате дампа для MySQL. В комплекте идет описание всех имеющихся полей.
- В данных могут быть баги, я в этом просто уверен. Если вы нашли баг, то можете гордо поделиться им со мной в приватном сообщении.
Архив с данными, 7z, 135Mb в архиве, 1Gb в распакованном виде.
Вместо послесловия
Будьте аккуратнее с данными, которые выкладываете в сеть. То, что туда было однажды закачано, останется там на века. Так что берегите себя и свою приватность смолоду.
Автор: shuttie