Как собрать аудиторию по фотографиям пользователей «ВКонтакте» с помощью нейросети
В России по разным оценкам у 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% из них носит очки для зрения.
Найти людей с бородой, будущих мам и экстремалов
Поиск людей с плохим зрением — первое, что пришло в голову, чтобы протестировать нейросеть в поиске аудитории. На этой базе мы хотим отладить работу Puzzle, чтобы протестировать создание других сложных аудиторий: людей с бородой или усами, будущих мам, тусовщиков, спортсменов.
Ну что же, кто-то должен был начать:
Статья 9. Согласие субъекта персональных данных на обработку своих персональных данных
Статья 10. Специальные категории персональных данных
Статья 11. Биометрические персональные данные
А как, кстати, очки на лице относятся к "биометрическим данным"?
Ну вы же такой умненький-благоразумненький, куда-то там входите, откуда-то выходите. Ну ознакомьтесь, что включает понятие, изложенное в ст. 11. Биометрические персональные данные. Это не про очки.
Ну то есть к обнаружению очков на юзерпике эта ст.11 отношения не имеет.
Хорошо, что мы наконец это выяснили.
А вот ваше высказывание про то, что я умненький-благоразумненький - имеет прямое отношение к ПД.
Это мои ПД, а также моя биометрия.
Я требую, немедленно прекратите использовать мои ПД, не знаю, как уж вы их вычислили.
И тут вы ошибаетесь. Очки, субъективное мнение - это не ПД. А вот имя и профиль вконтакте - это ПД, ношение очков из-за проблем со зрением - специальная категория ПД, а фотография - его биометрические ПД. Запомните пожалуйста, третий раз не буду повторять.
О, какие мы важные. Да, я запомнил, что вы грубо ошибаетесь, повторяете ошибку раз за разом, что у вас самые дикие представления о персональных данных. законах в этой сфере и прочих проблемах приватности.
Можете больше не повторять, если вам так удобнее.
Нет, неверно. У вас, оказывается, в самой основе ошибка. Профиль ВК никак не может быть персональными данными. Это профиль, аккаунт.
Он не связан с человеком. Вот установление этой связи - как раз и приведёт к появлению каких-то персональных данных.
Большинство комментаторов. похоже, не понимают, что разрыв между аккаунтом и реальным человеком - большой. А заклеивание этого разрыва - это сложная работа, близкая к ОРД.
Там полно однофамильцев, виртуалов, анонимов, ников, ботов и т.п.
Все, кто говорят про "согласие", "удаление", "биометрию", "ПДн" и т.п. - как-то легко, вальсируя, как фея, перелетают этот разрыв от аккаунта к гражданину, как бы не замечая его.
За своими разрывами смотрите, а не на аккаунты соцсетей. Если что-то указывает на конкретное физлицо - это ПД, так в законе и определяется. Если в соцсети есть ссылка хоть на одного Иванова Ивана из 5 школы города Н. - всё, это ПД. А ники там, или хвосты собачьи, это не имеет отношения.
.
Ну то есть сказать вам по сути нечего.
Если одно и то же выкрикивать несколько раз, оно же от этого не станет вернее или гуще.