程 超,郭晨璐
(長(zhǎng)春工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,吉林 長(zhǎng)春 130000)
傳統(tǒng)的網(wǎng)絡(luò)流量分類方法有:基于端口、載荷及機(jī)器學(xué)習(xí)的分類方法[1-3]。動(dòng)態(tài)端口技術(shù)的出現(xiàn)使得利用端口號(hào)進(jìn)行分類不再適用[4];由于法律條令和信息安全等的限制,大部分應(yīng)用協(xié)議的內(nèi)容并不公開,基于載荷的分類方法也被限制;機(jī)器學(xué)習(xí)算法的前提是訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)必須滿足同一特征空間和條件概率分布,但是在現(xiàn)實(shí)中,這種前提條件可能并不滿足[5]。
遷移學(xué)習(xí)并不要求訓(xùn)練樣本和測(cè)試樣本分布一致,利用舊的源域知識(shí)幫助目標(biāo)域的學(xué)習(xí),實(shí)現(xiàn)知識(shí)遷移。將基于樣本的遷移學(xué)習(xí)理論TrAdaBoost[6]應(yīng)用于網(wǎng)絡(luò)流量分類面臨3個(gè)問(wèn)題:一是源域數(shù)據(jù)與目標(biāo)域數(shù)據(jù)相似度低差異較大時(shí),分類效果不好且可能出現(xiàn)負(fù)遷移;二是TrAdaBoost是二分類輸出模型,需要改變使其適應(yīng)網(wǎng)絡(luò)流量多分類任務(wù);三是多次迭代后源域權(quán)重的快速收斂問(wèn)題?;诖耍疚奶岢鲆环N基于相似性遷移的網(wǎng)絡(luò)流量分類方法,引入TrAdaBoost模型并進(jìn)行改進(jìn),解決上述問(wèn)題,實(shí)現(xiàn)網(wǎng)絡(luò)流量多分類。
定義一個(gè)大量的有標(biāo)記的源域DS{xi,yi}(i=1,…,n) 和一個(gè)樣本量很小沒(méi)有標(biāo)記(或者標(biāo)記數(shù)目較少)的目標(biāo)域DT={xj}(j=n+1,…,n+m),xi表示領(lǐng)域上的第i條數(shù)據(jù)。這兩個(gè)領(lǐng)域的整體數(shù)據(jù)分布P(XS) 和P(XT) 不同。即P(XS)≠P(XT)。 我們的學(xué)習(xí)任務(wù)就是要借助DS的知識(shí),來(lái)學(xué)習(xí)DT的知識(shí),從而提高目標(biāo)樣本的分類準(zhǔn)確率。
(1)將最初的源域網(wǎng)絡(luò)流量數(shù)據(jù)和目標(biāo)域流量數(shù)據(jù)預(yù)處理,目標(biāo)域中極少部分用于接下來(lái)的訓(xùn)練,剩下的作為測(cè)試數(shù)據(jù)使用;
(2)用TCA[7](transfer component analysis)提取源域和目標(biāo)域流量數(shù)據(jù)之間的相似特征,得到最優(yōu)特征;
(3)用MMD[8](maximum mean discrepancy)計(jì)算源域數(shù)據(jù)分別與目標(biāo)域訓(xùn)練數(shù)據(jù)之間的平均相似度,并以此挑選出相似度較高的流量數(shù)據(jù)作為分類前的源域訓(xùn)練數(shù)據(jù);
(4)將挑選后的源域訓(xùn)練數(shù)據(jù)和目標(biāo)域訓(xùn)練數(shù)據(jù)輸入到TrAdaBoost多分類模型中進(jìn)行訓(xùn)練;
(5)將剩余的目標(biāo)域測(cè)試數(shù)據(jù)輸入到訓(xùn)練模型中,得到預(yù)測(cè)的目標(biāo)域網(wǎng)絡(luò)流量數(shù)據(jù)的標(biāo)簽。
本文提出的算法設(shè)計(jì)如圖1所示。
圖1 基于相似性遷移的網(wǎng)絡(luò)流量分類總體設(shè)計(jì)
相似度是指對(duì)數(shù)據(jù)與數(shù)據(jù)之間或者領(lǐng)域與領(lǐng)域之間進(jìn)行相似性度量的方法,每個(gè)樣本或者每條數(shù)據(jù)是由多個(gè)數(shù)據(jù)特征來(lái)進(jìn)行描述的,數(shù)據(jù)特征之間的相關(guān)性由相關(guān)系數(shù)度量,樣本或者數(shù)據(jù)之間的相關(guān)性由距離方法來(lái)表述。相似度可以用不同的距離方法來(lái)度量。常見的距離計(jì)算方法有K-L散度(Kullback-Leibler divergence)[9]、布雷格曼散度[10]以及最大均值差異。前兩種方法需要先估計(jì)其概率密度,最大均值差異是用兩個(gè)領(lǐng)域在希爾伯特空間中的均值差異來(lái)近似,計(jì)算復(fù)雜度低效率高,因此該方法的使用范圍最大[11]。本文采用MMD將源域和目標(biāo)域流量數(shù)據(jù)映射至核再生希爾伯特空間中,用該空間中兩個(gè)領(lǐng)域的近似均值的差表示域之間相似值大小,MMD值和相似度呈正比關(guān)系。
MMD度量?jī)蓚€(gè)領(lǐng)域映射在再生核希爾伯特空間(reproducing kernel Hilbert space,RKHS)上的距離,是一種核計(jì)算方法。其表達(dá)形式通常如式(1)所示
(1)
其中,x和y是定義在拓?fù)淇臻gΧ上的隨機(jī)變量,具有各自的Borel概率度量p和q。
(2)
(3)
引入核矩陣K和系數(shù)矩陣L
(4)
利用核技巧化簡(jiǎn),可將MMD距離化簡(jiǎn)為tr(KL)-λtr(K),λ≥0, 后者為正則項(xiàng)。TCA實(shí)現(xiàn)的目標(biāo)即為:min[tr(KL)-λtr(K)], 通過(guò)映射的核函數(shù)將兩個(gè)樣本集的特征嵌入到同一個(gè)核空間。在潛在空間(核空間)上投影,核矩陣K分解為
K=(KK-1/2)(K-1/2K)
(5)
引入的矩陣W將核矩陣轉(zhuǎn)換到dim維空間,此時(shí)核矩陣可表示為
K=(KK-1/2W)(WK-1/2K)=KWWTK
(6)
其中,W∈R(m+n)*dim,W=K-1/2W。
利用核矩陣中的K,源域數(shù)據(jù)和目標(biāo)域數(shù)據(jù)之間的距離可表示為
Dist(XS,XT)=tr((KWWTK)L)=tr(WTKLKW)
(7)
最終得出TCA的優(yōu)化目標(biāo)為求解W
(8)
其中,μ>0是平衡參數(shù),可簡(jiǎn)寫為I,求解式(7)的拉格朗日對(duì)偶,對(duì)W求導(dǎo),得到了W的解為 (KLK+μI)-1KHK的前dim個(gè)特征向量組成的矩陣,也就是源域XS和目標(biāo)域XT特征變換后形成的dim維新的數(shù)據(jù)集。
本文實(shí)驗(yàn)分為兩組,A組和B組均依據(jù)以上過(guò)程,基于MATLAB 2016a平臺(tái),A組以Moore數(shù)據(jù)集[13]的entry 01,02,03中的部分?jǐn)?shù)據(jù)作為源域訓(xùn)練集,以大約12個(gè)月后同一地點(diǎn)的一個(gè)數(shù)據(jù)集entry 12作為目標(biāo)訓(xùn)練集和目標(biāo)測(cè)試集,B組為8個(gè)月后另一地點(diǎn)收集的Day.TCP數(shù)據(jù)集,以Day1,2,3中的部分?jǐn)?shù)據(jù)作為訓(xùn)練集,SiteB中的部分?jǐn)?shù)據(jù)作為測(cè)試集。對(duì)所挑選的數(shù)據(jù)集作兩次TCA轉(zhuǎn)換。首先,移除數(shù)據(jù)集的標(biāo)簽,做兩次TCA轉(zhuǎn)換,第一次以源域訓(xùn)練集和目標(biāo)域訓(xùn)練集作為輸入的矩陣,第二次以目標(biāo)訓(xùn)練集和目標(biāo)測(cè)試集作為輸入。兩次均以目標(biāo)任務(wù)作為相似度量,提取目標(biāo)任務(wù)矩陣與其它兩個(gè)域的相似特征,計(jì)算L矩陣和H矩陣,選取的核函數(shù)為高斯徑向基核函數(shù),dim選擇12,計(jì)算后的前dim個(gè)特征向量組成的矩陣即為新的特征矩陣,也就是降維后的新數(shù)據(jù)特征。
選取后的最優(yōu)網(wǎng)絡(luò)流量特征見表1。
表1 TCA特征選擇所得的最優(yōu)特征子集
在此次網(wǎng)絡(luò)流量分類中,源域流量數(shù)據(jù)集X(x1,…,xm) 和目標(biāo)域流量數(shù)據(jù)集Y(y1,…,yn) 分別服從分布p和q,m,n分別是源域和目標(biāo)域數(shù)據(jù)集的大小,則兩者之間的相似度通過(guò)MMD算法表示為
(9)
k是一個(gè)核函數(shù),本文中用的是徑向基函數(shù)(radial basis function,RBF)。將特征選擇后的源域數(shù)據(jù)集樣本分別與每一個(gè)目標(biāo)域樣本作MMD運(yùn)算,則第i個(gè)源域樣本分別與目標(biāo)域樣本的相似值即為
(10)
本節(jié)對(duì)TrAdaBoost算法做了兩個(gè)方面的改進(jìn):通過(guò)權(quán)重的調(diào)節(jié)解決迭代過(guò)程中領(lǐng)域之間分布差異較大導(dǎo)致的分類準(zhǔn)確率低的問(wèn)題和由原輸出模型產(chǎn)生的多分類目標(biāo)任務(wù)不匹配問(wèn)題。領(lǐng)域之間分布相差較大同時(shí)分配的初始權(quán)重不合理是導(dǎo)致分類準(zhǔn)確率低的主要原因。因此,對(duì)源域數(shù)據(jù)和目標(biāo)域數(shù)據(jù)的權(quán)重進(jìn)行調(diào)節(jié)使分類器有所選擇地分類相似度大的樣本,可有效改善這一問(wèn)題。核心思想是對(duì)于每一輪分類正確的源域樣本其權(quán)重保持不變,分類錯(cuò)誤的應(yīng)降低其權(quán)重減輕對(duì)目標(biāo)任務(wù)的影響;而對(duì)于目標(biāo)訓(xùn)練樣本,分類正確其權(quán)重保持不變,分類錯(cuò)誤應(yīng)當(dāng)加大它的權(quán)重,這樣下一次迭代時(shí)分類器會(huì)著重訓(xùn)練這個(gè)樣本。權(quán)重更新表示
(11)
上述權(quán)重更新公式在TrAdaBoost中為二分類輸出,y∈{0,1}, 源樣本權(quán)重更新系數(shù)β=1/(1+(2lnm/N)1/2),N為最大迭代次數(shù),目標(biāo)樣本權(quán)重更新系數(shù)為βt(1-τt)/τt,τt≤0.5是目標(biāo)樣本預(yù)測(cè)誤差,將權(quán)重更新機(jī)制擴(kuò)展到多分類中,引進(jìn)SAMME模型,使用指數(shù)型損失函數(shù)對(duì)其改進(jìn)
(12)
λt=log(1-τt)/τt+log(K-1) 為多分類的權(quán)重更新系數(shù),K為類別總數(shù),為了避免源域權(quán)重下降過(guò)快,給源域添加一個(gè)抑制因子θt=K(1-τt), 保持源域與目標(biāo)域的整體權(quán)重比不變,得到多分類權(quán)重調(diào)整機(jī)制
(13)
理論上,源域中的某個(gè)樣本與目標(biāo)域中的某個(gè)正確分類樣本的權(quán)重比可能有很大差異。盡管整個(gè)目標(biāo)域樣本和整個(gè)源域樣本的相對(duì)權(quán)重比保持不變,但在每次迭代時(shí),源域中正樣本的權(quán)重調(diào)整速率比目標(biāo)域中正確分類的樣本快K倍,多次迭代后,某些對(duì)分類任務(wù)有益的源域樣本的權(quán)重很小,目標(biāo)域和源域樣本之間的權(quán)重差異性逐漸增大,導(dǎo)致分類準(zhǔn)確率低。在實(shí)際中,為了避免這種權(quán)重轉(zhuǎn)移現(xiàn)象,將抑制因子K(1-τt) 設(shè)置為2(1-τt) 減緩源域樣本權(quán)重的收斂速率,避免負(fù)遷移。
將二分類轉(zhuǎn)為多分類時(shí),核心思想為:將第一類看作一類,標(biāo)簽記為1,其它所有的類別看作第二類,標(biāo)簽記為0,這樣就得到了一個(gè)帶標(biāo)簽的矩陣,第二次將第二類看作1,其它所有類看作0,依次進(jìn)行,直到最后一類。本文從數(shù)據(jù)集中選擇種類最多的4類網(wǎng)絡(luò)流量,通過(guò)4個(gè)二分類模型,得到每個(gè)類別的4種結(jié)果,最終根據(jù)投票的方式確定所屬類別:分類器i對(duì)數(shù)據(jù)x進(jìn)行預(yù)測(cè),若結(jié)果是正類,記結(jié)果是:x屬于i類,類別i獲得一票;若是分類結(jié)果為負(fù),則除i以外的每個(gè)類別都獲得一票,統(tǒng)計(jì)票數(shù)最多的類別,將是x的類別屬性。本文中,使用支持向量機(jī)(support vector machine,SVM)作為基礎(chǔ)分類器,將算法擴(kuò)展到多分類場(chǎng)景中。迭代次數(shù)設(shè)置為50次,綜上所述,改進(jìn)后基于相似性樣本遷移學(xué)習(xí)算法的具體步驟如下所示。
基于相似性樣本的網(wǎng)絡(luò)流量多分類算法
輸入:有標(biāo)記的m個(gè)樣本的相似源域訓(xùn)練數(shù)據(jù)集Ta和n個(gè)樣本的目標(biāo)訓(xùn)練數(shù)據(jù)集Tb,無(wú)標(biāo)記的目標(biāo)測(cè)試集S,最大迭代次數(shù)N,基礎(chǔ)算法Learner。
開始循環(huán)t=1,…,T
(3)計(jì)算分類器在目標(biāo)域上的錯(cuò)誤率
(4)設(shè)置目標(biāo)域和源域權(quán)重更新速率:λt=log(1-τt)/τt+log(K-1),λ=1/(1+(2lnm/N)1/2), 其中,K為類別數(shù)量
(5)更新樣本權(quán)重
循環(huán)結(jié)束
輸出:測(cè)試集的標(biāo)簽L
將抑制因子θt=K(1-tt) 添加至源域樣本的權(quán)重更新機(jī)制中,避免源域樣本權(quán)重收斂過(guò)快。令U為第t+1次迭代時(shí)正確分類的目標(biāo)域樣本權(quán)重之和,V為第t+1次迭代時(shí)錯(cuò)誤分類的目標(biāo)域樣本權(quán)重之和,w1為目標(biāo)域權(quán)重,w2為源域權(quán)重,則U、V表示為
(14)
(15)
t+1次迭代時(shí)源域權(quán)重更新為
(16)
為了避免源域權(quán)重收斂過(guò)快,在迭代中引入抑制因子θt,源域樣本分類正確則權(quán)重保持不變,因此有
(17)
得出抑制因子的值
(18)
實(shí)驗(yàn)分為兩組,A組數(shù)據(jù)所用的是劍橋大學(xué)Moore等在一天之內(nèi)不同時(shí)間段所收集的流量數(shù)據(jù)集,包含entry 01-entry 10的10個(gè)子集,另有一個(gè)子集entry 12是在同一地點(diǎn)的12個(gè)月后收集的,數(shù)據(jù)集中共12類應(yīng)用,包括:WWW、MAIL、FTP-CONTROL、FTP-PASV、ATTACK、P2P、DATABASE、FTP-DATA、MULTIMEDIA、SERVICES、INTERACTIVE、GAMES[14]。但并不是所有子集都有12種流量類型,因此我們選擇了4種常見的流量類型來(lái)識(shí)別,包括:WWW、MAIL、P2P以及FTP-CONTROL。由于Moore數(shù)據(jù)集的類別數(shù)目很不平衡,我們選用數(shù)據(jù)子集entry 01,02,03中的部分?jǐn)?shù)據(jù)作為訓(xùn)練集,以entry 12作為目標(biāo)訓(xùn)練集和目標(biāo)測(cè)試集。B組為Moore在8個(gè)月后的另一地點(diǎn)收集的Day.TCP數(shù)據(jù)集,流量類型和A組有較大差別,選擇了其中樣本類型數(shù)目最多的4類來(lái)做訓(xùn)練。表2、表3為實(shí)驗(yàn)中使用的數(shù)據(jù)類別和數(shù)目。
表2 A組實(shí)驗(yàn)數(shù)據(jù)集
表3 B組實(shí)驗(yàn)數(shù)據(jù)集
本節(jié)中,將提出的改進(jìn)算法與遷移學(xué)習(xí)算法以及傳統(tǒng)機(jī)器學(xué)習(xí)算法進(jìn)行對(duì)比來(lái)評(píng)估算法的有效性。不同算法性能的對(duì)比結(jié)果見表4。
表4 不同算法的分類準(zhǔn)確率對(duì)比
SVM(Ta):傳統(tǒng)的機(jī)器學(xué)習(xí)算法,僅使用源域數(shù)據(jù)作為訓(xùn)練集進(jìn)行訓(xùn)練;
SVM(Ta+Tb):傳統(tǒng)的機(jī)器學(xué)習(xí)算法,使用合并的源域和目標(biāo)域作為訓(xùn)練集進(jìn)行訓(xùn)練分類;
TrAdaBoost(Ta+Tb):初始的遷移學(xué)習(xí)算法,未進(jìn)行MMD算法篩選最優(yōu)相似源域集合,對(duì)數(shù)據(jù)集直接訓(xùn)練進(jìn)行分類;
MD-TrAdaBoost:改進(jìn)后的基于相似性遷移的算法,使用合并的源域和目標(biāo)域作為訓(xùn)練集進(jìn)行訓(xùn)練分類。
一般來(lái)說(shuō),網(wǎng)絡(luò)流量分類算法性能主要通過(guò)分類準(zhǔn)確性(Accuracy)、準(zhǔn)確率(Precision)、召回率(Recall)以及F1測(cè)度(F1-score)4個(gè)指標(biāo)來(lái)評(píng)價(jià),此次多分類結(jié)果的混淆矩陣見表5、表6,4種流量類別各自的評(píng)價(jià)指標(biāo)如圖2、圖3所示。
表5 A組多分類混淆矩陣
表6 B組多分類混淆矩陣
從表4中可以看出,遷移學(xué)習(xí)算法性能明顯高于傳統(tǒng)機(jī)器學(xué)習(xí)算法,本文提出的基于相似性遷移的網(wǎng)絡(luò)流量分類算法性能明顯高于其它,進(jìn)一步觀察表5和表6的混淆矩陣可知,A組中WWW和P2P被全部分對(duì),F(xiàn)1分?jǐn)?shù)和召回率都是100%,說(shuō)明這兩類的特征獨(dú)特,明顯和其它類別有區(qū)分,B組并沒(méi)有完全被分類正確的類別,這4種類別均有被誤分類給其它類別。在4種方法中,BULK在分類時(shí)誤分類給MAIL的數(shù)目最多,原因在于BULK的特征和MAIL最為相似,MAIL的數(shù)量明顯多于BULK,在整體分類時(shí)系統(tǒng)會(huì)優(yōu)先考慮數(shù)目占比最大的類別。
由圖2和圖3可知改進(jìn)后的TrAdaBoost算法類別的各項(xiàng)指標(biāo)在兩組數(shù)據(jù)中也均為最高,SVM本身為二分類,將其應(yīng)用到多分類時(shí)性能效果不是很好,本文將其應(yīng)用到遷移學(xué)習(xí)框架中,利用權(quán)重更新機(jī)制提高分類準(zhǔn)確率,同時(shí)從樣本和特征兩個(gè)角度基于相似性的原則對(duì)數(shù)據(jù)進(jìn)行了改進(jìn),提高了可遷移性,對(duì)源域數(shù)據(jù)添加抑制因子能有效減緩源域權(quán)重的轉(zhuǎn)移現(xiàn)象,減少了舊源域數(shù)據(jù)的浪費(fèi)。
圖2 A組網(wǎng)絡(luò)流量類別的F1測(cè)度和召回率對(duì)比
圖3 B組網(wǎng)絡(luò)流量類別的F1測(cè)度和召回率對(duì)比
抑制因子的添加使得算法更好得利用源域知識(shí),減小無(wú)關(guān)源域樣本對(duì)整體的影響,分類效果比原始的TrAdaBoost算法好很多,以A組數(shù)據(jù)為例,經(jīng)過(guò)相似性篩選后的源域樣本和目標(biāo)域樣本數(shù)目分別為4600和650,源域誤差τa設(shè)置為0時(shí),根據(jù)權(quán)重調(diào)節(jié)機(jī)制,當(dāng)誤差為0時(shí),分類正確的源域樣本權(quán)重保持不變,圖4描繪了傳統(tǒng)的TrAdaBoost算法權(quán)重和本文改進(jìn)的算法MD-TrAdaBoost權(quán)重的比值隨迭代次數(shù)的增加在不同的目標(biāo)域分類誤差10%到40%下變化的曲線。通過(guò)圖4的仿真結(jié)果,可以看出:①在本文改進(jìn)的算法中,即使源域樣本正確分類,整體源域權(quán)重也會(huì)收斂;②改進(jìn)的算法符合源域權(quán)重更新機(jī)制,分類正確時(shí)其權(quán)重不變,分類錯(cuò)誤時(shí)其權(quán)重降低;③如果不添加抑制因子,錯(cuò)誤率τa越小,則源域權(quán)重收斂越快。
圖4 不同誤差率下的權(quán)重比值結(jié)果
本文提出了一種基于相似性遷移的網(wǎng)絡(luò)流量分類方法,該方法把相似性作為特征和樣本篩選的度量標(biāo)準(zhǔn),減小了領(lǐng)域之間的分布差異,通過(guò)將TrAdaBoost算法的權(quán)重更新機(jī)制進(jìn)行改進(jìn),解決了源域樣本權(quán)重速率下降過(guò)快的問(wèn)題。實(shí)驗(yàn)結(jié)果表明,通過(guò)該方法對(duì)測(cè)試數(shù)據(jù)的標(biāo)簽進(jìn)行預(yù)測(cè),相比其它網(wǎng)絡(luò)流量分類方法性能更高,提高了可遷移性,避免負(fù)遷移。未來(lái)考慮引入多個(gè)源域,和在線學(xué)習(xí)算法相結(jié)合設(shè)計(jì)一種更符合網(wǎng)絡(luò)環(huán)境的流量分類方法。