1

我正在尝试开发一种基于页面请求来识别用户浏览模式的方法。在一个简单的示例中,我创建了 8 个页面,并且对于从用户到页面的每个页面请求,我将该页面的请求频率存储在数据库中,如下所示:在此处输入图像描述

现在,我的假设是确定页面请求模式的差异,这导致我假设如果该模式与预先存在的模式不同,那么它就是一个不同的(欺诈性)用户。我正在尝试将此方法开发为多因素身份验证系统的一部分。

现在,当用户登录并使用与之前观察到的模式不同的模式进行浏览时,系统应该能够将其识别为模式的变化。

问题是如何利用这些数据值来检查当前模式是否与预先存在的模式相关。

4

3 回答 3

1

好的,这是一个非常简单的想法(基本上,您要做的是生成一组特征,然后确定当前会话行为是否与先前观察到的行为不同)。我喜欢将这些一类问题(仅训练正常行为,想要检测显着偏离)视为密度估计问题,所以这里有一个简单的概率模型,可以让您获得当前请求模式的概率。基本上,当它变得太低时(以及你需要调整到多低以适应所需的行为),就会发生一些事情。

我们的观察包括每一页的计数。让它们的总和,即请求的总数,等于 c_total,并且每个页面i的计数为p_i。那我建议:

c_total ~ 泊松(\lambda)

p|c_total ~ 多项式(\theta, c_total)

这允许您在给定学习到的用户特定参数 λ (单变量)和 θ (与 p 维相同的向量)的情况下为新观察分配概率。为此,请从泊松分布的 pmf 中计算看到这么多请求的概率,然后从多项式中计算看到页面计数的概率,并将它们相乘。然后,您可能希望通过 c_total 进行标准化,以便您可以比较具有不同请求数量的会话(因为请求越多,您相乘的数字 < 1 就越多)。

因此,剩下的就是从该用户的先前“好”会话中获取参数。最简单的事情是最大似然,其中 lambda 是先前会话中请求的平均总数,而 \theta_i 是 p_i (针对该特定用户)的所有页面浏览量的比例。这可能对您有用:但是,鉴于您想从非常少量的观察中学习,我很想使用完整的贝叶斯模型。这也可以让您在每次非可疑观察后巧妙地更新参数。这些分布的推断非常容易,具有 λ 和 θ 的共轭先验以及分析预测分布,因此如果您完全熟悉这些类型的模型,这将不难。

于 2013-05-13T12:59:03.830 回答
1

如果您想从简单开始,请实施余弦相似度度量。这将允许您定义一组“好”向量。当前用户的活动可以与良好的向量进行比较。如果您无法检索到好的向量,则该活动被标记。

于 2013-05-13T19:24:33.050 回答
1

一种方法是使用无监督学习方法,例如自组织图(SOM,http ://en.wikipedia.org/wiki/Self-organizing_map )。在代表预期/正常用户行为的数据上训练 SOM,然后查看候选数据集与训练地图的匹配程度。与“自组织地图”一起搜索的关键字可能是“新奇/异常/入侵检测”(例如http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.55.2616&rep =rep1&type=pdf )

您应该考虑是否可以提前对欺诈用例进行建模(在这种情况下,您可以专门为它们训练检测器),或者是否只关注与正常行为的偏差。

于 2013-05-12T19:07:53.250 回答