УДК 005.6
DOI: 10.24412/2071 -6168-2024-3-421 -422
ДЕТЕКЦИЯ АНОМАЛИЙ ИНФОРМАЦИОННОГО КАНАЛА НА ОСНОВЕ ПРОГНОЗИРУЮЩИХ МОДЕЛЕЙ В РЕШЕНИИ ЗАДАЧ АНАЛИЗА КАЧЕСТВА КОНТЕНТА
В.Г. Мосин, В.Н. Козловский, О.В. Пантюхин
В настоящей работе предложен метод выявления аномальных характеристик потребления контента информационного канала, к которым относятся: 1) востребованность контента, 2) вовлеченность в его потребление и 3) удовлетворенность от его потребления. Эти характеристики прогнозируются на основе предыдущих наблюдений при помощи регрессионных моделей, после чего аномальным считается значение, значимо не совпадающее с прогнозируемым модельным значением. Рассмотрен пример на данных о потреблении контента одного из ведущих хостингов. Предложены варианты развития и обобщения метода.
Ключевые слова: контент, оценка качества, анализ данных, выявление аномалий, регрессия, scikit-learn,
pandas.
1. Введение. Детекция аномалий — одна из важнейших задач в области анализа данных, которая позволяет обнаруживать необычные или негативные изменения в определенном процессе [6, 7]. Современное развитие машинного обучения привело к возникновению эффективных методов и алгоритмов для автоматизации процедур детекции аномалий.
Первый шаг в детекции аномалий — сбор данных. Это может быть информация о рабочих циклах процесса, его параметрах или результаты производства. Сегмент данных, содержащий информацию о нормальном функционировании процесса, называется набором обучающих данных [3, 4]. Затем следует этап обучения модели [4], после которого модель может быть применена к новым данным для детекции аномалий. Некоторые алгоритмы машинного обучения основаны на статистических методах [3], где аномалии определяются на основе отклонений данных от нормальных моделей распределения. Другие алгоритмы способны обнаруживать аномалии, которые не соответствуют предопределенным моделям.
Важным аспектом детекции аномалий является сохранение баланса между точностью и полнотой. Неправильная классификация аномалий может привести к серьезным последствиям, поэтому выбор порогового значения для декларации аномалии является компромиссом между минимизацией ложных срабатываний и пропуском реальных аномалий. В целом, детекция аномалий средствами машинного обучения является мощным инструментом для обнаружения и прогнозирования необычных или вредных изменений в различных процессах. С его помощью можно повысить эффективность и безопасность работы систем и снизить риски возникновения непредвиденных ситуаций [8].
1.1. Теоретическая часть. В настоящей работе мы изучаем характеристики, возникающие в процессе потребления контента, среди которых наиболее важными являются 1) востребованность контента, 2) вовлеченность в его потребления и 3) удовлетворенность от потребления.
Первая характеристика, востребованность контента, определяет, насколько широко он используется и каким образом он соответствует потребностям аудитории. Запросы на определенный контент говорят о том, что он важен и интересен людям, что в свою очередь может быть связано с его актуальностью, полезностью и практическим применением. Показатель, хорошо описывающий востребованность контента — общее число обращений к нему: чем выше этот показатель, тем выше востребованность.
Вторая характеристика, вовлеченность в потребление контента, отражает степень заинтересованности и включенности зрителей, слушателей или читателей в процесс взаимодействия с содержанием. Вовлеченность может быть понята как эмоциональное и интеллектуальное состояние, которое возникает благодаря способности контента привлекать и удерживать внимание читателя или зрителя. Для численного описания вовлеченности мы будем использовать среднее время контакта с контентом: чем выше среднее время, тем выше вовлеченность в потребление.
Третья характеристика, удовлетворенность от потребления контента, отображает оценку ценности, впечатлений и полезности, полученных в результате взаимодействия с материалом. Удовлетворенность определяется наличием нужной, информативной, доступной, качественной и дифференцированной информации в контенте, которая отвечает ожиданиям и целям потребителей. В качестве характеристики удовлетворенности можно рассматривать положительные реакции пользователей на контакт с контентом: число лайков или репостов.
Все эти показатели (как и многие другие, не рассматриваемые нами) не являются константными, они изменяются в процессе потребления контента и в какие-то моменты могут принимать нетипичные значения.
1.2. Постановки задачи.
1.2.1. Предмет исследования. Мы исследуем аномалии, возникающие в процессе потребления контента на основании данных о потреблении за достаточно большой промежуток времени.
1.2.2. Методика исследования. Для этого, используя имеющиеся данные в качестве обучающей выборки, мы строим регрессионные модели, прогнозирующие значения интересующих нас показателей: 1) востребованность контента, 2) вовлеченность в его потребления и 3) удовлетворенность от потребления. Если наблюдаемые реальные величины этих показателей значимо отличаются от прогнозируемых модельных значений, мы признаем такую ситуацию аномальной.
1.2.3. Цель исследования. Наша цель — сформулировать основные правила метода детекции аномалий на основе прогнозирующих моделей, реализовать метод в виде алгоритма и апробировать его на реальных данных.
1.3. Технологии. Для работы с данными и их анализа мы используем среду Jupyter Notebook, которая предоставляет удобные инструменты для программирования на языке Python и основных библиотек, таких как NumPy, Pandas, Scikit-learn и Matplotlib [ 1, 2].
Библиотека NumPy является важным средством для научных вычислений и обработки массивов данных в Python. Она предлагает эффективные структуры данных, алгоритмы и функции для работы с одномерными и многомерными числовыми массивами.
Pandas является самой мощной библиотекой для работы с данными в Python. Она гармонично взаимодействует с другими инструментами для анализа и обработки данных на платформе Python, такими как NumPy, Scikit-learn и Matplotlib. Pandas обеспечивает эффективные средства для обработки информации, а также множество алгоритмов и функций для анализа и визуализации данных [1].
В регрессионных задачах мы применяем библиотеку Scikit-learn, также известную как sklearn. Scikit-leam представляет собой мощный и гибкий инструмент машинного обучения с широкими возможностями и удобным интерфейсом.
2. Описание данных. Данные представляют собой описание различных характеристик потребления контента на одном из ведущих хостингов за период с 2021-08-20 по 2023-01-01. Описание является посуточным и содержит 500 записей. К характеристикам потребления относятся дата записи, общее количество просмотров на канале в эту дату, общее время просмотра в эту дату и т. д. Полный список признаков представлен на шаге 3.2 настоящего алгоритма.
3. Алгоритм.
3.1. Чтение данных. Пользуясь методом read_csv библиотеки pandas, читаем данные и формируем дата-фрейм. При помощи атрибута parse_dates переводим признак 'Дата' из строкового формата в формат date-time и назначаем его индексом. Получаем таблицу из 500 объектов, описанных при помощи 18 признаков.
Время про- Постоянные
Просмотры смотра (часы) Поделились зрители ... Дизлайки Лайки
2023-01-01 475.0 21.2038 9.0 84.0 ... 0.0 16.0
2022-12-31 174.0 5.4814 1.0 48.0 ... 0.0 4.0
2022-12-30 490.0 17.8182 3.0 94.0 ... 1.0 3.0
2021-08-22 275.0 10.4130 1.0 44.0 ... 0.0 2.0
2021-08-21 222.0 10.5967 0.0 46.0 ... 2.0 4.0
2021-08-20 209.0 8.6935 0.0 35.0 ... 0.0 1.0
3.2. Разведочный анализ. Применяем метод info библиотеки pandas и выводим сведения о признаках.
# Column Non-Null Count Dtype
0 Просмотры 500 non-null float64
1 Время просмотра (часы) 500 non-null float64
2 Поделились 500 non-null float64
3 Постоянные зрители 500 non-null float64
4 Новые комментарии 500 non-null float64
5 Отказались от подписки 500 non-null float64
6 Новые подписчики 500 non-null float64
7 Новые зрители 500 non-null float64
8 Среднее число просмотров одним пользователем 500 non-null float64
9 Уникальные зрители 500 non-null float64
10 CTR для значков видео (%) 500 non-null float64
11 Показы 500 non-null float64
12 Подписчики 500 non-null float64
13 Средний процент просмотра (%) 500 non-null float64
14 Процент лайков 500 non-null float64
15 Средняя продолжительность просмотра 500 non-null float64
16 Дизлайки 500 non-null float64
17 Лайки 500 non-null float64
Индекс имеет формат date-time в промежутке от 2023-01-01 до 2021-08-20 (заметим, что порядок следования дат является обратным). Все признаки принадлежат к числовому типу с плавающей запятой, пропущенных данных нет.
3.3 История наблюдений и скользящее окно регрессионной модели. Пусть имеется ряд наблюдений, начиная с момента времени to и заканчивая текущим моментом времени tn. В рамках нашего исследования моменты времени — это даты, хотя, разумеется, в других условиях это могут быть: часы, минуты, недели и т. д.
Наша методика состоит в том, что мы будем обучать модели на предшествовавших датах наблюдений для того, чтобы спрогнозировать значение того или иного показателя (востребованности контента, вовлеченности в его потребление или удовлетворенности от его потребления) в следующую после периода наблюдений дату. Если прогнозируемое значение окажется близким к реальному наблюдаемому значению, то мы будем считать, что никакой аномалии не наблюдается. Если же отличие окажется слишком велико, то это и будет детекцией аномалии.
3.3.1. Зачем нужна история наблюдений. Глубокая история наблюдений нужна для того, чтобы иметь устойчивое представление о том, что такое нормальное, не являющееся аномальным, отклонение реальности от прогноза. Отклонения, возникающие в каждый момент времени фиксируются и образуют случайную величину S, элементы которой признаются аномальными, если выполняется условие: отклонение случайной величины S от ее обычного значения превышает какой-либо заранее установленный порог.
3.3.2. Зачем нужно скользящее окно. Однако использовать для прогнозирования всю историю наблюдений — это не самая хорошая идея. Дело в том, что модель, обученная на всей истории, не сможет уловить изменение тренда и будет детектировать как аномальные те отклонения, которые являются нормальными для нового тренда.
Поэтому верным решением будет придерживаться следующих правил: 1) обучать модель следует лишь на актуальном отрезке истории, 2) для детекции аномалий следует привлекать сведения за всю историю наблюдений (рисунок 1).
/VHvywy
Рис. 1. Скользящее окно модели: по наблюдениям в период обучения (желтый фрагмент) прогнозируется значение целевой функции в следующий момент времени (красная точка)
3.3.3. Гиперпараметры детекции аномалий. Итак, имеется два гиперпараметра алгоритма, позволяющего детектировать аномалии: 1) глубина скользящего окна, 2) отклонение, которое мы признаем аномалией.
В рамках настоящего исследования мы будем строить регрессионные модели на 18 признаках, считая один из них целевой функцией. Поэтому для построения регрессионной задачи нам нужно не менее 18 наблюдений, в противном случае, задача будет иметь точное решение, не обладающее прогнозирующей способностью (другими словами, модель окажется переобученной). Мы выбираем в качестве скользящего окна период в 30 дней.
Критерием аномалии мы будем считать попадание случайной величины S в один из ее перцентилей: попадание в первый перцентиль — аномалия, попадание в пятый перцентиль — возможная аномалия.
3.4. Построение и обучение регрессионных моделей на стартовом скользящем окне. История наших наблюдений насчитывает 500 дат, начиная с 2021-08-20. В соответствии с выбранным выше периодом актуальной истории, равным 30 дням, мы, пользуясь методом loc библиотеки pandas, строим локализацию датафрейма на записях с tstart по tend, где
tstart = 2021-08-20;
tend = 2021-08-20 + pd.Timedelta(days=30).
3.4.1. Нормализация данных локализации. Данные локализации нормализуются к стандартному виду с нулевым математическим ожиданием и единичной дисперсией. После этого данные оказываются безразмерными, и это помогает нам сравнивать результаты моделирования на различных показателях.
3.4.2. Модель востребованности. Мы будем моделировать три характеристики контента: его востребованность, вовлеченность в его потребление и удовлетворенность от его потребления (см. пп. 3.4.2, 3.4.3, 3.4.4). Начнем с востребованности.
Пользуясь методом drop библиотеки pandas, удаляем из локализации признак 'Просмотры' и объявляем все оставшиеся признаки предикторами модели, конкатенированными в матрицу X. Сам же признак 'Просмотры' объявляем целевой функцией y.
Методом LinearRegression из модуля linear_model библиотеки sklearn, формируем объект model и применяем к нему метод fit на массивах X, y.
3.4.3. Модель вовлеченности. Здесь мы удаляем из локализации признак 'Средняя продолжительность просмотра' и далее действуем так же как на шаге 3.4.2.
3.4.4. Модель удовлетворенности. Удаляем из локализации признак ' Поделились' и действуем так же как на шаге 3.4.2.
Теперь мы имеем три обученные модели, первая из которых моделирует показатель востребованности, вторая — вовлеченности, и третья — удовлетворенности контентом.
3.4.5. Оценка моделей. Обычно для оценки регрессионных моделей применяют коэффициент детерминации R2, но в нашем алгоритме его применить нельзя.
Если рассуждать в обычной для регрессионного анализа манере [5], то у нас имеется обучающая выборка — это локализация по скользящему окну, и тестовая выборка, состоящая из единственной записи в следующий момент времени. Тогда коэффициент детерминации R2 , вычисленный на тесте, давал бы нам представление о прогнозирующей способности модели, и если она низка, то мы признавали бы очередное значение признака аномальным. Но вычислить коэффициент детерминации на одном наблюдении невозможно: такая попытка приводит к неопределенности типа 0/0.
Выход в том, что сама по себе оценка модели нас не интересует. Нас интересует то, насколько реальное значение в следующий после обучения момент наблюдений окажется близким (или, наоборот, далеким) по отношению к прогнозируемому значению. Поэтому для оценки такой близости мы будем применять отклонение, вычисленное при помощи модулей (абсолютных значений), которое называется средним абсолютным отклонением или mean absolute deviation (MAD).
Получив обученную модель, мы методом predict библиотеки pandas получаем вектор прогнозируемых значений на обучающей выборке, после чего вычисляем MAD-1 двух векторов: вектора прогнозируемых значений и вектора истинных значений целевой функции. Эта величина характеризует средние отклонения прогноза от реальности на скользящем окне.
Затем эту же модель мы применяем к единственному новому объекту, и методом predict получаем число — это прогнозируемое значение целевой функции в следующий после обучения момент времени. Модуль разности меду прогнозируемым и истинным значением целевой функции дает нам MAD-2 в текущий момент наблюдений, а разность MAD-1 - MAD-2 показывает, насколько велико отклонение в прогнозе от отклонений на скользящем окне.
3.4.6. Результат работы алгоритма на стартовом скользящем окне. На выходе из первой итерации мы имеем три оценки для трех характеристик контента:
So('Просмотры') — характеризует степень нормы-аномалии востребованности контента для одного дня: 2021-09-19.
So('Средняя продолжительность просмотра ') — характеризует степень нормы-аномалии вовлеченности в потребление контента для одного дня: 2021-09-19.
Во('Поделились') — характеризует степень нормы-аномалии удовлетворенности контентом для одного дня: 2021-09-19.
Но у нас нет никаких сведений для того, чтобы утверждать, что одна из этих характеристик (или две, или все три) является аномальной. Вся наша история наблюдений ограничивается одним днем: 2021-09-19 — и нам просто не с чем сравнивать полученный результат.
3.5. Цикл по датам смещения скользящего окна. Смещаем tstart и tend на 1, проводим процедуры шага 3.4 и повторяем до тех пор, пока tend не окажется равным максимальному значению индекса датафрейма. После этого в нашем распоряжении оказываются 470 наблюдений (с 2021-09-19 по 2022-01-01) об абсолютных отклонениях реальных характеристик контента от прогнозируемых модельных характеристик, которые образуют массив S.
3.6. Детекция аномалий. Применяя к массиву S('Просмотры') метод percentile библиотеки numpy, определяем первый и пятый перцентили. Значения, меньше первого перцентиля, считаем аномалией. Значения, больше первого, но меньше пятого перцентиля, считаем возможной аномалией.
Аналогично поступаем с массивами S('Средняя продолжительность просмотра ') и S('Поделились').
4. Результаты
4.1 Аномалии востребованности. В качестве показателя востребованности контента мы использовали признак 'Просмотры' и получили пять дат, детектированных как аномалии (см. рис. 2, аномалии отмечены красными точками), и девятнадцать дат, детектированных как возможные аномалии (см. рис. 2, возможные аномалии отмечены желтыми точками).
■-- 5% — 1%
2021-09-18 2022-08-25 2023-01-01
Рис 2. Прогнозируемоань востребованности: общее число просмотров
4.2 Аномалии вовлеченности. В качестве показателя вовлеченности пользователей в потребление контента мы использовали признак 'Средняя продолжительность просмотра ' и получили пять дат, детектированных как аномалии (см. рис. 3, аномалии отмечены красными точками), и девятнадцать дат, детектированных как возможные аномалии (см. рис. 3, возможные аномалии отмечены желтыми точками).
- 5% — 1%
2021-09-18 2022-08-25 2023-01-01
Рис 3. Прогнозируемоань вовлеченности: средняя продолжительность просмотра
4.3 Аномалии удовлетворенности. В качестве показателя удовлетворенности пользователей мы использовали признак 'Поделились' и получили пять дат, детектированных как аномалии (см. рис. 4, аномалии отмечены красными точками), и девятнадцать дат, детектированных как возможные аномалии (см. рис. 4, возможные аномалии отмечены желтыми точками).
— SfCNfT»
-- 5% — 1%
—I--1—
2021-09-18 2022-08-25 2023-01-01
Рис. 4. Прогнозируемоань удовлетворенноани: число репостов
Отметим, что среди выявленных аномалий есть одна дата, характерная для всех трех признаков: это дата 2022-08-25, что согласуется с реальной историей информационного канала. В этот день на канале было размещено 45 новых роликов, что привело к всплеску посещаемости, новых комментариев и другой активности пользователей
[9].
5. Выводы. Предложенный метод детекции аномалий показал себя как вполне рабочий инструмент в анализе потребления контента. Вместе с тем, очевидно, что он требует доработки, множественной апробации в других ситуациях и, скорее всего, корректировки в зависимости от ситуации, в которой он применяется.
5.1. Ограничения метода. Прежде всего, отметим, что изложенный в этой статье метод детекции аномалий на основе прогнозирующих моделей не указывает причины аномалий, не раскрывает характер детектированной аномалии и тем более не дает никаких рекомендаций. Он лишь указывает на факт аномалии или на факт ее отсутствия, а принятие решений на основании этих фактов выходит за рамки метода.
5.2. Вариации метода. Далее, остается открытым вопрос, что считать аномалией, потому что использование для их детекции перцентилей — это лишь один из возможных способов классификации наблюдаемого значения как аномального, причем, он не всегда уместен. Можно предложить в качестве критерия детекции заранее фиксированный порог отклонения реального значения от прогнозируемого модельного значения. И хотя подобрать такие пороговые отклонения весьма непросто, это хорошая тема для дальнейших исследований.
5.3. Обобщения метода. И наконец, заменив данные о потреблении контента на данные о потреблении какого-либо товара или услуги, а характерные признаки потребления контента на характерные признаки другого потребления, мы попадем в ту же ситуацию. Более того, речь не обязательно должна идти именно о потреблении. Можно рассмотреть данные о функционировании организации, предприятия или даже живого организма или соци-
альной группы — если нам известны маркеры нормального функционирования, модельный прогноз таких маркеров позволит выявлять аномалии.
Предложенный метод детекции аномалий применим практически к любому процессу при условии достаточно глубокой истории наблюдений, достоверности предоставляемых данных и своевременности их предоставления.
Список литературы
1.Хейдт М. Изучаем Pandas. Москва: ДМК Пресс, 2018. 438 с.
2. Бурков А. Машинное обучение без лишних слов. СПб: Питер, 2020. 192 с.
3.Вьюгин В.В. Математические основы теории машинного обучения и прогнозирования. М.: МЦИМО. 2013. 387 с.
4.Бринк Х., Ричардс Дж. , Феверолф М. Машинное обучение. СПб.: Питер, 2017. 336 с.
5.Прикладной регрессионный анализ / Дрейпер Н.Р., Смит Г.; ред. пер. Саит-Аметова М.; Пер. с англ. и ред. пер. Власенко М., Имамутдинова Р.Г., Орехова Н.А., Саит-Аметова М. М.: Диалектика: Вильямс, 2007. 911 с.
6.Василенко М.С., Копырин А.С. Алгоритм машинного обучения для детектирования выбросов и аномалий // Modeling of Artificial Intelligence. 2019. № 6-1. С. 13-18.
7.Гололобов Н.В., Павленко Е.Ю. Сравнение эффективности выявления аномалий алгоритмами машинного обучения без учителя // Проблемы информационной безопасности. Компьютерные системы. 2022. № 2. С. 135147.
8.Токарев Д.М., Городничев М.Г. Обнаружение аномалий на основе машинного обучения с использованием сочетания алгоритмов k-MEANS и SMO // Телекоммуникации и информационные технологии. 2023. Т. 10. № 1. С. 5-13.
9.Kozlovskiy V. Analytical models of mass media as a method of quality management in the automotive industry / V. Kozlovskiy, D. Aydarov // Quality - Access to Success. 2017. Т. 18. № 160. С. 83-87.
Мосин Владимир Геннадьевич, канд. физ.-мат. наук, доцент, [email protected], Россия, Самара, Самарский государственный технический университет,
Козловский Владимир Николаевич, д-р техн. наук, профессор, заведующий кафедрой, [email protected], Россия, Самара, Самарский государственный технический университет,
Пантюхин Олег Викторович, д-р техн. наук, доцент, [email protected], Россия, Тула, Тульский государственный университет
DETECTION OF ANOMALIES OF THE INFORMATION CHANNEL BASED ON PREDICTIVE MODELS
V.G. Mosin, V.N. Kozlovsky, O.V. Pantyukhin
In this paper, a method is proposed to identify abnormal characteristics of content consumption of an information channel, which include: 1) the demand for content, 2) involvement in its consumption and 3) satisfaction from its consumption. These characteristics are predicted based on previous observations using regression models, after which a value that significantly does not coincide with the predicted model value is considered abnormal. An example is considered based on data on the consumption of content from one of the leading hosting companies. Variants of the development and generalization of the method are proposed.
Key words: content, quality assessment, data science, detection of anomalies, regression, scikit-learn, pandas.
Mosin Vladimir Gennadievich, candidate of physical and mathematical sciences, docent, yanbacha@yandex. ru, Russia, Samara, Samara State Technical University,
Kozlovsky Vladimir Nikolaevich, doctor of technical sciences, professor, head of the department, [email protected], Russia, Samara, Samara State Technical University,
Pantyukhin Oleg Viktorovich, doctor of technical sciences, docent, olegpan-tyukhin@mail. ru, Russia, Tula, Tula State University