Бессерверный подход к обнаружению аномалий в данных в реальном времени - от Гаутама Кришны, Рубена Хиллиарда и Прити Модгил

Вступление

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

Приложения для обнаружения аномалий в потоковых данных в реальном времени существуют во многих отраслях, таких как финансы, ИТ, медицина, производство, социальные сети, электронная коммерция и т. Д. Обнаружение аномалий может предоставить полезную, действенную информацию в реальном времени, а также данные за более длительный период. срок использования. Однако реализация рабочих процессов обнаружения аномалий все еще ограничена, и есть потенциал для того, чтобы это стало отраслевым отличием для любой компании, которая хочет внедрить. В этом блоге мы будем использовать Amazon Web Services для создания приложения для обнаружения аномалий в реальном времени.

В этом посте мы будем использовать следующие сервисы AWS:

  • Amazon SageMaker - сервис машинного обучения для разработки и масштабного развертывания прогнозных моделей с помощью среды ноутбука Jupyter.
  • Amazon Athena - бессерверная служба интерактивных запросов для анализа данных в Amazon S3 с использованием стандартного SQL.
  • AWS Lambda - сервис бессерверного выполнения кода, который может программно подключаться практически ко всем сервисам Amazon.
  • Amazon S3 - популярное хранилище объектов на Amazon Web Services.
  • Amazon Kinesis - Amazon Kinesis предлагает ключевые возможности для рентабельной обработки и анализа потоковых данных в любом масштабе.
  • Amazon Simple Notification Service - полностью управляемая служба обмена сообщениями между публикациями и подписками, обеспечивающая массовую доставку сообщений.
  • Amazon Elasticsearch Service - управляемая, хорошо масштабируемая система полнотекстового поиска и аналитики в реальном времени.
  • Kibana - поиск, просмотр и визуализация данных, проиндексированных в Elasticsearch.

Облачная архитектура AWS

Процесс:

Для целей этой демонстрации мы использовали вариант использования сбора данных датчиков Бортовой диагностики II (OBD II) от транспортного средства. Устройство OBD II автоматизированных транспортных средств собирает данные с различных датчиков и отправляет их на облачный сервер в режиме реального времени для подробного анализа. Однако эта область не входит в рамки этого блога. Мы будем моделировать данные OBD на основе распределений, соответствующих данным OBD, общедоступным из Kaggle. Мы случайным образом вводим выбросы данных путем масштабирования точек данных OBD ​​в 2 раза (произвольно выбранный). Ниже приведены основные шаги в нашей платформе обнаружения аномалий на основе AWS.

  1. Генерация данных от датчика OBD II: шаг для имитации данных OBD ​​II, как указано выше.
  2. Потоковое потребление данных в Amazon Kinesis Data Streams: данные от датчика OBD II потребляются потоком Kinesis.
  3. Аналитика в реальном времени и обнаружение аномалий в Kinesis Data Analytics: данные из потока kinesis служат входными данными для нашего аналитического приложения kinesis. Kinesis Analytics использует алгоритм Random Cut Forest для определения базовых данных в реальном времени, прежде всего, для получения оценок аномалий для новых точек данных.
  4. Обработанные данные из Kinesis Analytics в поток Kinesis: Kinesis Analytics не обязательно предпринимает какие-либо действия для точек данных аномалии, кроме добавления оценки аномалии к выводимым из них полезным нагрузкам JSON. Для выполнения действий результат передается в другой Steam Kinesis для использования.
  5. Система уведомлений в реальном времени: чтобы уведомить нижестоящие системы (или пользователей) о потенциальных выбросах, отмеченных восходящей аналитикой Kinesis, мы создаем тему SNS и используем лямбда-функцию (запускаемую потоком Kinesis на предыдущем шаге) для push-уведомлений в тему соцсети. Функция Lambda запускает уведомление SNS только в том случае, если оценки аномалий превышают установленный (вручную) порог.
  6. Визуализация в реальном времени: чтобы наглядно продемонстрировать аномалии в данных, мы также создали панель мониторинга в реальном времени на основе ElasticSearch и Kibana. Обработанные записи с оценками аномалий вставляются в управляемый Amazon ES-кластер, и мы индексируем записи как временные документы. Мы использовали Timelion и другие инструменты визуализации Kibana для разработки панели управления в реальном времени.
  7. Загрузка данных в хранилище объектов (S3) с помощью Kinesis Firehose: Обработанные данные из нашего аналитического приложения Kinesis буферизируются и загружаются в S3 каждые 5 минут. Данные разделены способом, совместимым с HIVE.
  8. Аналитическая отчетность через Amazon Athena: разделенные данные в S3 доступны для запросов конечным пользователям через Amazon Athena, где пользователи могут получать доступ к данным с помощью стандартных запросов SQL. Он всегда открывает пути для внешних приложений визуализации данных, таких как Tableau для доступа к данным в S3.
  9. Машинное обучение через Amazon SageMaker - в качестве более продвинутого варианта использования мы можем использовать Amazon SageMaker для доступа к хранилищам данных в S3, чтобы обучать и изучать закономерности в данных с помощью алгоритмов машинного обучения, чтобы он мог делать прогнозы для новых точек данных в будущее.

Когда шаги с 4 по 6 выше говорят об обработке данных БД в реальном времени, шаги с 7 по 9 ниже говорят о сохранении данных в хранилище объектов для будущего более глубокого анализа погружений.

Отслеживание аномалий

Как мы обсуждали в шагах 5 и 6 выше, мы разработали несколько способов отслеживания точек данных аномалий - один с использованием панели управления в реальном времени через ElasticSearch + Kibana, а второй, уведомление по электронной почте через Amazon Simple Notification Service (SNS).

Снимок панели мониторинга в реальном времени показан ниже. Мы установили порог 2,0 - это означает, что каждый раз, когда мы получаем оценку аномалии 2 или более, она будет отображаться на панели инструментов.

Кроме того, мы настроили лямбда-функцию (как упоминалось в шаге 5 выше), которая запускает уведомление через Amazon SNS. Пользователи, подписавшиеся на тему SNS, получат уведомление, которое выглядит следующим образом:

Обзор алгоритма

Алгоритм случайного вырубного леса, используемый в Kinesis Analytics, основан на надежном случайном вырубном лесу, впервые реализованном группой исследователей из Amazon. Алгоритм ориентирован на скорость и специально разработан и оптимизирован для потоковой передачи данных. Кроме того, он довольно надежен, не предполагает никаких предположений о распределении базовых данных и не требует предварительной обработки.

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

Здесь стоит отметить, что Amazon SageMaker также поддерживает обнаружение аномалий с помощью Random Cut Forest, но в первую очередь он предназначен для пакетного прогнозирования. Реализация SageMaker требует, чтобы пользователи обучали модель с использованием статического набора данных, и модель выводит оценки аномалий для каждой точки данных во входном наборе данных. Пример реализации Random Cut Forest на Amazon SageMaker можно найти в этом блоге.

Заключение

Архитектура для настройки потоковых данных, выполнения аналитики в реальном времени, обслуживания результатов в виде информационных панелей или предупреждений, а затем сохранения соответствующих данных для последующего использования - все это может быть реализовано в рамках платформы AWS. Каждый из этих компонентов можно настроить в зависимости от отраслевого приложения и варианта использования. Например, в случае медицинских устройств мониторинг в режиме реального времени и оповещение об аномалиях могут предоставить жизненно важную и ценную информацию медицинским работникам, работающим на переднем крае, для определения приоритетности действий. Это может быть особенно полезно в условиях дефицита ресурсов, таких как эпидемия COVID. Тем не менее, другие варианты использования для обнаружения аномалий и информационных панелей в реальном времени могут способствовать обеспечению долгосрочной экономии затрат, например, с помощью датчиков здания и связанных с ними моделей энергопотребления. Во многих случаях данные, полученные для аналитики в реальном времени для операционных целей (например, аномалии датчиков производственного оборудования), затем могут быть агрегированы и сохранены для последующих приложений, таких как исполнительные информационные панели (например, отказы оборудования и связанные с этим сбои в производстве), а также для будущего машинного обучения приложения (например, прогнозирование того, какой тип отказа и продолжительность отключения могут возникнуть в результате аномалии датчика).

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