Электронные письма со спамом, также известные как нежелательная почта, рассылаются одновременно большому количеству пользователей и часто содержат мошенничество, фишинговый контент или загадочные сообщения. Спам-письма иногда рассылаются вручную человеком, но чаще всего с помощью бота. Примеры спам-сообщений включают поддельные объявления, цепные электронные письма и попытки выдать себя за другое лицо. Существует риск того, что в ваш почтовый ящик может попасть особенно хорошо замаскированный спам, который может быть опасен при нажатии на него. Важно принять дополнительные меры предосторожности для защиты вашего устройства и конфиденциальной информации.
По мере совершенствования технологий обнаружение спама становится сложной задачей из-за меняющегося характера. Спам сильно отличается от других типов угроз безопасности. Сначала это может показаться раздражающим сообщением, а не угроза, но это имеет немедленный эффект. Также спамеры часто адаптируют новые методы. Организации, предоставляющие услуги электронной почты, хотят минимизировать спам, насколько это возможно, чтобы избежать любого ущерба для своих конечных клиентов.
В этом посте мы покажем, насколько просто создать детектор спама в электронной почте с помощью Amazon SageMaker. Встроенный алгоритм BlazingText предлагает оптимизированные реализации алгоритмов Word2vec и классификации текста. Word2vec полезен для различных задач обработки естественного языка (NLP), таких как анализ настроений, распознавание именованных объектов и машинный перевод. Классификация текста необходима для таких приложений, как веб-поиск, поиск информации, ранжирование и классификация документов.
Обзор решения
В этом посте показано, как настроить детектор спама в электронной почте и отфильтровать спам с помощью SageMaker. Давайте посмотрим, как обычно работает детектор спама, как показано на следующей диаграмме.
Письма отправляются через детектор спама. Электронное письмо отправляется в папку со спамом, если детектор спама определяет его как спам. В противном случае оно отправляется в почтовый ящик клиента.
Мы проведем вас через следующие шаги, чтобы настроить нашу модель детектора спама:
- Загрузите образец набора данных из репозитория GitHub.
- Загрузите данные в блокнот Amazon SageMaker Studio.
- Подготовьте данные для модели.
- Обучите, разверните и протестируйте модель.
Предпосылки
Прежде чем погрузиться в этот вариант использования, выполните следующие предварительные условия:
- Настройте учетную запись AWS.
- Настройте домен SageMaker.
- Создайте корзину Amazon Simple Storage Service (Amazon S3). Инструкции см. в разделе Создание первой корзины S3.
Скачать набор данных
Загрузите файл email_dataset.csv из Гитхаб и загрузите файл в корзину S3.
Алгоритм BlazingText ожидает один предварительно обработанный текстовый файл с токенами, разделенными пробелами. Каждая строка в файле должна содержать одно предложение. Если вам нужно тренироваться на нескольких текстовых файлах, объедините их в один файл и загрузите файл в соответствующий канал.
Загрузите данные в SageMaker Studio.
Чтобы выполнить загрузку данных, выполните следующие шаги:
- Download the
spam_detector.ipynb
файл из Гитхаб и загрузите файл в SageMaker Studio. - В записной книжке Studio откройте
spam_detector.ipynb
блокнот. - Если вам будет предложено выбрать ядро, выберите ядро Python 3 (Data Science 3.0) и выберите Выбирать. Если нет, убедитесь, что правильное ядро было выбрано автоматически.
- Импортируйте необходимую библиотеку Python и установите роли и корзины S3. Укажите корзину S3 и префикс, куда вы загрузили email_dataset.csv.
- Выполните шаг загрузки данных в записной книжке.
- Проверьте, сбалансирован ли набор данных или нет на основе меток категорий.
Мы видим, что наш набор данных сбалансирован.
Подготовьте данные
Алгоритм BlazingText ожидает данные в следующем формате:
Вот пример:
Проверьте формат данных обучения и проверки для алгоритма BlazingText.
Теперь вы выполняете шаг подготовки данных в записной книжке.
- Во-первых, вам нужно преобразовать столбец «Категория» в целое число. В следующей ячейке значение SPAM заменено на 1, а значение HAM — на 0.
- В следующей ячейке добавляется префикс
__label__
для каждого значения категории и токенизирует столбец сообщения.
- Следующим шагом является разделение набора данных на наборы данных для обучения и проверки и загрузка файлов в корзину S3.
Обучите модель
Чтобы обучить модель, выполните следующие шаги в блокноте:
- Настройте средство оценки BlazingText и создайте экземпляр средства оценки, передающий изображение контейнера.
- Установите для гиперпараметра режима обучения значение «под наблюдением».
BlazingText имеет как неконтролируемый, так и контролируемый режимы обучения. Наш вариант использования — классификация текста, которая представляет собой контролируемое обучение.
- Создайте каналы данных обучения и проверки.
- Начните обучение модели.
- Получите точность набора данных поезда и проверки.
Разверните модель
На этом этапе мы развертываем обученную модель в качестве конечной точки. Выберите нужный экземпляр
Протестируйте модель
Давайте представим пример трех сообщений электронной почты, для которых мы хотим получить прогнозы:
- Нажмите на ссылку ниже, укажите свои данные и выиграйте эту награду
- Лучшее летнее предложение здесь
- Увидимся в офисе в пятницу.
Маркируйте сообщение электронной почты и укажите полезные данные, которые будут использоваться при вызове REST API.
Теперь мы можем предсказать классификацию электронной почты для каждого электронного письма. Вызовите метод предсказания текстового классификатора, передав размеченные экземпляры предложения (полезную нагрузку) в аргумент данных.
Очистить
Наконец, вы можете удалить конечную точку, чтобы избежать непредвиденных расходов.
Также удалите файл данных из корзины S3.
Заключение
В этом посте мы познакомили вас с шагами по созданию детектора спама в электронной почте с использованием алгоритма SageMaker BlazingText. С помощью алгоритма BlazingText вы можете масштабироваться до больших наборов данных. BlazingText используется для текстового анализа и задач классификации текстов и имеет как неконтролируемый, так и контролируемый режимы обучения. Вы можете использовать алгоритм для таких вариантов использования, как анализ настроений клиентов и классификация текста.
Чтобы узнать больше об алгоритме BlazingText, ознакомьтесь с алгоритмом BlazingText.
об авторе
Дирадж Тхакур является архитектором решений в Amazon Web Services. Он работает с клиентами и партнерами AWS, предоставляя рекомендации по внедрению, миграции и стратегии корпоративного облака. Он увлечен технологиями и любит строить и экспериментировать в области аналитики и AI/ML.