论文题目:MS-LSTM: a Multi-Scale LSTM Model for BGP Anomaly Detection
论文来源:ICNP 2016
论文链接:https://ieeexplore.ieee.org/abstract/document/7785326
将历史信息整合到分类器中可以使决策更加谨慎和准确。与大多数其他时间序列一样,互联网流量具有多尺度属性。 意味着在不同的时间尺度上,序列可以表现出不同的模式。如下图,可以发现在更大的时间尺度上,时间序列的全局趋势更容易捕捉,但更难感知局部变化。
设BGP流量数据是一个在一分钟的时间间隔中收集的n个时间点的时间序 x t 1 , x t 2 , . . . , x t n x_{t_1},x_{t_2},...,x_{t_n} xt1,xt2,...,xtn,为33维向量(抽取流量的33个特征)。设窗口的大小为e, x t n x_{t_n} xtn的状态与 S n = ( s t n − e − + 1 , s t n − e − + 2 , . . . , s t n ) S_n=(s_{t_{n-e-+1}},s_{t_{n-e-+2}},...,s_{t_{n}}) Sn=(stn−e−+1,stn−e−+2,...,stn)有关。每个子序列 S n S_n Sn被时间尺度d压缩(如 d 1 = 1 / p ( x t n − e + 1 + x t n − e + 2 + . . . x t n − e + p ) d_1=1/p(x_{t_{n-e+1}}+x_{t_{n-e+2}}+...x_{t_{n-e+p}}) d1=1/p(xtn−e+1+xtn−e+2+...xtn−e+p))。通过这种方式,可以从训练数据S中得到n-e+1个集合。每一个集合的标签与最后一个状态的向量相同, L ( S n ) = L ( x t n ) L(S_n)=L(x_{t_n}) L(Sn)=L(xtn)
模型的整体结构如下,LSTM输出值 h 1 , h 2 , . . . , h t ′ h_1,h_2,...,h_t' h1,h2,...,ht′被平均池化层平均,得到h。逻辑回归层是一个二分类器,训练h和标签的损失。
使用SVM、Naive Bayes Classifier和Boosting modules作为baseline,实验结果如下,可以发现通过增加序列窗口可以提高全部分类方法大约10%的准确率。
不同窗口大小的实验结果如下,可以发现随着窗口大小的增加,全部方法的准确率先增加再减小,最佳大小为40.
不同时间尺度的实验如下,可以发现MS-LSTM在时间尺度为8是达到最佳的效果。
交叉验证的实验结果如下,使用三种数据,其中两种数据训练,其余一种数据测试,共三种方法。
通过下图比较预测结果与真实标签,与Naive Bayes Classifie和SVM相比,MS-LSTM模型没有误报,可以检测到大多数异常样本。
h t = f ( x t , h t − 1 ; θ ) h_t=f(x_t,h_{t-1};\theta) ht=f(xt,ht−1;θ)
d h t d θ = ∂ h t ∂ h t − 1 d h t − 1 d θ + ∂ h t ∂ θ \frac {dh_t}{d_{\theta}}=\frac { {\partial}h_t}{ {\partial}h_{t-1}}\frac {dh_{t-1}}{d\theta}+\frac{ {\partial}h_t}{ {\partial}{\theta}} dθdht=∂ht−1∂htdθdht−1+∂θ∂ht
BGP流量数据: x t 1 , x t 2 , . . . , x t n x_{t_1},x_{t_2},...,x_{t_n} xt1,xt2,...,xtn
设置窗口大小为e,使用 x n − e + 1 x_{n-e+1} xn−e+1到 x t n x_{t_n} xtn数据的特征信息预测 x t n x_{t_n} xtn
S n = x t n − e + 1 , x t n − e + 2 , . . . , x t n S_n={x_{t_{n-e+1}},x_{t_{n-e+2}},...,x_{t_{n}}} Sn=xtn−e+1,xtn−e+2,...,xtn
S n = ( d 1 , d 2 , . . . , d e / p ) S_n=(d_1,d_2,...,d_{e/p}) Sn=(d1,d2,...,de/p)
d 1 = 1 / p ( x t n − e + 1 + x t n − e + 2 + . . . x t n − e + p ) d_1=1/p(x_{t_{n-e+1}}+x_{t_{n-e+2}}+...x_{t_{n-e+p}}) d1=1/p(xtn−e+1+xtn−e+2+...xtn−e+p)
h 0 , h 1 . . . h t ′ = L S T M ( d 1 , d 2 , . . . , d e / p ) {h_0,h_1...h_{t'}}=LSTM(d_1,d_2,...,d_{e/p}) h0,h1...ht′=LSTM(d1,d2,...,de/p)
h = p e ( h 0 , h 1 . . . h t ′ ) h = \frac pe (h_0,h_1...h_{t'}) h=ep(h0,h1...ht′)
p = f θ ( h ) p = f_{\theta}(h) p=fθ(h)