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