Демографические данные Twitter: определение возраста пользователя

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

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

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

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

Twitter обычно рассматривается как сеть по интересам, потому что действие подписки на аккаунт является «односторонним» взаимодействием. Используя эти предположения в качестве отправных точек и применяя принцип гомофилии:

«Люди близкого возраста имеют схожие интересы в результате возрастных жизненных событий»

Другими словами: люди того же возраста или близкого возраста будут подписываться на одни и те же аккаунты (как правило).

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

Данные обучения

Набор данных, используемый для обучения модели, состоял из ~ 7000 пользователей, которые написали в Твиттере свой день рождения. Он был построен с использованием регулярного выражения для извлечения их заявленного возраста и приведения его к текущему значению, принятия его как основной истины и обозначения его внутри четырех классов: Подростки (27,91%) , двадцатые годы (49,64%), тридцатые годы (12,71%) и сороковые годы плюс (9,73%).

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

Для каждого пользователя в наборе данных я загрузил (подписывается) идентификаторы Twitter его друга с помощью API Twitter.

Затем использовал Sklearn’s Tfidf Vectorizer для автоматического извлечения функций из списка друзей пользователя. Используя параметры векторизатора max_df и min_df, можно найти адекватные пороговые значения для частот идентификаторов друзей (как если бы это был текстовый корпус).

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

Модель возрастной классификации

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

После выполнения поиска по сетке с перекрестной проверкой для оптимизации гиперпараметров модель набрала потрясающие показатели обучения и проверки:

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

Недостатки модели

Эта модель возрастного вывода имеет два больших недостатка:

  1. Он опирается на обучающий набор, следующий за списком. При попытке предсказать новый идентификатор Twitter «вектор друзей» может быть почти или полностью пустым. Решение этой проблемы состоит в том, чтобы сократить распределение друзей каждого возрастного класса по пороговым значениям, которые содержат достаточный объем информации. Однако, поскольку используемый обучающий набор очень ограничен, это решение еще предстоит проверить на больших наборах данных.
  2. Используя только информацию об учетной записи Twitter, этот метод трудно обобщить, потому что обучающая выборка может не отражать все возрастные классы отовсюду (т. Е. Подростки в Мексике могут не иметь тех же интересов, что и подростки в Японии).
  3. Набор данных, используемый для обучения и проверки модели, представляет собой очень небольшую выборку пользователей Twitter, и он ограничен пользователями Мексики.

Еще один недостаток - сложность применения этого метода к большим объемам пользовательских данных Twitter, поскольку загрузка каждого подписчика для каждой учетной записи занимает много времени и дорого.

Выводы:

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

Решение заключалось в:

  1. Попросите пользователей Твиттера написать в Твиттере о своем возрасте в день рождения и довести его до нынешней ценности.
  2. Используйте Twitter API, чтобы запросить идентификаторы Twitter у друзей пользователей (аккаунтов, на которые они подписаны).
  3. Предварительно обработайте все данные и сгруппируйте пользователей по метке возрастной группы.
  4. Создайте классификатор случайного леса с помощью векторизатора tfidf для извлечения функций, описанных нижеперечисленными пользователями.

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

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

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

Полезные ссылки на статьи и другие блоги, посвященные определению возраста:

Если у вас возникнут вопросы или вы проявите больший интерес к моей работе, не стесняйтесь обращаться ко мне.