论文标题 | HYPA: Efficient Detection of Path Anomalies in Time Series Data on Networks
论文来源 | ICDM 2020
论文链接 | http://www.eliassi.org/papers/hypa-sdm2020.pdf
源码链接 | https://github.com/tlarock/hypa

TL;DR

由于现实复杂网络系统中节点的异构性(特指节点与边的频率统计分布),单纯地基于频率统计进行异常检测不再适用。论文中提出了一种无监督路径异常检测框架 HYPA (Higher-order Hyper-geometric path anomaly detection) 来检测图中不同长度的异常路径,即由于节点访问时序问题造成的路径访问频率次数异常,主要用于入侵检测、异常轨迹识别等。主要想法是将路径异常检测问题转化为kk 维德·布鲁因图的节点进行图上的边异常检测问题,注意仅是判断图中的长度为kk 路径是否频率异常。实验部分在交通运输系统数据中验证了算法的有效性。

Algorithm/Model

论文中提出 HYPA 框架如下图所示,

HYPA 框架

Path Anomaly Detection

首先明确论文中定义的路径异常检测问题:给定序列集合SS ,异常路径检测是指统计序列中包含通过图的路径其频率高于或者低于期望值。形式化定义如下:

给定有向图G=(V,E)G=(V,E) 和包含nn 个序列si=v0,v1,,vlis_i=v_0,v_1,\cdots, v_{l_i} 序列集合SS,其中vjV,j[0,,li]v_j\in V, j \in\left[0, \ldots, l_{i}\right] 并且(vj,vj+1)E(v_j, v_{j+1}) \in E 。对于k>1k>1,检测所有包含在GG 中的路径p=v0vk\vec{p}=\overline{v_{0} \ldots v_{k}} 频率是否明显偏离k1k-1 阶路径模型的期望。

论文的主要想法是将一阶图中的路径异常检测问题转化为高阶德·布鲁因图GkG^k 中的边异常检测问题,涉及到一个德·布鲁因图转化过程。

德·布鲁因图转化可以参考我的另一篇博文:德布鲁因图 (De Bruijn graph) 与线图 (Line graph)

转化为高阶德·布鲁因图的好处是:可以将路径长度为kk 的路径异常检测问题转化为kk 阶德·布鲁因中异常边权重异常检测问题。

k-th order model of paths

对于给定的图GG,令Gk=(Vk,Ek)G^k=(V^k, E^k) 表示kk 阶路径德·布鲁因图,对于每条边e:=(v0vk1,v1vk)Eke:=\left(\overline{v_{0} \ldots v_{k-1}}, \overline{v_{1} \ldots v_{k}}\right) \in E^k 利用权重f(e)f(e) 表示SS 中子路径v0vk\overline{v_{0} \ldots v_{k}} 的频率,Tk\mathbf{T}^k 表示GkG^k 的概率转移矩阵为Tvwk:=f(v,w)xVkf(v,x)\mathbf{T}_{\vec{v}\vec{w}}^{k}:=\frac{f(\vec{v}, \vec{w})}{\sum_{\vec{x} \in V^{k}} f(\vec{v}, \vec{x})},因此kk 阶模型中路径p=v0v1vl\vec{p}=\overline{v_{0} v_{1} \ldots v_{l}} 的概率为i=klTvˉikvi1kvik+1vi\prod_{i=k}^{l} \mathbf{T}_{\bar{v}_{i-k} \cdots v_{i-1}}^{k} \overline{v_{i-k+1} \ldots v_{i}}

论文中假设随机路径图中的边权重分布符合多变量超几何分布,因此使用这个分布的边缘概率来计算每条边的权重:

Pr(Xvw=f(v,w))=(ijΞijm)1(Ξvwf(v,w))(ijΞijΞvwmf(v,w))\operatorname{Pr}\left(X_{\vec{v} \vec{w}}=f(\vec{v}, \vec{w})\right)=\left(\begin{array}{c}\sum_{i j} \Xi_{i j} \\ m\end{array}\right)^{-1}\left(\begin{array}{c}\Xi_{v w} \\ f(\vec{v}, \vec{w})\end{array}\right)\left(\begin{array}{c}\sum_{i j} \Xi_{i j}-\Xi_{v w} \\ m-f(\vec{v}, \vec{w})\end{array}\right)

然后使用边缘概率和边累计分布来计算每条边的HYPAkHYPA^k 分数,

HYPA(k)(v,w):=Pr(Xvwf(v,w))\mathrm{HYPA}^{(k)}(\vec{v}, \vec{w}):=\operatorname{Pr}\left(X_{\vec{v} \vec{w}} \leq f(\vec{v}, \vec{w})\right)

然后根据计算的分数,再给定阈值α\alpha 来判断异常。

这个假设太强了,没看懂…可以参考原文,定义多而且论文写的太绕了…

理解为根据假设:结合随机模拟数据、观测数据和边缘分布概率就能算出kk 阶图中每条边的异常分数。

Experiments

实验结果如下图所示

考虑不同参数的对异常路径判断的影响:

Thoughts

  • 论文借德·布鲁因图转化了路径异常检测的表示形式,个人感觉是越搞越复杂,而且根据低阶图和线图来构建高阶德布鲁因图效率会非常低。
  • 论文中的路径异常检测不是直接检测数据 Sequence 异常,而是根据 Sequence 统计检测给定图中所有的路径的异常,有点容易误导。
  • HYPA 方法仅检测了给定序列中子路径出现频率的异常,没有考虑路径属性、结构问题造成的异常。
  • 对给定的所有序列进行频率偏差异常检测,说明就算给定的序列中没有异常也会检测出异常路径。

Contact