何春蓉, 朱 江
(重慶郵電大學(xué)通信與信息工程學(xué)院, 重慶 400065)
隨著網(wǎng)絡(luò)在生活、工業(yè)等領(lǐng)域迅速普及,人們對(duì)于網(wǎng)絡(luò)的需求呈爆炸式增長(zhǎng),隨之而來的是層出不窮的網(wǎng)絡(luò)安全問題。各種網(wǎng)絡(luò)安全威脅和復(fù)雜的網(wǎng)絡(luò)攻擊手段使得傳統(tǒng)的殺毒軟件、防火墻等防護(hù)手段也難以主動(dòng)防御。為了應(yīng)對(duì)嚴(yán)峻的網(wǎng)絡(luò)安全形式,網(wǎng)絡(luò)安全態(tài)勢(shì)感知技術(shù)[1-2]一經(jīng)提出就取得了廣泛的關(guān)注。網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)作為其核心研究范疇,通過對(duì)歷史網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行分析融合,在一段時(shí)間內(nèi)能夠提前預(yù)測(cè)網(wǎng)絡(luò)未來的安全性,對(duì)未來可能出現(xiàn)的各種威脅和攻擊進(jìn)行預(yù)警,幫助網(wǎng)絡(luò)管理員提前對(duì)網(wǎng)絡(luò)資源進(jìn)行合理分配,采取相應(yīng)的措施以應(yīng)對(duì)各種網(wǎng)絡(luò)風(fēng)險(xiǎn)。
隨著機(jī)器學(xué)習(xí)的不斷發(fā)展和人工智能學(xué)習(xí)的逐漸深入,將神經(jīng)網(wǎng)絡(luò)應(yīng)用于網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)領(lǐng)域成為近幾年的研究熱點(diǎn),相比于已有的預(yù)測(cè)模型,神經(jīng)網(wǎng)絡(luò)模型具有多特征、高容錯(cuò)性、自組織能力和自學(xué)能力,對(duì)復(fù)雜系統(tǒng)具有很強(qiáng)的非線性映射和泛化能力,能夠直接構(gòu)建出多源異構(gòu)數(shù)據(jù)同態(tài)勢(shì)值的映射關(guān)系[3]。文獻(xiàn)[4]提出將支持向量機(jī)支持向量機(jī)(support vector machines, SVM)作為預(yù)測(cè)模型,采用布谷鳥搜索算法進(jìn)行參數(shù)優(yōu)化,針對(duì)大數(shù)據(jù)的成本問題,使用MapReduce在SVM上進(jìn)行分布式訓(xùn)練,降低了訓(xùn)練時(shí)間成本,但是預(yù)測(cè)的精度不足,收斂速度慢。文獻(xiàn)[5]提出一種新的基于云信念規(guī)則庫(kù)的預(yù)測(cè)模型,引入云模型充分考慮了態(tài)勢(shì)值的隨機(jī)性和模糊性,通過約束協(xié)方差矩陣自適應(yīng)進(jìn)化策略算法優(yōu)化模型參數(shù),在小樣本情況下達(dá)到較高的精度。文獻(xiàn)[6]提出一個(gè)兩層的遞歸神經(jīng)網(wǎng)絡(luò)長(zhǎng)短期記憶(long short-term memory, LSTM)網(wǎng)絡(luò)和循環(huán)門控單元(recurrent gate unit,GRU)的預(yù)測(cè)模型,雖然很大程度上解決了預(yù)測(cè)精度的問題,但是也增加了模型復(fù)雜度和訓(xùn)練的時(shí)間成本。文獻(xiàn)[7]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的態(tài)勢(shì)預(yù)測(cè)模型,選取與未來安全相關(guān)性最高的指標(biāo)數(shù)據(jù)構(gòu)建時(shí)間序列,實(shí)現(xiàn)了態(tài)勢(shì)要素到態(tài)勢(shì)值的映射,但該方法忽略了選取指標(biāo)的重要性差異,將其同等對(duì)待,降低了預(yù)測(cè)精度。
為了更好地處理網(wǎng)絡(luò)安全因素之間的關(guān)系對(duì)網(wǎng)絡(luò)安全形勢(shì)的影響,本文提出一種基于注意力機(jī)制的GRU神經(jīng)網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)模型。考慮到文中采用多屬性的安全指標(biāo)數(shù)據(jù)作為數(shù)據(jù)支持,在傳統(tǒng)的GRU模型上引入注意力機(jī)制融合多屬性網(wǎng)絡(luò)安全數(shù)據(jù),根據(jù)各屬性的重要性對(duì)其賦予注意力權(quán)重,通過編碼過程將多源安全數(shù)據(jù)融合成態(tài)勢(shì)值進(jìn)行預(yù)測(cè),然后利用優(yōu)化的粒子群優(yōu)化(particle swarm optimization, PSO)算法確定網(wǎng)絡(luò)的超參數(shù)和網(wǎng)絡(luò)規(guī)模,進(jìn)一步提高模型的性能。該模型在很大程度上保留了原始網(wǎng)絡(luò)安全數(shù)據(jù)并最大化挖掘數(shù)據(jù)之間的相關(guān)性,提高了預(yù)測(cè)精度。本文研究主要包括以下幾點(diǎn):
(1) 利用不同網(wǎng)絡(luò)安全指標(biāo)數(shù)據(jù)在時(shí)間維度上的關(guān)聯(lián)性和差異預(yù)測(cè)未來網(wǎng)絡(luò)安全態(tài)勢(shì),充分挖掘時(shí)間序列所包含的信息并考慮不同指標(biāo)數(shù)據(jù)之間的依賴關(guān)系;
(2) 通過注意力機(jī)制計(jì)算不同指標(biāo)的重要度并進(jìn)行編碼得到該時(shí)刻的網(wǎng)絡(luò)安全態(tài)勢(shì)值;
(3) 為了進(jìn)一步提高性能,降低預(yù)測(cè)誤差,利用優(yōu)化的PSO優(yōu)化神經(jīng)網(wǎng)絡(luò)的超參數(shù)。
為了區(qū)別關(guān)注多屬性網(wǎng)絡(luò)安全數(shù)據(jù)中的重要信息,本文提出基于注意力機(jī)制結(jié)合GRU的網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)方法,利用提出的方法進(jìn)行態(tài)勢(shì)預(yù)測(cè)能夠更好的挖掘原始安全數(shù)據(jù)之間的關(guān)系,確保重要信息不丟失,提高預(yù)測(cè)精度。如圖1所示,該方法的網(wǎng)絡(luò)模型主要由輸入層、GRU編碼器、注意力層和預(yù)測(cè)網(wǎng)絡(luò)4部分組成。
圖1 Attention-GRU預(yù)測(cè)方法的網(wǎng)絡(luò)模型
(1) 輸入層
選取國(guó)家互聯(lián)網(wǎng)應(yīng)急中心的安全數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),該數(shù)據(jù)由5個(gè)安全指標(biāo)構(gòu)成。數(shù)據(jù)輸入網(wǎng)絡(luò)之前將其處理成適合于網(wǎng)絡(luò)訓(xùn)練的數(shù)據(jù)結(jié)構(gòu):時(shí)間步長(zhǎng)×輸入維度。
(2) 編碼器
GRU[9-10]是由循環(huán)神經(jīng)網(wǎng)絡(luò)[8]衍化而來的流行變體,通過引入門控機(jī)制,自適應(yīng)地控制信息的流動(dòng),為神經(jīng)網(wǎng)絡(luò)引入內(nèi)存容量,允許捕捉序列之間的相互依賴關(guān)系,在處理時(shí)間序列方面具有明顯的優(yōu)勢(shì)。因此,選用GRU作為編碼器的神經(jīng)網(wǎng)絡(luò)處理單元從輸入層獲取數(shù)據(jù),輸出的隱藏狀態(tài)值為注意力層進(jìn)行編碼提供數(shù)據(jù)支持。
(3) 注意力層
采用多屬性的歷史信息作為訓(xùn)練數(shù)據(jù)集,該數(shù)據(jù)集有5個(gè)不同的屬性并且數(shù)據(jù)之間存在重要性差異。具有注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)能夠幫助模型更好地學(xué)習(xí)多種內(nèi)容模態(tài)之間的相互關(guān)系,避免神經(jīng)網(wǎng)絡(luò)將不同的預(yù)測(cè)因子同等對(duì)待,忽略了對(duì)重要信息的特別關(guān)注[11-13]。因此,在預(yù)測(cè)網(wǎng)絡(luò)之前引入注意力層,將編碼器的輸出和安全指標(biāo)數(shù)據(jù)作為該單元的輸入,定量地為多屬性網(wǎng)絡(luò)安全數(shù)據(jù)賦予權(quán)重,重點(diǎn)突出各屬性對(duì)于當(dāng)前網(wǎng)絡(luò)安全狀況的影響,讓神經(jīng)網(wǎng)絡(luò)能夠更加專注并高效地找到對(duì)當(dāng)前預(yù)測(cè)輸出更有用的信息,從而得到更準(zhǔn)確的預(yù)測(cè)值。詳細(xì)的處理步驟在第1.3節(jié)介紹。
(4) 預(yù)測(cè)網(wǎng)絡(luò)
將注意力層編碼得到的編碼失量送入預(yù)測(cè)網(wǎng)絡(luò),得到預(yù)測(cè)時(shí)刻網(wǎng)絡(luò)的安全態(tài)勢(shì)值。
GRU神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)涉及多個(gè)超參數(shù)的設(shè)定:神經(jīng)元數(shù)量m、時(shí)間步長(zhǎng)T、批處理大小batch size。神經(jīng)元數(shù)量決定了神經(jīng)網(wǎng)絡(luò)的擬合程度,時(shí)間步長(zhǎng)和批處理大小直接影響模型訓(xùn)練的結(jié)果。在實(shí)際應(yīng)用中,不同數(shù)據(jù)集對(duì)應(yīng)不同的超參數(shù)設(shè)定會(huì)影響預(yù)測(cè)精度[14-15]。本文采用優(yōu)化的PSO對(duì)這些超參數(shù)進(jìn)行尋優(yōu),根據(jù)輸入數(shù)據(jù)自適應(yīng)優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練方式,得到模型參數(shù)的最優(yōu)組合
PSO算法是一種基于種群的生物啟發(fā)式算法[16-18],對(duì)于一個(gè)J維的優(yōu)化問題,種群中有I個(gè)粒子,每個(gè)粒子具有一個(gè)J維的速度和位置。在第p次迭代中,第i個(gè)粒子不同維度的速度向量和位置向量為
(1)
(2)
(3)
(4)
基于每次找到的兩個(gè)最佳位置,根據(jù)式(5)和式(6)更新粒子速度和位置尋找最優(yōu)解。
(5)
(6)
標(biāo)準(zhǔn)PSO算法中c1、c2都是固定的,無法根據(jù)種群中粒子到最優(yōu)解的距離自適應(yīng)的調(diào)整位置,并且粒子更新的速度取決于粒子到自身的個(gè)體最佳位置和到群體最佳位置的距離,所以本文對(duì)PSO算法進(jìn)行改進(jìn),使c1、c2根據(jù)進(jìn)化過程和粒子當(dāng)前位置同個(gè)體最佳位置及全局最佳位置的距離進(jìn)行自適應(yīng)的調(diào)整。優(yōu)化后的學(xué)習(xí)因子自適應(yīng)調(diào)整公式如下:
(7)
(8)
以上優(yōu)化的PSO算法得到模型最優(yōu)參數(shù)的具體方法如下:
步驟 1初始化算法相關(guān)參數(shù),確定種群規(guī)模、迭代次數(shù)、慣性權(quán)重和學(xué)習(xí)因子的變化區(qū)間;
步驟 2隨機(jī)生成一個(gè)三維的種群粒子(m,T,batch size),并初始化粒子的位置和速度、粒子的維度即我們需要優(yōu)化的參數(shù);
步驟 3以上述模型的損失函數(shù)作為粒子的適應(yīng)度函數(shù),適應(yīng)度函數(shù)越小說明模型的損失函數(shù)越小,則該粒子求得的參數(shù)組合越好。計(jì)算每個(gè)粒子的適應(yīng)度函數(shù),根據(jù)適應(yīng)度函數(shù)確定個(gè)體最佳位置和群體最佳位置;
步驟 4迭代過程中根據(jù)式(5)和式(6)更新粒子的速度和位置,其中的c1、c2為優(yōu)化后的式子,再重新計(jì)算每個(gè)粒子的適應(yīng)度函數(shù)并更新個(gè)體最佳位置和群體最佳位置;
步驟 5當(dāng)達(dá)到迭代次數(shù)或粒子的適應(yīng)度函數(shù)趨于穩(wěn)定時(shí)則停止,作為群體最佳位置的粒子為本次求得的最優(yōu)參數(shù)組合,否則轉(zhuǎn)步驟4繼續(xù)迭代。
基于PSO算法求解模型最優(yōu)參數(shù)組合的算法流程圖如圖2所示。
圖2 PSO算法優(yōu)化模型超參數(shù)的流程圖
本文主要針對(duì)網(wǎng)絡(luò)安全態(tài)勢(shì)的多影響因素、時(shí)間相關(guān)等特點(diǎn),采用GRU網(wǎng)絡(luò)并引入注意力機(jī)制建立編碼預(yù)測(cè)網(wǎng)絡(luò)。同時(shí)利用PSO算法優(yōu)化GRU超參數(shù),提高預(yù)測(cè)精度。基于Attention-GRU預(yù)測(cè)方法的具體算法流程介紹如下。
步驟 1本文原始輸入時(shí)間序列為具有n個(gè)安全指標(biāo)的多屬性網(wǎng)絡(luò)數(shù)據(jù),輸入樣本數(shù)據(jù)為
X=[x1,x2,…,xn]T=[x1,x2,…,xT]∈Rn×T
(9)
式中,T為時(shí)間步長(zhǎng),每個(gè)訓(xùn)練樣本Xtrain∈Rn×1為n×1階矩陣。
步驟 2初始化GRU神經(jīng)網(wǎng)絡(luò)的參數(shù)并將其超參數(shù)設(shè)置為PSO算法求得的最優(yōu)組合,將訓(xùn)練樣本輸入編碼器GRU,通過GRU單元將輸入序列Xtrain映射為編碼器的隱藏狀態(tài)ht:
rt=σ(Wr[ht-1,xt]+br)
(10)
zt=σ(Wz[ht-1,xt]+bz)
(11)
(12)
(13)
步驟 3訓(xùn)練樣本同編碼器GRU的輸出作為注意力層的輸入,目的是對(duì)每個(gè)時(shí)刻的訓(xùn)練樣本進(jìn)行有差異性的數(shù)據(jù)融合,此步驟主要包括3部分。
首先需要計(jì)算編碼器隱藏狀態(tài)值與不同屬性之間的相似性得分:
(14)
(15)
最后對(duì)輸入數(shù)據(jù)進(jìn)行加權(quán)求和操作,得到t時(shí)刻融合后的網(wǎng)絡(luò)安全態(tài)勢(shì)值:
(16)
通過對(duì)n個(gè)不同屬性進(jìn)行加權(quán)平均得到t時(shí)刻安全指標(biāo)的融合值。
步驟 4將步驟3的輸出作為輸入送入預(yù)測(cè)網(wǎng)絡(luò),計(jì)算t時(shí)刻的網(wǎng)絡(luò)輸出,此時(shí)預(yù)測(cè)網(wǎng)路GRU的隱藏狀態(tài)更新為
dt=GRU(yt-1,dt-1,ct)
(17)
(18)
重復(fù)步驟2到步驟4,計(jì)算出所有訓(xùn)練樣本的預(yù)測(cè)值。
在網(wǎng)絡(luò)的訓(xùn)練階段,使用監(jiān)督學(xué)習(xí)對(duì)模型進(jìn)行訓(xùn)練,以均方誤差函數(shù)作為模型的損失函數(shù),其數(shù)學(xué)定義如下:
(19)
由于整個(gè)預(yù)測(cè)過程是平滑且可微的,可以采用端對(duì)端的學(xué)習(xí)方式直接通過神經(jīng)網(wǎng)絡(luò)的前向傳播和梯度的反向傳播同模型的其他部分進(jìn)行聯(lián)合優(yōu)化網(wǎng)絡(luò)參數(shù)。采用Adam[19-21]優(yōu)化算法對(duì)模型參數(shù)進(jìn)行優(yōu)化,優(yōu)化過程中通過最小化損失函數(shù)不斷迭代更新神經(jīng)元的權(quán)值矩陣和偏置使損失函數(shù)輸出值達(dá)到最低。
采用國(guó)家互聯(lián)網(wǎng)應(yīng)急中心發(fā)布的安全態(tài)勢(shì)周報(bào)數(shù)據(jù)作為實(shí)驗(yàn)基礎(chǔ)。國(guó)家互聯(lián)網(wǎng)應(yīng)急中心[22]是中國(guó)大陸的一個(gè)網(wǎng)絡(luò)安全技術(shù)協(xié)調(diào)組織,主要是對(duì)全國(guó)的安全事件進(jìn)行統(tǒng)計(jì)處理并評(píng)估網(wǎng)絡(luò)安全狀態(tài),并以周、月、年為周期發(fā)布安全信息。動(dòng)態(tài)周報(bào)主要以5個(gè)安全指標(biāo)評(píng)估網(wǎng)絡(luò)安全基本態(tài)勢(shì),其中包括境內(nèi)感染網(wǎng)絡(luò)病毒的主機(jī)數(shù)量、境內(nèi)被篡改網(wǎng)站總數(shù)、境內(nèi)被植入后門網(wǎng)站總數(shù)、境內(nèi)網(wǎng)站的仿冒頁(yè)面數(shù)量和新增信息安全漏洞數(shù)量。本文主要選取2017年第32期到2019年第45期共119期的安全數(shù)據(jù)為實(shí)驗(yàn)基礎(chǔ)驗(yàn)證本文方法的優(yōu)越性。引用文獻(xiàn)[23]的評(píng)估方法對(duì)原始數(shù)據(jù)進(jìn)行量化,得到119周的網(wǎng)絡(luò)安全態(tài)勢(shì)值,其具體的量化模型如圖3所示。
圖3 網(wǎng)絡(luò)安全態(tài)勢(shì)評(píng)估量化模型
本文按照時(shí)間順序選取前101周的數(shù)據(jù)為訓(xùn)練集,后18周的數(shù)據(jù)為測(cè)試集,時(shí)間窗口設(shè)置為循環(huán)神經(jīng)網(wǎng)絡(luò)的時(shí)間步長(zhǎng),預(yù)測(cè)時(shí)長(zhǎng)為一周。由于網(wǎng)絡(luò)環(huán)境的復(fù)雜性和隨機(jī)性,態(tài)勢(shì)值量綱差異大,本文所用神經(jīng)網(wǎng)絡(luò)的激活函數(shù)對(duì)于輸入數(shù)據(jù)的取值是否在[-1,1]內(nèi)異常敏感,因此對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化可以加快收斂速度,提高神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)精度。采用下面的方法對(duì)輸入數(shù)據(jù)進(jìn)行歸一化:
(20)
式中,x′、x為處理前的數(shù)據(jù);min(x)和max(x)是數(shù)據(jù)集中的最小值和最大值。因此,歸一化后的網(wǎng)絡(luò)安全態(tài)勢(shì)值如圖4所示。
圖4 標(biāo)準(zhǔn)化后的網(wǎng)絡(luò)安全態(tài)勢(shì)時(shí)間序列
本文選取兩種計(jì)量方法對(duì)所提出的預(yù)測(cè)模型進(jìn)行評(píng)價(jià):平均絕對(duì)誤差(mean absolute error,MAE),均方根誤差(root mean square error,RMSE)。具體的公式定義如下:
(21)
(22)
通過第2.2節(jié)對(duì)數(shù)據(jù)進(jìn)行預(yù)處理后,采用PSO算法求得模型參數(shù)的最優(yōu)組合。對(duì)改進(jìn)的PSO算法進(jìn)行初始化設(shè)置:PSO算法的種群大小為5,進(jìn)化次數(shù)為20次,每個(gè)粒子的維度為3,分別代表需要優(yōu)化的參數(shù):編碼器神經(jīng)元數(shù)、預(yù)測(cè)網(wǎng)絡(luò)神經(jīng)元數(shù)、時(shí)間步長(zhǎng)T和批處理大小batch-size。為了簡(jiǎn)單起見設(shè)置編碼器神經(jīng)元數(shù)和預(yù)測(cè)網(wǎng)絡(luò)神經(jīng)元數(shù)相等,學(xué)習(xí)因子c1和c2的最大值為2.5,最小值為0.5,權(quán)重因子W為0.8。
2.3.1 模型最優(yōu)參數(shù)組合的仿真分析
圖5展示了PSO算法優(yōu)化Attention-GRU神經(jīng)網(wǎng)絡(luò)的訓(xùn)練結(jié)果,神經(jīng)元個(gè)數(shù)、時(shí)間步長(zhǎng)和批處理大小隨著算法的更新逐漸收斂至最優(yōu)值。由圖4可以看到,神經(jīng)元個(gè)數(shù)最終收斂至32個(gè),模型訓(xùn)練數(shù)據(jù)的批處理大小為1,最佳時(shí)間步長(zhǎng)為6,至此我們獲得了性能最好的超參數(shù)來修正本文的模型結(jié)構(gòu),得到本文模型的最佳參數(shù)組合。
圖5 IPSO優(yōu)化Attention-GRU的參數(shù)變化
為了評(píng)價(jià)本文提出來的模型在網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)中的性能,與傳統(tǒng)的機(jī)器學(xué)習(xí)方法和深度學(xué)習(xí)方法進(jìn)行了對(duì)比實(shí)驗(yàn),包括反向傳播(back propagation, BP)神經(jīng)網(wǎng)絡(luò)、GRU、PSO_SVM[24]和基于注意力模型的AIS-LSTM[25]、Attention-RNN[26]。文獻(xiàn)[26]中的方法最初用于機(jī)器翻譯,在翻譯任務(wù)中解碼器的輸出為每個(gè)時(shí)間步生成碼字的概率,為了執(zhí)行本文網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)任務(wù),將網(wǎng)絡(luò)的輸出修改為單個(gè)標(biāo)量值,均方誤差函數(shù)作為損失函數(shù)。同時(shí)為了公平起見,所有模型均采用本文所提PSO算法得到最優(yōu)參數(shù)組合。
本文的實(shí)驗(yàn)環(huán)境為:Windows 10操作系統(tǒng), python3.7環(huán)境下采用Keras深度學(xué)習(xí)框架進(jìn)行模型訓(xùn)練和測(cè)試。硬件配置為:64位操作系統(tǒng),處理器為Inter(R) Core(TM) i5-8500 CPU 3.00 GHz。
2.4.1 注意力模型的可視化
針對(duì)基于注意力模型的AIS-LSTM[25]、Attention-RNN[26]和本文所提出來的Attention-GRU模型,為了更好地理解在一個(gè)時(shí)間步長(zhǎng)內(nèi)不同屬性的注意力分配比例,將注意力權(quán)重用熱力圖可視化出來,熱力圖中顏色越深的地方代表分配的注意力權(quán)重越大。從圖6可以看出橫坐標(biāo)為一個(gè)步長(zhǎng)時(shí)間,縱坐標(biāo)為5個(gè)不同的屬性,隨著時(shí)間點(diǎn)的不同,熱力圖中顏色深淺也不同表明注意力模型在每個(gè)時(shí)間點(diǎn)為不同屬性賦予不同的權(quán)重,有效地利用一個(gè)時(shí)間步長(zhǎng)內(nèi)的局部信息,自適應(yīng)地融合了該時(shí)刻的網(wǎng)絡(luò)安全態(tài)勢(shì)值。
圖6 注意力分配比例可視圖
2.4.2 預(yù)測(cè)精度比較
為了從整體上評(píng)估各模型的預(yù)測(cè)能力,計(jì)算不同模型最終的兩種誤差,結(jié)果如表1所示,由于神經(jīng)網(wǎng)絡(luò)權(quán)重初始化的隨機(jī)性,實(shí)驗(yàn)結(jié)果存在一定的偏差,對(duì)所有預(yù)測(cè)模型進(jìn)行多次實(shí)驗(yàn)取平均值以減少隨機(jī)誤差,增加對(duì)比的公平性。根據(jù)本文選取的平均絕對(duì)誤差和均方根誤差兩個(gè)評(píng)價(jià)指標(biāo)來衡量預(yù)測(cè)結(jié)果的準(zhǔn)確性,兩種評(píng)價(jià)指標(biāo)分別表示預(yù)測(cè)值同真實(shí)值之間的偏差和擬合精確度,值越小說明預(yù)測(cè)效果越好。我們可以看到本文所提模型在整體的誤差上相比其他模型有較大的優(yōu)勢(shì),相比文獻(xiàn)[25]的方法,誤差降低了60.9%;相比文獻(xiàn)[26],誤差降低了78.3%;同單獨(dú)使用GRU的預(yù)測(cè)模型相比,誤差降低了97.8%。表明注意力機(jī)制在權(quán)重分配方面給予了積極作用,說明了本文提出對(duì)于網(wǎng)絡(luò)安全態(tài)勢(shì)值的多屬性預(yù)測(cè)方法是有效的。
表1 模型預(yù)測(cè)誤差指標(biāo)對(duì)比
表2的結(jié)果也可以進(jìn)一步證明基于注意力機(jī)制的預(yù)測(cè)方法在多數(shù)時(shí)間點(diǎn)上可以得到很好的預(yù)測(cè)結(jié)果。表2為不同預(yù)測(cè)模型在進(jìn)行預(yù)測(cè)時(shí)各時(shí)間點(diǎn)的絕對(duì)誤差,可以看出本文方法的預(yù)測(cè)絕對(duì)誤差全部都控制在0.004之內(nèi)并且多數(shù)的誤差相比于0.004會(huì)更低一個(gè)數(shù)量級(jí),相比其他模型預(yù)測(cè)精度高。
表2 不同預(yù)測(cè)模型各時(shí)間點(diǎn)的預(yù)測(cè)絕對(duì)誤差對(duì)比
圖7展示了本文方法同BP、GRU、PSO_SVM[24]等基本預(yù)測(cè)模型和基于注意力模型的AIS-LSTM[25]、Attention-RNN[26]預(yù)測(cè)值精度對(duì)比圖。從圖7上可以直觀地看到所有預(yù)測(cè)模型都有一定的預(yù)測(cè)能力,但本文方法的預(yù)測(cè)值同真實(shí)值的擬合度最高,在每一個(gè)預(yù)測(cè)點(diǎn)幾乎同真實(shí)值重合。相比余下的預(yù)測(cè)方法,SVM的預(yù)測(cè)效果最差,只預(yù)測(cè)出了數(shù)據(jù)的變化趨勢(shì)而無法精確的擬合曲線,主要是因?yàn)橹С窒蛄繖C(jī)主要應(yīng)用于解決小樣本的線性回歸問題,對(duì)于大樣本的預(yù)測(cè),誤差較大。BP神經(jīng)網(wǎng)絡(luò)無法捕捉時(shí)間序列之間的長(zhǎng)期依賴性并且隱含層神經(jīng)元個(gè)數(shù)的選取缺乏理論指導(dǎo),容易陷入局部最優(yōu),預(yù)測(cè)精度低。本文在GRU神經(jīng)網(wǎng)絡(luò)上進(jìn)行改進(jìn)后,可以看到本文方法的預(yù)測(cè)曲線明顯比未進(jìn)行改進(jìn)的更準(zhǔn)確。
圖7 不同預(yù)測(cè)模型的態(tài)勢(shì)值對(duì)比
2.4.3 預(yù)測(cè)時(shí)長(zhǎng)的分析與比較
由于時(shí)間序列預(yù)測(cè)的評(píng)判標(biāo)準(zhǔn)不僅依賴于預(yù)測(cè)的準(zhǔn)確性,還依賴于在不同預(yù)測(cè)時(shí)長(zhǎng)下的準(zhǔn)確性。本文針對(duì)不同預(yù)測(cè)模型在不同預(yù)測(cè)時(shí)長(zhǎng)下的預(yù)測(cè)準(zhǔn)確性進(jìn)行了對(duì)比,結(jié)果如圖8所示。可以看到所有模型在進(jìn)行單步預(yù)測(cè)時(shí)誤差最小,在相同預(yù)測(cè)時(shí)長(zhǎng)下,本文的預(yù)測(cè)能力較好,隨著預(yù)測(cè)時(shí)長(zhǎng)的增大,預(yù)測(cè)誤差逐漸增大后變化穩(wěn)定,模型具有一定的魯棒性。
圖8 不同預(yù)測(cè)時(shí)長(zhǎng)下的平均絕對(duì)誤差對(duì)比
2.4.4 模型復(fù)雜度分析
根據(jù)上文對(duì)模型預(yù)測(cè)步驟的描述,分析每次模型訓(xùn)練的時(shí)間復(fù)雜度。N為樣本個(gè)數(shù),m為神經(jīng)元個(gè)數(shù),Q=m/batch size為模型訓(xùn)練一次內(nèi)部的迭代次數(shù),模型參數(shù)迭代更新Q次。GRU內(nèi)部存在2個(gè)門結(jié)構(gòu)和一個(gè)候選狀態(tài),同時(shí)注意力層為一個(gè)前饋神經(jīng)網(wǎng)絡(luò),因此本文的時(shí)間復(fù)雜度為O(3Q(2Nm+m2)),同其他預(yù)測(cè)模型的復(fù)雜度比較如表3所示。
表3 不同模型的復(fù)雜度對(duì)比
2.4.5 收斂性分析
第2.4.4節(jié)對(duì)比了不同模型訓(xùn)練一次的復(fù)雜度,圖9為模型的訓(xùn)練誤差隨迭代次數(shù)的變化情況。由于文獻(xiàn)[24]同本文收斂性分析比較方法不同,因此不予比較。從圖9中可以觀察出本文方法在收斂速度與收斂精度上均具有顯著的優(yōu)勢(shì),說明模型能夠很好的學(xué)習(xí)數(shù)據(jù)。
圖9 訓(xùn)練誤差隨迭代次數(shù)變化的曲線
2.4.6 執(zhí)行時(shí)間分析
本文所指執(zhí)行時(shí)間包括3部分:PSO算法求解最優(yōu)參數(shù)組合時(shí)間、模型訓(xùn)練時(shí)間和測(cè)試時(shí)間。機(jī)制的執(zhí)行時(shí)間同時(shí)與模型的復(fù)雜度、迭代次數(shù)和算法的進(jìn)化代數(shù)相關(guān),通過實(shí)驗(yàn)分別記錄了各模型的執(zhí)行時(shí)間,如表4所示。
前3種網(wǎng)絡(luò)產(chǎn)生的時(shí)間差異主要來源于網(wǎng)絡(luò)的內(nèi)部單元結(jié)構(gòu),RNN內(nèi)部為一個(gè)具有簡(jiǎn)單激活函數(shù)的神經(jīng)元,優(yōu)化參數(shù)少,時(shí)間代價(jià)小但預(yù)測(cè)誤差也大。LSTM內(nèi)部有3個(gè)門結(jié)構(gòu)和一個(gè)候選狀態(tài),優(yōu)化參數(shù)明顯增多的同時(shí)帶來了預(yù)測(cè)精度的提升。GRU具有兩個(gè)門結(jié)構(gòu)即相對(duì)減少了參數(shù)的同時(shí)降低了預(yù)測(cè)誤差。后3種網(wǎng)絡(luò)由于結(jié)構(gòu)簡(jiǎn)單、處理簡(jiǎn)單,因此執(zhí)行時(shí)間代價(jià)很小,但這些方法的預(yù)測(cè)誤差較大,無法準(zhǔn)確預(yù)測(cè)網(wǎng)絡(luò)安全態(tài)勢(shì)值。
表4 不同模型的執(zhí)行時(shí)間對(duì)比
針對(duì)存在時(shí)序性且受多個(gè)變量共同影響的網(wǎng)絡(luò)安全態(tài)勢(shì)序列的預(yù)測(cè),本文提出并驗(yàn)證了一種基于注意力模型融合多變量的網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)方法。該方法結(jié)合了GRU神經(jīng)網(wǎng)絡(luò)和注意力機(jī)制,充分挖掘了原始數(shù)據(jù)中多變量的相互依賴關(guān)系,避免了過度依賴評(píng)估結(jié)果的準(zhǔn)確性。優(yōu)化的PSO算法根據(jù)數(shù)據(jù)自適應(yīng)的確定模型的最優(yōu)參數(shù)組合,使模型在進(jìn)行態(tài)勢(shì)預(yù)測(cè)時(shí)具有更高的預(yù)測(cè)精度與預(yù)測(cè)效率。通過實(shí)驗(yàn)數(shù)據(jù)和仿真分析,說明了本文模型的高效性和實(shí)用性。