好的,这是一个非常简单的想法(基本上,您要做的是生成一组特征,然后确定当前会话行为是否与先前观察到的行为不同)。我喜欢将这些一类问题(仅训练正常行为,想要检测显着偏离)视为密度估计问题,所以这里有一个简单的概率模型,可以让您获得当前请求模式的概率。基本上,当它变得太低时(以及你需要调整到多低以适应所需的行为),就会发生一些事情。
我们的观察包括每一页的计数。让它们的总和,即请求的总数,等于 c_total,并且每个页面i的计数为p_i。那我建议:
c_total ~ 泊松(\lambda)
p|c_total ~ 多项式(\theta, c_total)
这允许您在给定学习到的用户特定参数 λ (单变量)和 θ (与 p 维相同的向量)的情况下为新观察分配概率。为此,请从泊松分布的 pmf 中计算看到这么多请求的概率,然后从多项式中计算看到页面计数的概率,并将它们相乘。然后,您可能希望通过 c_total 进行标准化,以便您可以比较具有不同请求数量的会话(因为请求越多,您相乘的数字 < 1 就越多)。
因此,剩下的就是从该用户的先前“好”会话中获取参数。最简单的事情是最大似然,其中 lambda 是先前会话中请求的平均总数,而 \theta_i 是 p_i (针对该特定用户)的所有页面浏览量的比例。这可能对您有用:但是,鉴于您想从非常少量的观察中学习,我很想使用完整的贝叶斯模型。这也可以让您在每次非可疑观察后巧妙地更新参数。这些分布的推断非常容易,具有 λ 和 θ 的共轭先验以及分析预测分布,因此如果您完全熟悉这些类型的模型,这将不难。