Анализ сложных необратимых процессов в реальном времени

Язык труда и переводы:
УДК:
004.8
Дата публикации:
28 ноября 2022, 14:52
Категория:
Математическое моделирование физических процессов и технических систем
Аннотация:
Задачи детектирования аномалий и предсказания значений временных рядов при обработке потоковых данных различных процессов в real time играют важную роль для решения многих прикладных задач. Однако при работе в таких условиях подход, основанный на обучении моделей по фиксированным выборкам, применять не разумно. Причиной является переменчивость характеристических данных во времени, что требует постоянного переобучения используемых моделей. Для обучения моделей на потоковых данных в real time разработаны модификации алгоритмов K-Means и авторегрессии с постоянным переобучением и проведен сравнительный анализ эффективности разработанных модификаций алгоритмов: первого — с K-Means из Apache Spark, второго — с autoregressive model AR и autoregressive integrated moving average ARIMA. Предложенные модификации алгоритмов позволяют не только распараллелить вычисления, используя парадигму отложенных вычислений, но и производить настройку модели «на лету» в экосистеме Apache Spark. Для проведения экспериментов с алгоритмами использовали экспериментальные данные метрик логов одного из технических процессов брокера сообщений. В dataset были искусственно добавлены аномальные фрагменты, отличающиеся большим числом сообщений в секунду и/или размером сообщения. Значения исходного dataset были нормализованы и смещены на среднее значение по тренировочной выборке. Результаты применения разработанных алгоритмов при решении задач поиска аномалий и прогнозирования значений временных рядов показали, что даже наличие аномалий поведения не вносит значительных искажений в предсказания.
Ключевые слова:
необратимые процессы, анализ процессов, технологические платформы, поиск аномалий, кластеризация, временные ряды, машинное обучение
Основной текст труда

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

Для решения этих задач существует несколько успешных подходов, считающихся «классическими». Для анализа временных рядов можно выделить статистические алгоритмы (ARMA, ARIMA, GARCH, модель Хольта — Винтерса и т. д.), линейную регрессию [1], нейронные сети различных архитектур (RNN, LSTM и т. д.) [2, 3]. Для выявления аномалий обычно используют такие алгоритмы кластеризации, как K-Means или KNN [4–6].

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

Можно пытаться переучивать модель через определенные интервалы времени. Однако такое решение малоэффективно из-за того, что обрабатываемых данных, как правило, очень много и одновременно может быть развернуто сразу несколько экземпляров моделей для работы с разными временными рядами. Поэтому процесс частого изменения модели будет связан с достаточно высокими затратами. Но, если нам важно постоянно переобучать модель анализа данных в процессе эксплуатации, то можно применять только такие алгоритмы, которые переобучаются быстрее, чем поступает очередная порция данных обучающей выборки из потока. Про такие алгоритмы принято говорить, что они обучаются «на лету». Класс подобных моделей обсуждается в публикациях как часть области онлайн обучения (online learning). Для скоростной высокоинтенсивной работы требуется использовать фреймворки, позволяющие производить распределенные вычисления при работе с большими объемами данных. Одним из наиболее популярных фреймворков является Apache Spark, предназначенный для распределенной обработки структурированных и неструктурированных данных, и входящий в экосистему проектов Hadoop [7, 8].

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

Постановка задачи

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

  • обнаружение аномалий,
  • предсказание возможных будущих аномалий с разным горизонтом.

Задачу детектирования аномалий можно рассматривать как задачу кластеризации. Пусть есть n–кластеров нормального поведения и один кластер  аномального поведения. На первом этапе на исторических поведенческих данных строим модель, которую оценим, исходя из предположений экспертов. На втором этапе в режиме онлайн будем измерять расстояния внутри кластеров для появляющихся в журнале событий новых данных, определяя их аномальность, при этом будем периодически обновлять модель. Для решения задачи первого этапа будем использовать стандартный алгоритм K-Means, а для второго — авторскую модификацию, которая обновляет метаинформацию о кластерах динамически по мере получения новых данных с возможностью контроля забывания старых данных.

Для предсказания значений временных рядов рассмотрим два алгоритма. Первый — авторегрессионная модель. Это такая модель, в которой значения временного ряда в текущий момент времени линейно зависят от предыдущих значений [9]. Второй — модель авторегрессии скользящего среднего (ARMA). Это модель, которая используется для предсказания значений переменной стационарных временных рядов. Эти две моделям так же модифицируем для работы в реальном времени.

Подготовка данных для экспериментов

Для подготовки экспериментальных данных используются метрики логов одного из технических процессов брокера сообщений Apache Kafka. Использованный датасет представляет собой набор из более, чем двух тысяч метрик — временных рядов. В реальных условиях данные поступают напрямую потоком из сервисов мониторинга работы приложений, однако для исследовательских целей достаточно использовать заранее подготовленный датасет, поступающий в потоковом режиме, например, с помощью Apache Streaming.

Результаты

Выявление аномалий. При решении задачи выявления аномалий было проведено сравнение между предложенной авторами модификацией алгоритма K-Means, и моделью, использующей K-Means без предобучения. Количество кластеров равнялось трем по методу локтя.

Встроенная в Spark MLlib модель K-Means, работающая по классической схеме, обучается на тренировочном датасете, и готова к применению на реальных данных. В авторской модификации предложено использовать предобученную не потоковую модель K-Means, точность которой выше из-за дополнительной настройки модели и оптимизации параметров, недоступных в потоковом режиме. Далее через адаптер (рис. 1) используется уже потоковая модель, работающая с реальными данными. При таком подходе возможна более гибкая настройка параметров модели.

Рис. 1. Схема классов реализованного адаптера между KMeans и Streaming KMeans

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

Ниже в таблице приведены координаты центров кластеров для стандартной модели K-Means и предложенной модификации потоковой модели, построенные на двух, напрямую определяющих аномальность события, метриках:

  • 'message rate' — количество сообщения в секунду,
  • 'kafka_consumer_bytes_consumed_rate’ — количество байт в секунду, получаемых consumer.

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

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

Рассмотрим два случая обучения моделей с получением координат центров для трех кластеров, заданных в двухмерном пространстве (см. таблицу).

Примеры результирующих центров кластеров

№ кластера

Координаты центров

Первый случай

Второй случай

1

(7.074178082686644, -0.11795465590978567)

(8.840045919479378, 0.5943960022854669)

2

(0.6992464872049381, 5.296479067828162)

(-0.08328441646883958, -0.005599962336461511)

3

(-0.08334663515471895, -0.18317698019505607)

(-0.08328441646885959, -0.005599962336481511)

Из таблицы видно, что координаты центров кластеров отличаются друг от друга. Соответственно, и точность модели различается в разных тестах. На тестовом датасете модели кластеризации имеют такие показатели качества [10]:

  • K-Means Streaming с моделью, предобученной K-Means: TPR = TNR = PPV = NPV = 1;
  • K-Means Streaming, которому сначала подали обучающую выборку: TPR Є [0.90; 0.95], TNR = PPV = 1, NPV = 0.99,

где TPR – чувствительность; TNR – специфичность; PPV – точность; PNV – доля ложных пропусков.

Снижение показателей качества для второй модели связано с недетерминированностью центров кластеров после обучения K-Means Streaming на тестовой выборке.

Предсказание временных рядов. При решении задачи предсказания значений временных рядов, для сравнительного анализа были использованы следующие модели: модификация авторегрессии (Real); классическая авторегрессия, обученная на тренировочном датасете; интегрированная модель авторегрессии — скользящего среднего ARIMA. На рис. 2 представлен график с результатами предсказаний исследуемых моделей.

Рис. 2. Результаты предсказания моделей на тестовой выборке

Как видно из рис. 2, в случае датасета без периодичности классические модели не справляются с задачей предсказания временных рядов. Такое поведение легко объясняется и связано с тем, что аномалии носят непериодический характер, а значит не вписываются в паттерн, к которому была приспособлена классическая модель.

Заключение

Для проведения испытаний полученных алгоритмов был подготовлен датасет, состоящий из метрик брокера Apache Kafka при передаче сообщений двумя производителями. При создании датасета изменялись такие характеристики, как количество сообщений в секунду и размер передаваемых сообщений. Также в датасет были искусственно включены две аномалии в виде сообщений с размером, многократно превышающим средний размер сообщений на не аномальных участках. Для выявления аномалий и предсказания временных рядов датасет был нормализован. Статичные и коррелирующие метрики исключены. В качестве контрольной величины была взята метрика kafka_consumer_bytes_consumed_rate. Датасет разделен на две части: для обучения и для тестирования.

В задаче предсказания временных рядов для сравнительного исследования на тестовом датасете были предобучены AR(5) classic и предложенная авторами модификация Real-Time AR. Классическая модель AR, как и следовало ожидать, не справились с предсказанием аномального участка. Real-Time AR предсказала и аномальный и не аномальный участки.

В задаче выявления аномалий сравнивались предложенная авторами модификация потокового алгоритма K-Means и реализация K-Means из библиотеки Mllib Apache Spark, предобученная на тренировочном датасете. При учете всех некоррелирующих метрик, центры кластеров классической модели и модели реального времени оказываются разнесены, однако при учете только метрик, напрямую связанных с аномальностью, центры с высокой точностью совпадают. Это факт свидетельствует о работоспособности модели предложенной авторской модификации K-Means и необходимости «горячего старта модели», повышающего эффективность модели. Кроме этого при изменении профиля метрик, например, при увеличении нагрузки на сервис, предложенная авторская модификация online-модели может легко подстроиться под новые данные, в отличие от классической версии, которая подстроиться не сможет.

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

Литература
  1. Brockwell P.J., Davis R.A. Introduction to time series and forecasting. New York, Springer, 2016. DOI: https://doi.org/10.1007/978-1-4757-2526-1
  2. Aldweesh A., Derhab A., Emam A. Deep learning approaches for anomaly-based intrusion detection systems: a survey, taxonomy, and open issues. Knowledge-Based Systems, 2019, vol. 189, art. no. 105124. DOI: https://doi.org/10.1016/j.knosys.2019.105124
  3. Cinar Y., Mirisaee H., Goswami P., Gaussier E., Ait-Bachir A., Strijov V. Time series forecasting using RNNs: anextended attention mechanism to model periods and handle missing values. ArXiv, 2017, arXiv:1703.10089v1 [cs.LG]. DOI: https://doi.org/10.48550/arXiv.1703.10089
  4. Sarvani A., Venugopal B., Devarakonda N. Anomaly Detection Using K-means Approach and Outliers Detection Technique. Proceedings of Soft Computing: Theories and Applications. Advances in Intelligent Systems and Computing. Singapore, Springer, 2017, vol. 742. DOI: https://doi.org/10.1007/978-981-13-0589-4_35
  5. Lemaire, V., Ismaili, O.A., Cornuéjols, A., Gay, D. Predictive K-means with local models. Trends and Applications in Knowledge Discovery and Data Mining. PAKDD 2020. Lecture Notes in Computer Science. Singapore, Springer, Cham, 2020, vol. 12237, pp. 91–103. DOI: https://doi.org/10.1007/978-3-030-60470-7_10
  6. Tsigkritis T., Groumas G., Schneider M. On the Use of k-NN in anomaly detection. Journal of Information Security, 2018, vol. 9, pp. 70–84. DOI: https://doi.org/10.4236/jis.2018.91006
  7. Shumway R.H., Stoffer D.S. Time Series Analysis and Its Applications: With R Examples. 3rd ed. Springer, 2011, 596 p.
  8. Fawcett T. An introduction to ROC analysis. Pattern Recogn Letters, 2006, vol. 27, iss. 8, pp. 861–74. DOI: https://doi.org/10.1016/j.patrec.2005.10.010
  9. Unified engine for large-scale data analytics. Apache Spark. URL: https://spark.apache.org/ (дата обращения 01.10.2021).
  10. Apache Hadoop. URL: https://hadoop.apache.org/ (дата обращения 01.10.2021).
Ваш браузер устарел и не обеспечивает полноценную и безопасную работу с сайтом.
Установите актуальную версию вашего браузера или одну из современных альтернатив.