В поисках Инстаграм аккаунтов живых людей

Введение

Сейчас русскоязычный сегмент Instagram — это 600 000 лидеров мнений, где 400 000 — из России. Лидер мнений — это аккаунт, у которого более 1 000 подписчиков. Всего аккаунтов в России — 40 млн, а такой большой массив аккаунтов требует эффективных автоматизированных решений. В частности, как находить аккаунты реальных людей среди коммерческих аккаунтов.

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

  • Живой человек
  • Паблик
  • Коммерческий аккаунт

А затем поделимся с вами результатами наших прогнозов.

Проблема

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

  • Паблики
  • Коммерческие аккаунты (салоны красоты, шоу-румы и т.д.)
  • Масс-фолловеры
  • Боты

Ценность они не представляют по разным причинам:

  • Они вряд ли будут покупать ваши товары и услуги, так как сами что-то продают
  • Паблики также вряд ли станут вашими потенциальными клиентами — у них другая задача
  • А масс-фолловеры вряд ли заметят ваш месседж среди множества других публикаций

Гораздо важнее не уметь вычислять ботов, а уметь находить живых людей. Поэтому в 2021 году Yoloco переходит от парадигмы поиска ботов к парадигме поиска живых людей. Ведь для клиентов важно, чтобы их аудитория состояла из реальных людей, а не ботов, которые будут просто числиться в подписчиках — настоящая обратная связь очень ценна.

Человек может достаточно легко определить тип аккаунта (живой человек, паблик, коммерческий аккаунт). Ему достаточно открыть аккаунт, изучить описание профиля и посмотреть пару публикаций. Однако определять вручную 40 млн аккаунтов — это неэффективное и не очень реалистичное решение.

Некоторые компании, которые занимаются аналитикой, пытаются классифицировать аккаунты, но делают это прямолинейно — берут значения из полей самого Инстаграма (Category). Важно заметить, что эти поля заполняются лично владельцем аккаунта. Именно из-за этого таким результатам не стоит доверять. Например, популярный исполнитель Моргенштерн указал в своем аккаунте в данном поле — Content & Apps. Многие аккаунты вообще не заполняют это поле.

Мы реализовали новую модель классификации аккаунтов по трем типам:

  • Живой человек
  • Паблик
  • Коммерческий аккаунт

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

Ценность решения

Размечать руками 40 млн аккаунтов — долго и дорого. В ходе разработки своей модели мы готовили датасеты и поэтому знаем что сколько стоит:

  • 1 человек размечает в среднем 2 000 аккаунтов за 8 рабочих часов. Разметка - это ручное действие по определению типа аккаунта: паблик, коммерческий аккаунт или аккаунт живого человека
  • 1 час работы такого специалиста стоит 250-500 рублей в среднем
  • Берем по максимальной ставке и получаем, что разметка 1 аккаунта стоит 2 рубля
  • Разметить 150 000 блогеров обойдется нашей компании в 300 000 рублей и в 75 рабочих дней
  • Разметить всю базу российских подписчиков практически нереально без автоматизации процесса

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

Подготовка

Итак, решили разработать модель по определению типа аккаунта в социальной сети. Для этого нам нужно тщательно подготовиться:

  • Определить классы, то есть договориться о том, какие типы аккаунтов для нас существуют
  • Определиться с тем, как определять классы. Создать некое руководство для человека, занимающегося ручной разметкой. Сформулировать базовый набор правил разметки
  • Собрать датасет. Много рутинной работы — разметка и проверка данных
  • Технический этап работы специалиста по машинному обучению:
  1. Поиск фичей
  2. Подбор модели
  3. Реализация
  4. Верификация модели
  5. Внедрение модели

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

На входе у нас было 6 000 аккаунтов, примерно по 2 000 аккаунтов из каждого класса. Все аккаунты были размечены одним человеком и проверены частично другим человеком. На это ушло примерно 2 недели грязного времени и 5 рабочих дней чистого времени.

Чтобы было понятно, приведём примеры аккаунтов каждого типа.

Коммерческий аккаунт

Типичный коммерческий аккаунт
Типичный коммерческий аккаунт
  • Присутствуют ключевые слова, например, «бутик» и «консультация»

  • Есть фразы от первого лица, например, «быстро отправим»

  • Нет имен и фамилий

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

Аккаунт живого человека

Типичный аккаунт живого человека
Типичный аккаунт живого человека
  • Есть почта и другие контакты

  • Указана должность

  • Указано имя и фамилия в био, присутствует имя в username

  • Есть личные местоимения

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

Паблик

Типичный паблик
Типичный паблик
  • Присутствуют ключевые слова — «паблик», «группа»и т.д.

  • Нет имен

  • Нет коммерческих ключевых слов
  • На фотографиях разные люди или просто картинки без людей

Любой пользователь социальных сетей быстро отличит паблик от живого человека.

Результаты

Сначала мы поделимся с вами результатами работы нашей модели, то есть проанализируем весь российский Instagram и найдем % пабликов, коммерческих аккаунтов и живых людей. Мы выбрали случайным образом 1 млн аккаунтов, которые отвечают следующим критериям:

  • Не боты (по нашей модели)

  • Пишут на русском языке

Итак, мы получили следующие результаты:

Распределение по типам аккаунтов во всем русскоязычном Instagram
Распределение по типам аккаунтов во всем русскоязычном Instagram

Как видно на графике, 66 % всех российских аккаунтов — это аккаунты живых людей, которые пришли в Instagram за изначальной целью социальной сети — потреблять контент. 18 % аккаунтов — это аккаунты, которые что-либо продают в Instagram. 14 % — это паблики, которые ведутся хоть и живыми людьми, но размещают обезличенный контент. 2 % — это те, кого не удалось определить.

Это важные результаты для индустрии. Допустим, наступили славные времена и Instagram удалил всех ботов и оставил только честные аккаунты. Даже в этом случае мы получаем следующую картину: только 66 % аудитории российского Инстаграма — потенциальные покупатели, остальные — это паблики и коммерческие аккаунты. В реальности эти 66 % нам нужно еще умножить на процент ботов в Instagram, и мы получим ещё более удручающие цифры.

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

Выборочно проверили разбивку у некоторых топовых блогеров и получили интересные результаты.

Распределение по типам аккаунтов среди подписчиков shcherbakov_alexei
Распределение по типам аккаунтов среди подписчиков shcherbakov_alexei

Как видно, у известного российского стендап комика Алексея Щербакова доля живых аккаунтов выше среднего. На платформе Yoloco показывается, что у Алексея качественная аудитория. Среди его подписчиков намного меньше, чем в среднем, коммерческих аккаунтов. Делая рекламу у Алексея вы с большей долей вероятности донесете свой рекламный месседж до живой аудитории, а не до пабликов и магазинов, которым нет дела до вашего продукта.

Распределение по типам аккаунтов, среди подписчиков goar_avetisyan
Распределение по типам аккаунтов, среди подписчиков goar_avetisyan

У топового бьюти-блогера Гоар Аватесян много коммерческих аккаунтов среди подписчиков. Это не очень удивительно, ведь многие салоны красоты и спа-центры уже давно подписаны на блогера.

<p>Распределение по типам аккаунтов, среди подписчиков morgen_shtern</p>

Распределение по типам аккаунтов, среди подписчиков morgen_shtern

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

А теперь расскажем, как создавали эту модель, перейдем к технической части статьи.

Техническая реализация

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

Выше, представлены скриншоты Instagram аккаунтов. Собрав информацию с профилей и разметив ее вручную, получили датасет.

Разброс значений количества слов по источникам
Разброс значений количества слов по источникам

По разбросу значений количества слов становится понятно, что главным источником получения информации является колонка [“BIOGRAPHY”], именно с ее полного анализа и началась разработка будущего алгоритма.

Когда дело касается вопросов естественного языка, первое что приходит в голову — bag-of-words. Данный случай — не исключение. В bag-of-words текст представлен в виде пакета слов, без учета грамматики и даже порядка слов, но с сохранением множественности. Для этого в первую очередь нормализуются слова, что приводит к потере информации. Поэтому bag-of-words стоит делать в последнюю очередь. Для работы с русским языком использовали библиотеку pymorphy2.

1. Анализ текста с точки зрения частей речи. С помощью MorphAnalyzer() для каждого слова определим часть речи и посмотрим на их распределение.

Распределение кол-ва существительных по классам
Распределение кол-ва существительных по классам
<p>График распределения количества существительных по классам</p>

График распределения количества существительных по классам

2. Анализ глаголов с точки зрения:

  • 1/2/3 лицо

  • Женский/Мужской род

  • Множественное/единственное число
График распределения количества глаголов 1-го лица
График распределения количества глаголов 1-го лица

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

3. Первую серьезную надежду на разделения аккаунтов живых людей от коммерции и пабликов дала детекция имен. И она дала свои плоды. Для имён на кириллице — вероятностный метод pymorphy2, для имён на латинице — nltk. Сразу нужно предупредить, что этих библиотек будет недостаточно, из вариантов — веб скрапинг, задание собственного правила транслита для русских имен и т.д.

4. Была также надежда на личные местоимения, но не особо это и оправдало себя.

График распределения количества местоимений по классам
График распределения количества местоимений по классам

5. И многое другое.

После многих других фич переходим к основному — bag-of-words. Частотный анализ вхождений слов в тексте — примитивная вещь. Перед этим не забываем нормализовать слова. Также на данном этапе стоит хоть как-то ограничить количество слов и, например, по каждому классу взять TOP-30 самых часто встречаемых слов. Разумеется, нам может очень не повезти, и в обучающей выборке будут экземпляры, которые не покажут поведения генеральной совокупности, но никто и не говорил, что модели не требуется сопровождение и ее не нужно дообучать.

<p>Схема - принцип bag-of-words</p>

Схема - принцип bag-of-words

В итоге получили 262 численных фичи, и началась работа с моделями. В ходе экспериментов по выбору модели многие принимали участие, но лучше всего себя показал Gradient Boosting Classifiers. Это мощные алгоритмы, которые можно использовать как для задач классификации, так и для регрессии. Модели повышения градиента могут невероятно хорошо работать с очень сложными наборами данных. Вот каких результатов удалось достигнуть на тестовых данных.

<p>Подсчет метрик по классам</p>

Подсчет метрик по классам

Выводы

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

В этой статье мы емко описали техническую реализацию задачи классификации типов аккаунтов в русскоязычном Инстаграме. Индустрия получила важный инсайт — более 30% подписчиков блогеров не являются их целевой аудиторией с точки зрения классической рекламной кампании. Все эти годы мы гонялись за идентификацией фрода, ботов, но часто забывали про то, что в Инстаграме миллионы пабликов и коммерческих аккаунтов, которые не являются ни масс-фолловерами, ни ботами, и которые точно не купят у вас товар.

77
4 комментария

Комментарий недоступен

Ответить

Мы это учитывали. В своей модели мы выделяли местоимения и по лицам и числу. Вы правы про паблики, на нашем графике как раз это и видно.

Ответить