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

Почему машинное обучение?

Если десять экспертов попросят описать характеристики транзакционного инцидента, весьма вероятно, что все они дадут десять разных ответов. Это показывает субъективность того, как кто-то определяет ненормальную ситуацию, и сложность определения инцидента с помощью конкретных правил. Несмотря на то, что у всех разные взгляды на процесс, все они идентифицируют более или менее один и тот же инцидент, и, что наиболее важно, все они используют одни и те же данные; Те же данные, которые мы также должны использовать для обучения модели машинного обучения.

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

Давайте будем более конкретными…

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

  • Обнаружение аномалий

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

  • Изучение неизвестного

По определению машинное обучение основано на исторических данных; Данные, характеризующие что-то уже известное. Однако можем ли мы узнать что-то, что не представлено в нашем наборе данных? Можем ли мы научиться распознавать неизвестное? Ответ так же прост, как прямое «да», но так же сложен, как и сам вопрос!

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

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

  • Углубляемся в структуру - Лес изоляции

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

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

Временные ряды и потоки данных

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

  • Погоня за потоком

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

  • Устаревшие - дрейф данных

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

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

Проблемы / выводы

  • Автоматизировать задачу мониторинга можно с помощью машинного обучения. Однако это не так просто, когда это делается в режиме реального времени. Всегда следует внедрять механизм мониторинга, чтобы модель можно было переобучать и поддерживать в актуальном состоянии.
  • Аномалия - это вопрос перспективы. То, что сегодня кажется нормальным, завтра может стать ненормальным, и наоборот. Следует включать регулярные проверки, чтобы понять, вызван ли случай, который якобы кажется ненормальным, дрейфом данных или нет.
  • Маркировка является серьезной проблемой в таких случаях. Никто обычно не знает времени возникновения и точной продолжительности. Несмотря на то, что инциденты являются обычным явлением, сложно идентифицировать и точно определить время возникновения и их продолжительность и дать им четкую метку. Неконтролируемые подходы, такие как Isolation Forest, тренируются на данных нормальной работы и могут идентифицировать любое состояние отклонения.
  • Каждый поток имеет разные свойства, такие как дисбаланс классов, одномерная / многомерная аномалия и т. Д., Которые образуют различные проблемы, которые необходимо решить. Одно решение не подходит для всех случаев, тем не менее, мы создаем наш пакет обнаружения аномалий, чтобы быстро выявлять неожиданные ситуации.

использованная литература

Лю Ф. Т., Тин К. М. и Чжоу З., «Изолированный лес», Восьмая международная конференция IEEE по интеллектуальному анализу данных, 2008 г., Пиза, 2008 г., стр. 413–422.