章樂(lè)貴,邢長(zhǎng)友,余 航,鄭 鵬
(陸軍工程大學(xué) 指揮控制工程學(xué)院,江蘇 南京 210007)
流量矩陣(traffic matrix,TM)是網(wǎng)絡(luò)內(nèi)源(origin)節(jié)點(diǎn)和目的(destination)節(jié)點(diǎn)對(duì)之間流量的具體描述,矩陣中的每個(gè)元素都表示某一源和目的對(duì)之間的流量大小。作為網(wǎng)絡(luò)態(tài)勢(shì)的一種重要表現(xiàn)形式,流量矩陣能夠給網(wǎng)絡(luò)管理員提供許多關(guān)于當(dāng)前網(wǎng)絡(luò)狀態(tài)有價(jià)值的全局信息,是解決網(wǎng)絡(luò)中很多問(wèn)題不可或缺的組成部分,如網(wǎng)絡(luò)規(guī)劃、流量計(jì)費(fèi)、流量工程、負(fù)載均衡、異常檢測(cè)和網(wǎng)絡(luò)性能分析等。由于流量矩陣在解決網(wǎng)絡(luò)問(wèn)題中的極端重要性,近二十年來(lái),關(guān)于流量矩陣的研究受到了國(guó)內(nèi)外學(xué)者的高度關(guān)注,各類(lèi)流量矩陣測(cè)量與推斷技術(shù)不斷發(fā)展。
雖然準(zhǔn)確獲取流量矩陣對(duì)網(wǎng)絡(luò)運(yùn)營(yíng)者來(lái)說(shuō)至關(guān)重要,各類(lèi)研究人員也對(duì)如何準(zhǔn)確獲取流量矩陣提出了許多不同的方法,包括統(tǒng)計(jì)方法、最優(yōu)化方法和時(shí)間序列方法等,但現(xiàn)實(shí)條件下想要準(zhǔn)確獲取流量矩陣始終存在困難?,F(xiàn)有的流量矩陣測(cè)量方法主要可分為直接測(cè)量法和估計(jì)推斷法。由于當(dāng)前計(jì)算機(jī)網(wǎng)絡(luò)快速發(fā)展,網(wǎng)絡(luò)規(guī)模不斷擴(kuò)張,網(wǎng)絡(luò)結(jié)構(gòu)日趨復(fù)雜,通過(guò)部署大量節(jié)點(diǎn)直接進(jìn)行測(cè)量的方法既受限于缺乏有效的測(cè)量框架,又因測(cè)量耗費(fèi)無(wú)法承受逐漸失去了其現(xiàn)實(shí)意義。而對(duì)于現(xiàn)有的利用流量矩陣其內(nèi)在聯(lián)系進(jìn)行分析計(jì)算的推斷法而言,又因流量矩陣推斷問(wèn)題在線(xiàn)性求解上固有的高度病態(tài)特性難以有效解決而時(shí)常陷入困難。
K
個(gè)最有用的流量來(lái)推斷TM。其中,iStamp將流表分為兩部分:第一部分用于匯總測(cè)量,第二部分用于對(duì)選定流進(jìn)行逐流監(jiān)視。使用這兩個(gè)不同的部分,iStamp可以估算流量矩陣。同時(shí),D Jiang等人開(kāi)發(fā)了一種算法,可以從采樣的流量跟蹤中以細(xì)粒度的時(shí)間估計(jì)和恢復(fù)網(wǎng)絡(luò)流量矩陣。他們的算法基于分形插值,三次樣條插值和加權(quán)幾何平均算法。王昌鈺從矩陣本身出發(fā),使用歐氏距離作為最優(yōu)化度量,解決了流量矩陣中的病態(tài)性問(wèn)題,但并未考慮網(wǎng)絡(luò)流量矩陣本身的時(shí)間性和空間性。此外,Azzouni和Pujolle提出了NeuTM,它是基于長(zhǎng)期短期記憶遞歸神經(jīng)網(wǎng)絡(luò)的TM預(yù)測(cè)框架。實(shí)驗(yàn)證明,NeuTM可以使用歷史數(shù)據(jù)來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò)以預(yù)測(cè)未來(lái)的TM。在機(jī)器學(xué)習(xí)領(lǐng)域,Choudhury等人描述了機(jī)器學(xué)習(xí)在SDN賦能的IP /光網(wǎng)絡(luò)中用于TM預(yù)測(cè)的應(yīng)用。在他們的工作中,使用機(jī)器學(xué)習(xí)來(lái)對(duì)流量矩陣的所有元素進(jìn)行短期和長(zhǎng)期預(yù)測(cè)是一未來(lái)的趨勢(shì)。2014年Ian Goodfellow等人提出了生成對(duì)抗網(wǎng)絡(luò)(generative adversarial networks,GAN),給出了生成對(duì)抗網(wǎng)絡(luò)的框架及理論收斂性分析。生成對(duì)抗網(wǎng)絡(luò)是一種無(wú)監(jiān)督機(jī)器學(xué)習(xí)的人工智能算法,通過(guò)兩個(gè)神經(jīng)網(wǎng)絡(luò)在二人零和博弈中相互競(jìng)爭(zhēng)實(shí)現(xiàn)。生成對(duì)抗網(wǎng)絡(luò)包括兩個(gè)子網(wǎng)絡(luò)模型,一個(gè)是生成網(wǎng)絡(luò),也叫生成器(generator,G
),它的作用是使生成的數(shù)據(jù)盡可能與真實(shí)數(shù)據(jù)的分布盡可能一致;另一個(gè)是判別網(wǎng)絡(luò),也叫判別器(discriminator,D
),它的作用是在生成的數(shù)據(jù)與真實(shí)的樣本數(shù)據(jù)之間能夠做出正確判斷,可以理解為一個(gè)二分類(lèi)器。GAN的訓(xùn)練過(guò)程可以理解為一個(gè)極小極大化博弈過(guò)程,生成器的模仿能力與判別器的鑒別能力二者相互促進(jìn)、共同進(jìn)步,最終達(dá)到一個(gè)納什均衡,使得生成器對(duì)原數(shù)據(jù)分布的模擬近乎逼真。根據(jù)GAN網(wǎng)絡(luò)對(duì)于數(shù)據(jù)分布強(qiáng)大的學(xué)習(xí)能力,已經(jīng)有許多基于GAN進(jìn)行數(shù)據(jù)恢復(fù)的研究取得了重大進(jìn)展,因此該文針對(duì)如何將GAN用于流量矩陣推斷進(jìn)行了研究。
考慮到流量矩陣的低秩性,其內(nèi)部存在大量的冗余,一些研究將流量矩陣估計(jì)推斷問(wèn)題轉(zhuǎn)化成壓縮感知問(wèn)題來(lái)進(jìn)行解決。除了這些技術(shù)之外,基于張量的方法,在多維空間的矩陣推斷中,已被證明是一種用來(lái)估算缺失數(shù)據(jù)更有效的工具。但是,這些完成方法并未明確說(shuō)明異常值,并且可能在數(shù)據(jù)嚴(yán)重?fù)p壞的情況下導(dǎo)致性能顯著下降。另一方面,由于流量矩陣內(nèi)部各元素之間存在強(qiáng)相關(guān)性,為了盡可能地挖掘、利用流量矩陣內(nèi)部這一空間特性,該文使用了卷積神經(jīng)網(wǎng)絡(luò)對(duì)生成器、判別器兩大神經(jīng)網(wǎng)絡(luò)進(jìn)行了改進(jìn)。根據(jù)相關(guān)研究表明,理論上深度神經(jīng)網(wǎng)絡(luò)能夠?qū)崿F(xiàn)任意功能的函數(shù)。為了使模型具有更強(qiáng)的學(xué)習(xí)能力,盡可能模擬出真實(shí)數(shù)據(jù)的分布,該文使用深度卷積網(wǎng)絡(luò)作為GAN結(jié)構(gòu)中生成器和判別器的架構(gòu)。通過(guò)設(shè)置大小不同的卷積核,獲取不同大小范圍感受野的特征,可以更好地學(xué)習(xí)到數(shù)據(jù)分布。使用深度卷積神經(jīng)網(wǎng)絡(luò)的另一個(gè)優(yōu)勢(shì)在于能有效利用流量矩陣的低秩特性,減少中間變量和參數(shù)的設(shè)置,進(jìn)一步優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)。
盡管GAN有著許多優(yōu)秀的特性,但是與此同時(shí)也陷入了和其他機(jī)器學(xué)習(xí)方法相同的問(wèn)題——完整數(shù)據(jù)依賴(lài)性。原生GAN在訓(xùn)練過(guò)程中需要包含完整數(shù)據(jù)的數(shù)據(jù)集進(jìn)行輔助,這意味著需要預(yù)先獲取大量整個(gè)目標(biāo)流量矩陣——包括矩陣中每個(gè)位置上元素的歷史數(shù)據(jù),以此完成對(duì)損失函數(shù)的構(gòu)建,而構(gòu)建合理的損失函數(shù)是對(duì)模型參數(shù)進(jìn)行訓(xùn)練優(yōu)化的基礎(chǔ),這樣一來(lái),就使得GAN一旦離開(kāi)了完整的數(shù)據(jù)集將無(wú)法工作。事實(shí)上,對(duì)于現(xiàn)代大型網(wǎng)絡(luò)而言,想要獲取完整的流量矩陣數(shù)據(jù)是一件幾乎不可能的事情,包括該文所研究的流量矩陣推斷問(wèn)題,同樣也是為了更好地獲得流量矩陣數(shù)據(jù)。完整流量矩陣數(shù)據(jù)的缺乏,成為了研究推進(jìn)的瓶頸。為了消除模型的完整數(shù)據(jù)依賴(lài),該文引入了掩碼矩陣作為構(gòu)建損失函數(shù)的依據(jù),并以此為依據(jù)獲得了優(yōu)化函數(shù)。這種做法有效地避開(kāi)了完整數(shù)據(jù)依賴(lài)問(wèn)題,使得模型可以在沒(méi)有任何完整數(shù)據(jù)的前提下解決流量矩陣推斷的機(jī)器學(xué)習(xí)解法,降低了問(wèn)題解決的門(mén)檻和耗費(fèi)。
生成對(duì)抗網(wǎng)絡(luò)(GAN)的數(shù)學(xué)模型描述如下:
V
(G
,D
)=E
~[logD
(x
)]+E
~[log(1-D
(x
))](1)
其中,x
表示輸入判別器的向量,E
表示期望值,P
表示真實(shí)數(shù)據(jù)的分布,P
表示G
生成數(shù)據(jù)的分布。這個(gè)式子的好處在于,固定生成器(G
)之后,maxV
(G
,D
)就表示P
和P
之間的差異,只需要找到一個(gè)參數(shù)最“完美”的G
,使得它的最大值最小化,也就是P
和P
兩個(gè)分布之間差異最小,即收斂在:(2)
假設(shè)目標(biāo)網(wǎng)絡(luò)有m
個(gè)節(jié)點(diǎn),則該網(wǎng)絡(luò)中共有m
個(gè)OD流,它的流量矩陣應(yīng)該是一個(gè)m
×m
的方陣,因此假設(shè)A
是該網(wǎng)絡(luò)中第i
個(gè)節(jié)點(diǎn)到第j
個(gè)節(jié)點(diǎn)之間的OD流,目標(biāo)網(wǎng)絡(luò)的流量矩陣就可以表示為:=(A
)×(3)
接下來(lái)引入掩碼矩陣(mask matrix,MM)的概念。文中掩碼矩陣的作用是標(biāo)明矩陣中各個(gè)位置元素是否有真實(shí)值的一個(gè)01矩陣,掩碼矩陣的規(guī)模與對(duì)應(yīng)的流量矩陣一致,文中掩碼矩陣同樣也是一個(gè)m
×m
的方陣。其中,如果A
的數(shù)據(jù)是真實(shí)測(cè)得的數(shù)據(jù),那么對(duì)應(yīng)的M
=1;否則如果A
的數(shù)據(jù)是缺失的,那么相應(yīng)的M
=0,即:(4)
模型的基本架構(gòu)如圖1所示。
圖1 模型基本架構(gòu)
在圖1所示的模型中,G
和D
分別是生成器和判別器。為只含有部分測(cè)量數(shù)據(jù)信息的缺失矩陣,根據(jù)矩陣,由公式(4)可以獲得該流量矩陣對(duì)應(yīng)的掩碼矩陣,二者共同作為生成器的輸入。生成器G
利用已知的和作為輸入,輸出作為對(duì)原矩陣的一個(gè)推斷結(jié)果。是一個(gè)提示矩陣,由生成,含有部分信息。作為一個(gè)輔助輸入,用于輔助判別器D
判別其主輸入中各個(gè)元素是否是原始數(shù)據(jù),是原始輸入的打個(gè)標(biāo)記“1”,不是的打個(gè)標(biāo)記“0”,從而獲得一個(gè)對(duì)的估計(jì)。G
的能力越強(qiáng),生成的就越接近于真實(shí)情況,D
的判別結(jié)果就越容易判為全真(即M
為全1矩陣),這顯然是在相對(duì)條件下弱化了D
,因此與D
努力判別出M
真實(shí)情況構(gòu)成博弈,在訓(xùn)練過(guò)程中正是利用了這一點(diǎn)使得兩者的能力都不斷得到強(qiáng)化,最終到達(dá)平衡時(shí)獲得一個(gè)強(qiáng)大的生成器G
,G
能夠?qū)υ瓟?shù)據(jù)中缺失的部分以較高的準(zhǔn)確率推斷出來(lái)。圖1中的G_loss和D_loss分別是生成器和判別器的損失函數(shù),通常被用于優(yōu)化模型參數(shù),同時(shí)也被用于檢驗(yàn)生成器/判別器能力強(qiáng)弱。
通過(guò)訓(xùn)練D
來(lái)最大化正確預(yù)測(cè)的概率,訓(xùn)練G
來(lái)最小化D
預(yù)測(cè)的概率。定義要量化的V
(D
,G
)為:V
(D
,G
)=E
,,[logD
(,)+(1-)log(1-D
(,))](5)
根據(jù)Goodfellow在原始GAN中的推導(dǎo),目標(biāo)函數(shù)可以寫(xiě)成:
(6)
(7)
其中,為規(guī)模和一致的隨機(jī)生成的噪聲。圖2中,“G_”表示模型參數(shù),在本模型中共設(shè)置了三個(gè)卷積層,“G_w2”,“G_w3”,“G_w4”分別為相對(duì)應(yīng)的三個(gè)卷積核,卷積核大小分別為 “7×7”,“5×5”和 “3×3”?!癎_b1”,“G_b2”,“G_b3”,“G_b4”分別表示各層的偏置。將最后一個(gè)卷積層輸出的結(jié)果矩陣命名為,為保證原有數(shù)據(jù)不被更改,以免引入新的誤差,在最后的輸出層將原始數(shù)據(jù)重新賦回,即:圖2 生成器(G)結(jié)構(gòu)
=⊙+⊙(1-)(8)
最終輸出的就是對(duì)原數(shù)據(jù)的一個(gè)推斷結(jié)果。M
來(lái)表示,因此也可以認(rèn)為是對(duì)掩碼矩陣中位置部分的推斷。圖3中,“D_”表示模型參數(shù),在本模型中共設(shè)置了三個(gè)卷積層,“D _w2”,“D _w3”,“D _w4”分別為相對(duì)應(yīng)的三個(gè)卷積核,卷積核大小分別為 “7×7”,“5×5”和 “3×3”?!癉 _b1”,“D _b2”,“D _b3”,“D _b4”分別表示各層的偏置。將最后一個(gè)卷積層輸出的結(jié)果矩陣命名為M
,即判別器的輸出。圖3 判別器(D)結(jié)構(gòu)
x
,y
間的交叉熵公式:F
(x
,y
)=∑[x
logy
+(1-x
)log(1-y
)](9)
該文使用交叉熵函數(shù)來(lái)計(jì)算損失函數(shù),結(jié)合公式(5)和公式(6),可以得到判別器的損失函數(shù):
D
=E
[F
(,)](10)
考慮生成器的損失函數(shù)時(shí),急需要使生成器最后一次卷積得到的結(jié)果中原數(shù)據(jù)保留位置的元素盡可能保持不變,又要使生成器生成的部分不被判別器判別出來(lái)。
對(duì)于原有數(shù)據(jù)而言,在圖2中,經(jīng)過(guò)生成器G
處理之后輸出的應(yīng)該盡可能使原始數(shù)據(jù)保持不變,和之間的差異帶來(lái)的損失可以用均方差來(lái)體現(xiàn),這個(gè)損失同時(shí)也是衡量整個(gè)模型準(zhǔn)確率的關(guān)鍵指標(biāo):(11)
從博弈的角度出發(fā),G
要盡量使D
不能判別出來(lái)哪些數(shù)據(jù)是由G
生成的,因此這部分的損失可以由圖3中和的交叉熵來(lái)表示:G
2=∑(1-)log(1-)(12)
將關(guān)于G
的兩個(gè)誤差加權(quán)和作為生成器的損失函數(shù):G
=∑(1-)log(1-)+(13)
其中,λ
是一個(gè)正常數(shù),用于平衡生成器損失函數(shù)所考慮的兩個(gè)方面損失相互之間的重要性。m
=12)。為了正確測(cè)試模型的泛化性能,從數(shù)據(jù)集中隨機(jī)抽取10%作為驗(yàn)證集,剩余90%作為訓(xùn)練集。為驗(yàn)證模型在流量矩陣推斷上的表現(xiàn),在實(shí)驗(yàn)中對(duì)模型參數(shù)配置如下:將數(shù)據(jù)缺失率設(shè)為20%;每輪訓(xùn)練128個(gè)樣本,即mini_batch = 128,每訓(xùn)練完10個(gè)mini_batch計(jì)算一次誤差和損失函數(shù);訓(xùn)練過(guò)程中學(xué)習(xí)率設(shè)為3×10;計(jì)算G_loss1所用的權(quán)值λ
=10;掩碼矩陣對(duì)提示矩陣的提示率為0.9。圖4顯示了在2 000輪次訓(xùn)練過(guò)程中本模型進(jìn)行流量矩陣推斷的誤差,即公式(11)計(jì)算的G
_loss1。圖4表明,在整個(gè)訓(xùn)練過(guò)程中,G
_loss1在訓(xùn)練開(kāi)始階段下降明顯,在500輪訓(xùn)練后逐漸趨于平穩(wěn),約1 000輪次的訓(xùn)練后G
_loss1達(dá)到約0.10,隨后開(kāi)始圍繞均衡點(diǎn)震蕩。由此可見(jiàn),模型在無(wú)完整數(shù)據(jù)的條件下,對(duì)于缺失流量矩陣的推斷仍然能夠保證較高的準(zhǔn)確率。圖4 訓(xùn)練過(guò)程中模型對(duì)流量矩陣推斷誤差曲線(xiàn)
圖5顯示了整個(gè)訓(xùn)練階段中判別器和生成器的損失函數(shù)變化情況。根據(jù)圖5可以看到,在訓(xùn)練開(kāi)始階段(0~250輪),判別器和生成器的損失都在不斷減小,
圖5 訓(xùn)練過(guò)程中判別器(D)/生成器(G)損失曲線(xiàn)
這表明兩者的能力都在不斷增強(qiáng)。而后判別器的損失繼續(xù)下降,但生成器的損失開(kāi)始上升,這是由于生成器在計(jì)算損失時(shí)同時(shí)考慮了流量矩陣和掩碼矩陣兩個(gè)方面的損失所產(chǎn)生的,到模型最后階段,兩個(gè)損失函數(shù)都趨于穩(wěn)定,模型訓(xùn)練完成。
圖6顯示了在其他參數(shù)保持不變的情況下,在1 000輪次的訓(xùn)練過(guò)程中,當(dāng)缺失率取不同的值時(shí)的模型誤差曲線(xiàn)(G_loss1)。根據(jù)圖6可以得出結(jié)論,測(cè)量得到的流量矩陣數(shù)據(jù)信息越多,模型的誤差就越小,反之則誤差越大,這與主觀經(jīng)驗(yàn)是完全一致的。如圖6所示,當(dāng)缺失率低于30%時(shí),模型都能夠以較高的準(zhǔn)確率(G
_loss1≈0.
10)得到推斷結(jié)果。當(dāng)缺失率高于50%時(shí),模型的推斷結(jié)果開(kāi)始逐漸變差,當(dāng)缺失率達(dá)到90%時(shí),模型的推斷功能將徹底失效,無(wú)法再起到任何作用。圖6 不同缺失率下的推斷誤差
根據(jù)實(shí)驗(yàn)驗(yàn)證可以得出結(jié)論,本模型具備在缺少完整數(shù)據(jù)的情況下,僅僅利用缺失的流量矩陣數(shù)據(jù)就能以較低的誤差水平推斷得到完整的流量矩陣。并且本模型在缺失率低于50%的條件下都能有較好的表現(xiàn),在缺失率低于90%的條件下也能起到一定的效果,但無(wú)法保證較低的誤差水平。
該文研究了如何在缺少完整流量矩陣數(shù)據(jù)集的條件下,解決流量矩陣推斷問(wèn)題,并結(jié)合Goodfellow教授提出的生成對(duì)抗網(wǎng)絡(luò)技術(shù),給出了一種新的推斷方法,建立了基于掩碼矩陣評(píng)估的卷積生成對(duì)抗網(wǎng)絡(luò)(BM-DCGAN)模型。通過(guò)利用深度卷積神經(jīng)網(wǎng)絡(luò)強(qiáng)大的建模功能,實(shí)現(xiàn)了在不使用完整流量矩陣數(shù)據(jù)的前提下,僅利用測(cè)量獲取的部分流量矩陣數(shù)據(jù),在模型的輔助下將位置部分的流量矩陣數(shù)據(jù)推斷出來(lái)。該模型可以實(shí)現(xiàn)在容忍低于30%數(shù)據(jù)缺失的情況下,以0.10左右的誤差將缺失的流量矩陣還原。
與以前的方法相比,該方法具有以下優(yōu)勢(shì):
(1)無(wú)需大量的完整數(shù)據(jù)用于訓(xùn)練,減少了測(cè)量耗費(fèi),降低了網(wǎng)絡(luò)測(cè)量成本,從而降低了問(wèn)題解決的代價(jià),使模型更具有實(shí)際意義;
(2)使用卷積神經(jīng)網(wǎng)絡(luò),利用卷積特性,有效捕捉了流量矩陣的空間特征;
(3)模型收斂速度快,推斷誤差小,實(shí)現(xiàn)了高效使用的目的。
計(jì)算機(jī)技術(shù)與發(fā)展2022年2期