Изучение того, как состязательное обучение можно использовать для нацеливания на детекторы SMS-спама с помощью атак на основе карты значимости на основе Якоби

Примечание. Методология, лежащая в основе подхода, обсуждаемого в этом посте, основана на совместной публикации между мной и Ирен Анти.

ВСТУПЛЕНИЕ

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

Существует несколько механизмов безопасности для автоматического определения того, является ли электронное письмо или SMS-сообщение спамом. Эти подходы часто основаны на машинном обучении. Однако внедрение таких систем также может быть предметом атак.

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

В контексте обнаружения SMS-спама AML может использоваться для манипулирования текстовыми данными путем включения возмущений, чтобы данные спама были классифицированы как не спам, следовательно, в обход детектора.

НАБОР ДАННЫХ И ПРЕДВАРИТЕЛЬНАЯ ОБРАБОТКА ДАННЫХ

Сборник SMS-спама - это набор SMS-сообщений с тегами, собранных для исследования SMS-спама. Он содержит набор из 5 574 текстовых SMS-сообщений на английском языке, которые помечаются в зависимости от того, являются ли они спамом (425 сообщений) или нет (3 375).

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

  • Преобразуйте текст в нижний регистр.
  • Удалите знаки препинания.
  • Удалите лишнее пустое пространство.
  • Убрать числа.
  • Удалите такие стоп-слова, как «the», «a», «an», «in».
  • Лемматизация.
  • Токенизация.

Набор инструментов для естественного языка (NLTK) Python может справиться с этими требованиями предварительной обработки. Теперь результат должен выглядеть примерно так:

ВЛОЖЕНИЯ СЛОВ

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

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

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

В этом случае мы будем использовать Word2Vec Gensim для создания модели. Вот некоторые из важных параметров:

  • size: количество измерений вложений. По умолчанию 100.
  • window: Максимальное расстояние между целевым словом и словами вокруг целевого слова. Окно по умолчанию - 5.
  • min_count: минимальное количество слов, которое следует учитывать при обучении модели. Слова, число которых меньше этого числа, игнорируются. По умолчанию min_count - 5.
  • рабочие: Количество перегородок во время обучения. Рабочих по умолчанию - 3.
  • sg: алгоритм обучения, либо непрерывный набор слов (0), либо скип-грамма (1). Алгоритм обучения по умолчанию - Непрерывный набор слов.

Далее мы увидим, как использовать модель Word2Vec для создания вектора для документов в наборе данных. Векторы Word2Vec генерируются для каждого SMS-сообщения в обучающих данных путем обхода набора данных. Просто используя модель для каждого слова текстового сообщения, мы получаем векторы встраивания слов для этих слов. Затем мы представляем сообщение в наборе данных, вычисляя среднее значение по всем векторам слов в тексте.

МОДЕЛЬНОЕ ОБУЧЕНИЕ И КЛАССИФИКАЦИЯ

Давайте сначала закодируем наши целевые ярлыки спам и not_spam. Это включает преобразование категориальных значений в числовые значения. Затем мы назначим функции переменной X, а целевые метки - переменной y. Наконец, мы разделим предварительно обработанные данные на два набора данных.

  • Набор данных Train: для обучения модели категоризации текста SMS.
  • Набор данных Test: для проверки работоспособности модели.

Чтобы разделить данные на 2 таких набора, мы воспользуемся функцией Scikit-learn's train test split method from the model selection. В этом случае мы разделим данные на 70% для обучения и 30% для тестирования.

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

После обучения модели мы можем оценить ее производительность, когда она пытается предсказать целевые метки набора тестов. Отчет о классификации показывает, что модель может предсказать тестовые образцы с высоким средневзвешенным значением F1-балла 0,94.

ПОЛУЧЕНИЕ НЕОБХОДИМЫХ ОБРАЗЦОВ

Хорошо известный пример использования AML - классификация изображений. Это включает добавление шума, который может быть не заметен человеческому глазу, что также вводит в заблуждение классификатор.

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

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

Метод JSMA генерирует возмущения с использованием карт значимости. Карта значимости определяет, какие особенности входных данных наиболее релевантны для решения модели, относящейся к тому или иному классу; эти характеристики, если они изменены, скорее всего, повлияют на классификацию целевых значений. Более конкретно, начальный процент функций (гамма) выбирается так, чтобы на них воздействовала (тета) величина шума. Затем модель устанавливает, привел ли добавленный шум к неправильной классификации целевой модели. Если шум не повлиял на производительность модели, выбирается другой набор функций и выполняется новая итерация до тех пор, пока не появится карта значимости, которую можно использовать для генерации состязательной выборки.

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

ОЦЕНКА

Чтобы изучить, как различные комбинации параметров JSMA влияют на производительность обученного Дерева решений, состязательные образцы были сгенерированы из всех точек данных спама, присутствующих в данных тестирования, с использованием ряда комбинаций гаммы и тета. Затем состязательные образцы были объединены с точками данных тестирования отсутствия спама и представлены обученной модели. На тепловой карте представлены общие средневзвешенные F1-баллы для всех состязательных комбинаций гамма- и тета-параметров JSMA.

Эффективность классификации модели дерева решений позволила снизить F1-баллы по всем параметрам гаммы и тета. Когда гамма = 0,3, тета = 0,5, эффективность классификации модели снизилась на 18 процентных пунктов (оценка F1 = 0,759). В этом случае, исходя из этого набора данных, гамма = 0,3, тета = 0,5 будет оптимальным параметром, который можно использовать для успешного снижения точности детектора SMS-спама на основе машинного обучения.

ЗАКЛЮЧЕНИЕ

Итак, что я узнал из этого анализа?

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

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

Полный блокнот можно найти в моем репозитории на GitHub ниже: https://github.com/LowriWilliams/SMS_Adversarial_Machine_Learning