异常检测

异常检测:Wavelet+Attention+LSTM

2020-05-20  本文已影响0人  飙6风

一、文章简介

名称:《Multi-Scale LSTM Model for BGP Anomaly Classification

时间:2018年

期刊:2018 Transactions on Services Computing 

二、论文总结

2.1 论文目的

    提出了一种新颖的多尺度长期短期记忆(MSLSTM)模型来捕获BGP流量中的异常行为。在模型中,使用离散小波变换来获取多个尺度的时间信息,并设计了一个分层的两层LSTM体系结构,其中第一层学习不同时间尺度的注意力以生成集成的历史表示,第二层在学习的表示中捕获时间依赖性。

2.2 写作动机

    LSTM模型已被提出来识别异常BGP流量。然而,单层架构无法利用不同时间分辨率上的依赖信息。序列中聚合观测值的时间间隔长度(即序列中的时间尺度)是影响模型性能的关键因素,并且流量模式在不同的时间范围会表现出不同的行为。本文提出了一种新颖的多尺度LSTM模型(MSLSTM),以充分表征不同时标的时间依赖性。在MSLSTM中,利用离散小波变换来获取多个尺度的时间信息,并开发了一个分层的两层LSTM体系结构,其中第一层学习不同时间尺度的注意力以生成一个集成的历史表示,第二层层捕获表示中的长期和短期时间依赖性。

2.3 贡献和创新点

贡献:

    首先,分析了网络流量在多尺度方面的时间特征,证明了网络流量在不同的时间尺度上表现出各种不同的模式。 此外,离散小波变换除了用于表征流量行为的原始特征外,还用于生成大量信息。

    其次,设计了分层注意力LSTM模型,以从丰富的信息中学习多种尺度的表示。 在提出的模型中,同时考虑了多个尺度上的信息,并且在内部使用注意力机制学习了每个不同时间尺度。 随后生成一个集成表示以对长期和短期时间依赖性进行建模。

    第三,使用来自实际BGP流量的数据集评估所提出模型的性能。 为了验证MSLSTM的可行性,收集了典型BGP异常事件的网络流量。 对于每个事件,将提取聚合的特征,并使用滑动窗口将原始实例转换为多元时间序列。

创新:

    使用小波变换来分解原始流量,获取流量多尺度的时间信息。然后将注意力机制和LSTM模型结合分析流量。

2.4 现实思路


输入:前n个序列{x_{t_{1}}^d,x_{t_{2}}^d,…,x_{t_{n}}^d},其中d是输入序列的维度,t_{i}是时间序列;简言之X=(x_{1},x_{2},…,x_{t},…,)表示输入,其中x_{t}\in R^d,t\in (1,n);

输出:使用训练好的分类模型对流量{x_{t_{n+1}}^d,x_{t_{n+2}}^d,…,x_{t_{n+s}}^d}进行分类。


2.4.1 预处理

    假设数据集是在给定的时隙中以n个点收集的数据流,其中每个元素是维向量,则首先使用重叠的滑动时间窗口从原始数据集中生成一系列多元序列,以表征时间序列实例之间的关系。每个序列都是一个具有窗口大小周期的多元时间序列。如果窗口的大小为e,则x_{i}的状态与序列{x_{i-e},x_{i-e+ 1},...,x_{i-1}}相关。这样,从训练数据中获得了一个新的序列数据集,每个序列的标签相当于最频繁元素的类别。

2.4.2 多尺度时间分析

    大比例尺可以显示序列的整体趋势,而小比例尺可以提供有关详细信息的更多信息。因此,在处理流量序列以达到最佳性能时有必要考虑规模。

2.4.3 离散小波变换

    离散小波变换(DWT)将信号分解为一组基本函数,以获得多尺度时间序列。 这些基本函数称为小波,它们是通过扩展和移位从单个原型小波生成的:

小波变换

    其中,a是缩放参数,b是移位参数。 在这里,进行多级离散小波变换以利用和揭示流量序列中时间动态的缩放特性。 对于给定的序列X_{n} = {x_{1},x_{2},...,x_{n}},令A_{0} = X_{n},离散小波变换的分解将原始序列X_{n}分解为近似部分A_{1},该近似值A_{1}表示比原始信号更高级别的粗略信息 ,以及细节部分D_{1},其中提供了有关高频的信息。 该过程将继续以较低的采样率分解近似值。 在每个级别上,近似分解如下:

小波变换多级分解公式

    其中c_{a}c_{d}分别是近似系数和细节系数。 通过将原始信号与低通滤波器H_{n}卷积获得近似系数,而细节系数由高通滤波器G_{n}获得。 最后,k级的小波分解生成以下系数的列表[c^k_{a},c^k_{d},c^{k-1}_{d},…,c^2_{d},c^1_{d}]。 尺度为j的信号重构计算如下:

图1  离散小波变换近似和细节时间序列

    数字k表示将进行分解的级别的总数,而\psi ^,是重构函数。对于长度为n的时间序列,DWT最多由log_{2}n级组成,因此k∈[1,\lfloor log_{2}n \rfloor  ]。上图描述了DWT的两级层次结构。不同级别的近似部分A和细节部分D从各个方面提供了有关流量动态的大量信息,其中较高级别的近似值表示全局趋势行为,并且每个级别细节部分D都可以表征更多的本地信息。对于不同尺度级别的重建,逆DWT通过在i + 1级别对两组系数进行上采样来合成A_{i},然后将零插入到细节系数中,并使用重建滤波器对上采样结果进行卷积。 DWT以这种方式提取多尺度特征得到更多信息,进一步将其用于测量每个尺度并建立分类模型。

2.4.4 注意力机制

    注意机制起源于计算神经科学。例如,视觉注意力集中在视觉输入的特定部分以计算适当的响应。该原理对神经计算有很大的影响,类似的思想已应用于许多深度学习任务,包括语音识别,翻译,推理和对象的视觉识别。在深度学习中,首先在《Neural Machine Translation by Jointly Learning to Align and Translate》中提出了注意力机制,通过使用基于注意力的编解码器在源句子中选择参考词。注意机制帮助解码器部分基于所有输入状态(不仅仅是最后一个状态)的加权组合来输出字。

    如下图所示,注意力模型将T个状态h_{1},h_{2},..,h_{T}和上下文c作为输入,接下来计算具有tanh层的聚合m_{1},m_{2},..,m_{T},并且m_{i}值取决于上下文向量ch_{i}的匹配程度如何。该公式的计算公式为:m_{i }= tanh(W_{cm}c + W_{hm}h_{i})。使用注意力机制,不必将全部输入编码为一个固定长度的矢量,并且使用softmax函数,将m_{i}投影到学习的方向上:w_{i} ∝exp(<w_{m},m_{i}>),\sum\nolimits_{i} w_{i}h_{i} = 1。输出s是所有输入状态的加权汇总:s = \sum\nolimits_{i}  w_{i}h_{i},其中权重w_{i}的值由ch_{i}的关联重要性确定。

图2 注意力模型结构

2.4.5 具体方法

图3 (a)为原始时间尺度的时间序列;(b)为使用3级离散小波变换后的序列

    如图3所示,流量数据的行为在不同的时间尺度上表现出不同的模式。与仅以最细粒度从流量序列中提取特征相比,更大范围的信息可以提供附加特征来对序列的行为进行建模。另外,时间尺度之间的关系也存在。例如,就时间序列而言,较大的尺度是从较小的尺度演变而来的。为了开发一种充分利用多尺度信息的模型,提出了一个分层的两层LSTM模型。在第一层中,在每个步骤中学习来自不同时间尺度的隐藏特征,而在第二层中,模型学习序列中的时间依存关系。通过离散小波变换的分解和重构,生成具有多种时间分辨率的序列。在获得基于DWT的多尺度时间序列后,由于传统递归神经网络存在梯度消失问题,采用LSTM网络学习序列内的长期和短期依赖性。我们的工作与文献工作之间的主要区别在于,我们同时使用多尺度信息,并且提出了一种注意力模型,通过将这些信息集成到LSTM中来自动了解每个尺度的重要性,即,提出的的MSLSTM使用多尺度时间序列进行训练,并从每个不同尺度层学习组合特征。 MSLSTM的详细结构介绍如下:

图4  LSTM单元的内部结构图。其中x^k_{t}是在时间序列第t步输入的第k层尺度,h^{k-1}_{t}h^k_{t}是在时间步t的第k-1层和k层尺度的隐藏状态。\phi tanh函数,i_kf_ko_k分别是输入门,忘记门和输出门的激活函数。 存储器单元c_k,c_{k-1}是存储内部特征的状态。

    学习多尺度时间关联的过程是:给定输入数据X =(x_1,x_2,...,x_t,...,),x_t∈R^d,t∈(1,T),多尺度时间序列{R_1=(x^1_1,x^1_2,…,x^1_T),R_2=(x^2_1,x^2_2,…,x^2_T),…,R_k=(x^k_1,x^k_2,…,x^k_T),…,k\in (1,K)}是通过以最大级别K分解和重构DWT获得的,其中T是时间步长,而x^k_t表示在时间t的第k级输入。在MSLSTM的第一层中,令(x^k_1,x^k_2,…,x^k_t,…)为存储单元的输入值,(h^1_t,h^2_t,…,h^k_t,…)为生成的隐藏状态的列表,其中存储单元的激活函数和隐藏特征也可以在图4中得出。 如以下等式:

等式

    W_{xi};W_{hi};W_{ci};W_{xf };W_{hf} ;W_{cf };W_{xc};W_{hc};W_{xo};W_{ho};W{co}是权重矩阵,而b_i,b_f,b_c,b_o是偏差向量。 σ(·)是隐藏层的sigmoid函数,\phi tanh函数,\odot 是按元素生成。 MSLSTM的概述结构如图5所示。

    对于给定的时间t,使用公式(4)-(9)基于序列{x^1_t,x^2_t,…,x^k_t}获得不同时间尺度的特征,而h^k_t是时间t处第k级的隐藏特征。并非所有尺度都能等同地发挥作用,因此,每个序列的输出使用等式(10)-(12)生成不同时间尺度的集成信息。 通过计算u^k_tu_w的相似度来衡量每个尺度的注意力,其中,u^k_t是通过完全连接MLP层h^k_t的隐藏特征,而u_w是获得标准化权重w^k_t的时间尺度上下文向量。 u_w被初始化为随机向量,并将在训练过程中共同学习。

公式 图5 多尺度LSTM体系的框架

积分状态s_t的计算如下:

公式

    s_t可以看作是在时间t整合了所有时间尺度的高级信息,并且(s_1,s_2,…,s_t,…)将是第二层LSTM单元的输入,以捕获具有以下等式的时间层面的关联 :

等式

    等式(13)的计算与等式(4)-(8)相同。 W是第二层的参数向量。 对于序列X =(x_1,x_2,...,x_t,...)的最终输出类别,采用softmax函数来预测其标签。 我们使用的损失函数为sigmoid交叉熵,如下所示:

损失函数

        | L | 是类的数量,y是真实的标签,而\hat{y} 是预测标签。

图6 四种LSTM体系结构的比较:(a)一层LSTM; (b)堆叠的LSTM; (c)一层注意力LSTM; (d)我们建议的基于层次注意力的LSTM

        我们将先前工作中建议的MSLSTM模型与单层LSTM以及图6中的堆叠LSTM架构进行了比较。图6(a)和图6(c)是单层LSTM,其中图6(a)是最简单的架构,图6 (c)计算时间注意力; 图6(b)是堆叠的LSTM,它仅复制上层的LSTM单元以获得多尺度信息,而在图6(d)中,我们的模型通过计算多尺度注意力来学习每个时间步长上多个尺度的综合特征。

2.5 实验

2.5.1  数据集

    我们从欧洲RIPE收集了四个BGP安全事件的流量,以训练我们的分类模型。 BGP协议通常会生成四种消息:打开,更新,保持活动和通知。 在这项工作中,实验是基于BGP更新消息进行的,该消息是交换公告或转发撤消消息,例如网络层可达性信息(NLRI)。 对于每个事件,都有几个小时的异常记录。 表1列出了收集的BGP数据集的描述。

表1 BGP数据集描述 表2 BGP更新数据包样本 表3 从BGP更新消息中提取的特征

我们从RIPE收集的BGP更新数据包源自AS 1853、12793、13237(rrc05,维也纳)和AS 513(rrc04,日内瓦)。我们从网络数据流中提取动态流量,并将原始的Multi-RoutingTable(MRT)格式转换为ASCII。表2给出了ASCII格式的BGP更新消息的示例。随后,提取了半分钟间隔内更新流量的统计信息以获得原始特征,如表3所示。我们计算每个时隙中的公告,退出,内部网关协议(IGP)和外部网关协议(EGP)数据包以及不完整的网关数据包的数量。还提取BGP报文中AS路径属性的统计信息,例如AS对等体的最大,唯一和平均数目。另外,将AS路径之间的编辑距离值计算为将一个AS路径列表转到另一个AS路径列表所需的最少操作数,其中操作包括插入,删除和替换。最后,我们从网络流量中总共获得了35个特征,用于训练和测试分类任务。如图7所示,对于每个异常事件,我们将通告数量作为一个功能进行计算,并将原始MRT格式转换为实例值的集合,其中突发性说明了异常。

图7 AS Leak (a),Code Red I(b), Nimda (c) 和Slammer (d)的公告数量。红色代表异常。

2.5.2  Baselines

    为了进行比较,选择了传统的机器学习算法以及神经网络模型作为异常分类实验的Baselins。 分别如下:

(1)SVM和NB:《Machine learning models for classification of BGP anomalies》支持向量机(SVM)和《Feature selection for classification of BGP anomalies using Bayesian models》朴素贝叶斯(NB)分类器是分类任务中著名的监督学习模型;

(2)SVMF和SVMW: SVMF和SVMW是SVM的变体。 他们使用基于Fisher-score和Wrapper的特征选择方法;

(3)1NN.:1NN方法使用Euclid距离来计算差异,这是时间序列分类中的常用Baseline;

(4)DTW: 动态时间规整(Dynamic Time Warping,DTW)与1NN相结合《Extracting optimal performance from dynamic time warping》是时间序列分类中的一种众所周知的Baseline;

(5)DT, RF, Ada.Boost:这是三种基于树的方法,其中随机森林(RF)和Ada.Boost都是用于分类的最先进的集成模型。 在决策树(DT)中,我们按照[3]中的指示删除了已构建树中的选定要素;

(6)MLP:多层感知(MLP)是使用反向传播的三层前馈模型;

(7)RNN and LSTM:RNN和LSTM都是具有一层隐藏层的递归神经网络;

(8)LSTM-2, LSTM-3, LSTM-4, LSTM-5:这些模型堆叠了多层LSTM结构,如《Long short term memory networks for anomaly detection in time series》中所述,用于异常分类;

(9)LSTM-A: LSTM-A是使用注意力机制的一层LSTM网络。

2.5.3  训练和实施

  每个数据集被分为训练、验证和测试,比率分别为60%、10%和30%。对于每个数据集,从{2^3,2^4,..,2^8}范围中选择隐藏单位的数量。 采用模拟退火策略(simulated annealing strategy)来选择最佳学习率,其中在验证阶段将提前停止设置为20。 最大epoch数设置为100Batch size设置为200,从离散小波变换获得的最大级别数设置为10,其中我们使用haar小波作为默认小波类型。

    所有方法都是使用python实现的,其中传统的机器学习模型基于scikitlearn软件包,而神经网络则使用tensorflow 实现。 为了分解和重建DWT,使用PyWavelet作为工具包。 MSLSTM所有实现都可以在线找到。

2.5.4 评估指标

    针对二进制分类评估指标:Accuracy, PrecisionFmeasure,其中正类是异常,负类则代表正常数据记录。Accuracy 测量两类的整体表现,Fmeasure则同时评估正类别的准确性(precision)和召回率(recall)。对于不平衡情况,将AUC(Area Under Curve,曲线下面积)用作评估指标,其中曲线是ROC(Receiver Operating Characteristic,接收者操作特征曲线)曲线,该曲线x轴为假阳性率与y轴真实阳性率。 AUC表示了两类预测分布之间的差异。AUC越接近1,分类效果就越好。指标公式如下:

指标 表4 TP; TN; FP; FN

2.5.5 二分类

    为了证明MSLSTM的有效性,首先对四个均衡数据集进行了二元分类,然后将定性结果与Baseline方法进行比较。如表5所示,由于结果不仅仅基于当前状态,因此顺序模型(RNN和LSTM)显然比传统算法具有更好的性能。顺序模型可以通过考虑历史信息来揭示流量的时间性质,并使决策更加准确,这也与先前的研究结论一致。在传统方法中,强分类器SVM以及诸如RF和Ada.Boost之类的集成模型将比弱学习者DT和1NN表现更好。另外,结合文献《Feature selection for classification of BGP anomalies using Bayesian models》的结论证明,结合传统分类器的特征选择方法可以有效地提高性能。与vanilla RNN相比,LSTM网络获得了更好的结果,因为LSTM的单元结构可以模拟具有更多门的长期关系。本文所提出的MSLSTM和堆叠式LSTM的性能优于单层LSTM架构,这表明集成多尺度流量并考虑其他时间相关性信息会对分类产生积极影响。此外,事实证明,将一层LSTM与LSTM-A进行比较后发现注意力机制对于非常有用。在所有方法中,堆叠式LSTM(LSTM-3)和MSLSTM达到了最佳性能,而MSLSTM在几乎所有情况下均优于Baseline,并且大大提高了评估结果(最多16%)。这表明学习多时间尺度的注意力可以提供更可靠的时间信息,以进行更准确的分类。此外,与堆叠模型相比,MSLSTM可获得更可靠的结果,并且层数会影响堆叠LSTM的性能。合理的解释是,堆叠LSTM中下一层的输入只是隐藏表示的前一层,无法对具有适当层数的多尺度特征进行建模。而MSLSTM则从所有标尺级别s_t到下一层级都添加注意力机制来获取重组特征。在Slammer数据集中,几乎所有方法都可以完全识别出异常,这表明这种异常比其他异常更具可分辨性。

表5 模型结果比较表

    为了说明所提出模型的学习特征的质量,我们使用主成分分析(PCA)将它们投影到二维空间中,以揭示学习表示的流形结构。图8(a)是不使用滑动窗口的Slammer数据集原始特征的投影。图8(b)和图8(c)分别是标准LSTM和3层LSTM的已知隐藏特征;图8(d)是我们的MSLSTM的隐藏特征。在图8(a)和图8(b)中,常规数据和异常之间的决策边界不是那么可区分,在图8(c)中,大多数异常点可以与常规点分开,而在图8(d)中在异常和常规实例之间存在清晰的边界。观察结果表明考虑历史信息的必要性以及从多个尺度学习表示的有性。

图8 将特征投影到二维空间中:(a)原始特征; (b)LSTM学习到的隐藏特征; (c)三层LSTM学习到的隐藏特征; (d)MSLSTM学习到的隐藏特征。

    为了评估参数对时间窗口和尺度的影响,利用离散小波变换的各种滑动窗口大小以及不同的时间尺度来比较考虑多尺度时间信息的影响。图9说明了在数据集上使用不同的比例值和滑动窗口大小的模型的Accuracy。小波滤波器为Daubechies滤波器,波长为2。滑动窗口大小的值越大,将导致信息越丰富,从而导致“Accuracy”的上升趋势明显。此外,由于将更多的多样性和更高的时间粒度集成到了模型中,因此增加规模级别的数量将显著改善性能。

图9 不同的滑动窗口大小和保留的时间尺度的Accuracy

    在图10中,报告了训练集和验证集的accuracy以及loss。选择标准的一层LSTM,堆叠的LSTM和我们提出的模型进行比较。显然,在验证集上,MSLSTM和堆叠的LSTM的性能优于一层LSTM。此外,单层LSTM的结果在两组上都有很大的波动,并且accuracy在90个epochs之后急剧下降,这表明单层LSTM容易遭受过度拟合。相比之下,由于训练和验证曲线均更平滑,并且MSLSTM还实现了最高的accuracy和最低的验证loss.,因此MSLSTM获得了更强大的性能。

图10 训练和验证数据集上不同LSTM体系结构的accuracy和loss

    选择异常事件的不同组合作为训练和测试数据集的目的,其目标是根据现有类型来评估预测未知类型的异常的能力。在实际环境中,尽管各种异常事件表现出各种行为,但不同类型的异常仍可以在一定程度上共享公共模式。 四个异常事件的符号表示为1,2,3,4,其中四个事件的组合和结果在表6中进行了描述。结果表明,我们提出的模型针对确定未知异常类型方面在大多数情况下也优于标准LSTM和堆叠LSTM 。 

表6 四个数据集的不同组合的结果

    除了评估不同数量的尺度级别的影响外,还对采用各种类型的小波滤波器函数和滤波器长度的所提出模型的性能进行了测量。 如表7所示,为了比较,使用了三种长度不同的滤波器。 H代表Haar过滤器,它是信号流量处理中一种流行的过滤器,其长度为2。D_1D_2都是Daubechies过滤器,而过滤器长度为2和4。C_1Coiflets过滤器,其长度为6。选择尺度等级的数量分别为2、3和4,我们使用四个数据集的平均结果。 结果表明,小波滤波器的长度会影响性能,较小的滤波器长度性能会更好,而具有相同滤波器长度的不同类型的小波函数将获得相同的结果,并且随着尺度的增加,AccuracyF_{measure}将得到提高。

表7 不同小波过滤器的AccuracyF_{measure}

    此外,我们进行实验以比较不同分类模型的误报率和漏报率错误警报意味着错误地预测正常流量,而丢失警报则将异常预测为正常。两种比率都是网络安全性的问题。我们使用Code Red I数据的测试流量将预测结果与真实标签进行比较。图11包含八个子图:(a)绘制真实标签; (b)以特征选择的最佳结果绘制支持向量机模型的预测标签; (c)绘制NB分类器的预测标签; (d)绘制1NN分类器的预测结果; (e)绘制决策树的预测标签; (f)绘制MLP; (g)分别绘制标准LSTM和(h)绘制MSLSTM。 MLP,LSTM和MSLSTM的最大epoch设置为100,这意味着所有数据实例在模型上运行100次。如图11(a)所示,垂直绿线的左侧部分是规则流量序列,其中标签值为1.0,右侧部分是异常,其中真实标签为0。根据图11的比较从图中的(b)到(h),我们的MSLSTM模型没有虚假警报和遗漏警报,与其余方法相比,这是一个竞争性的改进。 LSTM模型还实现了比其他模型更低的丢失警报率,这意味着将长期的时间依赖性纳入考虑将提高识别异常流量的能力。 SVM和两个顺序模型在对常规流量进行分类时达到了理想的性能。而MLP,1NN和DT在识别常规流量和异常方面均表现不佳。通过研究二进制分类的实验结果,与传统方法以及堆叠式LSTM网络相比,MSLSTM有了显着改进。

图11  真实标签和测试流量预测的比较

2.5.6 多分类

    我们还将模型扩展到多类分类,并且设计实验以评估MSLSTM的性能。就多类情况而言,总共有五类,包括常规流量和四种不同类型的异常。通过选择每种异常的一部分来平衡类分布,这是由于不同的BGP异常事件中的异常数量不同所致。最后,采用6000个样本(每个类别为1200个)进行多类别分类,并将训练,验证和测试比率分别划分为60%,10%和30%。测试了顺序模型和MSLSTM的accuracy以进行比较。如表8所示,RNN的结果接近LSTM,两者均为单层体系结构。与单层模型相比,MSLSTM和堆叠的LSTM显着提高了准确性,这表明考虑多尺度时间依赖的有效性。随着层数的增加,堆叠LSTM的性能也有所提高,但是更多的隐藏层数意味着更大的参数空间,并且需要更多数据来训练模型,因此在获得3层最优结果后精度会下降。与LSTM-3相比,MSLSTM仅具有两个隐藏层即可实现更好的性能。在图12中,说明了所提出模型产生的混淆矩阵。它清楚地表明MSLSTM可以识别异常类

表8  BGP流量上的多类分类的结果 图12:MSLSTM模型的混淆矩阵产量

2.5.7 不平衡分类

    除了进行平衡数据分类方面的实验以外,还评估了不平衡情况下的分类性能。 两个不平衡数据集(Code Red I和Slammer)的AUC结果以及ROC曲线如图13所示。两个数据集的不平衡比分别为5.8和3.2。 为了进行比较,采用两种传统模型SVM和NB,两种集成方法RF和Ada.Boost以及堆叠LSTM来计算AUC值。 实验结果表明,在不平衡情况下,集成方法的性能优于单个分类器,并且两个顺序模型的性能优于其余方法。 此外,与所有最新方法相比,MSLSTM仍可达到最佳结果。

图13  不平衡分类中不同方法的性能比较

2.5.8 复杂度分析

    本文还讨论了与堆叠LSTM相比,MSLSTM的复杂度测量。 如上所述,在标准LSTM体系结构中有一个输入层,一个递归LSTM层和一个输出层。 输入层完连接到LSTM层,该层具有三个门,单元的输出完连接到输出层。假设LSTM层的隐藏单元数为n_c,则与一层LSTM单元相关的参数数量可以计算为4 * n_c(n_i + n_c),其中n_i是输入的大小(size)(不包括偏差项)。令N为参数总数,则N = 4 * n_c(n_i + n_c)+ n_c * 3 + n_c * n_on_o是输出单位的数量)。在MSLSTM中,第一层的隐藏单元数等于尺度数n_s,其中n_s <n_c。令\hat{N}  = 4 * n_s(n_i + n_s)表示MSLSTM第一层的参数数量。使用随机梯度下降(SGD)优化法计算LSTM模型每个权重和时间步复杂度,其为O(1),这意味着每时间步的学习计算复杂度为O(N),并且网络的总学习时间由隐藏单元的数量以及LSTM层的数量决定。因此,如果隐藏层的数量为M,则堆叠LSTM的总成本为O(MN)(M≥2)。对于我们提出的模型,该体系结构仅包括两层,离散小波变换的时间成本可以在模型训练之前离线进行预处理,因此MSLSTM的成本为O(N + \hat{N} )

表9:使用堆叠的LSTM和MSLSTM架构进行的实验显示了BGP数据集的测试集精度。C表示存储单元的数量。DWT表示离散小波变换的分解等级数。Depth是LSTM网络层的数量。 N是参数总数。Test是测试数据的准确性,Time代表分类过程的经过时间。

    如上所述n_s <n_c,N<\hat{N },M≥2,因此O(N +\hat{ N})<O(MN)。 在表9中,我们比较了在NVIDIA GeForce GTX 1080 GPU上对模型和堆叠LSTM进行分类的测试准确性以及经过的时间。 对于堆叠模型,当隐藏单元数为128,训练时间为3.82分钟,测试时间为0.32秒时,LSTM-2的最佳精度为87%,而MSLSTM达到91.4%,训练时间为2.42分钟,而测试时间为0.22秒。当隐藏单元数为256时,LSTM-3达到91.3%,经过的训练和测试时间分别为15.78分钟和1.24秒。 但是,MSLSTM以较少的参数以8.32分钟和0.89秒的时间成本可获得93.2%的最佳值。 因此,与堆叠式LSTM相比,MSLSTM在获得更好的性能时可以减少时间消耗。

2.5.9 可视化

    为了更好地了解堆叠LSTM模型与我们提出的MSLSTM之间的差异,我们还设计了一个实验以比较堆叠模型和我们的模型的重建结果。通过将输出标签替换为原始序列,并使用平方损失作为目标函数,MSLSTM和堆叠的LSTM对输入的重构可以揭示学习表示的有效性。如图14所示,MSLSTM和堆叠模型可以学习流量数据的全局演变。但是两者相比,MSLSTM捕获所有必要的详细突发性(x = 571和105),堆叠LSTM无法在那些情况下保留突发性位置,而仅重建原始信号的概图。观察结果表明,堆叠的LSTM比我们的模型更容易欠拟合数据,因为它仅从原始信号中生成更高级别的时间概况,并且无法同时考虑多尺度信息。在MSLSTM中,提取的大量信息被充分利用以学习本地特征和全局趋势。

图14  使用堆叠的LSTM和MSLSTM重建原始序列

2.6 相关工作

    异常识别的最新研究工作主要基于基于可视化的工具[22] [23]和机器学习算法[3] [4] [5]。具体来说,许多机器学习方法已被用于构建流量分类模型和检测异常,包括无监督和受监督的方法。 Ahmed等人提出了一种基于递归内核的在线异常检测方法[24],以区分不规则的网络动态。 Dainotti等 [25]确定网络中非平稳流量的异常。朴素贝叶斯(NB)估计器用于在[4] [26]中对交通流进行分类。 Al-Rousan等[5]采用特征选择方法来选择最具描述性的特征来表征BGP活动并发展朴素贝叶斯分类器可识别异常流量。此外,他们还采用支持向量机(SVM)和隐马尔可夫模型(HMM)对BGP异常进行分类[4],并结合特征选择模型通过SVM获得最佳结果。 Nguyen等[27]提出了一类邻居机器学习算法来区分不规则的网络流量。但是,这些模型仅独立地处理输入实例,而没有考虑流量数据的时间属性。在实践中,流量数据可以看作是多元时间序列的流,并且异常模式随时间信息而逐渐变化[1]。

    最近,由于特征学习的影响力,深度学习模型对分类任务的影响越来越大。深度学习中的顺序模型,包括递归神经网络(RNN)和长短期记忆(LSTM)模型,已在许多序列分类方案中实现了理想的性能[8] [28] [29] [30][31]。与传统的RNN在反向传播阶段会遇到梯度消失的问题不同,LSTM [7]可以通过连接的存储单元和三个门,即输入门,忘记门和输出门[ 32]。最近,基于注意力的递归网络已成功应用于各种各样的任务,例如自然语言问答[33] [34],解析[35]和图像标题生成[36]。在序列学习中,注意力首先是由Bahdanau等人提出的。 [10]在神经机器翻译中选择源句子中的参考词。注意机制输出加权的摘要表示,而不是仅考虑最后一步的表示,从而产生更具代表性和表达性的特征[37]。分配给每个学习值的权重是通过相应输入之间的相关重要性的兼容性函数来计算的。

已经提出了LSTM的许多变体来利用序列中的依赖性信息。杨等提出了一种基于注意力的文档分类模型[38]。 Lipton等提出LSTM来识别临床测量的多元时间序列中的模式[39]。程等开发一个集成了时间尺度的单层LSTM模型,以识别异常流量[1],其中时间尺度的值是一个超参数。丁等采用具有一层隐藏层的LSTM模型对BGP异常进行分类[6]。在这些模型中,利用了关于长期和短期依赖性的时间信息,但是它们没有考虑多尺度特征。Malhottra等提出了一个堆叠的LSTM网络来学习高级时间模式,而无需事先了解模式持续时间[8]。程等通过提出基于堆叠LSTM网络的softmax分类器来实现时间序列异常检测[9]。 Chauhan等利用带有LSTM单元的深度递归神经网络架构来开发健康ECG信号的预测模型[40]。但是,在那些作品中,不同尺度的信息是由额外的隐藏层生成的,这些隐藏层重新组合了从先前层学来的表示[41]。此外,堆叠式LSTM架构仅考虑时域上的抽象以获得更高级别的时间信息,而在学习依赖项时不考虑每个不同尺度的影响,并且决定放样模型的深度以生成最佳表示形式是棘手的。同时,确定流量模式时间尺度的困难需要通过平移(平移)和扩张(缩放)过程将低频模式与高频分离的技术[42]小波变换可以从时域和频域的多分辨率方面揭示信息[43]。在先前结合小波变换和序列模型的工作中,所进行的评估产生了改进的性能[42] [44],但是这种组合是初步的,并且小波变换算法仅用于减少序列的长度。此外,在顺序模型训练过程中,每个级别的小波分解结果彼此独立,因此不能将多个分解同时考虑到RNN或LSTM模型中。

2.7 结论

    边界网关协议(BGP)提供了一个基本环境,用于为Internet中的自治系统交换路由信息,并且识别异常BGP流量是在不同域中维持相关服务成功协作的一项重要任务。利用时间信息设计分类模型时,时间尺度很重要。在本文中,我们提出了一种新颖的多尺度LSTM模型(MSLSTM),该模型使用离散小波变换从时间序列中显式生成大量不同尺度的信息。随后,将多个尺度的信息集成到两层分层注意LSTM模型中,其中在第一层中,学习不同时间尺度的注意,以获得多个尺度的重组表示。在第二层中,LSTM单元被设计为利用来自先前层的输入表示之间的时间依赖性。通过基于几个典型的现实世界BGP异常事件评估模型,并与其他基线方法进行比较,我们提出MSLSTM仅使用两层体系结构就可以实现更好的分类准确性以及更低的误报率和更高的AUC结果并减少时间消耗。实验结果验证了MSLSTM对BGP流量中异常行为进行分类的有效性和效率。

上一篇下一篇

猜你喜欢

热点阅读