Кейсы 4 сентября 2018

Война скриптов — искусственный интеллект против навязчивой рекламы

Далее

Борьба с навязчивой рекламой в интернете приобрела характер гонки вооружений. Рекламщики и порталы, пренебрегающие стандартами размещения коммерческих материалов, разрабатывают скрипты и технологичные способы обхода блокировок. В свою очередь, борцы с рекламой подключают искусственный интеллект и машинное обучение к алгоритмам, закрывающим показ рекламы в процессе загрузки страницы. Олександр Параска, разработчик Eyeo и Adblock Plus, рассказал о передовых методах борьбы с рекламой, использовании ИИ и будущем этого противостояния.

Человек, как правило, за доли секунды может отличить рекламный контент от нерекламного. Ведь он должен помечаться специальными лейблами «Реклама» или «Спонсорский/партнерский материал». Все, что человек может сделать менее чем за секунду, в теории способен освоить и искусственный интеллект.

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

Первое — уже реальность, второе — наше будущее, причем ближайшее.

Заблокировать рекламу — половина дела

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

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

Пока Sentinel — это главным образом проект по сбору данных и формированию базы рекламы. Через бот в Facebook пользователи могут присылать скриншоты страниц с навязчивой рекламой в соцсети. На их основе алгоритм тренируется различать рекламный и нерекламный контент. Получается вполне успешно. Эта технология будет использоваться для внутренних процессов. Например, для ежедневного мониторинга сайтов на предмет того, имеет ли там контент соответствующую маркировку «На правах рекламы».

Вас снова обманули: как человечество учит компьютеры определять фейки в интернете

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

Обучение ИИ

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

Класс сверточных нейросетей (ConvNet) применяется главным образом для анализа изображений, но подходит для решения многих задач. Такие модели хорошо распознают определенные паттерны в изображениях. То есть, например, для блокировки рекламы можно научить ее распознавать на странице лейблы со словом «Реклама» еще на этапе загрузки страницы.

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

Распознать путь каждого элемента

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

Сет Стивенс-Давидовиц: у людей гораздо больше непристойных и скверных мыслей, чем мы думали

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

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


Graph-based models — графовая вероятностная модель — вероятностная модель, в которой зависимости между случайными величинами представлены в виде графа. Вершины графа соответствуют случайным переменным, а ребра — непосредственным вероятностным взаимосвязям между случайными величинами.

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


Игра для алгоритмов

В методе обучения с подкреплением (Reinforcement Learning — «Хайтек») задача блокировки рекламы предстает в виде игры. Агенту — искусственному интеллекту — необходимо заблокировать рекламу и не заблокировать ничего больше. Если он сумел это сделать, то выигрывает, если нет — пробует еще раз.

Основная сложность заключается в том, чтобы понять, где реклама, а где — нет. Алгоритму нужно обучаться на каких-то примерах. Для этого используются уже имеющиеся фильтры, написанные людьми. Если результаты агента совпадают с результатами этих фильтров, то ИИ выиграл — справился с задачей. Чтобы научиться, алгоритму нужна очень большая база таких примеров, и эти данные можно генерировать из браузера практически бесконечно. Однако другая проблема состоит в том, что уже после загрузки страницы на ней зачастую работают скрипты и происходят какие-то изменения. То есть необходимо, чтобы ИИ каждый раз принимал решение о блокировке, когда что-то меняется на странице. Добиться этого уже сложнее.

Индивидуальный подход без личных данных

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

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

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


Federated learning — федеративное обучение — инновационный подход к машинному обучению, предложенный учеными из Google Research. Позволяет всем устройствам, участвующим в машинном обучении, делить на всех единую модель для прогнозирования, но при этом не делиться первичными данными для обучения модели.


Перевести на другой язык

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

Человек — это набор из пяти чисел: Игорь Волжанин, DataSine — о психотипировании с помощью big data

Такой метод машинного перевода (Machine Translation, или Sequence-to-Sequence learning — последовательное обучение — «Хайтек») пока еще не испробован. Однако в теории позволяет блокировать рекламу быстрее всего. Ведь на странице каждую секунду появляется несколько сотен новых элементов. И если решать задачу блокировки другими способами, когда что-то новое появляется на странице, нужно каждый раз запускать модель, чтобы решить, блокировать этот элемент или нет. Это требует больших вычислительных ресурсов и может негативно влиять на скорость загрузки страницы. Перевод же из HTML в CSS позволяет этого избежать.

Гонка вооружений

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

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