Этот пост был первоначально опубликован мной на Блог Фортскейла.
Продукт Fortscale помогает организациям устранять внутренние угрозы, обнаруживая аномальное поведение пользователей.
В первом посте этой серии я описал, как мы в Fortscale используем персонализированный адаптивный порог для запуска предупреждений. Каждому действию пользователя присваивается оценка риска (известная как значение SMART), которая вызывает оповещение SMART при пересечении порога пользователя. Мы объяснили, что чем больше аномальных действий совершает пользователь с течением времени, тем выше становится его порог.
Во втором посте я погрузился в технические детали, объясняя, как мы используем байесовскую структуру вывода для расчета оценки для значения SMART. Мы разработали формулу для вероятности увидеть значение SMART не ниже \(в\) для пользователя с прошлыми значениями SMART \(v_1, …, v_n\):
$$\left(\dfrac{\beta_{preor} + \sum_{i=1}^{n} v_i}{\beta_{prior} + \sum_{i=1}^{n} v_i + v}\ справа) ^ {\ alpha_ {предыдущий} + n} $ $
Где \(\alpha_{предыдущий}\) и \(\бета_{предыдущий}\) являются гиперпараметрами модели. В этом посте мы раскроем, как мы рассчитываем эти значения.
Предыстория — очень мощный атрибут байесовской системы вывода; это позволяет использовать ее предварительные знания при расчете вероятности. Этот атрибут — одна из причин, по которой нам так нравится байесовский вывод. Напомним из первого поста серии, что у нас были некоторые проблемы с пользователями, которые никогда не вели себя аномально, и, следовательно, их прошлые значения SMART равны нулю. Такие пользователи обязательно вызовут оповещение о любом положительном значении SMART. Мы можем использовать априор, чтобы предотвратить это.
Во-первых, давайте разберемся, как априорные и апостериорные операции работают вместе. Априор – это функция вероятности над \(\лямбда\) учитывая отсутствие данных. Как только мы наблюдаем некоторые данные (значения SMART, сгенерированные пользователем), мы обновляем нашу априорную и получаем апостериорную, которая снова является функцией вероятности по \(\лямбда\). Так как мы выбрали
сопряженный предшествующий (что является гамма-распределением в случае экспоненциальной модели), мы получаем желаемое свойство, заключающееся в том, что обновление — это просто вопрос обновления параметров гамма-распределения. Если будет собрано больше данных, мы можем еще раз обновить параметры апостериорного анализа. Это непрерывный процесс обновления параметров гамма-распределения.
Параметры гамма-распределения: \(\альфа\) и \(\бета\) (или \(\alpha_{предыдущий}\) и \(\бета_{предыдущий}\), так как мы используем гамму в качестве априора). Если вы не знакомы с этой параметризацией, рекомендуем прочитать об этом.
здесь.
\(\alpha_{предыдущий}\) можно интерпретировать как количество значений SMART, виртуально наблюдаемых пользователем, в то время как \(\бета_{предыдущий}\) это их сумма. Реальные наблюдаемые данные пользователя по существу объединяются с виртуальными данными, представленными предыдущими. Итак, если мы возьмем предыдущий пример пользователя с данными только с нулями и дадим априорное значение с высоким \(\бета_{предыдущий}\) к \(\alpha_{предыдущий}\) отношение, мы получаем тот же эффект, как если бы у пользователя были какие-то высокие значения, что приводит к более высокому порогу. Это именно то, чего мы хотели добиться.
Следуя вышеизложенному, мы должны выбрать высокий \(\бета_{предыдущий}\) к \(\alpha_{предыдущий}\) соотношение. Но каким должно быть это соотношение? Наша цель — сделать то, что сделал бы аналитик при проверке активности пользователей. Аналитик знаком с организацией и знает, какие действия могут быть более интересными, поскольку он заранее знает, сколько аномальных действий происходит в организации. Если аномальной активности нет вообще, следует расследовать любую подозрительную активность пользователя. Если аномальная деятельность является обычным делом в организации, порог заинтересованности аналитика выше.
Мы должны смоделировать этот эффект, используя априор. Если мы выберем \(\alpha_{предыдущий}\) быть количеством ценностей SMART в организации и \(\бета_{предыдущий}\)
чтобы быть их суммой, мы получим желаемый эффект. Используя этот метод, априор представляет собой знание количества аномальных действий, происходящих в организации.
У этого подхода есть один недостаток, а именно: \(\alpha_{предыдущий}\) быть довольно большим, что приводит к слишком влиятельному априору. В свою очередь, это приведет к тому, что данные пользователя лишь незначительно повлияют на вероятность результата, т.е. при использовании апостериорного анализа будут получены почти те же результаты, что и при использовании априорного. Это не то, к чему мы стремились. Мы хотели, чтобы порог был персональным, а это значит, что данные пользователя должны влиять на его порог.
Причина, по которой априорное значение слишком влиятельно, заключается в том, что оно имитирует значения SMART для пользователя. Если в организации 10 000 значений SMART
\(\alpha_{предыдущий}\) будет 10000р. Если у пользователя было только 100 значений SMART, они будут перевешиваться смоделированными 10 000 значений SMART.
Если мы хотим уменьшить предшествующее влияние, мы должны уменьшить \(\alpha_{предыдущий}\) сохраняя при этом \(\бета_{предыдущий}\) к \(\alpha_{предыдущий}\) соотношение. Эвристика, которую мы выбрали после экспериментов с реальными данными, заключается в использовании небольшого разумного числа, например 20, и обновлении \(\бета_{предыдущий}\) быть \(\alpha_{предыдущий}\) раз превышает среднее значение SMART для организации.
Математика нашего выбора числа 20 проста. Среднее значение априорного гамма-распределения равно \(\alpha_{предыдущий}\) деленное на \(\бета_{предыдущий}\). Выбор 20 не влияет на среднее значение, так как мы масштабируем \(\бета_{предыдущий}\) соответственно. Однако дисперсия \(\alpha_{предыдущий}\) деленное на
\(\бета_{предыдущий}\) в квадрате. Уменьшение «влияния» априора до 20 приводит к увеличению дисперсии. Интуиция, стоящая за дисперсией априора, заключается в том, что небольшая дисперсия аналогична старому упрямому априору, который думает, что знает лучше; когда он говорит вам, что ожидаемое значение равно \(\alpha_{предыдущий}\)
деленное на \(\бета_{предыдущий}\), значит именно это. С другой стороны, большая дисперсия похожа на образованного молодого приора. Такой априор знает ожидаемое значение, но он не такой упрямый и его можно «убедить». Такая предварительная информация знает, что в будущем могут быть сюрпризы, и, следовательно, допускает некоторую неопределенность.
Вышеупомянутое — это то, что я имел в виду под «влиянием» априора: большее влияние означает, что вы должны прислушиваться к нему, а меньшее влияние означает, что оно дает вам некоторый намек, но вы должны придавать большее значение фактическим данным пользователя. Правильный выбор позволяет нам наслаждаться обоими мирами. Мы получаем разумный априор, который учитывает количество аномальных действий, происходящих в организации, не ставя под угрозу желаемое влияние данных пользователя.