李晨庚 謝四江
1(西安電子科技大學(xué) 陜西 西安 710071)2(北京電子科技學(xué)院 北京 100070)
保密工作是各國長久以來非常重要的國家安全基礎(chǔ)工作。自《保密法》頒布以來,全國各單位與部門都依照保密法規(guī)定,制定相關(guān)保密細則,完善保密管理制度。不過由于各單位與部門的情況、領(lǐng)域各不相同,涉密事項種類繁多,定密方式單一,保密管理流程有所差異。定密大都依賴人工定密,指定專人負責文檔的接收、制定定密細則、進行文檔定密,以及分類管理。這樣傳統(tǒng)的定密方式造成定密工作效率低下,質(zhì)量無法保證。
目前對定密工作的研究集中于定密制度、流程及管理上。高波等[1]研究對比不同國家定密制度,介紹和分析了美軍的定密制度。陳翠玲等[2]總結(jié)了國內(nèi)定密發(fā)展現(xiàn)狀,結(jié)合借鑒國外先進理論,提出了改進國內(nèi)定密工作的措施與方案。
在定密方式上,國內(nèi)對定密工作的智能化與數(shù)字化研究并不多。張帆等[3]從基于可信度的不確定推理模型入手,提出基于可信度的不確定推理輔助定密方法,該方法通過專家打分的方式對從定密法規(guī)中抽取定密規(guī)則設(shè)定可信度,計算規(guī)則匹配后相關(guān)密級的可信度來確定涉密文檔所屬密級,這開啟了計算機輔助定密方面的研究。吳國華等[4]提出了根據(jù)文檔相似度快速查找定密依據(jù)的方法,基于VSM模型和匈牙利算法的文本相似度計算,確定最終文檔密級。潘婭[5]提出一種基于中文文本分類技術(shù)的計算機輔助密級界定方法,將中文文本分類技術(shù)應(yīng)用到文檔定密任務(wù)上,通過對文檔進行預(yù)處理,并用TF-IDF進行文檔關(guān)鍵詞權(quán)重計算,完成向量化過程,針對定密任務(wù)的特點,提出基于二叉樹的多分類SVM,完成計算機輔助定密,提高了定密的準確性。在定密方式的研究上,發(fā)展趨勢是從人工定密轉(zhuǎn)向計算機輔助定密,在定密方法上是從基于統(tǒng)計的方式到基于機器學(xué)習(xí)的方式。
在實際定密工作中,目前大多數(shù)采用的是基于關(guān)鍵詞的方式。根據(jù)定密細則中的涉密關(guān)鍵詞與文檔進行比對,文檔中出現(xiàn)涉密關(guān)鍵詞和詞對越多,則說明文檔越有可能被定為相應(yīng)密級。這種方式忽略了文檔中會出現(xiàn)與關(guān)鍵詞相似表達的問題,雖然文檔中不含有涉密關(guān)鍵詞,但語句表示的含義仍是涉密的。
綜上,為解決以上輔助定密所產(chǎn)生的定密不嚴謹、效率低下等問題,本文提出了基于改進的TextRank算法的計算機輔助定密方法,主要做了以下幾個工作:
1) 利用大規(guī)模預(yù)訓(xùn)練網(wǎng)絡(luò)生成的glove詞向量,基于詞性構(gòu)造具有語義信息的加權(quán)句向量。
2) 對待定密文檔解析生成句子節(jié)點,并構(gòu)造圖模型,將定密細則融入圖節(jié)點中,利用改進的TextRank算法進行排序計算,獲取關(guān)鍵語句權(quán)重,進行輔助密級界定。
在自然語言處理領(lǐng)域,文本作為非結(jié)構(gòu)化的數(shù)據(jù)結(jié)構(gòu),要進行相關(guān)的計算就必須經(jīng)過預(yù)處理轉(zhuǎn)換為數(shù)值型數(shù)據(jù),預(yù)處理的過程主要包括分詞、去停用詞、文本向量化等操作。其中如何進行文本向量化是自然語言處理領(lǐng)域非常熱門的研究熱點。詞向量質(zhì)量的好與壞對于下游文本分類等任務(wù)也起到非常大的作用。最初的文本向量化方式比較直接,有獨熱編碼(One-hot)、詞袋模型(Bag-of-words model)、TF-IDF(term frequency-inverse document frequency)等向量化方式。One-hot將詞語看作獨立的存在,互相沒有聯(lián)系,也不包含任何語義語法信息,并且在詞匯表非常大的時候造成維度災(zāi)難。Bow和TF-IDF則是考慮了詞語的分布情況,利用詞語的統(tǒng)計特征構(gòu)造向量。TF-IDF不僅可以用來進行文本向量化,也可以用于關(guān)鍵詞計算。但是,這些詞向量表示方式都比較稀疏,并且忽略了語義信息。
1986年Hinton[6]提出詞向量的分布式表示方式,這開啟了新一次的研究熱潮,其中最為經(jīng)典的就是Mikolov等[7]提出的Word2vec算法。Word2vec算法假設(shè)兩個具有相似上下文的詞語表達的意思也相近。根據(jù)這個假設(shè),設(shè)計出cbow模型和skip-gram模型,cbow模型通過上下文來預(yù)測中心詞,skip-gram模型通過中心詞預(yù)測上下文,并在其之后的研究中優(yōu)化了詞向量生成方式,加入負采樣及子采樣等方式。詞向量作為副產(chǎn)物在模型中生成。相比于Word2vec只考慮窗口大小的信息,Pennington等[8]提出的glove詞向量,除了考慮窗口大小的信息,還加入了全局信息,這使得glove詞向量在質(zhì)量上有所提高。
Bengio等[9]提出了一種N-gram神經(jīng)概率語言模型,通過多層前饋神經(jīng)網(wǎng)絡(luò)進行學(xué)習(xí),利用極大似然法預(yù)測在該上下文條件下的當前中心詞的條件概率。Peters等[10]是神經(jīng)語言模型中比較經(jīng)典的模型,采用雙向LSTM來進行監(jiān)督學(xué)習(xí),獲取關(guān)于上下文的動態(tài)向量。
近幾年詞向量研究基本集中在大規(guī)模預(yù)訓(xùn)練網(wǎng)絡(luò)上,以監(jiān)督學(xué)習(xí)方式進行模型訓(xùn)練,然后通過fine-turn嫁接到任務(wù)網(wǎng)絡(luò)之上。這個采用預(yù)訓(xùn)練方式進行文本向量化,不僅可以通過大規(guī)模的語料庫獲得詞語統(tǒng)計信息,而且可以通過深度模型挖掘出語法語義等高級信息。Bert[11]是谷歌在2018年發(fā)布的大型預(yù)訓(xùn)練網(wǎng)絡(luò),在11項NLP任務(wù)中獲得了state-of-the-arts的表現(xiàn),Bert是基于多層的Transformer[12]的Encoder-Decoder模型。解決了傳統(tǒng)神經(jīng)語言模型無法長期依賴問題。并且通過Masked機制解決了“自己看到自己”的問題。本文的文本向量化考慮不同詞向量質(zhì)量以及不同任務(wù)下的表現(xiàn),決定采用glove的預(yù)訓(xùn)練詞向量進行句向量構(gòu)造。
基于圖模型的排序算法本質(zhì)上是一種從整個圖遞歸得出的全局信息來確定圖內(nèi)節(jié)點重要性的方法。比較有名的就是谷歌創(chuàng)始人Brin等[13]提出的PageRank算法以及Jon Kleinberg提出的HITS算法。
PageRank的基本思想是“投票”“推薦”,當一個頂點鏈接到另一個節(jié)點時,算作對另一個節(jié)點的投票,票數(shù)越高,該節(jié)點的重要性就越大。節(jié)點進行投票的重要性決定了投票本身的重要性。一個節(jié)點的重要性來源于為其投票的節(jié)點,以及為其投票節(jié)點的重要性。
如圖1所示,A節(jié)點有三個出鏈分別鏈接到B、C、D上,那么當用戶訪問A節(jié)點的時候,就有可能跳轉(zhuǎn)到B、C或者D節(jié)點,跳轉(zhuǎn)概率均為1/3。B節(jié)點有兩個出鏈,鏈接到A和D節(jié)點上,跳轉(zhuǎn)概率為1/2。
圖1 PageRank節(jié)點示意圖
抽象來說就是一個不帶權(quán)的有向圖G=(V,E),V代表節(jié)點,E代表節(jié)點之間的邊,大小為|V×V|。對于給定節(jié)點Vi,ln(Vi)表示所有鏈接至節(jié)點Vi的節(jié)點集合。Out(Vi)表示節(jié)點Vi所鏈接的節(jié)點集合。節(jié)點Vi的PageRank得分計算如下所示:
(1)
式中:d是范圍在0~1的阻尼系數(shù),表示一個節(jié)點鏈接到另一個隨機節(jié)點的概率,一般被啟發(fā)式的設(shè)置為0.85。然后通過迭代的方式進行計算,直至誤差收斂到某一閾值以下。而對于無向圖的排序來說只是令有向圖中節(jié)點的入度等于出度即可。
HITS是與PageRank同一時期提出的算法,全稱是Hyperlink-Induced Topic Search。在HITS算法中,每個節(jié)點被賦予兩個屬性:Hub屬性和Authority屬性。同時節(jié)點被分為Hub節(jié)點和Authority節(jié)點。Hub是中心的意思,所以Hub節(jié)點包含了許多指向Authority節(jié)點的鏈接。Authority節(jié)點則是指包含實質(zhì)內(nèi)容的節(jié)點。公式如下所示:
(2)
(3)
在Web搜索引擎的環(huán)境下,HITS算法的目的是當用戶給定某個查詢,返回給用戶高質(zhì)量的Authority頁面。Mihalcea等[14]提出將HITS算法應(yīng)用在文本關(guān)鍵句子抽取以及自動摘要任務(wù)上,達到了不錯的應(yīng)用效果。
句子作為一個完整的語義表示單元,如何進行向量化表示也是自然語言處理領(lǐng)域研究熱點。不同于詞語,語句含有的信息更豐富,擁有更精確的語義以及語法表示。Riedel等[15]提出一種簡單但是有效的SIF模型,SIF模型將每個句子先表達為所含詞語詞嵌入的加權(quán)平均,然后把句子放在一起找最大主軸,最后從每個句子移除這個最大主軸。Conneau等[16]提出InferSent模型,類比圖像領(lǐng)域的ImageNet,尋找出自然語言處理的“ImageNet”,在很多NLP任務(wù)中都取得了state-of-the-arts的成果。Ruckel等[17]提出一個新的句子編碼方式,基本思想就是給句子向量“求平均”,獲得不同維度上的特征的句向量。除此之外,近年也有很多句子向量化的方法,例如quick thought[18]等。
考慮到輔助定密任務(wù)的特殊性,文檔定密的依據(jù)信息來源于定密細則,分析定密任務(wù)以及定密細則特點,本文提出了基于詞性的加權(quán)句向量。通過改變名詞性詞向量以及非名詞性詞向量在句子中的表示權(quán)重,在保留語義語法信息的情況下,結(jié)合輔助定密任務(wù)特性,改變名詞性的語義表達信息。在詞向量的選擇上,使用在百度百科語料庫上訓(xùn)練的glove詞向量,詞向量維度為300維,可以在詞的粒度上保留詞語所含有的語義信息。在預(yù)訓(xùn)練詞向量的基礎(chǔ)上,本文基于詞性,構(gòu)建加權(quán)句向量S。
S=[α∑Wi+(1-α)∑Wj]/|Sw|
(4)
式中:α是權(quán)值;Wi是句子中的名詞的向量化表示;Wj表示句子中非名詞的向量化表示;|Sw|表示句子中含有詞語的個數(shù)。通過設(shè)置權(quán)值α,改變名詞在句子中的表達權(quán)重。
根據(jù)PageRank算法改進而來的TextRank算法[19]是一種用于文本的基于圖的排序算法,通過把文本分割成若干組成節(jié)點(單詞、句子)并建立圖模型,根據(jù)節(jié)點的TextRank得分對文本中的節(jié)點進行排序,僅利用單篇文檔本身的信息即可實現(xiàn)關(guān)鍵詞/句提取。與LDA、HMM等模型不同,TextRank不需要事先對多篇文檔進行學(xué)習(xí)訓(xùn)練,使用較為簡潔、高效。
TextRank算法是將文本解析成單詞/句子節(jié)點。這時,圖上的節(jié)點之間的關(guān)系不僅是簡單的指向和被指向關(guān)系,是通過一個權(quán)重ωji來表示節(jié)點之間的鏈接強度,因此是一個帶權(quán)的無向圖。此時In(Vi)=Out(Vi)=全體詞語/句子集合。公式如下所示:
(5)
式中:WS(Vi)表示圖節(jié)點Vi的TextRank得分;d是一個常數(shù)。TextRank算法用作文本摘要時,文本中的每一個句子Si被作為圖節(jié)點Vi。ωji計算公式如下:
(6)
式中:Si表示文檔中第i個句子,wk表示既屬于Si也屬于Sj的單詞,|Si|表示句子Si的單詞個數(shù)。
Pandit等[20]在研究面向查詢的文檔摘要時,將查詢語句融入圖節(jié)點中,并且在迭代計算過程中,保持查詢語句所在節(jié)點的得分始終為1,以此獲得在查詢語句影響下的文檔語句重要性排名。
本文根據(jù)定密任務(wù)特點,改進傳統(tǒng)的TextRank算法中語句相似權(quán)值計算方式,在進行TextRank迭代時,將定密細則納入圖節(jié)點中,獲取在定密細則影響下的文檔句子排名。采用式(7)代替式(6)的相似度計算公式,相比于式(6),式(7)相似度計算方法更能體現(xiàn)語義層次的異同。具體計算公式如下:
ωji=q(Si,Sj)+cos(Si,Sj)
(7)
(8)
Dscore=max(WS(Si)×cos(Si,Z))
(9)
式中:Z表示定密細則;Si代表待定密文檔的第i個句子。將Dscore值與密級關(guān)聯(lián)度k進行比較。大于k的文檔句子定密為相應(yīng)定密細則對應(yīng)密級。這里k值是通過實驗啟發(fā)式的選擇。
模型的具體計算過程如下:
1) 首先解析定密事項為細則句,對于一個待定密文檔D,將定密細則納入文檔D中,然后進行分詞、去停用詞等預(yù)處理。以句子為單位進行分隔,得到句子列表Si。
2) 構(gòu)建加權(quán)句向量Si,并根據(jù)式(7)構(gòu)建ωji矩陣。
3) 迭代計算TextRank得分,并在迭代過程中,保持定密細則的得分始終為1。
4) 計算文檔密級分數(shù)Dscore,并根據(jù)與密級關(guān)聯(lián)度k的關(guān)系判斷文檔密級。
由于涉密數(shù)據(jù)難以獲取,本文利用已有的公開政務(wù)數(shù)據(jù),根據(jù)公開的地質(zhì)材料定密細則內(nèi)容,類比設(shè)計定密細則,實驗數(shù)據(jù)來源于中華人民共和國中央人民政府信息公開網(wǎng)站。涉及民族宗教、國防、對外事務(wù)、財政金融審計等類別的政務(wù)文件。
定密細則的設(shè)定,則是根據(jù)網(wǎng)上已公開的地質(zhì)資料定密細則進行類比設(shè)計,最終擬定實驗用“機密級”以及“絕密級”細則。實驗數(shù)據(jù)集選取了共73條來自不同類別的政務(wù)文件。首先,人工對實驗數(shù)據(jù)集進行“密級”標注。分為普通級文件、機密級文件和絕密級文件。其中,普通級文件45條,機密級文件18條,絕密級文件10條。
實驗環(huán)境如表1所示。
表1 實驗運行環(huán)境
實驗首先用Jieba分詞工具對待定密文檔D進行分詞,刪除停用詞等無意義詞匯。構(gòu)造句向量的詞向量來源于在百度百科語料集上訓(xùn)練的glove詞向量,詞向量大小為300維。算法迭代采用Networkx庫函數(shù),并修改代碼,使得定密細則的得分在迭代過程中始終為1,具體計算過程如圖2所示。
圖2 改進的TextRank算法流程
在改進的TextRank算法迭代計算中,將式(5)中的d設(shè)置為0.85,實驗在不同加權(quán)句向量權(quán)重α以及不同密級關(guān)聯(lián)度k條件下的效果。通過計算文檔定密的準確率來進行評價。具體實驗結(jié)果如圖3所示。
圖3 不同k的準確率變化曲線
圖4是在相同的數(shù)據(jù)集下,將傳統(tǒng)基于關(guān)鍵詞的定密方法與改進的TextRank算法在準確率、精確率以及召回率上進行對比。
圖4 算法效果對比
由圖3可以看出,總體上在相同的權(quán)值α下,準確率隨著k值的增加而不斷增加,在k=0.45左右達到最大值。而在相同的k下,整體上準確率隨著α增大而增大。因為隨著α的增大,句向量的構(gòu)造中名詞詞性的詞匯權(quán)重越來越大。但是在α=0.95時,準確率并沒有隨著α增大而繼續(xù)增大。本文認為當名詞詞匯權(quán)重過于大時,忽視了句子本身的語法信息,導(dǎo)致準確率下降。由圖4可以看出改進的TextRank算法相比于傳統(tǒng)基于關(guān)鍵詞的輔助定密,在準確率和召回率有一定的提升。
本文提出了一種基于改進的TextRank算法的計算機輔助定密方法,該方法結(jié)合構(gòu)造的加權(quán)句向量和改進TextRank算法,在對文檔中的句子權(quán)重計算時,將定密細則納入算法迭代過程中,并在迭代過程中保持定密細則權(quán)重始終為1,從而生成在定密細則影響下的文檔句子權(quán)重。通過文檔句子權(quán)重與定密細則相似度判斷文檔密級,解決了傳統(tǒng)基于關(guān)鍵詞輔助定密準確率不足,質(zhì)量差的問題。實驗結(jié)果表明所提出的改進的TextRank方法相對比傳統(tǒng)基于關(guān)鍵詞的定密方式在準確率上有一定的提升。
近年來,信息安全成為國家安全的重點,涉密電子政務(wù)文件的保密定密工作重要性尤為凸顯。如何結(jié)合定密細則,設(shè)計更高效、速度更快的輔助定密模型,是往后工作的研究方向與重點。