Full Text
1. Введение. В последнее время возрастает значение различных компьютерных систем в деятельности человека. Они позволяют организовать оперативное общение людей, автоматизировать технологические процессы, обеспечить поддержку образования, медицины и других важных сфер жизни общества.
Особую роль играют программные системы, которые обеспечивают хранение и обработку больших данных, взаимодействуют с большим количеством пользователей. Возникновение ошибок в них может повлиять на многих пользователей и привести к значительным финансовым потерям. Поэтому, наиболее актуальной является проблема поддержания надежности и безопасности подобных систем.
Как правило, обнаружение ошибок в компьютерных системах возможно путем поиска аномального поведения на основании анализа происходящих событий, информация о которых хранится в сложно структурированном виде в специальных журналах. Эта информация может быть представима в текстовом виде. Таким образом, задача поиска аномального поведения системы может быть сведена к задаче обнаружения аномалий в потоке текстовых описаний происходящих событий. в При этом важно отметить, что объем журналов может быть очень большим. Поэтому ручной поиск аномалий не представляется возможным 6,12,14]. Следовательно, нужно разработать алгоритм, позволяющий автоматически определять подобное аномальное поведение систем. Анализ существующих работ показывает, что в этой области эффективными являются подходы, основанные на глубоком обучении. Именно им и посвящена данная работа.
2. Анализ существующих работ. На основании анализа существующих работ можно утверждать, что общая схема обнаружения аномального поведения систем состоит из следующих этапов [1, 12]:
(i) построение модели данных;
(ii) построение модели нормального поведения системы;
(iii) обучение модели обнаружения аномального поведения;
(iv) применение модели обнаружения аномального поведения.
На этапе построения модели данных важно учитывать природу входных данных, которые, как было отмечено выше, представляют собой текстовые описания происходящих в системе событий. Следовательно, на этом этапе могут применяться классические методы анализа текстовых данных (токенизация, лемматизация; см. [7, 18]).
Кроме того, важно помнить, что входные текстовые данные описывают события и обладают рядом специфических особенностей [7]:
(i) описания событий сильно зависят от конкретной системы, поэтому для разработки универсального алгоритма необходимо минимизировать множество алгоритмов предобработки данных;
(ii) события часто похожи друг на друга и отличаются только наличием специальных идентификаторов связанных объектов (процессов, подсистем и т. д.),
(iii) множество уникальных событий ограничено относительно небольшим размером словаря (не больше 1000);
(iv) входные данные представляют собой поток описаний связанных между собой событий.
Указанные особенности необходимо также учитывать на этапе построения модели в данных. В частности, в качестве предобработки можно использовать только удаление различных идентификаторов с помощью регулярных выражений. Поскольку уникальных событий в системе, как правило, не очень много, в качестве токена можно использовать отдельно взятые события.
После выполнения токенизации необходимо провести векторизации входных данных. На этом этапе применимы классические методы векторизации текста (One-hot кодирование отдельных событий, модели описаний событий как текстовые модели множества либо последовательности слов) [2].
Следующий этап заключается в построении признакового описания последовательности взаимосвязанных событий. Полученное информативное векторное представление указанных последовательностей и может рассматриваться в качестве модели данных. На этом этапе широко применяются подходы, основанные на сокращении размерности признакового пространства (латентное разложение Дирихле, матричные разложения и др.) [2]. Также в последнее время применяются подходы, основанные на глубоком обучении (сверточные нейронные сети, архитектуры трансформеров с использованием механизма самовнимания) [19].
После построения модели данных необходимо построить и обучить модель описания нормального поведения системы. Для этого, необходимо корректно сформулировать критерий аномального поведения системы. Здесь важно отметить, что в большинстве практических задач очень трудно заранее корректно описать аномальное поведение систем. Однако, можно подобрать данные, в которых поведение системы было нормальным на протяжении практически всего времени работы системы.
Поэтому на данном этапе следует использовать классический подход сведения поставленной задачи к задаче одноклассовой классификации [1]. Особый интерес представляет классический одноклассовый метод опорных векторов [1], который может рассматриваться в качестве базового решения. Также стоит обратить внимание на методы нечеткой кластеризации, которые развиваются авторами данной работы [8, 17]. Также в последнее время наиболее эффективными являются различные модификации архитектур трансформеров [5]. Именно эти подходы и будут рассмотрены далее.
Одноклассовый метод опорных векторов [13] представляет собой некоторую модификацию классического метода опорных векторов для задач одноклассовой классификации и позволяет строить разделяющую гиперплоскость на основании решения следующей задачи оптимизации:
Здесь объекты обучающей выборки, процент исключений в обучающей выборке, количество объектов в обучающей выборке, некоторые штрафующие переменные, некоторая ядровая функция, осуществляющая отображение первоначального пространства признаков в пространство большей размерности . Если и решение поставленной задачи, то решающая функция выглядит следующим образом:
Методы нечеткой кластеризации [3, 17] позволяют строить так называемые нечеткие кластеры и определять степень аномальности входящих в обучающую выборку событий. При этом, лучший результат можно получить с помощью использования эллиптических кластеров, учитывающих матрицу ковариаций данных обучающей выборки [8].
Суть метода заключается в следующем. Рассмотрим конечную выборку входных данных: . Здесь размер выборки, множество значений из пространства признаков. Необходимо построить единый кластер эллипсоидальной формы, включающий все исследуемые образцы таким образом, что степень типичности каждого образца вычисляется путем решения следующей задачи оптимизации:
Здесь степень типичности образца , степень нечеткости, множество степеней типичности образцов, квадрат расстояния Махалонобиса от вектора до центра кластера , вычисляемый по формуле
где матрица ковариаций.
В ходе исследований, проведенных в изученной литературе [8], степень типичности объекта может определяться по следующей формуле:
где радиус кластера, на котором образы анализируемых объектов имеют степень типичности, равную . Этот радиус вычисляется на основании расстояний каждого объекта обучающей выборки до найденного центра распределения.
Подходы, основанные на архитектуре трансформеров с механизмом самовнимания (см. [5, 19]), позволяют строить информативные векторные представления потока событий, учитывающие взаимные связи событий. Данный алгоритм обучается на задаче маскированного моделирования, заключающейся в предсказании пропущенных событий в рассматриваемой последовательности. При этом в последнее время наиболее эффективными являются подходы, основанные на так называемом многоголовом самовнимании. Такие архитектуры представляют собой параллельно связанные <<головы>> (элементы, вычисляющие степень внимания). Каждая <<голова>> позволяет определять степень внимания, исходя из различных особенностей данных. Формально каждая <<голова>> представляет собой скалярное произведение:
Здесь информативное представление последовательности событий; , и матрицы весов для линейной проекции размерности для <<головы>> с номером ; размерность одной <<головы>>.
Механизм многоголового самовнимания производит объединение всех голов линейное отображение в некоторое новое пространство размерности с помощью матрицы весов :
Далее, для предсказания пропущенного события используется полносвязный слой с функцией активации ReLU:
Здесь и некоторые матрицы весов.
Классическая архитектура трансформера состоит из нескольких таких слоев и позволяет строить информативное векторное представление для события по следующему правилу:
Как было сказано выше, в процессе обучения архитектуры трансформера для поставленной проблемы решаются две задачи: маскированное моделирование пропущенных событий и построение гиперсферы для определения кластера нормальных событий. Таким образом, целевая функция выглядит следующим образом:
Здесь гиперпараметр; оценка предсказания векторного представления пропущенного события с вектором :
Здесь вероятность предсказанного события; и обучаемые параметры; векторное представление реального замаскированного события с номером ; общее количество замаскированных событий в последовательности с номером ; функция для построения кластера нормальных событий:
Здесь информативное векторное представление всей информации о событиях в последовательности с номером ; центр распределения нормальных событий.
Однако большинство рассмотренных подходов работают лишь в режиме бинарной классификации, когда на этапе обучения известны примеры аномального поведения. Они не приспособлены к задаче одноклассовой классификации, и показывают в ней не очень хороший результат. Кроме того, подходы, основанные на архитектуре трансформера достатоно затратны по времени обучения и применения, что вызывает проблемы при реальном применении указанных подходов. В данной работе предлагается рассмотреть подход, учитывающий указанные недостатки и позволяющий эффективно решать задачу одноклассовой классификации.
3. Предлагаемое решение. Как было сказано выше, методы глубокого обучения широко применяются для анализа сложно структурированных данных. При этом, для задач обнаружения аномалий в данных системных журналов используются описанные выше методы, основанные на архитектуре трансформера с использованием механизма самовнимания. Однако, данный механизм требует регулярного вычисления значения внимания для каждого отдельного блока и сравнения его с остальными блоками на каждой итерации обучения, что является достаточно сложным с точки зрения вычислительной сложности.
В настоящей работе предлагается альтернативный подход, который напоминает указанные архитектуры. Однако, в качестве алгоритма построения модели данных предлагается использовать операцию параллельной свертки, предложенной в работе Ю. Ким и широко применяемую в анализе текстовых данных [9]. Данная операция также позволяет учесть порядок событий, что важно в рамках поставленной задачи. Кроме того, признаки, получаемые в процессе обучения каждой сверточной части автоматически обновляются независимо, что позволяет обучать сеть более эффективно, поэтому данная архитектура может выступать в качестве альтернативы архитектурам трансформера [2]. Также была показана возможность адаптации предложенной архитектуры для обнаружения аномалий в потоках текстового контента [4].
В данной работе предлагается новое решение поставленной задачи, основанное на рассмотренных архитектурах, и представляющее собой автокодировщик с использованием параллельной свёртки в качестве кодировщика и однослойного полносвязного декодировщика, который позволяет минимизировать потери при уменьшении размерности признакового пространства путем привлечения сравнительно небольшого объема вычислительных затрат. Также в работе для обнаружения аномалий предлагается использовать слой, основанный на нечеткой кластеризации, который позволяет автоматически определять уровень типичности каждого блока событий на основании информации о расстоянии от построенных сверточных признаков каждого блока до центра построенного кластера, позволяя при этом строить робастное решение, допускающее определенный процент выбросов в обучающей выборке. При этом слой нечёткой кластеризации позволяет ограничить минимальный размер кластера нормальных данных, что, в свою очередь, не приводит к построению кластера, состоящего всего из одной точки. Итоговая оценка нормальности блока событий оценивается как произведение степени типичности блока, полученной из слоя нечёткой кластеризации, на ошибку реконструкции, которая вычисляется как косинусная мера схожести результата декодирования и исходного векторного описания рассматриваемого блока событий. Иными словами, в процессе обучения сети на нормальных данных мы ищем центр распределения сверточных признаков, пытаясь при этом приблизить векторные представления рассматриваемых блоков к указанному центру и минимизируя ошибки кодирования сверточной частью сети. Предлагамая архитектура приведена на рис. 1 и 2.
Рис .1. Операция получения сверточных признаков
Рис. 2. Полная архитектура предлагаемого решения
3.1. Векторизация данных. В предлагаемом решении, как было сказано выше, рассматриваются непрерывные последовательности событий. При этом, к текстовому описания каждого события приминается единственная предобработка, связанная с удалением идентификаторов (последовательностей непробельных символов, содержащих цифры). После указанной предварительной обработки проводится токенизация по отдельным событиям и проводится их кодирование. Поскольку, как было сказано выше, объем уникальных событий невелик, сложные методы построения информативных векторных представлений текстовых данных (Word2Vec, BERT и т. д.) добавляют лишний шум к данным и ухудшают качество итоговых алгоритмов. Поэтому в данной работе для кодирования описаний событий предлагается использовать простой алгоритм One-hot.
В результате предварительной обработки и векторизации мы получаем представление описаний событий в виде потока One-hot векторов:
Здесь вектор, описывающий событие с номером , размер словаря. Далее события группируются в блоки по событий, где размер блока выбирается на основании особенностей рассматриваемых данных. Таким образом, на вход алгоритму построения модели данных подаются матрицы:
Здесь матрица, описывающая блок с номером .
3.2. Сверточные нейронные сети для построения признакового пространства. Для векторизации блоков событий и построения данных предлагается использовать операцию параллельной свертки, описанной в работе Ю. Ким [9].
Данная свертка представляет собой 3 независимых параллельных сверточных слоя, каждый из которых представляет собой отдельный сверточный слой, который выполняет преобразование последовательности группы признаков по определенному правилу. Выбирается некоторое значение размер фильтра для свертки. Этот размер задается на этапе построения модели.
Далее рассмотрим отдельную матрицу , которая будет передана одному сверточному слою. Каждый сверточный слой использует несколько независимых фильтров заданного размера, но с разными значениями весов. Тогда рассмотрим отдельный слой и обозначим через карту признаков, которая получается после применения фильтра указанного слоя к матрице . Тогда выполняется следующее соотношение:
Здесь символ обозначает операцию свертки матрицы фильтром . Как и в работе Ю. Ким, в качестве фильтра используем матрицу размера , т.е. . Благодаря этому после применения одного фильтра конкретного слоя получим карту признаков в виде вектора .
Далее к каждому значению в полученной карте признаков для указанного фильтра добавляется некоторое смещение и применяется нелинейная функция активации. В работе Ю. Ким [9] предлагалось использовать функцию ReLU. Однако она не позволяет учитывать отрицательные значения признаков, а также не осуществляет стандартизацию признаков, что ухудшает качество работы алгоритмов. В данной работе предлагается использовать модификацию указанной функции в виде SELU (см. [10]):
Здесь константы нормализации (см. [10]).
После указанных преобразований для конкретного фильтра выполняется операция субдискретизации, в результате которой выбирается наиболее значимое (максимальное) значение в карте признаков. Следовательно, в результате комбинации свертки и субдискретизации для каждого фильтра получаем одно значение сверточный признак для заданного фильтра.
После этого происходит конкатенация всех сверточных признаков для всех сверточных слоев и всех фильтров, в результате которой получается вектор признакового описания блока событий, который и можно рассматривать в качестве модели данных: , где , где количество сверточных слоев, количество фильтров в слое с номером . Количество фильтров каждого слоя является гиперпараметром, который указывается на этапе построения модели.
3.3. Асимметричный автокодировщик для минимизации потерь информации при сокращении размерности признакового пространства. Анализ существующих работ показал, что для минимизации потерь информации при сокращении признакового пространства стоит использовать архитектуру декодировщика [2]. Таким образом, после сверточной части необходимо добавить слой декодировщика, который будет производить восстановление исходного векторного описания событий по построенным сверточным признакам.
При этом в нашей задаче не требуется точное восстановление первоначальных описаний событий. Ключевыми факторами при разработке декодировщика являются простота и скорость обучения. При этом важно, чтобы аномальные события имели большую по модулю ошибку восстановления, чем нормальные данные. Поэтому в данной работе предлагается использовать полносвязный однослойный декодировщик, а в качестве ошибки восстановления вычислять косинусную меру схожести, которая широко применяется в различных автокодировщиках для анализа текстовых данных:
Здесь восстановленный вектор исходного представления блока событий , который получается в результате работы декодировщика.
В результате проведенных экспериментов было принято решение использовать в качестве декодировщика обычный полносвязный слой. При этом в процессе обучения сети происходит максимизация косинусной меры схожести. Иными словами, в процессе обучения модели данных мы строим информативное признаковое описание для каждого блока событий посредством применения сверточной архитектуры, при этом пытаясь восстановить первоначальные данные из построенных признаков с помощью полносвязного декодировщика.
3.4. Нечеткая кластеризация и выявление аномалий. Далее предлагается разработать алгоритм, позволяющий определять аномальное поведение на основании построенной модели данных. Как было сказано выше, для этих целей широко применяется подход сведения к задаче одноклассовой классификации. При этом наиболее эффективным является алгоритм, основанный на нечетком методе выявления аномалий в данных на основе эллиптической кластеризации, который был описан ранее [8].
В данной работе предлагается модифицировать описанный выше процесс для возможности применения с предлагаемым решением. Для этого было предложено встроить указанный метод в предлагаемое решение виде обучаемого слоя. Данный слой выполняет кластеризацию сверточных признаков, строя описание распределения нормальных данных. При этом нормальные данные должны соответствовать найденному распределению, поэтому необходимо минимизировать расстояние от каждого вектора обучающей выборки до найденного центра распределения. Для этих целей используются радиально-базисные функция активации. Обучающими параметрами данного слоя являются:
(i) координаты центра кластера ;
(ii) матрица ковариаций (так как матрица является положительно определенной и диагональной, для эффективности построенного решения, можно представить эту матрицу в виде вектора неотрицательных параметров);
(iii) параметр .
В качестве функции активации используется функция, определяющая значение для каждого объекта. В качестве ошибки будет использовано следующее значение, взятое из поставленной задачи оптимизации:
Из этого следует, что можно доработать итоговый выход сети для заданного исходного векторного представления блока событий следующим образом:
Таким образом, в качестве ошибки реконструкции вычисляется косинусная мера схожести первоначального и восстановленного представления блока событий. Чем больше это значение, тем меньше ошибка реконструкции. При этом мы обучаем предлагаемую модель на задаче одноклассовой классификации, в которой преобладающее большинство данных является нормальным. Поэтому в результате применения обученного автокодировщика к аномальным данным получаем в среднем меньшие значения косинусной меры схожести, чем в процессе применения модели к нормальным данным.
В результате работы сети мы получаем итоговую оценку нормальности анализированного блока событий на основании корректности построения признакового пространства и с учетом степени типичности объекта, полученную из RBF-слоя.
При этом в процессе обучения мы должны приблизить значение к единице. Следовательно, данную модель можно рассматривать как модель регрессии, которая должна получать в качестве отклика значение, близкие к . Тогда в качестве функции ошибки выходного слоя можно использовать следующую функцию:
Значит, можно описать функцию ошибки, которая минимизируется в процессе обучения всей сети:
3.5. Регуляризация. В ходе анализа существующих работ [4, 9], а также проведенных экспериментов с различными архитектурами, авторы пришли к выводу, что для избежания переобучения нужно использовать следующие два подхода:
(i) добавление -регуляризации для сверточного слоя, что позволяет ограничить значения весов сверточных слоев. Таким образом, итоговая функция ошибки будет выглядеть следующим образом:
(ii) использование слоя Dropout перед построением кластеризации. Это увеличивает качество обобщения сети для новых данных.
Анализ существующих работ показал, что стандартный алгоритм Dropout не позволяет добиться хороших результатов, так как он не сохраняет распределение исходных признаков после случайного удаления весов. Поэтому в данной работе предлагается использовать модификацию данного подхода, устраняющую указанный недостаток AlphaDropout (см. [10]).
4. Экспериментальная оценка предлагаемого решения. Для экспериментальной оценки построенного решения предлагается провести подбор оптимальных гиперпараметров, а также сравнение данного подхода с рядом существующих классических подходов, таких как одноклассовый метод опорных векторов, методы нечеткой кластеризации. Также необходимо провести сравнение с более современными подходами, в частности, с архитектурой трансформера, использующего механизм самовнимания.
Как правило, для экспериментальной оценки эффективности работы того или иного алгоритма используются различные интегральные метрики качества. Одни из самых широко используемых метрик в данной задаче это площадь под ROC-кривой (AUC-ROC, PR-AUC). Анализ существующих работ по тематикам, схожим с тематикой настоящей работы, показывает, что, как правило, для оценки качества алгоритма выявления аномалий при работе пользователя применяются именно эти метрики (см. [1, 4]). Поэтому они и будут использованы в настоящей работе для оценки эффективности предлагаемого алгоритма. При этом для проведения более достоверной оценки в данной работе предлагается провести бутстреппинг тестовой выборки и более точной оценки распределения предлагаемых метрик качества на основании вычисления медианного значения метрик, а также и квартиля по всем получаемым подвыборкам.
4.1. Используемые наборы данных. В целях проведения качественного экспериментального исследования было принято решения использовать следующие 2 набора данных, которые широко применяются для оценки решений схожих задач:
(a) HDFS: этот набор данных представляет собой поток текстовых описаний событий, происходящих на более чем 200 узлах Amazon EC2. Суммарно данный набор данных содержит порядка 11 млн записей об отдельных событиях. В описании каждого события содержится информация о привязке к некоторому блоку, который отражает привязку события к отдельной выполняемой программе в системе. В данном наборе данных присутствует разметка блоков событий на нормальные и аномальные (см. [20]).
(b) BGL (Blue Gene/L): этот набор данных содержит описания событий, происходящих на суперкомпьютерной системе BlueGene/L. Он содержит в себе порядка 5 млн записей об отдельных событиях. При этом для каждого события присутствует информация, является ли оно нормальным или аномальным. Всего в наборе присутствует порядка 350000 (7%) аномальных событий [16].
Далее для каждого набора данных будет приведено более подробное описание, а также будут сформулированы некоторые начальные установки для корректного проведения экспериментов.
4.2. Особенности применения предлагаемого алгоритма к рассмотренным наборам данных.
Векторизация данных и критерий аномальности. Как было сказано ранее, для предварительной обработки всех наборов данных используется удаление идентификаторов посредством регулярных выражений. Также на основании экспериментальных исследований было обнаружено, что в наборе данных BGL часто и то же событие дублируется несколько раз, поэтому было принято решение об очистке набора данных и сохранения только одного упоминания тех событий, информация о которых повторяется последовательно несколько раз. На этапе токенизации происходит разделение содержимого системных журналов по описаниям отдельных событий.
После выполнения предварительной обработки событий и удаления различных идентификаторов можно получить словарь уникальных событий. Ниже указана информация о получившихся словарях событий для каждого набора данных:
I. HDFS:
(a) размер словаря: 75 событий;
(b) примеры обработанных данных: [(9)]
(9) INFO dfsDataNodeBlockReceiver Exception writing block to mirror;
(9) WARN dfsDataBlockScanner Adding an already existing block;
II. BGL:
(a) размер словаря: 728 событий;
(b) примеры обработанных данных: [(i)]
(i) RAS KERNEL INFO ciod Received signal;
(ii) RAS KERNEL FATAL rts bad message header index greater than total.
Далее выполняется классическое One-hot кодирование всех событий на основании построенного словаря и порядкового номера каждого события в словаре.
В силу того, что размер входных данных должен быть фиксирован, необходимо группировать события в блоки фиксированного размера. Размер этих блоков и определение критерия аномальности зависит от особенностей конкретного набора данных:
- В случае с данными HDFS события уже сгруппированы по номеру блока, в данных экспериментах было принято решение брать по 20 первых событий в каждом блоке (если в блоке было менее 20 событий, к нему добавлялось новое событие <EMPTY EVENT> столько раз, чтобы размер блока был равен 20). В качестве уровня аномальности блока использовалась соответствующая метка о наличии аномалии в блоке в исходном наборе данных.
- В наборе данных BGL присутствует информация об аномальности отдельных событий. Поэтому предлагается решать задачу предсказания аномалий: все события объединяются в блоки по 5 событий с помощью скользящего окна. В качестве уровня аномальности каждого блока используется оценка аномальности того события, которое следует непосредственно после указанного блока.
Разделение данных на тренировочную, валидационную и тестовую выборки. Как было сказано выше, рассматривалось сведение поставленной задачи к задаче одноклассовой классификации. Поэтому в тренировочную выборку попадали только нормальные данные. Для определения оптимальных значений гиперпараметров было принято решение выделение сбалансированной валидационной выборки, включающей в себя как аномальные блоки событий, так и нормальные. На построенной выборке вычислялась метрика ROC-AUC на каждой эпохе обучения сети. Тестовая выборка также была составлена сбалансированно по классам, чтобы добиться более корректного вычисления метрик оценки качества работы алгоритмов. При этом, для более точной оценки тестовая выборка была случайным образом разделена на 10 сбалансированных подвыборок одинакового размера, для каждой из которых независимо вычислялись метрики качества. Размеры валидационной и тестовой выборок определялись исходя из количества аномалий в данных. Объемы тренировочной, валидационной и тестовой выборок указаны в таблице 1. Все значения указываются в количестве рассматриваемых блоков.
Таблица 1. Описание объемов выборок для наборов данных HDFS и BGL
Значение | HDFS | BGL |
Тренировочная выборка | 601576 | 541385 |
2*Валидационная выборка | Нормальные блоки | 3367 | 4263 |
| Аномальные блоки | 3367 | 4263 |
2*Тестовая выборка | Нормальные блоки | 13471 | 17053 |
| Аномальные блоки | 13471 | 17053 |
Число подвыборок в тестовой выборкеа | 10 | 10 |
Построение модели данных. Для построения модели данных, как было сказано выше, используется сверточные слои (используется три слоя), в которых размер и количество фильтров зависит от размера блока данных. Кроме того, предлагается оценить решение на GPU с возможностью применения mixed precision, поэтому, по рекомендациям разработчиков, следует выбирать размер фильтров, кратный 8 (см. [15]). Поэтому в наборе данных HDFS предлагается использовать по 16 фильтров размеров 10, 11 и 12. В наборе данных BGL используется по 64 фильтра размеров 2, 3 и 4. Поскольку в качестве функции активации используется SELU, начальные значения для фильтров берутся из подходящего распределения LecunNormal (см. [10]), которое представляет собой усеченное нормальное распределение со средним значением и стандартным отклонением, равным , где количество элементов в рассматриваемом тензоре.
Построение модели обнаружения аномального поведения. На этом этапе в обоих наборах данных предлагается выполнить объединение данных в один кластер, в качестве степени нечеткости используется значение . В качестве начального значения для параметра используется константа . В качестве начального значения для центра кластера используется непрерывное нормальное распределение со средним значением и дисперсией . В качестве начального значения для ковариаций при вычислении расстояния Махалонобиса используется единичная матрица.
Регуляризация. В ходе экспериментальных исследований было выяснено, что значение -регуляризации сильно влияет на точность полученного решения и зависит от размера и количества используемых фильтров. Поэтому для набора HDFS в качестве оптимального значения константы регуляризации было выбрано , в наборе данных BGL значение . Эти параметры также определялись на валидационном наборе данных.
4.3. Сравнение предлагаемого решения с классическими алгоритмами. Для оценки предлагаемого решения была проведена серия экспериментов по сравнению решения с существующими подходами, дающими лучший результат в похожих задачах: одноклассовый метод опорных векторов (OCSVC), нечеткая кластеризация (Fuzzy), трансформеры (LogBERT). При этом проведённые эксперименты показали, что в качестве алгоритма векторизации блоков событий для метода опорных векторов лучше всего подходит вектор, равный сумме One-hot векторов событий, входящих в блок (<<мешок событий>>); для Fuzzy оптимальным стал подход, основанный на TF-IDF; подход LogBERT основан на архитектуре трансформера, который учитывает как индекс события в словаре, так и его позиция в блоке, поэтому для векторизации использовалась сумма векторов: случайно закодированный индекс события в словаре и векторное представления номера позиции, закодированное с помощью функции синусоиды. Также во всех алгоритмах осуществлялся подбор гиперпараметров на валидационной выборке. Рассматриваемые гиперпараметры и лучшие значения приведены ниже:
1. Метод опорных векторов:
(a) функция активации ядра: радиально-базисная для обоих наборов;
(b) параметр для ядровой функции: для HDFS и для BGL.
2. Метод нечеткой кластеризации: [(a)]
(a) степень нечеткости: для обоих наборов;
(b) процент исключений: для HDFS и для BGL;
(c) параметр для ядровой функции: для HDFS и для BGL.
3. Метод LogBERT: [(a)]
(a) количество слоев типа <<трансформер>>: 2;
(b) размерность представления токенов и внутреннего состояния: и соответственно;
(c) коэффициент в формуле вычисления итоговой ошибки;
(d) процент замаскированных событий в каждом блоке: для HDFS и для BGL;
(e) число кандидатов для определения степени аномальности предсказанного события: в HDFS и в BGL.
Результаты проведенных экспериментов представлены в таблице 2.
Таблица 2. Результаты проведенных экспериментов
Набор данных | Подход | ROC-AUC | PR-AUC |
| | Медиана | Q1 | Q3 | Медиана | Q1 | Q3 |
4*HDFS | OCSVC | 0,833 | 0,826 | 0,837 | 0,828 | 0,821 | 0,832 |
| Fuzzy | 0,858 | 0,851 | 0,862 | 0,853 | 0,847 | 0,856 |
| LogBERT | 0,900 | 0,894 | 0,907 | 0,901 | 0,898 | 0,911 |
| FuzzyCNN | 0,973 | 0,971 | 0,974 | 0,970 | 0,969 | 0,972 |
4*BGL | OCSVC | 0,783 | 0,779 | 0,789 | 0,778 | 0,772 | 0,783 |
| Fuzzy | 0,834 | 0,821 | 0,845 | 0,827 | 0,820 | 0,830 |
| LogBERT | 0,908 | 0,901 | 0,912 | 0,898 | 0,893 | 0,901 |
| FuzzyCNN | 0,939 | 0,934 | 0,940 | 0,921 | 0,916 | 0,926 |
Таким образом, во всех проведенных экспериментах на рассмотренных наборах данных предлагаемое решение позволяет добиться лучшего результата.
5. Заключение. В данной работе предлагается новый подход к задаче обнаружения аномальных событий в данных системных журналов на основании архитектуры автокодировщика с использованием параллельного свертки для кодирования поступающих блоков событий, полносвязного декодировщика для минимизации потерь при кодировании, а также нового слоя, основанного на нечеткой кластеризации сверточных признаков, выход которого перемножается на ошибку реконструкции декодировщика, что позволяет определить совокупную степень аномальности каждого блока событий. Предлагаемое решение позволяет эффективно строить векторные представления потока сложно структурированных данных системных журналов с учетом внутренних взаимосвязей между событиями.
Предложенное решение позволяет значительно уменьшить временные затраты существующих решений поставленной задачи путем применения параллельной свертки. Кроме того, для восстановления исходного векторного представления последовательности событий достаточно применить обычный полносвязный слой, который также не требует значительных вычислительных затрат. Следовательно, предложенное решение может выступать эффективной альтернативой существующим архитектурам Transformer, позволяющим добиться лучших результатов в поставленной задаче.