李酉戌
摘要:对于网络运行过程中产生的海量日志信息,传统故障诊断方法很难进行实时而全面的日志分析。针对该问题,提出一种基于卷积神经网络(Convolutional Neural Network,CNN)的网络故障诊断模型,利用Skip-gram模型进行词向量训练,并将词向量作为卷积神经网络输入,最终通过Softmax回归进行分类。实验结果表明,该模型可以有效处理网络故障诊断任务,且优于传统机器学习方法,对于网络运行日志的故障诊断准确率可达73.2%以上。
关键词:日志信息;故障诊断;卷积神经网络;词向量
DOIDOI:10.11907/rjdk.172278
中图分类号:TP301
文献标识码:A 文章编号:1672-7800(2017)012-0040-04
Abstract:In order to solve the problem, this paper presents a network fault diagnosis model based on Convolutional Neural Network (CNN), which is difficult to carry out real-time and comprehensive log analysis for the mass log information generated by the network running process. Diagnostic model, the skip-gram model for word vector training, and the word vector as a neural network input, and ultimately through the Softmax regression classification. The experimental results show that the model can effectively deal with the task of network fault diagnosis and is superior to the traditional machine learning method. The fault diagnosis accuracy of the network running log can reach more than 73.2%.
Key Words:log information; fault diagnosis; convolution neural network; word embedding
0 引言
隨着网络信息化的快速发展,计算机网络结构越来越复杂,应用领域也日益广泛,人们对于网络的依赖性越来越高,因此网络的安全性和可靠性变得尤为重要。日志作为获取现代计算机网络运行状况和诊断系统故障的主要方式,利用网络运行过程中产生的日志信息进行故障诊断,已成为网络故障诊断研究热点。由于故障类型与故障特征之间存在某种非线性映射关系,但是故障信息具有不确定性,且随着网络架构规模的增大,运行过程中会产生大量的日志信息,进行故障特征提取很具有挑战性,从而加大了故障诊断难度。因此,如何从海量日志信息中提取故障相关信息,对计算机系统进行实时而全面的故障诊断至关重要。
目前,基于日志信息进行故障诊断的方法有很多,基于规则的故障诊断方法[1]利用规则分析系统,对网络中产生的故障相关信息与规则库中的规则进行比较,从而实现故障诊断。但是当规则达到一定数量时,规则库就很难维护,且规则的获取依赖于专业的系统管理员,较为繁琐;基于模型的分析方法[2]是一种基于知识的推理模型,依赖于系统结构和功能模型,因此必须熟悉计算机网络中各设备之间的关系,但计算机网络日益复杂,建立精确的模型尤为困难;利用朴素贝叶斯模型[3-4]进行日志分析,通过计算相关条件概率,清晰地描述变量之间的相互影响程度,该方法可以有效地处理带有噪声的数据,克服故障信息的不确定性,但从实际环境中很难获得先验知识。近年来,随着数据挖掘和神经网络的发展,基于文本挖掘方法进行日志系统管理较为多见。高学玲[5]利用神经网络对日志信息进行研究,主要针对日志文本的不确定性和噪声干扰;王新苗等[6]基于多层神经网络进行故障类型识别研究,这些方法具有很好的学习能力,可以有效处理不完全故障数据,但其训练需要大量的数据集,且缺少真实网络环境下的评估数据集。
本文提出一种基于卷积神经网络的网络故障诊断模型,收集并整理通信网络运行过程中生成的日志,作为网络故障诊断研究的训练与测试样本集,对其进行预处理和特征提取,再通过卷积神经网络进行训练得到故障诊断模型,从而实现网络故障诊断。
1 相关介绍
1.1 卷积神经网络
卷积神经网络通过模拟生物自然视觉认知机制进行数据分析,是一种常见的深度学习架构,目前在众多科学领域取得了成功应用,特别是在图像处理领域,LeCun等[7]利用卷积神经网络进行手写体数字识别,取得了很好效果。传统的图像处理方法需要经过复杂的前期预处理,卷积神经网络则可以直接输入原始图像,因此得到了更为广泛的应用。近年来,人们开始利用卷积神经网络进行自然语言处理,并取得了显著成果。Collobert等[8]利用卷积神经网络进行自然语言处理;Shen[9]基于卷积神经网络处理语义分析问题;Kalchbrenner等[10]利用卷积神经网络对句子进行建模。本文使用卷积神经网络对日志信息进行挖掘。
卷积神经网络主要包括输入层、卷积层、池化层和全连接层,模型如图 1所示。与传统用于图像处理的模型不同,用于日志处理的卷积神经网络模型的输入层为词向量,卷积层的输入由前一层的局部区域与权重决定,每一层的输出作为下一层神经元的输入,运用多层卷积运算,对每一层的卷积运算结果进行非线性变换。池化层对卷积层的输出进行二次抽样,以减小输出特征的总量并筛选出最具有代表性的特征。数学表达式如下:
1.2 文本词向量描述
Log日志作为一种文本类型,为了更好地被计算机系统理解,需要先将文字和字符向量化。首先需要对文本进行简单预处理,去除样本中的空白行、句子首末多余的空格符、不必要的标点符号和数字,然后扫描样本中出现的所有单词,形成词典,在此基础上对文本进行向量描述。
基于one-hot模型[11]的稀疏表示作为经典文本表示方法,可以快速生成词向量,完成自然语言处理任务,但该方法将词汇作为离散的单一符号,其编码毫无规律,很难得到词语之间的关联信息,且维度过高,往往造成数据稀疏问题。因此,Paccanaro和Hinton[12]提出了基于词向量的文本表示方法,将词分布式地映射到低维空间,有效地解决了数据稀疏问题。
词向量主要通过语言模型训练得到,Mikolov等[13]提出的Skip-gram模型以当前词的词向量作为模型输入,以周围词的词向量作为输出,即当前词预测周围词,可以对文本进行高效训练。模型如图 2所示。
2 基于卷积神经网络的网络故障诊断模型
Log作为一种文本类型,其处理方法类似于自然语言文本,Log数据的每一条记录都可以看作是一个句子,且故障记录本身是一个前后关联的逻辑序列。首先对带有标签的数据进行简单预处理,提取特征和构造词向量,然后搭建网络模型、配置模型参数和进行网络训练,当达到要求后保存网络参数并输出训练后的模型,當有新的待诊断样本数据到达时,将数据输入训练好的网络故障诊断模型中,输出诊断后的结果。
2.1 实验数据
实验数据为收集的LTE通信过程中产生的运行记录,包括正常运行记录和带有故障标签的运行记录。根据所给的数据说明可知,故障标签在某个地方出现5次表示一次故障事件,因此对于带有故障标签的运行记录,从整个Log日志中截取足够长的一段日志记录,其中一定包含错误信息。故本文以故障标签为关键字提取前后500行数据共1 000行数据分割整个Log记录,作为训练中的故障样本。对于正常的运行记录则随机提取1 000行数据作为训练中的正常样本。
2.2 数据预处理
在输入到卷积神经网络之前,需要对原始的Log数据进行预处理,提取特征构建向量后才能进行网络模型训练。具体步骤如下:①进行简单预处理。去除样本中的空白行和句子首末多余的空格符,清除不必要的标点符号和数字;②构建词典。首先对处理后的样本进行分词,然后扫描样本中出现的所有单词,形成词典;③词向量转换和特征提取。使用Word2vec方法将词典中的每一个单词转换为向量形式,这相当于一个特征提取过程。在实际模型训练过程中,Word Embedding层的训练与卷积神经网络训练一起进行,不需要人工参与,是一个特征自提取过程。
2.3 卷积神经网络
卷积神经网络模型是一种典型的前馈神经网络,本文进行网络故障诊断的卷积神经网络模型主要包括4层,分别为输入层、卷积层、池化层和全连接层。输入层为经过预处理后得到的词向量;卷积层由多个卷积核构成,经过卷积运算进行局部特征图的提取;池化层可以对每张局部特征图进行特征的二次提取;最后全连接层部分完成故障类别的映射,输出最终诊断结果。
(1)输入层。对于文本的处理需要先将文字或字符数学化,使得其能够被计算机系统理解,故输入层为经过Skip-gram模型训练得到的词向量。假设构造的故障样本中包含m个词,ai∈Rk是该样本中的第i个词所对应的词向量,卷积神经网络的输入层为由m个k维向量组合而成的m×k的二维数据矩阵。对于日志样本长度小于m的,需要对向量进行补零处理。
(3)池化层。池化层主要对卷积层输出的局部特征图进行最大池化(Max-pooling)操作,将卷积层抽取的若干个特征值仅选取最大的 (即最强特征)值作为池化层的特征值,即提取局部特征图中对网络故障诊断结果影响最大的因素。此外,这一步也起到参数约减效果,进一步减少了最终分类时所依赖的参数数量,使得模型的适应性更强。
(4)全连接层。在卷积层中得到300张特征图,在经过池化层的最大池化操作后,最终提取出了对故障诊断影响最大的300个局部最优特征,再通过全连接层映射到类别维度的大小,并通过Softmax归一化得到每个类别的概率,从而能够综合考虑提取出的所有局部特征,完成网络日志的故障诊断任务。
3 实验与性能指标
实验平台与工具如表1所示。网络故障诊断模型训练采用Mini-batch梯度下降法,每次权值更新只需部分样本参与,可以在保证训练效果的同时加快训练速度。为了防止出现过拟合问题,在实验中采用L2正则化约束网络参数,即在目标函数后加入一个正则项,以降低模型复杂度,并在全连接层引入Dropout策略[14],在迭代过程中随机放弃一部分训练好的参数。
在构造样本集时,以每个故障发生时间点前后一定数量的记录作为故障样本,非故障时间的记录分割为若干正常样本,正常样本的记录数与故障样本相同。首先对数据集进行预处理,提取特征和构造词向量,之后搭建网络模型、配置模型参数并进行网络训练,达到要求后保存网络参数并输出训练后的模型。当有新的待诊断样本数据到达时,将数据输入训练好的网络模型中,得到故障诊断结果为故障或正常。
3.1 故障诊断性能评估指标
本文实验对于故障诊断模型进行对比评估时,主要以诊断正确率作为性能度量指标,将诊断正确的样本占样本总数的比例称为“准确率”,具体计算方式如下:
准确率=1-测试集中诊断错误的样本测试集中样本总数
3.2 实验结果分析
为了对本文提出的模型进行更好的评价,开展了4种模型实验,分别为基于朴素贝叶斯、逻辑回归、多层感知机和卷积神经网络的方法,训练样本为700个,测试样本为300个,通过不断调整参数训练网络模型,直至在测试集上得到实验结果较好的模型。实验结果如表2所示。
实验结果表明,在同样训练集和测试集的情况下,采用基于卷积神经网络的网络故障诊断方法能取得比传统基于朴素贝叶斯、逻辑回归和多层感知机方法更好的效果。与传统网络故障诊断方法相比,基于卷积神经网络的方法更简单,无需人为地提取文本中的特征,且网络模型配置简单,同时减少了训练数据量和模型训练时间,降低了匹配计算的复杂度。在CPU和内存配置相同情况下,卷积神经网络等深度学习模型还可以借助GPU加以训练,大大缩短了模型训练时间。
4 结语
本文以网络运行过程中产生的日志信息作为网络故障诊断研究的评估和测试集,设计并实现了基于卷积神经网络的网络故障诊断模型,针对故障标签数据的稀有性问题,卷积神经网络可以有效地实现网络故障诊断这一任务,准确率达到73.2%,优于传统的朴素贝叶斯、逻辑回归等模型,说明网络故障诊断可以依赖于对网络运行日志的挖掘。
虽然基于卷积神经网络的模型可以较为准确地诊断网络故障,但是收集到的样本存在不平衡问题,正常样本远远多于故障样本,且存在过拟合问题。在未来研究工作中,可从如下方面加以改进:针对过拟合问题,可以增加训练样本、降低模型复杂度等;针对不平衡样本集问题,可以通过重采样等方法提高故障诊断正确率。
参考文献:
[1] XU W,HUANG L,FOX A,et al.Detecting large-scale system problems by mining console logs[C].ACM Sigops,Symposium on Operating Systems Principles.ACM,2009:117-132.
[2] VAARANDI R.A data clustering algorithm for mining patterns from event logs[C].Ip Operations & Management.IEEE,2003:119-126.
[3] HAN X,SHI Z,NIU W,et al.Similarity-based bayesian learning from semi-structured log files for fault diagnosis of web services[C].Ieee/wic/acm International Conference on Web Intelligence and Intelligent Agent Technology.IEEE,2010:589-596.
[4] VERRON SYLVAIN T T,ABDESSAMAD K.Fault detection with bayesian network[J].IN-TECH,2008.
[5] 高学玲.网络健康评估与故障预测的研究与实现[D].西安:西北大学,2013.
[6] 王新苗,晏蒲柳,黄天锡.基于改进遗传神经网络模型的通信网络故障识别和告警相关性分析方法[J].电子与信息学报,2000,22(5):811-816.
[7] LECUN Y,HAFFNER P,BENGIO Y.Gradient-based learning for object detection,segmentation and recognition[Z].CiteSeerX,1999.
[8] COLLOBERT R,WESTON J,KARLEN M,et al.Natural language processing (almost) from scratch[J].Journal of Machine Learning Research,2011,12(1):2493-2537.
[9] SHEN Y,HE X,GAO J,et al.Learning semantic representations using convolutional neural networks for web search[J].Proc Www,2014:373-374.
[10] KALCHBRENNER N,GREFENSTETTE E,BLUNSOM P.A convolutional neural network for modelling sentences[Z].Eprint Arxiv,2014.
[11] TURIAN J,RATINOV L,BENGIO Y.Word representations: a simple and general method for semi-supervised learning[C].Proceedings of the Meeting of the Association for Computational Linguistics,2010:384-394.
[12] PACCANARO A,HINTON G E.Learning distributed representations of concepts using linear relational embedding[J].IEEE Transactions on Knowledge & Data Engineering,2001,13(2):232-244.
[13] MIKOLOV T,SUTSKEVER I,CHEN K,et al.Distributed representations of words and phrases and their compositionality[J].Advances in Neural Information Processing Systems,2013,26:3111-3119.
[14] HINTON G E,SRIVASTAVA N,KRIZHEVSKY A,et al.Improving neural networks by preventing co-adaptation of feature detectors[J].Computer Science,2012,3(4):212-223.
(責任编辑:孙 娟)