Как собрать аудиторию по фотографиям пользователей «ВКонтакте» с помощью нейросети

В России по разным оценкам у 11-14% людей есть проблемы со зрением. Для бизнеса очкарики — масштабный и привлекательный рынок, а для рекламщиков — ад. Эту аудиторию трудно достать стандартными инструментами таргетинга. Главный таргетолог компании «Ашманов и партнёры» Артём Седов рассказал, как они с коллегами нашли 263 тысячи москвичей в очках во «ВКонтакте».

Тестируем нейросеть с коллегами из «Ашманов и партнёры»

Почему рекламодателям трудно найти очкариков

У меня с детства слабое зрение и мне ни разу не попадалась реклама очков или линз в интернете. Захотелось разобраться, почему рекламодателям трудно найти таких, как я — очкариков, и продать нам что-нибудь полезное.

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

Опрашивают пользователей

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

Парсят сообщества

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

Таргетируются на авторизованных через «ВКонтакте»

Во «ВКонтакте» есть таргетинг на пользователей, которые авторизовались на сайтах (например, клиник) через приложение соцсети.

Строят гипотезы

После 40 лет у большинства людей падает зрение. А ещё ухудшение зрения характерно для геймеров, офисных работников, молодых мам и так далее.

В итоге

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

Как мы нашли 263 тысячи москвичей в очках

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

Мы давно знакомы со Стасом Ашмановым. Стас — программист, специалист по нейронным сетям. Пару лет назад он начал искать продуктовое решение на базе технологий своей компании «Нейросети Ашманова». А мне нужен был парсер, чтобы работать со сложными данными. На том мы и сошлись: сделали парсер на базе нейросети и назвали его Puzzle.

Расскажу коротко, как он устроен.

Мы создали базу фото для нейронной сети, определяющей лица

  • Выгрузили фотографии людей из общедоступных источников: «ВКонтакте», Instagram, «Яндекс», Google — с помощью скриптов, написанных на Python.
  • Почистили выборку в ручном режиме, если в неё попало что-то кроме изображений людей.

Настроили детектор лиц

  • Можно использовать любой готовый детектор лиц. Например, обученный HOG-каскад из dlib для детекции лиц с возможностью запускать нейронную сеть на GPU (для ускорения).
  • На вход даём базу фото людей — на выходе получаем фотографии лиц, вырезанные из исходных фотографий.

Разметили лица с очками и без

  • Поделили лица на две категории: c очками помечаем 1; без очков — 0.
  • Для изображений с большим количеством деталей может потребоваться дополнительная разметка. Например, наша утилита Marker помогает размечать очки с помощью прямоугольников, и в результате сеть узнаёт очки на фото точнее. На выходе получаем набор размеченных фотографий с очками и файл с координатами разметки очков, который удобно использовать для дальнейшего обучения нейросети. В данной задаче этого не потребовалось: сеть отлично справляется с классификацией целых изображений лица с очками и без.

Настроили детектор очков

  • Основная модель — нейронная сеть Resnet-50. Архитектура сети модифицирована и портирована на нейросетевую библиотеку PuzzleLib.
  • На вход подаётся выборка лиц в очках и без. На выходе получаем вероятность от 0 до 1. 1 — человек в очках, 0 — не в очках.
  • Сопоставили людей из соцсетей с выходными данными сети — определили, носит человек очки или нет (порог от 0 до 1 можно выбирать по вкусу – у нас хорошо подошло значение 0,5).

В итоге

За 20 дней работы сервера мы сформировали выборку аудитории из Москвы, которая в очках для зрения на фото «ВКонтакте».

Москвичи в очках — кто эти люди

Во «ВКонтакте» 26,7 млн пользователей из Москвы и области (по данным рекламного кабинета «ВКонтакте»). Мы выяснили, что как минимум 1% из них носит очки для зрения.

Распределение пользователей в очках по половозрастным сегментам (мужчин — 55,89%, женщин — 44,11%)
Доля пользователей в очках среди общего количества пользователей в каждом сегменте
Появление пользователей в сети

Мы нашли самые популярные сообщества среди людей, которые носят очки, и поняли, что единственный признак, которых их объединяет — паблики, связанные с городом (в данном случае). Ещё раз убедились, что стандартный таргетинг по сообществам с этой аудиторией не работает.

Популярные сообщества среди людей со слабым зрением из Москвы

Найти людей с бородой, будущих мам и экстремалов

Поиск людей с плохим зрением — первое, что пришло в голову, чтобы протестировать нейросеть в поиске аудитории. На этой базе мы хотим отладить работу Puzzle, чтобы протестировать создание других сложных аудиторий: людей с бородой или усами, будущих мам, тусовщиков, спортсменов.

0
69 комментариев
Написать комментарий...
Иван Колыхалов

Спасибо за метод и статью, работа действительно представляет очень большой интерес! Скажите а как таргетировать эту базу? Спарсили вы аккаунты, окей, а что дальше? ВК не дает таргетить аккаунты, куки на ВК для показов где-то еще вы так же не разметите, поскольку у вас нет доступа к кодам на ВК. Разметить их вы можете только в каких-то приложениях (что долго и не надежно) или кликджеккингом, что вообще дно. Как вы выделите этих юзеров для показов если у вас к их кукам нет доступа? Вне ВК это будет пустая кука. Хм, или я что-то проспал в таргетах вк?

Ответить
Развернуть ветку
Артём Седов

Немножко проспали. Но это вопрос содержания статьи. Мы связываем изображение с конкретным аккаунтом. У каждого аккаунта есть идентификатор в URL. В ВК есть специальный раздел ретаргетинга, в который можно загрузить список идентификаторов пользователей. Это весь трюк.

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

Ответить
Развернуть ветку
Иван Колыхалов

Спасибо Артем! Очень интересное решение у вас!

Ответить
Развернуть ветку
66 комментариев
Раскрывать всегда