В Массачусском технологическом университете (MIT)
разработали программу TextFooler, которая призвана обманывать системы обработки естесственного текста (NLP) и заставлять их делать неправильные выводы о смысле текста. Для справки: NLP-системы используются, к примеру, голосовыми помощниками вроде Алисы (Yandex), Alexa (Amazon) или Siri (Apple) для разбора и обработки запросов пользователей.
"Если данные инструменты уязвимы для целенаправленных атак, то последствия могут быть катастрофическими," -- говорит Di Jin, аспирант MIT и главный автор статьи по теме TextFooler, -- "Эти инструменты должны иметь эффективные методы самозащиты, и для разработки подобных методов мы должны сначала понять методы атак."
TextFooler состоит из двух частей: первая часть изменяет исходный текст, вторая часть использует изменённый текст для проверки, могут ли изменения обмануть два разных метода распознавания естественного языка.
Система находит наиболее важные для понимания смысла текста слова, которые повлияют на конечную модель, создаваемую NLP-системой, и затем заменяет их на синонимы, которые подходят по смыслу. При этом TextFooler старается сохранить связность текста и оригинальный смысл, дабы он выглядил "человечным". Затем два разных NLP-метода применяются к полученному тексту: классификация текста и логический анализ (какие отношения между частями в предложении?) с целью поменять результат классификации или привести к неверным результатам логического анализа.
Пример входной строки: “The characters, cast in impossibly contrived situations, are totally estranged from reality.”
Пример изменённой TextFooler строки (изменённые слова выделены): “The characters, cast in impossibly
engineered circumstances, are
fully estranged from reality.”
В целом, данная система использовалась для успешной атаки на три разных NLP-модели, включая open source-модель
"BERT". TextFooler позволил снизить точность разбора текста с 90% до 20% через изменение только 10% слов в исходном тексте.
Исследователи замечают, что атаки на существующие NLP-системы не являются конечной целью, и надеются, что их работа позволит создать более абстрактные модели для обобщения новых, не явных данных.
"Система может использоваться (с необходимыми модификациями, если потребуется) для атак на любую NLP-модель, используемую для классификации текста для проверки её надёжности," -- говорит Jin -- "С другой стороны, сгенерированные атаки могут быть для повышения надёжности и обобщённости моделей глубокого обучения через метод adversarial training, что является критически важным результатом нашей работы."
Исходный код системы:
https://github.com/jind11/TextFooler