高統(tǒng)超,張?jiān)迫A
(浙江理工大學(xué)信息學(xué)院,浙江杭州 310018)
信息安全與自然語(yǔ)言處理密切相關(guān),近些年來(lái),自然語(yǔ)言處理在信息安全上得到廣泛應(yīng)用。文本表示是自然語(yǔ)言處理中的一項(xiàng)基本任務(wù)[1],以字符為基本元素,將元素的類型轉(zhuǎn)化成數(shù)學(xué)概念上可用于計(jì)算的數(shù)值形式,經(jīng)常用于腳本攻擊檢測(cè)。隨著深度學(xué)習(xí)的發(fā)展,詞向量模型逐漸代替了傳統(tǒng)的文本表示。目前,針對(duì)中文詞向量模型研究方向主要有基于語(yǔ)義、基于形態(tài)和基于輔助知識(shí)三種。
但是,基于語(yǔ)義的方法存在噪音問(wèn)題,上下文詞語(yǔ)和漢字,在不同語(yǔ)境中表現(xiàn)的語(yǔ)義不同,一詞多義的問(wèn)題,需要使用特殊方式進(jìn)行處理。基于形態(tài)的方法利用象形字的特點(diǎn),提取特征信息,但是也會(huì)引入一定的噪音?;谳o助知識(shí)的方法處理流程比較復(fù)雜,對(duì)輔助知識(shí)的依賴性較強(qiáng)。針對(duì)以上存在的問(wèn)題,Chen等人[2]在CWE(Character-enhanced Word Embedding)模型的基礎(chǔ)上提出RECWE模型。模型分為詞組預(yù)測(cè)模型和子信息預(yù)測(cè)模型。除了考慮單詞組成蘊(yùn)含豐富的語(yǔ)義信息之外,還考慮漢字自身結(jié)構(gòu)的形態(tài)特點(diǎn)。此外,還考慮到漢字演變過(guò)程中產(chǎn)生巨大的變化,對(duì)偏旁部首進(jìn)行額外的映射處理,模型在實(shí)驗(yàn)中取得了較好的效果。
因此,本文在R E C W E模型的基礎(chǔ)上進(jìn)行研究。在詞組預(yù)測(cè)模型和子信息預(yù)測(cè)模中,通過(guò)累加求平均數(shù)的方式分別計(jì)算詞組預(yù)測(cè)層和子信息預(yù)測(cè)層向量,但是無(wú)法體現(xiàn)兩個(gè)模型各自組成部分不同的貢獻(xiàn)度。為此,本文基于注意力機(jī)制,采用SAN(Self-Attention)模型和基本注意力機(jī)制[3]分別對(duì)兩個(gè)預(yù)測(cè)模型進(jìn)行改進(jìn),實(shí)驗(yàn)結(jié)果表明改進(jìn)后的RECWE模型具有較好的效果,在信息安全上具有重要的研究?jī)r(jià)值。
詞向量的概念最早來(lái)自分布式表示(Distributed Representation)[4]。語(yǔ)言模型生成詞向量是通過(guò)訓(xùn)練神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型[5](Neural Network Language Model,NNLM)?;舅枷胧菍?duì)出現(xiàn)在上下文環(huán)境里的詞進(jìn)行預(yù)測(cè),本質(zhì)上是一種對(duì)共現(xiàn)統(tǒng)計(jì)特征的學(xué)習(xí)。2013年Google團(tuán)隊(duì)推出開(kāi)源的Word2vec工具[5,6]。Word2vec工具是一款將詞表征為實(shí)數(shù)值向量,簡(jiǎn)單高效,主要包含兩個(gè)模型:跳字模型(Continuous Skip-gram Model,Skip-gram)和連續(xù)詞袋模型(Continuous Bag-of-Words Model,CBOW)。Word2vec工具生成的詞向量可以較好地表達(dá)不同詞語(yǔ)之間的相似程度和類比關(guān)系。
本文以CBOW模型和Skip-gram模型為例,介紹采用語(yǔ)言模型生成詞向量。模型結(jié)構(gòu)圖如圖1所示。
圖1 CBOW和Skip-gram模型結(jié)構(gòu)圖
在CBOW模型中,通過(guò)上下文詞語(yǔ)對(duì)目標(biāo)詞的預(yù)測(cè),得到詞向量。模型包含三層結(jié)構(gòu),假設(shè)目標(biāo)詞為 ,上下文詞向量用表示,為上下文詞窗口大小,則每一層操作為:
(3)輸入層,將輸出層內(nèi)容構(gòu)造為一顆Huffman樹(shù),葉子節(jié)點(diǎn)為數(shù)據(jù)集中出現(xiàn)過(guò)的詞,以該詞在數(shù)據(jù)集中的頻數(shù)為權(quán)值。
模型提供了兩種近似訓(xùn)練法:負(fù)采樣(Neg at i ve sa m pl i ng)和層次Softmax(Hierarchical Softmax),可計(jì)算出目標(biāo)詞出現(xiàn)的概率。Skip-gram模型思想與CBOW模型相反,通過(guò)從目標(biāo)詞對(duì)上下文詞的預(yù)測(cè)中學(xué)習(xí)到詞向量表達(dá),用一個(gè)詞來(lái)預(yù)測(cè)它在文本序列周?chē)脑~,其計(jì)算過(guò)程與CBOW模型類似。
目前,中文詞向量模型主要在C B O W和Skip-gram兩個(gè)模型思想的基礎(chǔ)上進(jìn)行廣泛研究。中英文語(yǔ)言結(jié)構(gòu)本身存在較大的差異,許多學(xué)者基于漢字結(jié)構(gòu)及字詞組合等不同特點(diǎn)進(jìn)行研究,主要分為三種研究方向。
第一,基于語(yǔ)義的方法。該方法是顯式地對(duì)中文字符層級(jí)語(yǔ)義多樣性進(jìn)行建模,可以有效地處理一字多義的問(wèn)題,更能通過(guò)字詞語(yǔ)義相似性的先驗(yàn),非平均地對(duì)待構(gòu)成詞的不同字符。Chen等人[7]根據(jù)中文漢字的特點(diǎn),利用漢字自身也能夠表達(dá)較好的語(yǔ)義信息,提出了CWE模型。為了消除漢字歧義性問(wèn)題,利用漢字在單詞中位置并結(jié)合k-means算法思想提出了三種方案。
第二,基于形態(tài)的方法。該方法深入挖掘漢字的形態(tài)構(gòu)成特征,將中文詞語(yǔ)拆分成字符、偏旁部首、子字符、筆畫(huà)等細(xì)分的特征,與原詞語(yǔ)一并進(jìn)入詞嵌入模型,為模型提供更多的語(yǔ)義信息。Yin等人[8]認(rèn)為中西方語(yǔ)言存在差異,漢字內(nèi)部豐富的語(yǔ)義信息更能表達(dá)詞語(yǔ)的意義,在此基礎(chǔ)上提出MGE (Multi-Granularity Embedding)模型。模型充分利用詞語(yǔ)和漢字的基礎(chǔ)部件,增強(qiáng)詞的向量表示,并在相似度和類比任務(wù)上驗(yàn)證了模型的有效性。Cao等人[9]在Skip-gram模型基礎(chǔ)上,利用漢字一筆一畫(huà)的結(jié)構(gòu)信息和聯(lián)系進(jìn)行研究,提出了cw2vec模型,保證不損失詞向量語(yǔ)義信息。
第三,基于輔助知識(shí)的方法。該方法是利用漢字的外部特征與字詞建立聯(lián)系為模型提供語(yǔ)義輔助。Xu等人[10]認(rèn)為CWE模型中單詞與漢字貢獻(xiàn)度不同,把中文翻譯成英文,使用方法計(jì)算單詞與字之間的相似度以表示貢獻(xiàn)的不同程度。Wu等人[11]根據(jù)象形文字的歷史演變進(jìn)程,提出基于字形的Glyce模型。利用不同歷史時(shí)期的漢字字形(如甲骨文、金文、篆書(shū)、隸書(shū)等)和漢字書(shū)法(如行書(shū)、草書(shū)等)增加字符圖像的象形信息,更廣泛的捕捉漢字的語(yǔ)義特征。而且添加圖像分類的損失函數(shù),利用多任務(wù)學(xué)習(xí)方法增強(qiáng)模型的泛化能力。
注意力機(jī)制(Attention Mechanism)[12]的主要目標(biāo)是將當(dāng)前任務(wù)目標(biāo)相關(guān)的關(guān)鍵信息從各種信息中挑選出來(lái),本質(zhì)上來(lái)看注意力機(jī)制和人類的選擇性視覺(jué)注意力機(jī)制相似。注意力機(jī)制早先用于NLP領(lǐng)域中的機(jī)器翻譯,如圖2所示,在Encoder-Decoder模型[13]中運(yùn)用注意力機(jī)制。
圖2 注意力機(jī)制模塊圖解
其中, 是一個(gè)函數(shù),利用Decoder網(wǎng)絡(luò)最新的隱藏層狀態(tài),和編碼器端第1個(gè)單詞的隱藏層輸出作為輸入,計(jì)算得到。
在以往的詞向量模型的研究中,研究者們基于CBOW模型或Skip-gram模型,通過(guò)單個(gè)通道的結(jié)構(gòu)進(jìn)行研究。RECWE模型改變了以往的做法,提出了新的方法抽取形態(tài)和語(yǔ)義特征,采用與CBOW模型結(jié)構(gòu)相似的并行雙通道網(wǎng)絡(luò)模型,將目標(biāo)詞語(yǔ)的上下文詞語(yǔ)和目標(biāo)詞語(yǔ)中的漢字與上下文詞語(yǔ)中的漢字及各漢字結(jié)構(gòu)信息一起使用來(lái)預(yù)測(cè)目標(biāo)單詞。同時(shí)使用簡(jiǎn)化的轉(zhuǎn)換和部首轉(zhuǎn)義機(jī)制來(lái)提取中文語(yǔ)料庫(kù)中的內(nèi)在信息,結(jié)合豐富的漢字內(nèi)部結(jié)構(gòu)的形態(tài)語(yǔ)義信息。
R E C W E模型結(jié)構(gòu)含有兩個(gè)子模塊。如圖3所示左邊是詞組預(yù)測(cè)模型(Word Prediction Module),通過(guò)利用目標(biāo)詞語(yǔ)的上下文詞語(yǔ)進(jìn)行預(yù)測(cè),其中和表示上下文單詞,表示目標(biāo)詞,表示詞組預(yù)測(cè)層向量;右邊是子信息預(yù)測(cè)模型(Sub-information Prediction Module),其中分別表示詞組預(yù)測(cè)模塊中目標(biāo)詞和上下文詞的漢字、部首和漢字組件,模型對(duì)部首進(jìn)行了轉(zhuǎn)換處理,能夠充分挖掘漢字的語(yǔ)義信息[14]。表示子信息預(yù)測(cè)層向量。為了消除音譯詞語(yǔ)和一詞多義的影響,直接使用代替。目標(biāo)優(yōu)化函數(shù)為:
在RECWE模型,詞組預(yù)測(cè)模型通過(guò)語(yǔ)義的方法獲取關(guān)于目標(biāo)詞語(yǔ)的語(yǔ)義信息,子信息預(yù)測(cè)模型通過(guò)形態(tài)方法提供更多的語(yǔ)義信息。雖然模型在實(shí)驗(yàn)中取得了較好的效果,但是還存在一些問(wèn)題。
(1)在詞組預(yù)測(cè)模型中,通過(guò)對(duì)目標(biāo)詞組語(yǔ)的上下文詞語(yǔ)向量進(jìn)行累加求和,沒(méi)有體現(xiàn)詞語(yǔ)對(duì)目標(biāo)詞語(yǔ)的重要性,例如“筆記本價(jià)格漲幅很大”,當(dāng)“價(jià)格”作為目標(biāo)詞語(yǔ)時(shí),上下文詞語(yǔ)中“漲幅”更能體現(xiàn)目標(biāo)詞語(yǔ)的重要性。在此基礎(chǔ)上,引入自注意力機(jī)制,用于計(jì)算上下文詞語(yǔ)的權(quán)重。
(2)在子信息預(yù)測(cè)模塊,通過(guò)對(duì)每一條評(píng)論語(yǔ)句中的漢字向量、部首向量和組件向量先進(jìn)行求和再求平均,作為子信息向量。這種方法忽略了各自向量之間對(duì)子信息向量不同的貢獻(xiàn)。為此,采用基本注意力機(jī)制,為三者各自向量劃分不同權(quán)重,完善模型。最后通過(guò)對(duì)比實(shí)驗(yàn),驗(yàn)證方法的有效性。
在原始注意力機(jī)制結(jié)構(gòu)的基礎(chǔ)上,本文使用Vaswani等人[15]提出的SAN模型,它與傳統(tǒng)注意力機(jī)制不同之處在于不需要借助額外的語(yǔ)義向量進(jìn)行計(jì)算。該模型處理某一個(gè)位置的單詞時(shí),會(huì)自動(dòng)處理其他位置的單詞是否能夠更好地表達(dá)目標(biāo)詞語(yǔ)的語(yǔ)義信息,為了充分考慮句子之間不同詞語(yǔ)之間的語(yǔ)義及語(yǔ)法聯(lián)系。在機(jī)器翻譯任務(wù)中,架構(gòu)分成編碼器-解碼器結(jié)構(gòu),假設(shè)編碼器中長(zhǎng)度為 的單個(gè)序列輸入向量為編碼器將輸入向量映射為隱藏向量。利用隱藏向量表示整個(gè)序列,會(huì)導(dǎo)致輸入序列語(yǔ)義表示不充分,產(chǎn)生語(yǔ)義信息的損失。因此,計(jì)算隱藏向量時(shí),考慮所有時(shí)間步長(zhǎng)下的隱藏狀態(tài),利用下列公式計(jì)算上下文向量。
圖3 RECWE模型結(jié)構(gòu)
詞組預(yù)測(cè)模型利用單詞作為輸入變量的最小單位,在計(jì)算預(yù)測(cè)層上下文向量時(shí),采用了公式(5)中累加求和的方式,忽略了不同上下文詞語(yǔ)對(duì)目標(biāo)詞語(yǔ)的影響力。為此,在自注意力機(jī)制思想的基礎(chǔ)上,計(jì)算公式為:
為了能夠自適應(yīng)學(xué)習(xí)評(píng)論語(yǔ)句中上下文的語(yǔ)義,針對(duì)自注意力機(jī)制中的權(quán)重向量進(jìn)行了修改,采取了Self-Attention Unit模型中的方法進(jìn)行計(jì)算,引入尺度變換函數(shù),用sigmoid函數(shù)計(jì)算注意力權(quán)重向量。該函數(shù)曲線光滑連續(xù),可以根據(jù)語(yǔ)境能夠較好的區(qū)分上下文詞語(yǔ)與目標(biāo)詞語(yǔ)的語(yǔ)義關(guān)系。修改后的詞組預(yù)測(cè)模型如圖4所示。
圖4 詞組預(yù)測(cè)模型
子信息預(yù)測(cè)模型利用將對(duì)應(yīng)單詞的漢字、部首和字組件之間的語(yǔ)義信息進(jìn)行累加求和,計(jì)算公式如上式所示。模型中每個(gè)字都由三部分構(gòu)成,但是三部分對(duì)字的貢獻(xiàn)度是不同的。在此基礎(chǔ)上,引入基本注意力機(jī)制完善模型,為三者增加不同權(quán)重。改進(jìn)后的模型如圖5所示。
圖5 子信息預(yù)測(cè)模型
式(15)中,通過(guò)對(duì)三者求平均值作為最終子信息預(yù)測(cè)層向量。
本文利用爬蟲(chóng)技術(shù)獲取新聞文本作為實(shí)驗(yàn)的數(shù)據(jù)集。數(shù)據(jù)集中包含很多的英文,中文標(biāo)點(diǎn),亂碼等一些非中文字符以及圖形表示等問(wèn)題。為了保證數(shù)據(jù)集的完整性和平衡性,從中篩選了部分?jǐn)?shù)據(jù)。利用腳本從漢典獲取數(shù)據(jù)集的部首和組件數(shù)據(jù),語(yǔ)料預(yù)處理流程圖如圖6所示。
圖6 評(píng)論文本預(yù)處理流程圖
清洗的目的是去除數(shù)據(jù)中有噪音的內(nèi)容和非文本部分,包括提取原始文本中的標(biāo)題、摘要和正文等信息[17]。本文主要使用正則表達(dá)式進(jìn)行替換和刪除進(jìn)行清洗。中文分詞中使用哈工大社會(huì)計(jì)算與信息檢索研究中心研制的語(yǔ)言技術(shù)平臺(tái)(LTP)的pyltp分詞工具[18],其支持使用分詞外部詞典和使用個(gè)性化分詞模型,在分詞測(cè)評(píng)任務(wù)上,準(zhǔn)確率和分詞速度取得了較好的成績(jī)。停用詞是指文本中出現(xiàn)頻率很高,但是實(shí)際意義并不大的詞語(yǔ),主要包括語(yǔ)氣助詞、副詞、介詞、連詞等。本文使用Mallet工具包[19]中所提供的缺省停用詞列表,在不影響情感分類準(zhǔn)確率的情況下,過(guò)濾停用詞。實(shí)驗(yàn)環(huán)境如表1所示。
實(shí)驗(yàn)數(shù)據(jù)處理完成后,本文所有模型參數(shù)進(jìn)行統(tǒng)一設(shè)置,詞向量維度選擇為200,詞窗口大小5,初始化的學(xué)習(xí)率為0.25,語(yǔ)料中最小詞頻為5,模型迭代次數(shù)為100,高詞頻下采樣閾值為10-4。
表1 實(shí)驗(yàn)環(huán)境設(shè)置
本文使用詞語(yǔ)的相似度和類比兩項(xiàng)任務(wù)進(jìn)行評(píng)價(jià)。在相似度任務(wù)中,利用余弦值表達(dá)單詞地相似性,采用Spearman相關(guān)系數(shù)[6]評(píng)價(jià)相似度任務(wù)的實(shí)驗(yàn)效果。在類比任務(wù)中,目標(biāo)是輸入一組具有特定聯(lián)系的詞語(yǔ)組,期望推理出含有特定單詞的另一組詞語(yǔ)。例如“首都城市1-國(guó)家1=首都城市2-國(guó)家2”,為此,轉(zhuǎn)成數(shù)據(jù)公式進(jìn)行表示為,因此需要找出一個(gè)與的標(biāo)準(zhǔn)化內(nèi)積的值為最大值的詞
向量,利用余弦相似度計(jì)算,計(jì)算公式如公式(16)。
在相似度的任務(wù)中,為了評(píng)估模型改進(jìn)的效果,選擇部分模型作為基礎(chǔ)模型進(jìn)行實(shí)驗(yàn)對(duì)比。選擇wordsim-240和wordsim-296兩種數(shù)據(jù)集作為評(píng)測(cè)文件。實(shí)驗(yàn)結(jié)果如表2所示。
表2 相似度任務(wù)實(shí)驗(yàn)結(jié)果
為了更直觀地展示各個(gè)模型效果,將上述結(jié)果繪制成柱狀圖,如圖7所示。
圖7 六種模型相似度任務(wù)的實(shí)驗(yàn)結(jié)果對(duì)比圖
從圖7中可以發(fā)現(xiàn),改進(jìn)的RECWE模型整體上較其他模型在性能上有一定的提升效果,在兩個(gè)數(shù)據(jù)集中模型提高了2.89%和1.04%。利用自注意力機(jī)制在詞組預(yù)測(cè)模型中,可以發(fā)現(xiàn)效果也比其他模型好,說(shuō)明上下文詞語(yǔ)包含豐富的語(yǔ)義信息,自注意力機(jī)制可以較好的為上下文詞語(yǔ)分配權(quán)重。但是在實(shí)驗(yàn)過(guò)程發(fā)現(xiàn),單個(gè)子信息預(yù)測(cè)模型訓(xùn)練效果較差,原因在于利用漢字及其部首信息會(huì)提供一定的語(yǔ)義,輔助詞組模型作為更好的判斷,但是存在一定的語(yǔ)義含糊或者無(wú)法提供語(yǔ)義幫助的情況,比如“東西”是一個(gè)名詞詞語(yǔ),用于泛指各種具體或抽象的人、事、物。在現(xiàn)代語(yǔ)言交流也包含愛(ài)憎情感色彩成分。而其漢字組成“東”“西”分別是方位描述字,無(wú)語(yǔ)提供精確的語(yǔ)義信息。此時(shí),需要詞組模型根據(jù)上下文詞語(yǔ)尋找更加匹配的語(yǔ)義信息。
在類比任務(wù)中,使用Chen等手動(dòng)構(gòu)建的用于中文詞向量類比任務(wù)的數(shù)據(jù)集,數(shù)據(jù)集的統(tǒng)計(jì)情況如表3所示。采用準(zhǔn)確率作為評(píng)估指標(biāo),實(shí)驗(yàn)結(jié)果如表4所示。
表3 數(shù)據(jù)集的統(tǒng)計(jì)情況
表4 類比任務(wù)實(shí)驗(yàn)結(jié)果
為了更直觀地展示各個(gè)模型效果,將上述結(jié)果繪制成柱狀圖,如圖8所示。
從圖8中可以看出,改進(jìn)后RECWE模型整體上取得了較好的效果,在三個(gè)不同主題的數(shù)據(jù)中,類比任務(wù)分別提高了2.47%、2.02%和1.72%,總體平均成績(jī)提高2.07%。說(shuō)明不同詞語(yǔ)中的漢字及漢字部首提供的語(yǔ)義強(qiáng)弱不同,對(duì)詞語(yǔ)的貢獻(xiàn)也是不同的,通過(guò)利用注意力機(jī)制,可以較好的分配權(quán)重,以突出不同成分的重要性。不同類別數(shù)據(jù),取得效果是不同的,主要原因是根據(jù)訓(xùn)練集有關(guān),存在部門(mén)詞語(yǔ)的漢字和部首無(wú)法提供較好的語(yǔ)義信息,影響類比任務(wù)的效果。同時(shí),隨著漢字的不斷演化,僅僅依靠偏旁部首提供的語(yǔ)義是有限的。
圖8 五種模型類比任務(wù)的實(shí)驗(yàn)結(jié)果對(duì)比圖
詞向量是自然語(yǔ)言處理中一項(xiàng)重要任務(wù),在信息安全中廣泛應(yīng)用,比如WebShell檢測(cè)和XSS注入檢測(cè)等。將WebShell文件和XSS攻擊樣本作為普通文本序列,利用詞向量模型進(jìn)行特征提取,通過(guò)分類訓(xùn)練識(shí)別訪問(wèn)行為和攻擊行為。本文在RECWE模型的基礎(chǔ)上,通過(guò)引用注意力機(jī)制的相關(guān)知識(shí),分別對(duì)詞組預(yù)測(cè)模型和子信息預(yù)測(cè)模型進(jìn)行了改進(jìn),通過(guò)實(shí)驗(yàn)驗(yàn)證改進(jìn)后的有效性。對(duì)于信息安全具有重要的實(shí)際意義。但是,相比較英文來(lái)說(shuō),效果還存在一定差距,還需要進(jìn)一步研究。