Практическое состязательное МО: Я сломал свой собственный спам-фильтр, добавил защиты, снова сломал его. Заметки для всех, кто внедряет машинное обучение в адверсариальные среды
Краткое содержание
Я разрабатывал классификатор модерации форума и хотел понять его реальную поверхность атаки до запуска. Делюсь результатами — я думаю, что они применимы к любому, кто использует машинное обучение в состязательных контекстах (мошенничество, модерация, обнаружение злоупотреблений, вещи, связанные с WAF). Настройка: базовый TF-IDF + логистическая регрессия. 100% точность на тестовых данных, отложенных для проверки. Синтетический набор данных, слишком чистый, но это позволяет продемонстрировать атаки без двусмысленности. Первый сюрприз: злоумышленникам не нужны ваши веса. Любая модель, которая выдает вам результаты, раскрывает свою поверхность принятия решений. С линейной моделью вы буквально можете прочитать коэффициенты и получить ранжированный список «слов, которые вас выдают». Модели с более высокой емкостью просто нуждаются в большем количестве запросов. 4 атаки: Удаление высоковероятных спам-слов → 0%. Сигнал спама распределен. Замена кириллических гомоглифов для нарушения токенизации → 0%. Линейные модели плавно деградируют до неизвестных токенов. Добавление 25 слов общей похвалы («Спасибо за отличную статью, очень полезно, узнал много о данном случае») → 100%.
Полный текст статьи пока не загружен.