详细内容或原文请订阅后点击阅览
以 SMART 方式检测异常(第三部分)
关于查找异常用户的帖子系列的第三部分。
来源:Another Datum这篇文章最初由我在 Fortscale 博客上发表。Fortscale 的产品通过检测异常用户行为帮助组织消除内部威胁。
这篇文章最初由我在 Fortscale 博客上发表。 Fortscale 博客 Fortscale 的产品通过检测异常用户行为帮助组织消除内部威胁。在本系列的第一篇文章中,我描述了 Fortscale 如何使用个性化自适应阈值来触发警报。每个用户的活动都被分配一个风险分数(称为 SMART 值),当超过用户的阈值时会触发 SMART 警报。我们解释了用户在一段时间内执行的异常活动越多,他的阈值就越高。
第一篇文章在第二篇文章中,我深入探讨了技术细节,解释了我们如何使用贝叶斯推理框架来计算 SMART 值的分数。我们开发了一个公式,用于计算过去 SMART 值为 \(v_1, ... , v_n\) 的用户看到至少 \(v\) 的 SMART 值的概率:
第二篇帖子 \(v\) \(v_1, ... , v_n\)$$\left(\dfrac{\beta_{prior} + \sum_{i=1}^{n} v_i}{\beta_{prior} + \sum_{i=1}^{n} v_i + v}\right)^{\alpha_{prior} + n}$$
其中 \(\alpha_{prior}\) 和 \(\beta_{prior}\) 是模型的超参数。在这篇文章中,我们将揭示如何计算这些值。
\(\alpha_{prior}\) \(\beta_{prior}\)先验是贝叶斯推理框架的一个非常强大的属性;它允许人们在计算概率时结合先验知识。这个属性是我们如此喜欢贝叶斯推理的原因之一。回想一下本系列的第一篇文章,我们遇到了一些从未有过异常行为的用户的挑战,因此他们过去的 SMART 值都是零。这样的用户肯定会为任何正的 SMART 值触发警报。我们可以利用先验来防止这种情况发生。
\(\lambda\) \(\lambda\) 共轭先验 \(\alpha\) \(\beta\) \(\alpha_{prior}\) \(\beta_{prior}\) 这里 \(\alpha_{prior}\) \(\beta_{prior}\)