04 марта 2020

Хороший, плохой, злой: как Яндекс использует нейросети для борьбы со спамом и матом

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

Любой сайт, где пользователи могут сами публиковать контент — потенциальная площадка для спама, мошенничества и нецензурной лексики. У Яндекса есть несколько сервисов (например, Яндекс.Карты, Яндекс.Район, Яндекс.Кью и Кинопоиск), где любой может оставить комментарий, поэтому команда Антиспама создает инструменты для борьбы с недопустимым контентом.

К автоматическим классификаторам разработчики предъявляют несколько требований:

  1. Точность. Система должна верно отмечать «плохой» контент, не удаляя при этом нейтральные посты без спама и мата.
  2. Полнота. Одной точности недостаточно: «автомодератор» может функционировать без ложных срабатываний, но при этом пропускать часть спама и ругательств. Поэтому важна полнота — это доля плохого контента, который система выявляет как плохой.
  3. Скорость. Даже если спам провисел на сайте несколько минут, его могли увидеть сотни людей, а это отрицательно сказывается на репутации самого сервиса — поэтому система должна работать как можно оперативнее.

Эффективность Антиспама проверяют асессоры — они отсматривают выборки контента и оценивают решения машины. Сейчас система, проверяющая комментарии, работает с помощью нескольких инструментов:

Чистый веб

Чистый веб — сервис, который защищает от спама все продукты Яндекса, где публикуется созданный пользователем контент. В его основе лежат наработки, которые изначально создавались для фильтрации взрослого контента в поисковых запросах. Например, чтобы по запросу «медсестра» поисковик показывал только сотрудников больниц, а не кадры из фильмов для взрослых.

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

Умное кэширование

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

Хороший, плохой, злой: как Яндекс использует нейросети для борьбы со спамом и матом

Для выявления таких сообщений используют вероятностный метод понижения размерности многомерных данных — Locality-sensitive hashing (LSH). Каждый проверяемый текст разделяется на последовательности из n символов, и по их хэшам строится LSH-вектор документа. Благодаря этому машина сравнивает не сами тексты, а их векторы. Это позволяет эффективно вычислять спам, даже если каждое новое сообщение чем-то отличается от предыдущего.

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

Толокеры и асессоры

Хотя система и учится самостоятельно вычислять спам, иногда она нуждается в помощи или перепроверке. Это касается тех случаев, когда важно не просто удалить пост с ругательствами, а верно оценить контекст. Иногда спамеры рекламируют свои услуги в отзывах у конкурентов, пишут бессмысленный набор символов или просто по ошибке оставляют комментарий не о той организации (например, жалуются на маникюрный салон в отзывах на ресторан).

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

Классификатор хороших текстов

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

Логика такой системы заключалась в том, что если сообщение состоит только из «хороших» слов, то и посыл его скорее всего не будет содержать оскорблений — однако современные модели работают умнее. Разметкой грубостей в классификаторе занимается нейросеть BERT, созданная для обработки естественного языка. Она улавливает слова в контексте и помогает выявлять оскорбления даже там, где не используются грубые слова.

Антимат

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

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

Заключение

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

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ