本發(fā)明屬于網(wǎng)絡(luò)安全數(shù)據(jù)處理,具體涉及基于bert預(yù)訓(xùn)練模型的網(wǎng)絡(luò)安全ner數(shù)據(jù)增廣方法、電子設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、網(wǎng)絡(luò)安全是指網(wǎng)絡(luò)系統(tǒng)的硬件、軟件及其系統(tǒng)中的數(shù)據(jù)受到保護(hù),不因偶然的或者惡意的原因而遭受到破壞、更改、泄露,系統(tǒng)連續(xù)可靠正常地運(yùn)行,網(wǎng)絡(luò)服務(wù)不中斷,網(wǎng)絡(luò)安全的實(shí)施過程中,需使用數(shù)據(jù)存儲(chǔ)終端來對(duì)數(shù)據(jù)進(jìn)行保存。對(duì)網(wǎng)絡(luò)安全數(shù)據(jù)的監(jiān)控和存儲(chǔ)通常伴隨著人工的參與會(huì)導(dǎo)致網(wǎng)絡(luò)安全數(shù)據(jù)存儲(chǔ)效率過低,并且存在人工審核遺漏導(dǎo)致有安全漏洞的網(wǎng)絡(luò)安全數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)庫中,因此如何準(zhǔn)確、有效的獲得網(wǎng)絡(luò)安全數(shù)據(jù)是現(xiàn)階段需要解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明要解決的問題是提高網(wǎng)絡(luò)安全數(shù)據(jù)的效率和準(zhǔn)確度,提出基于bert預(yù)訓(xùn)練模型的網(wǎng)絡(luò)安全ner數(shù)據(jù)增廣方法、電子設(shè)備及存儲(chǔ)介質(zhì)。
2、為實(shí)現(xiàn)上述目的,本發(fā)明通過以下技術(shù)方案實(shí)現(xiàn):
3、一種基于bert預(yù)訓(xùn)練模型的網(wǎng)絡(luò)安全ner數(shù)據(jù)增廣方法,包括如下步驟:
4、s1.采集網(wǎng)絡(luò)空間安全報(bào)告,得到網(wǎng)絡(luò)空間安全數(shù)據(jù),待用;
5、s2.使用bio方法標(biāo)注步驟s1采集的網(wǎng)絡(luò)空間安全報(bào)告,得到的文本序列和標(biāo)簽序列,作為原始數(shù)據(jù)集,待用;
6、s3.構(gòu)建bert預(yù)訓(xùn)練模型;
7、s4.將步驟s1得到的網(wǎng)絡(luò)空間安全數(shù)據(jù)進(jìn)行掩碼處理,然后輸入到bert預(yù)訓(xùn)練模型中進(jìn)行訓(xùn)練,得到用于網(wǎng)絡(luò)安全ner數(shù)據(jù)的bert訓(xùn)練模型;
8、s5.將步驟s2得到的原始數(shù)據(jù)集進(jìn)行掩碼處理,輸入到步驟s4得到的用于網(wǎng)絡(luò)安全ner數(shù)據(jù)的bert訓(xùn)練模型,輸出用于網(wǎng)絡(luò)安全ner數(shù)據(jù)的bert訓(xùn)練結(jié)果,將得到的用于網(wǎng)絡(luò)安全ner數(shù)據(jù)的bert訓(xùn)練結(jié)果和步驟s2得到的原始數(shù)據(jù)集進(jìn)行合并后,得到基于bert預(yù)訓(xùn)練模型的網(wǎng)絡(luò)安全ner數(shù)據(jù)增廣數(shù)據(jù)集。
9、進(jìn)一步的,步驟s1采集網(wǎng)絡(luò)空間安全報(bào)告通過網(wǎng)絡(luò)爬蟲結(jié)合專家手工打標(biāo)得到。
10、進(jìn)一步的,步驟s2中的bio標(biāo)注方法為其中每個(gè)標(biāo)記由三部分之一構(gòu)成,標(biāo)記b為實(shí)體的開始,i為實(shí)體的內(nèi)部,o為屬于任何一個(gè)實(shí)體,進(jìn)行以下標(biāo)記:
11、設(shè)置標(biāo)注集合t=(b-實(shí)體類型,i-實(shí)體類型,o);
12、基于步驟s1的網(wǎng)絡(luò)空間安全數(shù)據(jù),給定輸入序列x=(x1,x2,…xi…xn),其中xi為第i個(gè)單詞;
13、根據(jù)bio標(biāo)注方法生成標(biāo)注序列z=(z1,z2,…zi…zn),其中zi為第i個(gè)標(biāo)記,zi∈t,bio規(guī)則的表達(dá)式為:
14、
15、進(jìn)一步的,步驟s3的具體實(shí)現(xiàn)方法包括如下步驟:
16、s3.1.設(shè)置給定輸入序列x=(x1,x2,……xn);
17、s3.2.在輸入序列中隨機(jī)選擇位置進(jìn)行掩碼處理,得到掩碼位置的集合然后構(gòu)造生成掩碼序列y=(y1,y2,……yn),其中對(duì)于每一個(gè)i∈m的yi為第i個(gè)掩碼,對(duì)于的yi=xi;
18、s3.3.在huggingface上下載開源bert預(yù)訓(xùn)練模型,接受掩碼序列y作為輸入,生成輸出序列yout=(yout1,yout2,……youtn),對(duì)于所述的掩碼部分即i∈m時(shí),輸出的是預(yù)測(cè)的單詞分布youti=p(yi|y);
19、s3.4.bert預(yù)訓(xùn)練模型,訓(xùn)練的是最大化被掩碼位置的預(yù)測(cè)概率,損失函數(shù)使用交叉熵?fù)p失,表達(dá)式為:
20、
21、其中,l為訓(xùn)練的損失,訓(xùn)練目標(biāo)為在m集合中對(duì)應(yīng)的位置尋找一組yi使得損失最小。
22、進(jìn)一步的,步驟s4的具體實(shí)現(xiàn)方法包括如下步驟:
23、s4.1.將步驟s1得到的網(wǎng)絡(luò)空間安全數(shù)據(jù)首先進(jìn)行原始文本進(jìn)行片段劃分,對(duì)于每個(gè)片段,每當(dāng)繼續(xù)添加一句文本時(shí),對(duì)輸入片段的整體長(zhǎng)度進(jìn)行判斷,如果其長(zhǎng)度大于模型要求的最大長(zhǎng)度max_length,則放棄添加該句文本并保存當(dāng)前的文本片段;
24、s4.2.對(duì)文本片段進(jìn)行劃分后,進(jìn)行掩碼處理,如果為非實(shí)體部分且0-1隨機(jī)數(shù)小于替換概率p,則將其修改為[mask]掩碼;
25、s4.3.使用步驟s3得到的bert預(yù)訓(xùn)練模型對(duì)替換后的帶有掩碼的文本片段進(jìn)行訓(xùn)練,設(shè)置指替換后的帶有掩碼的文本片段,有標(biāo)記數(shù)據(jù)集為dtrain,替換概率為p,領(lǐng)域適應(yīng)性訓(xùn)練模型之后的bert為g;
26、bert自動(dòng)化的生成三種嵌入,分別為詞嵌入ei、位置嵌入pi和分段嵌入di;將詞嵌入、位置嵌入和分段嵌入相加,形成詞的最終輸入表示hi,表達(dá)式為:
27、hi=ei+pi+di
28、bert由多層transformer組成,假設(shè)有l(wèi)層,每層的輸出表示為其中l(wèi)=1,2,3……l;每一層中的自注意力機(jī)制的表達(dá)式為:
29、
30、其中,wq、wk、wv分別為可學(xué)習(xí)的查詢矩陣的權(quán)重矩陣、鍵矩陣的權(quán)重矩陣、值矩陣的權(quán)重矩陣,dk為縮放因子,q為查詢矩陣、k為鍵矩陣、v為值矩陣;
31、s4.4.在訓(xùn)練過程中使用交叉熵?fù)p失函數(shù)來衡量預(yù)測(cè)概率分布和實(shí)際標(biāo)簽之間的差異,對(duì)每個(gè)詞xi的交叉熵?fù)p失的表達(dá)式為:
32、
33、其中,ytrue為第i個(gè)詞的真實(shí)標(biāo)簽;
34、則總損失是所有詞的交叉熵?fù)p失之和,表達(dá)式為:
35、
36、最終訓(xùn)練目標(biāo)為找到一組參數(shù)使得該損失最小化,得到用于網(wǎng)絡(luò)安全ner數(shù)據(jù)的bert訓(xùn)練模型。
37、進(jìn)一步的,步驟s5的具體實(shí)現(xiàn)方法包括如下步驟:
38、s5.1.首先初始化增廣數(shù)據(jù)集,記為dsynthesis,其為空;
39、s5.2.將步驟s2得到的原始數(shù)據(jù)集進(jìn)行掩碼處理,遍歷每一個(gè)如果對(duì)于xi其對(duì)應(yīng)的yi是o且隨機(jī)種子<閾值p,就將xi替換為掩碼標(biāo)記[mask];
40、s5.3.使用步驟s4得到的用于網(wǎng)絡(luò)安全ner數(shù)據(jù)的bert訓(xùn)練模型對(duì)帶掩碼標(biāo)記的序列進(jìn)行處理,獲得用于網(wǎng)絡(luò)安全ner數(shù)據(jù)的bert訓(xùn)練結(jié)果
41、s5.4.使用步驟s5.3得到的用于網(wǎng)絡(luò)安全ner數(shù)據(jù)的bert訓(xùn)練結(jié)果替換原始序列并且向dsynthesis中添加替換后的原始序列;
42、s5.5.然后將步驟s2得到的原始數(shù)據(jù)集合并到dsynthesis中,得到基于bert預(yù)訓(xùn)練模型的網(wǎng)絡(luò)安全ner數(shù)據(jù)增廣數(shù)據(jù)集。
43、一種電子設(shè)備,包括存儲(chǔ)器和處理器,存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述的處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)所述的一種基于bert預(yù)訓(xùn)練模型的網(wǎng)絡(luò)安全ner數(shù)據(jù)增廣方法的步驟。
44、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)所述的一種基于bert預(yù)訓(xùn)練模型的網(wǎng)絡(luò)安全ner數(shù)據(jù)增廣方法。
45、本發(fā)明的有益效果:
46、本發(fā)明所述的一種基于bert預(yù)訓(xùn)練模型的網(wǎng)絡(luò)安全ner數(shù)據(jù)增廣方法,引入了masked?language?model(mlm)任務(wù),這是一種幫助模型更好地理解語言上下文的預(yù)訓(xùn)練方法。mlm任務(wù)的內(nèi)容是:在一個(gè)句子中,隨機(jī)選中一定百分比的token,將這些token用[mask]替換。然后用分類模型預(yù)測(cè)[mask]實(shí)際上是什么詞,對(duì)句子進(jìn)行隨機(jī)掩蓋并給出了預(yù)測(cè)結(jié)果。
47、本發(fā)明所述的一種基于bert預(yù)訓(xùn)練模型的網(wǎng)絡(luò)安全ner數(shù)據(jù)增廣方法,使用預(yù)訓(xùn)練模型進(jìn)行預(yù)測(cè),由于模型已經(jīng)在大量語料數(shù)據(jù)上進(jìn)行了訓(xùn)練,可以充分考慮到上下文的影響從而生成符合語義的替換詞,減少噪音的引入。此外,預(yù)訓(xùn)練模型的預(yù)測(cè)結(jié)果可能并非同義詞,而是符合語義的其他詞匯,可以進(jìn)一步提高文本的多樣性,減少過擬合現(xiàn)象。
48、本發(fā)明所述的一種基于bert預(yù)訓(xùn)練模型的網(wǎng)絡(luò)安全ner數(shù)據(jù)增廣方法,利用的預(yù)訓(xùn)練模型的推理能力,比過去的同義詞替換要強(qiáng)。因?yàn)橥x詞替換只局限于同義詞,預(yù)訓(xùn)練模型會(huì)替換為符合邏輯的詞。
49、本發(fā)明所述的一種基于bert預(yù)訓(xùn)練模型的網(wǎng)絡(luò)安全ner數(shù)據(jù)增廣方法,增廣處理,掩碼不是直接隨機(jī)添加的而是有一步判斷,首先標(biāo)注要是o才會(huì)進(jìn)行隨機(jī)替換,這樣的好處是對(duì)于網(wǎng)安數(shù)據(jù),很多實(shí)體是沒法替換的,比如windows他是操作系統(tǒng)的名詞而不是窗戶。使用了繼續(xù)預(yù)訓(xùn)練技術(shù),因?yàn)閎ert本身是面向通用領(lǐng)域的,必須對(duì)其灌入網(wǎng)安領(lǐng)域知識(shí),所以要加一步繼續(xù)預(yù)訓(xùn)練。
50、本發(fā)明所述的一種基于bert預(yù)訓(xùn)練模型的網(wǎng)絡(luò)安全ner數(shù)據(jù)增廣方法,得到的數(shù)據(jù)集是原始數(shù)據(jù)集和增廣數(shù)據(jù)集的和,必然比原始數(shù)據(jù)集大,一定程度上解決了有標(biāo)注數(shù)據(jù)難以獲得的問題。