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

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

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

Amazon Fraud Detector упрощает внедрение механизмов обнаружения мошенничества для приложений. Мы можем выполнить часть построения модели из самой консоли, а затем интегрировать ее в наше приложение - просто вызовите конечную точку API.

Давайте посмотрим на образец реализации детектора мошеннических адресов электронной почты, который использует модель машинного обучения, и на то, как мы можем использовать ее в нашем приложении. Однако обратите внимание, что использование модели машинного обучения в Amazon Fraud Dector не является обязательным и позволяет создавать детекторы с правилами, которые также оцениваются по статическим данным.

Итак, давайте создадим наш детектор мошенничества ...

Создать корзину S3

Сначала нам нужно создать корзину для хранения нашего набора обучающих данных.

Список идентификаторов адресов электронной почты из истории загрузок

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

  • Иметь более 10 000 строк данных
  • И мошеннические, и законные события превышают минимальное количество в 500.
  • Имена заголовков не должны содержать пробелов и содержать только строчные буквы от a до z (допускается подчеркивание). А также содержит обязательные имена EVENT_TIMESTAMP (время возникновения события) и EVENT_LABEL (классификация событий).

Создать тип события

  1. Дайте название своему Событию. В нашем случае мы можем назвать его user_registration (событие - это бизнес-деятельность, которая оценивается на предмет риска мошенничества).
  2. Создайте Сущность (Сущность представляет, кто выполняет событие, и в нашем случае это пользователь)

3. Выберите способ определения Переменные события.

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

4. Создайте роль IAM и загрузите набор обучающих данных.

Роль IAM используется для доступа к обучающим данным в корзине S3, которую мы создали выше.

Отсюда мы можем создать новую роль, просто указав имя корзины S3.

Затем укажите местоположение файла данных обучения S3 и нажмите Загрузить, чтобы получить заголовки файла CSV.

Затем сопоставьте переменные с типом из списка.

5. Создайте ярлыки для категоризации события. (Ярлык классифицирует событие как мошенническое или законное)

В этом случае нам нужны два ярлыка: законный и мошеннический.

Повторите описанный выше шаг, чтобы создать ярлык мошенничества.

Создайте Модель

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

Затем мы должны определить метки, которые используются для классификации.

Как только мы закончим описанное выше, начнется обучение модели ...

После завершения обучения щелкните версию, чтобы просмотреть производительность обученной модели.

Затем нажмите Действия - ›Развернуть версию модели, чтобы развернуть обученную модель. Завершение развертывания займет несколько минут.

Создайте Детектор

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

Затем добавьте развернутую версию модели.

Затем мы должны создать правило с одним или несколькими результатами. Правило - это условие, которое определяет, как получить переменные во время прогнозирования, а результат - это результат прогноза. Мы можем использовать созданные нами переменные, а также переменные, возвращаемые из модели.

В нашем случае мы используем переменную, возвращаемую из модели, для определения условия и создания нового результата с именем high_risk_outcome.

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

$ user_registration_fraud_model_insightscore ‹= 500

Затем выберите режим выполнения правила, как показано ниже.

Интегрируйте детектор

Наконец, давайте воспользуемся нашим детектором мошенничества в нашем приложении. Ниже упоминается, как мы можем использовать его в приложении NodeJS. Для этого мы можем использовать функцию getEventPrediction службы FraudDetector в SDK.

Теперь у нас есть детектор мошенничества на основе машинного обучения для нашего приложения. Супер круто, да! 😎. AWS приблизил машинное обучение к разработчикам, так что даже не обладая достаточными знаниями о машинном обучении, мы можем использовать его в наших приложениях. Я должен признать, что такой тип интеллекта был кошмаром для обычных веб-приложений и мобильных приложений, поскольку развертывание подобной службы обошлось бы нам дороже, чем запуск приложения.

👋 Присоединяйтесь к нам сегодня !!

️ Подписывайтесь на нас в LinkedIn, Twitter, Facebook и Instagram

Если этот пост был полезен, пожалуйста, нажмите несколько раз кнопку хлопка 👏 ниже, чтобы выразить свою поддержку! ⬇