程 超,郭晨璐
(長春工業大學 計算機科學與工程學院,吉林 長春 130000)
傳統的網絡流量分類方法有:基于端口、載荷及機器學習的分類方法[1-3]。動態端口技術的出現使得利用端口號進行分類不再適用[4];由于法律條令和信息安全等的限制,大部分應用協議的內容并不公開,基于載荷的分類方法也被限制;機器學習算法的前提是訓練數據和測試數據必須滿足同一特征空間和條件概率分布,但是在現實中,這種前提條件可能并不滿足[5]。
遷移學習并不要求訓練樣本和測試樣本分布一致,利用舊的源域知識幫助目標域的學習,實現知識遷移。將基于樣本的遷移學習理論TrAdaBoost[6]應用于網絡流量分類面臨3個問題:一是源域數據與目標域數據相似度低差異較大時,分類效果不好且可能出現負遷移;二是TrAdaBoost是二分類輸出模型,需要改變使其適應網絡流量多分類任務;三是多次迭代后源域權重的快速收斂問題。基于此,本文提出一種基于相似性遷移的網絡流量分類方法,引入TrAdaBoost模型并進行改進,解決上述問題,實現網絡流量多分類。
定義一個大量的有標記的源域DS{xi,yi}(i=1,…,n) 和一個樣本量很小沒有標記(或者標記數目較少)的目標域DT={xj}(j=n+1,…,n+m),xi表示領域上的第i條數據。這兩個領域的整體數據分布P(XS) 和P(XT) 不同。即P(XS)≠P(XT)。 我們的學習任務就是要借助DS的知識,來學習DT的知識,從而提高目標樣本的分類準確率。
(1)將最初的源域網絡流量數據和目標域流量數據預處理,目標域中極少部分用于接下來的訓練,剩下的作為測試數據使用;
(2)用TCA[7](transfer component analysis)提取源域和目標域流量數據之間的相似特征,得到最優特征;
(3)用MMD[8](maximum mean discrepancy)計算源域數據分別與目標域訓練數據之間的平均相似度,并以此挑選出相似度較高的流量數據作為分類前的源域訓練數據;
(4)將挑選后的源域訓練數據和目標域訓練數據輸入到TrAdaBoost多分類模型中進行訓練;
(5)將剩余的目標域測試數據輸入到訓練模型中,得到預測的目標域網絡流量數據的標簽。
本文提出的算法設計如圖1所示。

圖1 基于相似性遷移的網絡流量分類總體設計
相似度是指對數據與數據之間或者領域與領域之間進行相似性度量的方法,每個樣本或者每條數據是由多個數據特征來進行描述的,數據特征之間的相關性由相關系數度量,樣本或者數據之間的相關性由距離方法來表述。相似度可以用不同的距離方法來度量。常見的距離計算方法有K-L散度(Kullback-Leibler divergence)[9]、布雷格曼散度[10]以及最大均值差異。前兩種方法需要先估計其概率密度,最大均值差異是用兩個領域在希爾伯特空間中的均值差異來近似,計算復雜度低效率高,因此該方法的使用范圍最大[11]。本文采用MMD將源域和目標域流量數據映射至核再生希爾伯特空間中,用該空間中兩個領域的近似均值的差表示域之間相似值大小,MMD值和相似度呈正比關系。
MMD度量兩個領域映射在再生核希爾伯特空間(reproducing kernel Hilbert space,RKHS)上的距離,是一種核計算方法。其表達形式通常如式(1)所示
(1)
其中,x和y是定義在拓撲空間Χ上的隨機變量,具有各自的Borel概率度量p和q。
(2)


(3)
引入核矩陣K和系數矩陣L

(4)
利用核技巧化簡,可將MMD距離化簡為tr(KL)-λtr(K),λ≥0, 后者為正則項。TCA實現的目標即為:min[tr(KL)-λtr(K)], 通過映射的核函數將兩個樣本集的特征嵌入到同一個核空間。在潛在空間(核空間)上投影,核矩陣K分解為
K=(KK-1/2)(K-1/2K)
(5)
引入的矩陣W將核矩陣轉換到dim維空間,此時核矩陣可表示為
K=(KK-1/2W)(WK-1/2K)=KWWTK
(6)
其中,W∈R(m+n)*dim,W=K-1/2W。

利用核矩陣中的K,源域數據和目標域數據之間的距離可表示為
Dist(XS,XT)=tr((KWWTK)L)=tr(WTKLKW)
(7)
最終得出TCA的優化目標為求解W

(8)
其中,μ>0是平衡參數,可簡寫為I,求解式(7)的拉格朗日對偶,對W求導,得到了W的解為 (KLK+μI)-1KHK的前dim個特征向量組成的矩陣,也就是源域XS和目標域XT特征變換后形成的dim維新的數據集。
本文實驗分為兩組,A組和B組均依據以上過程,基于MATLAB 2016a平臺,A組以Moore數據集[13]的entry 01,02,03中的部分數據作為源域訓練集,以大約12個月后同一地點的一個數據集entry 12作為目標訓練集和目標測試集,B組為8個月后另一地點收集的Day.TCP數據集,以Day1,2,3中的部分數據作為訓練集,SiteB中的部分數據作為測試集。對所挑選的數據集作兩次TCA轉換。首先,移除數據集的標簽,做兩次TCA轉換,第一次以源域訓練集和目標域訓練集作為輸入的矩陣,第二次以目標訓練集和目標測試集作為輸入。兩次均以目標任務作為相似度量,提取目標任務矩陣與其它兩個域的相似特征,計算L矩陣和H矩陣,選取的核函數為高斯徑向基核函數,dim選擇12,計算后的前dim個特征向量組成的矩陣即為新的特征矩陣,也就是降維后的新數據特征。
選取后的最優網絡流量特征見表1。

表1 TCA特征選擇所得的最優特征子集
在此次網絡流量分類中,源域流量數據集X(x1,…,xm) 和目標域流量數據集Y(y1,…,yn) 分別服從分布p和q,m,n分別是源域和目標域數據集的大小,則兩者之間的相似度通過MMD算法表示為

(9)
k是一個核函數,本文中用的是徑向基函數(radial basis function,RBF)。將特征選擇后的源域數據集樣本分別與每一個目標域樣本作MMD運算,則第i個源域樣本分別與目標域樣本的相似值即為
(10)

本節對TrAdaBoost算法做了兩個方面的改進:通過權重的調節解決迭代過程中領域之間分布差異較大導致的分類準確率低的問題和由原輸出模型產生的多分類目標任務不匹配問題。領域之間分布相差較大同時分配的初始權重不合理是導致分類準確率低的主要原因。因此,對源域數據和目標域數據的權重進行調節使分類器有所選擇地分類相似度大的樣本,可有效改善這一問題。核心思想是對于每一輪分類正確的源域樣本其權重保持不變,分類錯誤的應降低其權重減輕對目標任務的影響;而對于目標訓練樣本,分類正確其權重保持不變,分類錯誤應當加大它的權重,這樣下一次迭代時分類器會著重訓練這個樣本。權重更新表示

(11)
上述權重更新公式在TrAdaBoost中為二分類輸出,y∈{0,1}, 源樣本權重更新系數β=1/(1+(2lnm/N)1/2),N為最大迭代次數,目標樣本權重更新系數為βt(1-τt)/τt,τt≤0.5是目標樣本預測誤差,將權重更新機制擴展到多分類中,引進SAMME模型,使用指數型損失函數對其改進
(12)
λt=log(1-τt)/τt+log(K-1) 為多分類的權重更新系數,K為類別總數,為了避免源域權重下降過快,給源域添加一個抑制因子θt=K(1-τt), 保持源域與目標域的整體權重比不變,得到多分類權重調整機制
(13)
理論上,源域中的某個樣本與目標域中的某個正確分類樣本的權重比可能有很大差異。盡管整個目標域樣本和整個源域樣本的相對權重比保持不變,但在每次迭代時,源域中正樣本的權重調整速率比目標域中正確分類的樣本快K倍,多次迭代后,某些對分類任務有益的源域樣本的權重很小,目標域和源域樣本之間的權重差異性逐漸增大,導致分類準確率低。在實際中,為了避免這種權重轉移現象,將抑制因子K(1-τt) 設置為2(1-τt) 減緩源域樣本權重的收斂速率,避免負遷移。
將二分類轉為多分類時,核心思想為:將第一類看作一類,標簽記為1,其它所有的類別看作第二類,標簽記為0,這樣就得到了一個帶標簽的矩陣,第二次將第二類看作1,其它所有類看作0,依次進行,直到最后一類。本文從數據集中選擇種類最多的4類網絡流量,通過4個二分類模型,得到每個類別的4種結果,最終根據投票的方式確定所屬類別:分類器i對數據x進行預測,若結果是正類,記結果是:x屬于i類,類別i獲得一票;若是分類結果為負,則除i以外的每個類別都獲得一票,統計票數最多的類別,將是x的類別屬性。本文中,使用支持向量機(support vector machine,SVM)作為基礎分類器,將算法擴展到多分類場景中。迭代次數設置為50次,綜上所述,改進后基于相似性樣本遷移學習算法的具體步驟如下所示。
基于相似性樣本的網絡流量多分類算法
輸入:有標記的m個樣本的相似源域訓練數據集Ta和n個樣本的目標訓練數據集Tb,無標記的目標測試集S,最大迭代次數N,基礎算法Learner。
開始循環t=1,…,T

(3)計算分類器在目標域上的錯誤率
(4)設置目標域和源域權重更新速率:λt=log(1-τt)/τt+log(K-1),λ=1/(1+(2lnm/N)1/2), 其中,K為類別數量
(5)更新樣本權重
循環結束
輸出:測試集的標簽L
將抑制因子θt=K(1-tt) 添加至源域樣本的權重更新機制中,避免源域樣本權重收斂過快。令U為第t+1次迭代時正確分類的目標域樣本權重之和,V為第t+1次迭代時錯誤分類的目標域樣本權重之和,w1為目標域權重,w2為源域權重,則U、V表示為

(14)
(15)
t+1次迭代時源域權重更新為
(16)
為了避免源域權重收斂過快,在迭代中引入抑制因子θt,源域樣本分類正確則權重保持不變,因此有
(17)
得出抑制因子的值
(18)
實驗分為兩組,A組數據所用的是劍橋大學Moore等在一天之內不同時間段所收集的流量數據集,包含entry 01-entry 10的10個子集,另有一個子集entry 12是在同一地點的12個月后收集的,數據集中共12類應用,包括:WWW、MAIL、FTP-CONTROL、FTP-PASV、ATTACK、P2P、DATABASE、FTP-DATA、MULTIMEDIA、SERVICES、INTERACTIVE、GAMES[14]。但并不是所有子集都有12種流量類型,因此我們選擇了4種常見的流量類型來識別,包括:WWW、MAIL、P2P以及FTP-CONTROL。由于Moore數據集的類別數目很不平衡,我們選用數據子集entry 01,02,03中的部分數據作為訓練集,以entry 12作為目標訓練集和目標測試集。B組為Moore在8個月后的另一地點收集的Day.TCP數據集,流量類型和A組有較大差別,選擇了其中樣本類型數目最多的4類來做訓練。表2、表3為實驗中使用的數據類別和數目。

表2 A組實驗數據集

表3 B組實驗數據集
本節中,將提出的改進算法與遷移學習算法以及傳統機器學習算法進行對比來評估算法的有效性。不同算法性能的對比結果見表4。

表4 不同算法的分類準確率對比
SVM(Ta):傳統的機器學習算法,僅使用源域數據作為訓練集進行訓練;
SVM(Ta+Tb):傳統的機器學習算法,使用合并的源域和目標域作為訓練集進行訓練分類;
TrAdaBoost(Ta+Tb):初始的遷移學習算法,未進行MMD算法篩選最優相似源域集合,對數據集直接訓練進行分類;
MD-TrAdaBoost:改進后的基于相似性遷移的算法,使用合并的源域和目標域作為訓練集進行訓練分類。
一般來說,網絡流量分類算法性能主要通過分類準確性(Accuracy)、準確率(Precision)、召回率(Recall)以及F1測度(F1-score)4個指標來評價,此次多分類結果的混淆矩陣見表5、表6,4種流量類別各自的評價指標如圖2、圖3所示。

表5 A組多分類混淆矩陣

表6 B組多分類混淆矩陣
從表4中可以看出,遷移學習算法性能明顯高于傳統機器學習算法,本文提出的基于相似性遷移的網絡流量分類算法性能明顯高于其它,進一步觀察表5和表6的混淆矩陣可知,A組中WWW和P2P被全部分對,F1分數和召回率都是100%,說明這兩類的特征獨特,明顯和其它類別有區分,B組并沒有完全被分類正確的類別,這4種類別均有被誤分類給其它類別。在4種方法中,BULK在分類時誤分類給MAIL的數目最多,原因在于BULK的特征和MAIL最為相似,MAIL的數量明顯多于BULK,在整體分類時系統會優先考慮數目占比最大的類別。
由圖2和圖3可知改進后的TrAdaBoost算法類別的各項指標在兩組數據中也均為最高,SVM本身為二分類,將其應用到多分類時性能效果不是很好,本文將其應用到遷移學習框架中,利用權重更新機制提高分類準確率,同時從樣本和特征兩個角度基于相似性的原則對數據進行了改進,提高了可遷移性,對源域數據添加抑制因子能有效減緩源域權重的轉移現象,減少了舊源域數據的浪費。

圖2 A組網絡流量類別的F1測度和召回率對比

圖3 B組網絡流量類別的F1測度和召回率對比
抑制因子的添加使得算法更好得利用源域知識,減小無關源域樣本對整體的影響,分類效果比原始的TrAdaBoost算法好很多,以A組數據為例,經過相似性篩選后的源域樣本和目標域樣本數目分別為4600和650,源域誤差τa設置為0時,根據權重調節機制,當誤差為0時,分類正確的源域樣本權重保持不變,圖4描繪了傳統的TrAdaBoost算法權重和本文改進的算法MD-TrAdaBoost權重的比值隨迭代次數的增加在不同的目標域分類誤差10%到40%下變化的曲線。通過圖4的仿真結果,可以看出:①在本文改進的算法中,即使源域樣本正確分類,整體源域權重也會收斂;②改進的算法符合源域權重更新機制,分類正確時其權重不變,分類錯誤時其權重降低;③如果不添加抑制因子,錯誤率τa越小,則源域權重收斂越快。

圖4 不同誤差率下的權重比值結果
本文提出了一種基于相似性遷移的網絡流量分類方法,該方法把相似性作為特征和樣本篩選的度量標準,減小了領域之間的分布差異,通過將TrAdaBoost算法的權重更新機制進行改進,解決了源域樣本權重速率下降過快的問題。實驗結果表明,通過該方法對測試數據的標簽進行預測,相比其它網絡流量分類方法性能更高,提高了可遷移性,避免負遷移。未來考慮引入多個源域,和在線學習算法相結合設計一種更符合網絡環境的流量分類方法。