Хороший, плохой, злой: как Яндекс использует нейросети для борьбы со спамом и матом
Разработчики Яндекса автоматизировали борьбу со спамом и матом в своих сервисах. Рассказываем, какие инструменты они для этого использовали.
Любой сайт, где пользователи могут сами публиковать контент — потенциальная площадка для спама, мошенничества и нецензурной лексики. У Яндекса есть несколько сервисов (например, Яндекс.Карты, Яндекс.Район, Яндекс.Кью и Кинопоиск), где любой может оставить комментарий, поэтому команда Антиспама создает инструменты для борьбы с недопустимым контентом.
К автоматическим классификаторам разработчики предъявляют несколько требований:
- Точность. Система должна верно отмечать «плохой» контент, не удаляя при этом нейтральные посты без спама и мата.
- Полнота. Одной точности недостаточно: «автомодератор» может функционировать без ложных срабатываний, но при этом пропускать часть спама и ругательств. Поэтому важна полнота — это доля плохого контента, который система выявляет как плохой.
- Скорость. Даже если спам провисел на сайте несколько минут, его могли увидеть сотни людей, а это отрицательно сказывается на репутации самого сервиса — поэтому система должна работать как можно оперативнее.
Эффективность Антиспама проверяют асессоры — они отсматривают выборки контента и оценивают решения машины. Сейчас система, проверяющая комментарии, работает с помощью нескольких инструментов:
Чистый веб
Чистый веб — сервис, который защищает от спама все продукты Яндекса, где публикуется созданный пользователем контент. В его основе лежат наработки, которые изначально создавались для фильтрации взрослого контента в поисковых запросах. Например, чтобы по запросу «медсестра» поисковик показывал только сотрудников больниц, а не кадры из фильмов для взрослых.
Тексты проверялись с помощью собранных вручную и регулярно пополняющихся словарей обсценной лексики. На их основе разработчики обучали модели и классифицировали запросы на те, где можно показывать взрослый контент, а где — нет. Однако чем больше продуктов Яндекса требовало регулярной модерации контента, тем важнее было лучше автоматизировать этот процесс.
Умное кэширование
Что касается спама, то основная сложность в его «поимке» — это не определение контекста, а скорость его распространения. Для того чтобы система не удаляла спам автоматически, злоумышленники незначительно меняют сообщения перед отправкой: добавляют новые слова, заменяют символы.
Для выявления таких сообщений используют вероятностный метод понижения размерности многомерных данных — Locality-sensitive hashing (LSH). Каждый проверяемый текст разделяется на последовательности из n символов, и по их хэшам строится LSH-вектор документа. Благодаря этому машина сравнивает не сами тексты, а их векторы. Это позволяет эффективно вычислять спам, даже если каждое новое сообщение чем-то отличается от предыдущего.
Теперь как только одно из сообщений помечается системой или человеком как спам, остальные похожие удаляются автоматически. Это сокращает время обработки комментариев — потенциально вредоносные сообщения не висят на страницах в ожидании вердикта.
Толокеры и асессоры
Хотя система и учится самостоятельно вычислять спам, иногда она нуждается в помощи или перепроверке. Это касается тех случаев, когда важно не просто удалить пост с ругательствами, а верно оценить контекст. Иногда спамеры рекламируют свои услуги в отзывах у конкурентов, пишут бессмысленный набор символов или просто по ошибке оставляют комментарий не о той организации (например, жалуются на маникюрный салон в отзывах на ресторан).
Поскольку машина не всегда точно улавливает контекст, сложные случаи перепроверяют вручную. Толокеры (пользователи сервиса Толока, созданного для обучения ИИ) и асессоры (специалисты, анализирующие работу поисковой системы) оценивают тексты, в которых классификатор не увидел ошибок, и благодаря этому помогают обучать систему.
Классификатор хороших текстов
Классификатор хороших текстов позволяет автоматизировать часть работы, которой раньше занимались люди. Первые модели работали по такому принципу: они разбивали текст на слова, приводили каждое слово в начальную форму (иначе говоря, выделяли леммы) и анализировали их с помощью специального «словаря хороших лемм», служебные слова при этом не учитывались.
Логика такой системы заключалась в том, что если сообщение состоит только из «хороших» слов, то и посыл его скорее всего не будет содержать оскорблений — однако современные модели работают умнее. Разметкой грубостей в классификаторе занимается нейросеть BERT, созданная для обработки естественного языка. Она улавливает слова в контексте и помогает выявлять оскорбления даже там, где не используются грубые слова.
Антимат
Правила сервисов Яндекса не позволяют использовать нецензурную лексику, поэтому машина должна уметь вычислять и ее тоже. Проблема в том, что мат очень разнообразен: мало того, что от нескольких корней можно образовать огромное число слов, так еще и каждое из них можно написать по-разному: «запикать» часть символов звездочками, добавить транслит, переставить буквы местами.
Поэтому недостаточно составить словарь «плохих слов». Вместо этого Яндекс научил машину самостоятельно вносить шум в мат и ругательства — генерировать варианты, на которые может хватить фантазии пользователей. Благодаря этому система может подозрительные комбинации символов, даже если их нет в словарях. В этом случае цель системы не в том, чтобы перебрать все возможные варианты, а в том, чтобы комментатору стало лень тратить усилия на придумывание такого оскорбления, которое не сможет придумать машина.
Заключение
Сегодня машина обрабатывает до 90% контента, но все равно нуждается в перепроверке человеком. Конечно, при желании пользователи могут так завуалировать оскорбление, чтобы система ничего не распознала, но большую часть спама и негатива нейросети уже научились удалять быстро и точно.