买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:大连理工大学
摘要:一种基于二进制编码器和多哈希表的网络流量分类方法属于计算机网络和机器学习的交叉领域。本发明首先通过网络流量数据采集模块获取网络流量数据,然后提取网络流统计特征并进行预处理,得到特征数据之后,需要对网络流量构建无监督二进制编码器并得到其二进制编码,接着在哈希索引模块针对网络流量数据创建多个子串的哈希表,即创建哈希索引,最后采用机器学习方法即基于多哈希表的KNN分类模块对得到的哈希编码进行分类。本发明无需反复对分类器进行学习训练,能够提高分类算法的运行速率及可扩展性;利用二进制编码降低流量数据所占用的存储空间和流量分类所消耗的计算资源。本方法更适用于解决当前新应用层出不穷的互联网环境下的流量分类问题。
主权项:1.一种基于二进制编码器和多哈希表的网络流量分类方法,其特征在于,所述的网络流量分类方法不需要通过对有标签的训练集不断进行训练来寻找网络流量特征数据的模式,基于以下五个模块实现:网络流量数据采集模块、网络流量特征预处理模块、二进制编码器模块、哈希索引模块、基于多哈希表的KNN流量分类器模块;首先,通过网络流量数据采集模块获取网络流量数据;其次,通过网络流量特征预处理模块提取网络流统计特征并进行预处理,得到特征数据之后,需要对于网络流量构建无监督二进制编码器并得到其二进制哈希编码;再次,通过哈希索引模块对需要分类的网络流量数据创建多个子串的哈希表,创建相应的哈希索引;最后,通过基于多哈希表的分类查找模块,采用机器学习方法基于多哈希表的KNN分类模块对得到的哈希编码进行分类,最终获得对网络流量的分类结果并对该分类方法性能进行评估;所述的二进制编码器模块,该模块采用无监督RBA哈希编码算法,并对得到的哈希编码进行评估,只有在评估的结果达到高精度时将其应用于二进制编码器模块,对网络流量进行哈希编码;所述的二进制编码器模块中的高精度指基于哈希编码得到的分类结果的正确率可以达到百分之八十以上;所述的基于多哈希表的KNN流量分类器模块,在该模块中,采用多索引哈希实现基于多哈希表的KNN流量分类;所述的网络流量特征预处理模块,该模块中需要提取网络流统计特征包括流持续时间、分组数量、最大分组长度、分组到达时间间隔;1网络流量数据采集模块网络流量数据采集模块主要是对计算机网络数据流的特性和变化情况进行监测和分析,以掌握整个网络的流量特性,网络流量数据采集模块中通过现有的方法和工具来采集网络流量数据以及提取相应的特征;2网络流量特征预处理模块已知网络类型集合C={C1,C2,...,Ck}与网络流集合T={t1,t2,...,tn},其中网络流ti表示一个为由各种统计特征构成的特征向量Ai={Ai1,Ai2,...,Aim},首先,在网络流量特征预处理模块中,对从网络流量数据采集模块采集到的网络流集合T提取网络流统计特征,由于网络流的很多特征是标志性特征,包括协议类型特征、描述连接状态的特征,需要对这些流量特征进行预处理,将其转换成可以输入二进制编码器的模式,并对特征向量进行归一化处理;3二进制编码器模块二进制编码器模型采用的是无监督RBARelaxedBinaryAutoencoder算法来得到网络流量的二进制编码,构建二进制编码器,该算法不需要网络流量特征提供标签,根据数据本身进行训练得到二进制编码模型,对于二进制编码模型只需要单独训练一次,即使有新一类的流量样本加入,也不需要重新训练,将哈希编码方法应用于网络流量分类领域,RBA算法解决了如下的优化函数: ;其中,X∈RD×m对应维度是D维的m个训练样本的集合,X的每一列对应一个样本;W1∈RL×D和c1∈RL×1对应着二进制编码器的权重和偏差,W2∈RL×D和c2∈RL×1对应着二进制解码器的权重和偏差;1是指元素全部为1的列向量;β对应正则项的在模型中的权重;受限制于, ;其中,W1∈RL×D和c1∈RL×1对应着二进制编码器的权重和偏差,W2∈RL×D和c2∈RL×1对应着二进制解码器的权重和偏差;1是指元素全部为1的列向量;RBA算法主要是对数据X先进行编码然后进行解码,得到的内容与原数据X之间的量化误差最小,然后加上正则项来帮助避免过拟合;训练好的二进制编码模型对经过预处理的网络流量数据进行哈希编码,在分别得到待分类样本流量和数据库样本流量经过预处理的流量特征之后,利用保存的权重和流量特征进行简单的矩阵运算,得到测试样本流量和数据库样本流量的二进制编码输出;4哈希索引模块所述的基于多哈希表的KNN流量分类器模块,在该模块中,采用多索引哈希来实现基于 多哈希表的KNN流量分类,在二进制编码器模块中得到了样本流量的二进制编码输出,结合 一种用于哈明空间快速精确查找的算法多索引哈希Multi-IndexHashing,MIH,给定二进 制编码的数据集,进行哈明距离的KNN查找,该算法表现出次线性的查找时 间; 多索引哈希的基本思想如下:首先,把二值码分解成互不重叠的m块,即m个子串,每一块有s位,需要对每一个子串二值码块建立一个哈希表,然后采用分而治之的思想,在每一块中分别找出汉明距离在r’内的二值码,作为候选二值码,最后把所有块的候选二值码组合在一起,剔除最终汉明距离大于r的二值码;对于哈希索引模块,需要对网络流量数据创建哈希索引,创建多个哈希表,创建哈希索引的具体执行步骤如下:建立m个子串的哈希表输入:二进制编码数据集Forj=1→m初始化第j个哈希表Fori=1→n将hi插入到第j个哈希表中EndforEndfor5基于多哈希表的KNN流量分类器模块执行基于机器学习算法的流量分类过程,采用的是KNNK-NearestNeighbor算法,对于一个需要预测的输入向量g,只需要在训练数据集中寻找k个与向量g最近的向量的集合,然后把g的类标签预测为这k个样本中类标签数最多的那一类;在本算法中,对于查询点g的kNN查找是通过逐步地增加每个子串的哈明查找半径,直到指定数量的k个邻居被找到;算法的具体执行步骤如下:查询点g的kNN查找输入:①查询点的子串②初始化集合Nd=φ,for0≤d≤q③初始化整数r’=0,a=0,r=0重复断言:查找的全半径是r=mr’+a在第a+1个子串哈希表的哈希桶中查找和查询点g的第a+1个子串,即ga+1,有r’位不同的成员对于每个找到的成员,计算全哈明距离,并且将距离为d的成员加入到Nd集合中a←a+1Ifa≥mthena←0r’←r’+1endifr←r+1直到满足条件;然后根据查询点g的k个邻居的类别,把q的类标签预测为这k个样本中类标签数最多的那一类即可得到g的类别,以此类推可以得到整个测试样本流量的类别;通过分类器得到整个待分类样本流量的分类结果,将分类器预测的结果与待分类样本流量实际的类标签进行比对得到准确度并且根据结果对上述步骤进行相应调整。
全文数据:一种基于二进制编码器和多哈希表的网络流量分类方法技术领域本发明属于计算机网络和机器学习的交叉领域,涉及一种基于二进制编码器和多哈希表的用于网络流量分类的方法。背景技术近几年,互联网基础建设和内容服务均快速发展,互联网中的网络应用是产生网络流量的根本原因。实现网络流量的正确识别并分析网络流量的特征,是我们深入理解网络状况,用户行为,互联网现状的前提条件。随着移动互联网的迅猛发展,对移动互联网流量的特征分析也显得尤为重要。不仅用户数量激增,同时随着网络承载的数据速率越来越高,网络流量越来越大,在线的商用设备每天都能产生TB级甚至更庞大的流量数据。网络流量已呈现大数据特征,对海量数据的存储和分析已成为网络流量特征分析的重要研究内容。网络流量分类技术,是分析网络流量特征和增强网络可控性的基本手段之一,通过流分类,可以获悉各类网络应用所占比例,研究新的协议与应用,合理规划网络;定期分析重要的特定流量,了解流入流出信息,可以发现设备故障、用户带宽的使用及发现入侵和恶意攻击等。目前,对于网络流量分类技术已经有了一定的研究基础,从早期的基于端口号的分类方法,到基于有效载荷检测的分类方法,即根据网络应用在传输过程中所具有的特征来区分不同的应用,需要解析数据包中的特征字段。目前,基于机器学习的流量分类方法被认为是最合适的,因为它们具有准确度高以及适用于加密流量分析的优势。然而,当机器学习算法真正在现实的流量分类应用场景中实施时,仍然存在一些瓶颈与问题。首先,在互联网尤其是移动互联网中新型应用不断涌现,不同类型的应用流量也随之快速增长。而大多数基于机器学习的流量分类方法都是依赖于对分类器进行训练来实现分类。移动流量的动态演化和混合对于分类器训练而言是一个不断变化的目标,即每次出现新一类流量的时候,就需要重新训练分类器,否则无法得到正确的分类。因此,需要耗费大量时间和资源进行反复训练,才可以得到一个高准确度的分类器。其次,可以使用“懒惰型”的分类算法来避免分类器被反复训练的情况。例如:K近邻算法KNN算法所对应的分类器就是训练数据集本身。在对未知样本进行分类时,只需在训练数据集中找到未知样本的K个近邻,由近邻的类别来确定未知样本的类别。当新应用数据产生时,只需捕获新数据丢入训练集中,而不用反复训练分类器。但KNN算法的弊端在于大规模训练数据集需要占用较大存储空间,并且查找近邻速度极慢。随着不断庞大的海量高维流数据特征出现,该方法只能处于理想的试验阶段。综上,在当前新型应用不断涌现的互联网环境中,实现基于机器学习的网络流量分类,需要一种扩展性强、灵活、稳定且快速的方法来作为支撑。发明内容为了克服上述不足,本发明提出了一种基于二进制编码器和多哈希表的网络流量分类算法,目的在于提高网络流量分类技术的可扩展性和分类速度,降低占用的存储空间和所消耗的计算资源。首先我们借鉴大数据哈希编码思想来构建面向流量数据的二进制编码器。大数据哈希编码思想的提出有效地弥补了KNN算法的弊端,使得在大数据环境下实现快速KNN查找变为可能。本发明首先构建一个二进制编码器将网络流量数据进行哈希编码,由此实现汉明空间内的KNN快速查找,从而使得KNN算法可以用来实现网络流量的分类。其次,为了进一步加速汉明空间内的精确KNN查找过程,构建多哈希表来提高算法的可扩展性,并为并行计算奠定基础。图1显示的是本发明的整体模块设计图。为了达到上述目的,本发明所采用的技术方案如下:一种基于二进制编码器和多哈希表的网络流量分类方法,从图1中可以看出,本发明和其它的基于机器学习的分类方法不同,不需要对有标签的训练集不断的进行训练来寻找网络流量特征数据的模式,该算法是“不需要学习的”,即它是一个“一体式”的分类方法,因此面对网络流量这个不断变化的应用场景,该算法十分适用,即使有新类别的数据不断加入,该算法也能够正确分类。所述的网络流量分类方法基于以下五个模块实现:网络流量数据采集模块、网络流量特征预处理模块、二进制编码器模块、哈希索引模块、基于多哈希表的KNN流量分类器模块。首先,通过网络流量数据采集模块获取网络流量数据;其次,通过网络流量特征预处理模块提取网络流统计特征并进行预处理,得到特征数据之后,需要对于网络流量构建无监督二进制编码器并得到其二进制哈希编码;再次,通过哈希索引模块对需要分类的网络流量数据创建多个子串的哈希表,即创建相应的哈希索引;最后,采用机器学习方法基于多哈希表的KNN流量分类器模块对得到的哈希编码进行分类,最终获得对网络流量的分类结果并对该分类方法性能进行评估。所述的网络流量数据采集模块,该模块中可以通过一些现有的技术采集网络流量数据。所述的网络流量特征预处理模块,该模块中需要提取网络流统计特征如流持续时间、分组数量、最大分组长度、分组到达时间间隔等等并进行预处理。所述的二进制编码器模块,在本发明中,二进制编码器模型采用的是无监督RBARelaxedBinaryAutoencoder哈希编码算法,该算法不需要使用带有标签的网络流量数据,这个大大降低了进行人工类别标注的成本,并对得到的哈希编码进行评估,只有在评估的结果达到较高精度时才会将其应用于二进制编码器模块,对网络流量进行哈希编码;所述的较高精度指基于哈希编码得到的分类结果的正确率可以达到百分之八十以上。所述的哈希索引模块,对网络流量数据创建哈希索引,在本发明中,即创建多个哈希表。所述的基于多哈希表的K近邻KNN流量分类器模块,在该模块中,采用多索引哈希来实现基于多哈希表的KNN流量分类,多索引哈希是一种用于哈明空间快速精确查找的算法,即给定二进制编码的数据集进行哈明距离的KNN查找,即K最近邻分类算法,是机器学习算法之一,该方法的思路是:如果一个样本在特征空间中的k个最相似即特征空间中最邻近的样本中的大多数属于某一个类别,则该样本也属于这个类别,按照该算法,可以前面模块中得到的二进制编码进行分类,最后还要对得到的分类结果进行评估。本方法区别于已有方法的特色在于:1采用二进制编码器将网络流量进行编码,得到网络流量数据所对应的哈希编码。目前分类算法在大数据场景下一般都会消耗大量的存储和计算资源,而哈希编码有两大优点:空间复杂度低和时间复杂度低。通常原始空间中的点一般为几十到几千维,且每一维都是实数值占多位二进制,而哈希码为二进制向量且通常只有几十到几百维,因此其占用空间很小;通常在二进制编码之间的比较只需要少量的机器指令即可完成,极大的减少了需要消耗的计算资源。2本发明采用的分类算法是KNN算法,对于其它机器学习分类算法,每次有新一类数据,都需要重新训练,而通常在一个分类模型中,训练模型是最消耗资源的,因此这些分类算法因其较差的可扩展性则只能用于试验阶段,而面对网络这个日新月异的环境,尤其是移动网络这个应用场景,每天都不断有新的应用上线,相应的就会不断地有不同种类的数据出现,而对于KNN算法,则无需进行反复训练,并采用多索引哈希来加速KNN算法,达到快速精确查找的目的,同时具有优异的扩展性。基于哈希编码可以实现面向汉明空间的KNN查找。因此本方法可以采用KNN分类来避免其他分类算法所面临的重复训练分类器的问题,同时还采用了多哈希表的技术来加速KNN查找,使得方法能应用到实际应用场景中。与当前基于机器学习的网络流量分类方法相比,本发明的有益效果为:1利用二进制编码可大大降低网络流量数据占用的存储空间和网络流量分类所消耗的计算资源;2在新应用流量产生环境下,无需反复训练分类器,同时引入多哈希表,提高了网络流量分类算法的运行速率以及可扩展性。本方法更适用于解决当前新应用层出不穷的互联网环境下的流量分类问题。附图说明图1为本发明的整体模块设计图。图2为本发明的基于二进制编码器和多哈希表的流量分类器在线分类应用图。图3为本发明的构建无监督二进制编码器过程图。具体实施方式下面对本发明的实施方式进行详细说明。一种基于二进制编码器和多哈希表的网络流量分类,参照图2,该方法基于网络流量数据采集模块、网络流量特征预处理模块、二进制编码器模块、哈希索引模块、基于多哈希表的KNN流量分类器模块五个模块实现:具体为:1网络流量数据采集模块网络测量是分析和研究网络行为的重要途径,也是进行网络监控管理和优化设计的重要依据,而网络流量采集则是网络测量中最具代表性的测量形式之一。网络流量采集主要是对计算机网络数据流的特性和变化情况进行监测和分析,以掌握整个网络的流量特性,该模块中可以通过一些现有的方法和工具来采集网络流量数据以及提取相应的特征。2网络流量特征预处理模块已知网络类型集合C={C1,C2,...,Ck}与网络流集合T={t1,t2,...,tn},其中网络流ti可以表示一个为由各种统计特征构成的特征向量Ai={Ai1,Ai2,...,Aim},如图2第一阶段,首先,在该模块中,需要对从数据采集模块采集到的网络流集合T提取网络流统计特征,由于网络流的很多特征是标志性特征,如协议类型特征、描述连接状态的特征等,然后需要对这些流量特征进行预处理,将其转换成可以输入二进制编码器的模式。为了后面数据处理的方便以及保证程序运行时收敛加快,还需要对特征向量进行归一化处理。3二进制编码器模块在本发明中,二进制编码器模型采用的是无监督RBARelaxedBinaryAutoencoder算法来得到网络流量的二进制编码,构建二进制编码器可参考图3,该算法不需要网络流量特征提供标签,即可根据数据本身进行训练得到二进制编码模型,对于本发明二进制编码模型通常只需要单独训练一次,即使有新一类的流量样本加入,也不需要重新训练,本发明是第一次将哈希编码方法应用于网络流量分类领域,RBA算法解决了如下的优化函数:其中,X∈RD×m对应维度是D维的m个训练样本的集合,X的每一列对应一个样本;W1∈RL×D和c1∈RL×1对应着二进制编码器的权重和偏差,W2∈RL×D和c2∈RL×1对应着二进制解码器的权重和偏差;1是指元素全部为1的列向量;β对应正则项的在模型中的权重。受限制于,W1X+c11T∈{-1,1}L×m2其中,W1∈RL×D和c1∈RL×1对应着二进制编码器的权重和偏差,W2∈RL×D和c2∈RL×1对应着二进制解码器的权重和偏差;1是指元素全部为1的列向量。该算法主要是对数据X先进行编码然后进行解码,得到的内容与原数据X之间的量化误差最小,然后加上正则项来帮助避免过拟合。训练好的二进制编码模型即可应用于图2中的第二阶段对经过预处理的网络流量数据进行哈希编码,在分别得到待分类样本流量和数据库样本流量经过预处理的流量特征之后,就可以利用已经保存的二进制编码器对流量特征进行编码,即利用保存的权重和流量特征进行简单的矩阵运算,即可得到测试样本流量和数据库样本流量的二进制编码输出。4哈希索引模块在上一模块中得到了样本流量的二进制编码输出,在这里我们结合一种用于哈明空间快速精确查找的算法——多索引哈希Multi-IndexHashing,MIH,即给定二进制编码的数据集进行哈明距离的KNN查找,该算法表现出次线性的查找时间,并且很节省存储空间,执行起来也很简单。多索引哈希的基本思想如下:首先,把二值码分解成互不重叠的m块,即m个子串,每一块有s位,需要对每一个子串二值码块建立一个哈希表,然后采用分而治之的思想,在每一块中分别找出汉明距离在r’内的二值码,作为候选二值码,最后把所有块的候选二值码组合在一起,剔除最终汉明距离大于r的二值码。对于本模块来说,即图2中的第三阶段,需要对网络流量数据创建哈希索引,在本发明中,即创建多个哈希表。创建哈希索引的具体执行步骤如下:·建立m个子串的哈希表输入:二进制编码数据集forj=1→m初始化第j个哈希表fori=1→n将hij插入到第j个哈希表中endforendfor5基于多哈希表的KNN流量分类器模块在图2的第四阶段需要执行基于机器学习算法的流量分类过程,本发明采用的是KNNK-NearestNeighbor算法,KNN算法在机器学习算法中有一个十分特别的地方,那就是它是一个“不需要学习”的算法,即它没有一个显示的学习过程,因此面对网络流量这个不断变化的应用场景,该算法十分适用,即使有新类别的数据不断加入,该算法也能够正确分类。这里需要特别指出的是,因为分类方法使用的是KNN分类器算法,根据该分类器可扩展性很好的特性,可以利用实时采集的网络流量,来实时更新分类器以达到更好的分类性能。KNN分类算法的分类预测过程十分的简单和容易理解:对于一个需要预测的输入向量g,我们只需要在训练数据集中寻找k个与向量g最近的向量的集合,然后把g的类标签预测为这k个样本中类标签数最多的那一类。在本算法中,对于查询点g的kNN查找是通过逐步地增加每个子串的哈明查找半径,直到指定数量的即k个邻居被找到。算法的具体执行步骤如下:·查询点g的kNN查找输入:①查询点的子串②初始化集合Nd=φ,for0≤d≤q③初始化整数r’=0,a=0,r=0重复断言:查找的全半径是r=mr’+a在第a+1个子串哈希表的哈希桶中查找和查询点g的第a+1个子串,即ga+1,有r’位不同的成员对于每个找到的成员,计算全哈明距离,并且将距离为d的成员加入到Nd集合中直到满足条件例如,k个查找半径小于r的邻居已经被找到然后根据查询点g的k个邻居的类别,把q的类标签预测为这k个样本中类标签数最多的那一类即可得到g的类别,以此类推可以得到整个测试样本流量的类别。通过分类器可以得到整个待分类样本流量的分类结果,我们可以将分类器预测的结果与待分类样本流量实际的类标签进行比对得到准确度并且根据结果对上述步骤进行相应调整。以上本发明所述是基于二进制编码器和多哈希表的网络流量分类方法,但是对于本领域的技术人员来说,在不脱离本发明构思的前提下,可以将二进制编码中得到的二进制编码直接用于网络中的传输,在网关以及路由器当中设计合理的哈希索引,然后直接使用该哈希索引过滤不正常的网络流量,因为在网关和路由器等设备中,它们没有足够的内存以及训练模型的处理能力,那么只进行哈希编码的比对和处理大大降低了对设备的内存以及处理能力的要求。另外,对于本发明来说,还可以针对其他应用场景,来对该算法做出若干变形和改进。
权利要求:1.一种基于二进制编码器和多哈希表的网络流量分类方法,其特征在于,所述的网络流量分类方法不需要通过对有标签的训练集不断进行训练来寻找网络流量特征数据的模式,基于以下五个模块实现:网络流量数据采集模块、网络流量特征预处理模块、二进制编码器模块、哈希索引模块、基于多哈希表的KNN流量分类器模块;首先,通过网络流量数据采集模块获取网络流量数据;其次,通过网络流量特征预处理模块提取网络流统计特征并进行预处理,得到特征数据之后,需要对于网络流量构建无监督二进制编码器并得到其二进制哈希编码;再次,通过哈希索引模块对需要分类的网络流量数据创建多个子串的哈希表,创建相应的哈希索引;最后,通过基于多哈希表的分类查找模块,采用机器学习方法基于多哈希表的KNN分类模块对得到的哈希编码进行分类,最终获得对网络流量的分类结果并对该分类方法性能进行评估;所述的二进制编码器模块,该模块采用无监督RBA哈希编码算法,并对得到的哈希编码进行评估,只有在评估的结果达到高精度时将其应用于二进制编码器模块,对网络流量进行哈希编码;所述的基于多哈希表的KNN流量分类器模块,在该模块中,采用多索引哈希实现基于多哈希表的KNN流量分类。2.根据权利要求1所述的一种基于二进制编码器和多哈希表的网络流量分类方法,其特征在于,所述的二进制编码器模块中的高精度指指基于哈希编码得到的分类结果的正确率可以达到百分之八十以上。3.根据权利要求1或2所述的一种基于二进制编码器和多哈希表的网络流量分类方法,其特征在于,所述的网络流量特征预处理模块,该模块中需要提取网络流统计特征包括流持续时间、分组数量、最大分组长度、分组到达时间间隔。
百度查询: 大连理工大学 一种基于二进制编码器和多哈希表的网络流量分类方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。