郭方方,呂宏武,任威霖,王瑞妮
(哈爾濱工程大學計算機科學與技術(shù)學院,黑龍江 哈爾濱 150001)
網(wǎng)絡(luò)空間安全已成為互聯(lián)網(wǎng)發(fā)展的核心挑戰(zhàn),從系統(tǒng)漏洞、隱私泄露到網(wǎng)絡(luò)詐騙,各種安全威脅日益增多,網(wǎng)絡(luò)安全分析中所需要收集和統(tǒng)計的網(wǎng)絡(luò)安全數(shù)據(jù)量正在以指數(shù)級增長,所以優(yōu)化分析處理網(wǎng)絡(luò)安全數(shù)據(jù)的效率對于提高網(wǎng)絡(luò)安全與服務(wù)質(zhì)量有著非常重大的意義。然而,網(wǎng)絡(luò)安全數(shù)據(jù)的高維數(shù)據(jù)空間具備本征稀疏性,使多元密度估計問題更加復(fù)雜,難以直接對其進行求解。這一問題于1957 年在Bellman 的著作序言中被提出,稱作“維度災(zāi)難”。該問題導(dǎo)致在分析原始的高維網(wǎng)絡(luò)安全數(shù)據(jù)時,會產(chǎn)生巨大的計算量,嚴重影響研究效率。為了更好地理解和處理這些高維復(fù)雜的網(wǎng)絡(luò)安全數(shù)據(jù),人們開始關(guān)注如何有效地降低數(shù)據(jù)的維度從而提高數(shù)據(jù)分析模型的性能。數(shù)據(jù)降維技術(shù)通過分析網(wǎng)絡(luò)安全數(shù)據(jù)不同維度之間的內(nèi)在聯(lián)系,在高維空間中發(fā)掘出其隱藏的低維映射,且能夠在一定程度上等效替代原有的高維結(jié)構(gòu),從而降低網(wǎng)絡(luò)安全分析的時間復(fù)雜度[1]。為了提高網(wǎng)絡(luò)安全分析能力,十分有必要對網(wǎng)絡(luò)安全數(shù)據(jù)進行降維處理[2]。
近年來,流形學習方法的研究方興未艾,國內(nèi)外不斷涌現(xiàn)出新的研究成果[3]。流形學習方法在特征空間內(nèi)建立的映射能夠?qū)?shù)據(jù)從高維度投影至低維度,有效去除了冗余信息,讓人們能夠更加直觀、清晰地理解數(shù)據(jù)的含義。在網(wǎng)絡(luò)安全分析領(lǐng)域,使用流形學習方法能夠有效降低網(wǎng)絡(luò)數(shù)據(jù)特征雜亂、冗余信息過多對模型帶來的負面影響,使模型的性能得以突破[4]。傳統(tǒng)流形學習方法為了保留數(shù)據(jù)的幾何信息,便于觀察,大多采用無監(jiān)督的方式。這雖然增強了數(shù)據(jù)的可視性,但沒有考慮原始數(shù)據(jù)的類別信息,會使降維后數(shù)據(jù)的聚類效果偏低,分類不明顯,流量分析準確率變低,潛藏網(wǎng)絡(luò)安全漏洞。近年來,隨著網(wǎng)絡(luò)面臨的安全威脅日益增加,越來越多的學者開始將目光轉(zhuǎn)向聚類效果更強的有監(jiān)督流形學習方法。網(wǎng)絡(luò)安全數(shù)據(jù)的有監(jiān)督學習方法具備一定的理論基礎(chǔ),目前國內(nèi)外的網(wǎng)絡(luò)安全數(shù)據(jù)分析技術(shù)已較成熟,如美國麻省理工學院林肯實驗室的DARPA 98、DARPA 99、DARPA 2000 數(shù)據(jù)分析項目,加利福尼亞大學網(wǎng)絡(luò)安全實驗室[5]、斯坦福大學計算機安全實驗室[6]等團隊提出的較全面的網(wǎng)絡(luò)安全數(shù)據(jù)集和網(wǎng)絡(luò)安全數(shù)據(jù)分析方法,對于網(wǎng)絡(luò)數(shù)據(jù)的絕大部分安全特征均有所研究。因此,即使對于未知的網(wǎng)絡(luò)安全數(shù)據(jù),也能夠通過對現(xiàn)有數(shù)據(jù)特征的掌握和一定的數(shù)據(jù)分析技術(shù)手段,初步獲取必要的類別信息,從而實現(xiàn)有監(jiān)督學習。因此,本文針對網(wǎng)絡(luò)安全數(shù)據(jù)分析中尚存的問題,提出了一種有監(jiān)督判別投影(SDP,supervised discriminant projection)降維算法,在局部保留投影(LPP,locality preserving projection)等傳統(tǒng)方法的基礎(chǔ)上,根據(jù)高維數(shù)據(jù)的歐氏距離建立有監(jiān)督判別矩陣,并根據(jù)矩陣對局部近鄰圖賦值,建立有監(jiān)督全局散度矩陣和局部散度矩陣來尋找最佳投影子空間,挖掘高維數(shù)據(jù)的幾何結(jié)構(gòu)信息來對數(shù)據(jù)進行降維。實驗結(jié)果表明,與原有算法相比,經(jīng)該算法降維后的數(shù)據(jù)聚類程度和算法效率均有所提高。
近年來,數(shù)據(jù)降維技術(shù)的研究已取得很大進展。這些研究主要分為線性降維方法和非線性降維方法,其主要區(qū)別在于分別適用于不同結(jié)構(gòu)類型的數(shù)據(jù)。本節(jié)將對二者分別說明,并詳細介紹非線性降維方法中的流形學習方法。
在數(shù)據(jù)降維技術(shù)發(fā)展早期,主流的研究方向是全局線性數(shù)據(jù)的降維方法,如主成分分析(PCA,principal component analysis)、線性判別分析(LDA,linear discriminant analysis)以及多維尺度分析(MDS,multiple dimensional scaling)等。文獻[7]提出了基于PCA 的分布式并行數(shù)據(jù)降維算法。作為最具代表性的線性算法之一,PCA 算法不需要先驗知識,而是尋找一個高維特征空間和低維特征空間之間的特殊映射,因此在降維后保持了原始數(shù)據(jù)的樣本模式。文獻[8]使用LDA 方法,通過尋找一個同時擁有最小局部散度和最大全局散度的降維投影來實現(xiàn)數(shù)據(jù)降維。這些算法都通過線性轉(zhuǎn)換矩陣建立了高維數(shù)據(jù)和低維數(shù)據(jù)之間的聯(lián)系。文獻[9]提出了一種MDS 方法,將PCA 與局部保留投影相結(jié)合,不再同等處理所有的數(shù)據(jù)點,而是保留了關(guān)鍵數(shù)據(jù)點的局部鄰域結(jié)構(gòu)和全局方差。這一類方法雖然并沒有使用線性轉(zhuǎn)換矩陣,但其本質(zhì)仍是線性的,也均廣泛應(yīng)用在諸多領(lǐng)域。
線性降維方法固然有其局限性,但在線性結(jié)構(gòu)的數(shù)據(jù)集上,依然能夠獲得不錯的效果。然而,近年來互聯(lián)網(wǎng)的發(fā)展使數(shù)據(jù)規(guī)模呈指數(shù)級增加,復(fù)雜度也日漸提高,很多數(shù)據(jù)并不符合線性的分布規(guī)律,對于這些數(shù)據(jù),線性降維方法的實際效果十分有限。為了彌補這方面的不足,研究者將目光轉(zhuǎn)向了非線性降維方法,其中具有代表性的一類是基于循環(huán)迭代求解的方法。這類方法大多借助了人工神經(jīng)網(wǎng)絡(luò)(ANN,artificial neural network)的思想,如典型的自組織映射(SOM,self-organizing map)方法。SOM 具有理想的拓撲保存特性,保留了輸入空間神經(jīng)元間的距離,被廣泛應(yīng)用于多元數(shù)據(jù)的投影、密度近似等問題的研究中。文獻[10]利用現(xiàn)代計算機硬件優(yōu)勢引入了高分辨率SOM 的概念,并證明了其作為集成學習模型的預(yù)處理器,在網(wǎng)絡(luò)垃圾郵件、網(wǎng)絡(luò)入侵和惡意軟件檢測等領(lǐng)域的適用性。另一種典型的循環(huán)迭代降維方法是主曲線(PC,principal curve)方法,文獻[11]對主曲線方法的理論基礎(chǔ)以及發(fā)展脈絡(luò)進行了詳細的介紹?;谘h(huán)迭代的方法能夠在一定程度上彌補線性降維方法的不足,但仍存在一些問題:1) 在迭代求解過程中容易陷入局部最優(yōu)解;2) 迭代會造成誤差積累;3)在處理大型樣本集時計算代價過于高昂。
另一類常見的非線性降維方法是基于特征值或廣義特征值的方法,其計算方式與基于循環(huán)迭代的方法完全不同,主要包括核變換方法和流形學習方法。核變換方法構(gòu)建一個核空間,通過在空間中尋找源數(shù)據(jù)的一個線性可分的投影來實現(xiàn)非線性數(shù)據(jù)的降維。文獻[12]提出了一種分布式環(huán)境下進行核主成分分析(KPCA,kernel PCA)的高效通信算法,結(jié)合子空間嵌入和自適應(yīng)采樣技術(shù),能夠根據(jù)任意配置的分布式數(shù)據(jù)集計算出一組全局核主成分,并保證其相對誤差與特征空間維數(shù)和數(shù)據(jù)點數(shù)目無關(guān)。文獻[13]提出了一種基于自適應(yīng)局部核Fisher 判別分析(KFDA,kernel Fisher discriminant analysis)的欺騙干擾識別方法,能夠應(yīng)用核技巧來減少非線性維數(shù)狀態(tài),當信噪比大于4 dB 時,該方法在距離門拖引(RGPO,range gate pull off)欺騙干擾算法下的識別精度大于90%。然而這類算法也有不足之處,核函數(shù)的引入使這類方法的計算通常較復(fù)雜,可能升高數(shù)據(jù)的維度;另外,方法的參數(shù)調(diào)優(yōu)沒有統(tǒng)一的標準,依賴專家的先驗知識,普適性較差。
流形學習方法由于能夠探索低維流形的內(nèi)在結(jié)構(gòu),并根據(jù)拓撲學等原理分析其本征維度,因此常被用于處理在高維空間中內(nèi)嵌的非線性低維流形數(shù)據(jù)。不過流形降維技術(shù)對于高維幾何數(shù)學原理具有天然的高依賴性,這導(dǎo)致其模型建構(gòu)通常十分復(fù)雜,使用成本較高。為解決這一困境,Tenenbaum和Roweis 對流形學習方法進行了長久深入的研究,最終提出了兩大經(jīng)典流形學習算法:局部線性嵌入(LLE,locally linear embedding)[14]和等度規(guī)映射(ISOMAP,isomatric mapping)[15]。之后,出現(xiàn)了越來越多的流形學習算法。文獻[16]在拉普拉斯特征映射(LE,Laplacian eigenmap)和John-Lindenstrauss 引理的基礎(chǔ)上,提出了一種稀疏低秩近似等距線性嵌入方法,用于對高光譜圖像進行降維和特征提取。文獻[17]提出了一種基于局部切空間排列(LTSA,local tangent space alignment)的微陣列數(shù)據(jù)降維方法,證明了流形學習方法在醫(yī)療領(lǐng)域微陣列數(shù)據(jù)分析上的有效性。文獻[18]提出了一個統(tǒng)一的圖像復(fù)原?流形近似變換框架,在訓(xùn)練過程中流形學習方法會導(dǎo)致沿著低維數(shù)據(jù)流形的域變換稀疏的表示,極大地提升了抗噪性并減少了處理痕跡。為解決最大差異展開(MVU,maximum variance unfolding)和最小體積嵌入(MVE,minimum volume embedding)等理論模型產(chǎn)生的流形結(jié)構(gòu)質(zhì)量無法保證的問題,文獻[19]提出了一種歐氏距離矩陣的凸優(yōu)化模型,并證明了當均勻樣本大小的排序使低秩矩陣的自由度達到對數(shù)因子時,該模型能夠產(chǎn)生高精度的矩陣估計值。與線性降維方法相比,這些方法通過保留輸入數(shù)據(jù)的局部結(jié)構(gòu)來提供更強大的非線性降維性能,為探索非線性分布數(shù)據(jù)的內(nèi)在拓撲結(jié)構(gòu)提供了更優(yōu)的路徑。
原始的流形學習方法絕大多數(shù)都是無監(jiān)督學習過程,這導(dǎo)致降維后數(shù)據(jù)的聚類程度偏低,不利于后續(xù)的數(shù)據(jù)處理。而有監(jiān)督學習則從已知的類別信息出發(fā),更注重降維后數(shù)據(jù)的分類效果。因此,近年來監(jiān)督和半監(jiān)督流形學習方法受到了越來越多的重視,也出現(xiàn)了一些新的方法,其中具有代表性的是對LPP 方法進行監(jiān)督學習的改進算法——局部判別投影(LDP,locality discriminant projection)算法[20]。文獻[21]提出了有監(jiān)督流形學習分類器,對于滿足條件的有監(jiān)督嵌入數(shù)據(jù),其分類誤差隨著訓(xùn)練樣本集的擴大而呈指數(shù)級衰減,證明了以保持數(shù)據(jù)低維幾何結(jié)構(gòu)為目標的有監(jiān)督非線性嵌入數(shù)據(jù)的可分性。文獻[22]提出了基于圖嵌入概率半監(jiān)督判別分析維數(shù)化簡的早期故障辨識方法,在利用局部幾何結(jié)構(gòu)搜索分類的最優(yōu)映射子空間的同時,半監(jiān)督的訓(xùn)練方式還能使其充分利用原始數(shù)據(jù)的類別信息作為參考,因此即使在規(guī)模較小、數(shù)據(jù)量不充分的情況下依然能夠發(fā)揮一定的作用。上述成果都對流形學習方法的有監(jiān)督改良起到了重要的推進作用,但從領(lǐng)域整體發(fā)展進程來看,對于有監(jiān)督流形學習方法的研究仍處于起步階段,依然存在聚類效果不足、效率過低的缺陷。而在網(wǎng)絡(luò)安全數(shù)據(jù)分析領(lǐng)域,由于數(shù)據(jù)集規(guī)模大、維度高、樣本稀疏的特點,尤其看重降維后數(shù)據(jù)的聚類效果,因此目前的算法無法較好地滿足需求。為解決上述問題,本文對有監(jiān)督流形學習降維算法進行了更深入的研究,將有監(jiān)督學習和判別投影算法相結(jié)合,提出了一種有監(jiān)督的判別投影降維算法。
為解決上述問題,使流形學習降維方法更加貼合網(wǎng)絡(luò)安全數(shù)據(jù)處理需求,本節(jié)基于原始數(shù)據(jù)類別信息,對無監(jiān)督判別投影方法進行改造,提出了一種適用于網(wǎng)絡(luò)安全數(shù)據(jù)的有監(jiān)督判別投影降維算法(簡稱為SDP 算法)。
大部分經(jīng)典的流形學習方法,如LE、LDP 等,在建立近鄰圖時權(quán)值只能設(shè)置為0/1 或熱核函數(shù)值,但是這些權(quán)值并不能較好地體現(xiàn)數(shù)據(jù)的分類信息。SDP 算法在建立近鄰圖時,結(jié)合原始數(shù)據(jù)的類別信息建立有監(jiān)督判別矩陣,能夠更好地體現(xiàn)樣本數(shù)據(jù)的類別特征。
有監(jiān)督判別矩陣方法的具體分析過程如下。
給定m個訓(xùn)練樣本x1,x2,x3,…,xm,首先根據(jù)數(shù)據(jù)集上高維空間數(shù)據(jù)的樣本點的局部近鄰關(guān)系,建立近鄰矩陣H,如式(1)所示。
其中,i∈Ns(j)且j∈Ns(i)代表樣本xi是樣本xj的近鄰且樣本xj是樣本xi的近鄰。
對于近鄰矩陣H的任意元素hi,j,當hij=0 時,說明xi與xj為近鄰關(guān)系;當hi,j=1 時,說明xi與xj為非近鄰關(guān)系。由于任意元素為0 或1 時,對于數(shù)據(jù)分類而言沒有判別性,因而利用數(shù)據(jù)集的類別標簽信息,并結(jié)合近鄰矩陣H的近鄰關(guān)系,變流形無監(jiān)督學習為有監(jiān)督,并構(gòu)造有監(jiān)督判別矩陣S,如式(2)所示。
其中,‖xi?xj‖ 是兩點之間的歐氏距離,p是一個可以調(diào)節(jié)的常數(shù)。
SDP 算法能夠有效消除原始數(shù)據(jù)產(chǎn)生的冗余干擾,縮減網(wǎng)絡(luò)安全數(shù)據(jù)的規(guī)模,使降維投影后同類的數(shù)據(jù)距離更近,表現(xiàn)出明顯的集簇效果;異類的簇之間彼此遠離,界限較清晰。這一現(xiàn)象能夠顯著降低后續(xù)數(shù)據(jù)處理工作的難度。具體降維方法如下。
1) 根據(jù)近鄰點數(shù)量K建立局部近鄰圖,利用有監(jiān)督判別矩陣對局部近鄰圖的邊進行賦值從而建立近鄰圖,再根據(jù)近鄰圖構(gòu)建局部散度矩陣SL,如式(3)所示。
其中,L為拉普拉斯矩陣,L=D?H,矩陣D如式(4)所示。
2) 構(gòu)建全局散度矩陣SN,如式(5)所示。
3) 為了尋找一個變換矩陣A=[a1,a2,…,ar],使經(jīng)過判別向量a轉(zhuǎn)化后的低維投影子空間能夠同時具有最大全局散度矩陣SN和最小局部散度矩陣SL,建立一個關(guān)于A的函數(shù)模型J(A),如式(6)所示。
在建立函數(shù)模型J(A)的基礎(chǔ)上,增加正交化約束,求解正交基向量a1,a2,…,ar,并構(gòu)建約束目標函數(shù)模型。
4) 計算正交基函數(shù)。正交基為A=[a1,a2,…,ar],令A(yù)r?1=[a1,a2,…,ar?1],根據(jù)廣義特征方程XLXTa=λXLXTa,通過求解使式(7)取得最小值的向量a1,計算得到正交矩陣A的一個特征向量為
5) 求解在約束條件下使式(8)取得最小值的向量am,得到第m個特征值對應(yīng)的特征向量為
其中,I為單位矩陣。
通過求解以上方程獲得正交基向量a1,a2,…,am。
6) 在線性投影矩陣滿足正交化的約束下,構(gòu)建約束目標函數(shù)模型為
根據(jù)以上步驟構(gòu)建約束目標函數(shù)模型J(A),利用特征分解獲得約束目標函數(shù)的解,并輸出高維數(shù)據(jù)在低維空間的投影。
以上模型的構(gòu)建方式與傳統(tǒng)流形算法LPP 以及UDP 對于降維過程中鄰接矩陣權(quán)值的處理方式不同,但其模型數(shù)學原理基本一致,在實際計算過程中通常使用拉格朗日乘數(shù)法構(gòu)建輔助函數(shù)以加快計算速度,因此計算復(fù)雜度上,SDP 算法與經(jīng)典流形學習算法并沒有明顯差異。
在3.2 節(jié)提出的有監(jiān)督判別投影算法中,首先根據(jù)輸入樣本點的近鄰關(guān)系,在考慮類別信息的基礎(chǔ)上構(gòu)建有監(jiān)督判別矩陣,增加條件正交化約束,并尋找一個同時具有最大全局散度矩陣和最小局部散度矩陣的低維投影子空間,經(jīng)過有監(jiān)督判別降維后,數(shù)據(jù)的特征維度得到縮減,且異類數(shù)據(jù)之間的界限明顯清晰。SDP 算法的實現(xiàn)過程如算法1 所示。
算法1SDP 算法
輸入高維數(shù)據(jù)x=[x1,x2,…,xm]∈RD×n,類別信息C=[C1,C2,…,Cn]
輸出線性變換A∈RD×d和低維投影Y=ATX∈RD×d
步驟1建立近鄰圖。
步驟1.1根據(jù)近鄰點數(shù)量k,建立局部近鄰圖。
步驟1.2結(jié)合局部近鄰圖的近鄰關(guān)系,利用有監(jiān)督判別矩陣S計算xi與xj間的權(quán)值,并使用權(quán)值對近鄰圖的邊進行賦值。
步驟2特征分解。
步驟2.1根據(jù)近鄰圖,計算局部散度矩陣SL。
步驟2.2根據(jù)近鄰圖,求得全局散度矩陣SN。
步驟2.3根據(jù)所計算的局部散度矩陣和全局散度矩陣,增加正交化約束,構(gòu)建約束目標函數(shù)模型。
步驟2.4利用特征分解求得約束目標函數(shù)的解。
步驟3低維投影。輸出高維數(shù)據(jù)在低維空間的投影Yt=ATXt,其中,下角標t 表示低維空間。
降維算法的性能優(yōu)劣主要體現(xiàn)在其降維的效果和運行算法所消耗的時間方面。研究者普遍認為,在有效降低數(shù)據(jù)維度的前提下,如果經(jīng)過某種降維方法處理后的數(shù)據(jù)能夠保留更多的原有信息,并且產(chǎn)生更明顯的聚類效果,那么就可以說這種降維方法的效果是更優(yōu)秀的。而時間復(fù)雜度同樣是十分重要的評估標準,消耗時間過多的方法不適用于現(xiàn)實的網(wǎng)絡(luò)安全實踐。因此,本節(jié)將圍繞這2 個評價指標,對SDP 算法和其他經(jīng)典的數(shù)據(jù)降維算法進行對比實驗,以評估SDP 算法的有效性。
本文中的實驗依托于Hadoop 云環(huán)境,環(huán)境結(jié)構(gòu)如圖1 所示。
圖1 實驗環(huán)境結(jié)構(gòu)
實驗采用NSL KDD 異常入侵檢測數(shù)據(jù)集[23],該數(shù)據(jù)集于2009 年由新布倫瑞克大學提出。與其前身KDD Cup 99 數(shù)據(jù)集相比,該數(shù)據(jù)集無冗余,無重復(fù)記錄,復(fù)雜度更低。NSL KDD 是關(guān)于網(wǎng)絡(luò)事件的公共數(shù)據(jù)集,包含一組完整的被標記入侵事件,其實例和特征數(shù)量非常龐大,提供了事件分布和特性之間的依賴關(guān)系,這些特點使它更適合作為網(wǎng)絡(luò)安全分析研究的基準。NSL KDD 的訓(xùn)練集包含21 種不同的網(wǎng)絡(luò)攻擊類型,而測試集在此基礎(chǔ)上額外添加了17 種新的攻擊類型。這些攻擊大體上可以分為4 類:拒絕服務(wù)器(DoS,denial of service)、PROBE、R2L(remote-to-login)以及U2R(user-to-root),而非攻擊類型的正常數(shù)據(jù)被標記為Normal。實驗數(shù)據(jù)集類別分布如表2 所示。
為了對于SDP 算法的性能進行充分測試,本文選擇了降維算法PCA、LE、LDP 作為對照組。其中PCA 和LDP 分別為線性降維算法和有監(jiān)督流形學習算法中最具代表性的算法之一;LE 的最終目的是使高維空間中鄰近的點在低維嵌入中依然鄰近,這一思想與SDP 算法較相近,因此作為無監(jiān)督流形學習算法的代表。實驗將從降維效果、時間消耗和綜合性能3 個方面來分析SDP 算法的性能。
表1 實驗數(shù)據(jù)集類別分布
1) 降維效果分析
分別使用PCA、LE、LDP 和SDP 算法對NSL KDD 數(shù)據(jù)集進行降維,降維后的數(shù)據(jù)可視化投影如圖2 所示。由圖2 可以看出,通過PCA 降維后的數(shù)據(jù),不同類之間混雜在一起,結(jié)構(gòu)較混亂,這是由于線性降維算法自身的缺陷會導(dǎo)致處理后的數(shù)據(jù)維度丟失,拓撲結(jié)構(gòu)遭到破壞。LE 降維后的數(shù)據(jù)結(jié)構(gòu)較分明,但大量邊緣數(shù)據(jù)混淆,部分區(qū)域數(shù)據(jù)十分密集。LDP 降維后的數(shù)據(jù)整體結(jié)構(gòu)清晰,不同類別區(qū)分更加明顯,不過數(shù)據(jù)分布仍顯分散,聚類程度較低。經(jīng)SDP 算法降維后的數(shù)據(jù),不同類別之間輪廓清晰,視覺效果上明顯優(yōu)于另外3 種算法。這是由于LDP 雖然與SDP 算法同為有監(jiān)督降維算法,但此類算法在構(gòu)建近鄰圖時僅使用了熱核函數(shù)等手段作為聚類的權(quán)值,這種方法對于樣本類間距的描述能力不足。SDP 算法則構(gòu)建了完整的樣本距離判別矩陣,因此降維后的類別間距更加精準、清晰。
圖2 不同算法降維數(shù)據(jù)投影
為了更具體化地證明所觀察到的結(jié)論,本文引入“輪廓系數(shù)”的概念對4 種算法的降維效果進行評估。輪廓系數(shù)是聚類效果好壞的一種評價方式,由Rousseeuw 于1986 年提出。對于已經(jīng)處理過的數(shù)據(jù),其輪廓系數(shù)可以表示為
其中,a(ix)為樣本點xi到所有它屬于的簇中其他點的平均距離;b(xi)為樣本點xi到與它相距最近的一個異類簇內(nèi)的所有點的平均距離,具體到本文的二分類聚類問題,則是樣本點xi到數(shù)據(jù)集中所有與其異類的樣本點的平均距離;數(shù)據(jù)集整體的輪廓系數(shù)S為所有樣本輪廓系數(shù)的均值,即
可以看出,輪廓系數(shù)S的值為[?1,1],越接近1 則證明數(shù)據(jù)的聚類程度越高。
分別對上述4 種算法降維后的數(shù)據(jù)計算輪廓系數(shù),結(jié)果如圖3 所示。
由圖3 可知,計算得出的輪廓系數(shù)基本和上文對于數(shù)據(jù)的視覺觀測保持一致,其中線性算法PCA的效果最差,僅為0.007 7,這表明經(jīng)其降維后的數(shù)據(jù)基本丟失了原有的類別信息。LE 和LDP 雖同為流形學習算法,但由于LE 為無監(jiān)督算法,LDP 為有監(jiān)督算法,因此輪廓系數(shù)相差較大,LE 的輪廓系數(shù)僅為0.016 3,而LDP 的輪廓系數(shù)卻達到了0.093 2。改良后的SDP 算法在降維后的數(shù)據(jù)類別信息完整度方面不僅遠超過PCA 和LE,和同為有監(jiān)督算法的LDP 相比也表現(xiàn)出了一定的優(yōu)勢,其輪廓系數(shù)達到了0.140 8,證明了SDP 在降維后數(shù)據(jù)聚類效果的優(yōu)勢。
圖3 4 種算法降維數(shù)據(jù)的輪廓系數(shù)
為了測試SDP 算法在網(wǎng)絡(luò)安全分析領(lǐng)域的適用性,本文針對NSL KDD 中4 種不同的攻擊方式:DoS、PROBE、U2R 和R2L,分別在這些訓(xùn)練集上使用SDP 算法對其降維,實驗結(jié)果如圖4 所示。
從圖4 可以看出,對于4 種攻擊方式數(shù)據(jù),SDP算法的降維效果都較理想。降維后的數(shù)據(jù)基本保留了原本的類別屬性,正常流量數(shù)據(jù)和異常流量數(shù)據(jù)在視覺效果上有著顯著的區(qū)分,且異常數(shù)據(jù)的聚類效果明顯。由此可見,SDP 算法在網(wǎng)絡(luò)安全分析領(lǐng)域具有較強的適用性。
圖4 不同攻擊數(shù)據(jù)集的數(shù)據(jù)降維投影
2) 時間消耗分析
SDP 算法為了強化降維的效果,使用了有監(jiān)督的學習方式,上文的實驗數(shù)據(jù)表明這一改動是成功的。但在實際的網(wǎng)絡(luò)安全分析實踐中,算法的效率也同樣重要,如果這項改動帶來了不可接受的時間消耗,那么也無法稱之為成功的降維算法。因此,本節(jié)對SDP 算法的時間消耗進行對比實驗,對比算法仍然選擇PCA、LE 和LDP。為了保證數(shù)據(jù)的準確性,降維時間測試設(shè)置了7 組不同數(shù)據(jù)規(guī)模的對照組,其樣本數(shù)分別為300、600、1 200、2 400、4 800、9 600、19 200 測試,以驗證SDP 算法在不同規(guī)模的安全數(shù)據(jù)集下的時間消耗量。實驗結(jié)果如表2 和圖5 所示。
圖5 4 種算法在不同數(shù)據(jù)規(guī)模下的時間消耗曲線
表2 4 種算法在不同數(shù)據(jù)規(guī)模下的時間消耗
通過分析數(shù)據(jù)可以得知,與線性算法相比,流形學習算法消耗的時間明顯更多,這是由于流形學習算法為非線性算法,需要尋找高維空間的局部結(jié)構(gòu),并利用K 近鄰運算進行判斷,每一步都會顯著增加算法的時間復(fù)雜度,但這也讓流形學習算法能提供線性算法無法比擬的降維效果。在3 種流形學習算法中,LDP 雖然在降維效果上優(yōu)于LE,但消耗時間卻是LE 的5~10 倍。SDP 在降維效果上明顯領(lǐng)先于其他算法,但消耗時間與LDP 基本持平,而且在較大規(guī)模的數(shù)據(jù)集上,消耗時間甚至少于LDP。出現(xiàn)這種現(xiàn)象是由于SDP 算法在定義鄰接圖權(quán)值時,采用的有監(jiān)督判別矩陣計算方式較穩(wěn)定,只需在求解降維變換函數(shù)之前計算一次即可滿足后續(xù)使用;LDP 在求解過程中使用的熱核函數(shù)計算方式雖然在單項復(fù)雜度上基本與SDP 算法持平,但在算法運行過程中可能會出現(xiàn)變化,導(dǎo)致需要多次重復(fù)計算,因此計算量偏高。
這項實驗表明,SDP 算法在時間消耗方面并沒有超出原有流形學習算法的范疇,并且在某些特定的情況下體現(xiàn)了一定的優(yōu)勢。
3) 綜合性能分析
為了綜合考量上述測試的結(jié)果,本文定義了綜合性能指數(shù)P作為評估降維算法綜合性能(效費比)的標準,進一步驗證SDP 算法在降維效果和時間消耗2 個方面的表現(xiàn),即驗證算法能否在可接受的時間消耗內(nèi)取得性能上的優(yōu)勢。P的定義為
其中,n為測試數(shù)據(jù)的規(guī)模,T為算法運行的時間消耗。結(jié)合上文中3 種流形學習算法的輪廓系數(shù)和時間消耗數(shù)據(jù),得到的綜合性能指數(shù)如表3 所示。
表3 3 種流形學習算法的綜合性能指數(shù)
實驗結(jié)果如圖6 所示。實驗結(jié)果表明,與LE相比,SDP 算法雖然在時間開銷上占據(jù)劣勢,但由于在以輪廓系數(shù)為代表的降維效果上顯著優(yōu)于LE,因此依然能夠保持領(lǐng)先地位。在與LDP 的對比中,SDP 算法不僅降維效果較優(yōu),而且在小規(guī)模數(shù)據(jù)集上的時間開銷也和LSP 基本保持一致,甚至在較大規(guī)模數(shù)據(jù)集上的時間開銷小于LSP,因此在綜合性能上取得了穩(wěn)定的優(yōu)勢。
圖6 3 種流形學習算法的綜合性能指數(shù)曲線
本文針對網(wǎng)絡(luò)安全數(shù)據(jù)降維領(lǐng)域的算法聚類效果差、效率低的問題,在傳統(tǒng)數(shù)據(jù)降維技術(shù)的基礎(chǔ)上,提出了一種有監(jiān)督判別投影的流形學習降維算法——SDP 算法。SDP 算法利用一個有監(jiān)督判別矩陣,找到同時具有最大全局散度矩陣和最小局部散度矩陣的低維投影子空間,最終實現(xiàn)數(shù)據(jù)的降維。實驗證明,SDP 算法僅需消耗與傳統(tǒng)流形學習算法接近的時間,但降維后數(shù)據(jù)的聚類效果顯著優(yōu)于線性降維算法和其他流形學習算法,且對于網(wǎng)絡(luò)安全數(shù)據(jù)有較強的適應(yīng)性,因此很適合被用于網(wǎng)絡(luò)安全分析領(lǐng)域的數(shù)據(jù)降維工作中。
由于篇幅和時間的限制,本文僅討論了如何在降維中保留更多的原始數(shù)據(jù)類別信息,未能深入研究如何進一步提高算法的效率,也沒有涉及如何進一步提高后續(xù)的網(wǎng)絡(luò)入侵檢測精度。這些問題都有待于在未來工作中探索。