王學(xué)鋒, 楊若鵬, 朱 巍
(國防科技大學(xué)信息通信學(xué)院聯(lián)合作戰(zhàn)信息通信系, 湖北 武漢 430010)
隨著大數(shù)據(jù)、云計(jì)算、物聯(lián)網(wǎng)在軍事領(lǐng)域的廣泛應(yīng)用,各類軍事文電信息呈指數(shù)級增長,無論是平時(shí)情報(bào)數(shù)據(jù)采集還是戰(zhàn)時(shí)戰(zhàn)場信息處理,各級指揮員面臨的“戰(zhàn)爭迷霧”從“信息不足”演變到“信息過載”。海量的信息短時(shí)間內(nèi)涌入指揮信息系統(tǒng),不僅給通信帶寬造成沉重負(fù)荷,同時(shí)也讓指揮員無所適從,如何從海量的軍事文電信息中自動提取指揮員感興趣的關(guān)鍵信息是當(dāng)前亟待解決的問題之一。信息抽取技術(shù)能將大量非結(jié)構(gòu)化的文本信息自動轉(zhuǎn)化成指揮員所需的結(jié)構(gòu)化的文本信息,不僅提高了指揮信息系統(tǒng)內(nèi)信息的互操作性和復(fù)用性,而且對作戰(zhàn)數(shù)據(jù)庫的動態(tài)更新、軍事情報(bào)的智能處理、作戰(zhàn)要圖的自動生成具有重要意義。
軍事命名實(shí)體識別是軍事文本信息抽取的基礎(chǔ)環(huán)節(jié),主要任務(wù)是識別出軍事文本中的部隊(duì)、時(shí)間、地理位置、武器裝備、設(shè)施機(jī)構(gòu)等專有名稱并加以歸類。目前,在通用領(lǐng)域命名實(shí)體識別的方法主要有基于規(guī)則的方法、基于統(tǒng)計(jì)與機(jī)器學(xué)習(xí)的方法和基于深度學(xué)習(xí)的方法。其中:基于規(guī)則的方法精度高,但是覆蓋度、移植性差且開發(fā)成本高;基于統(tǒng)計(jì)與機(jī)器學(xué)習(xí)的方法開發(fā)成本低,然而對特征工程和中文分詞依賴性強(qiáng);基于深度學(xué)習(xí)的方法精度高,可移植性強(qiáng),但是構(gòu)建詞向量仍然需要分詞,同時(shí)對計(jì)算能力和語料規(guī)模要求高[1]。隨著計(jì)算能力、算法和語料的不斷發(fā)展,基于深度學(xué)習(xí)的方法應(yīng)用于軍事領(lǐng)域?qū)⒊蔀槲磥碥娛旅麑?shí)體識別的趨勢。
近年來,軍事命名實(shí)體識別的研究逐漸受到重視。GUO等[2]基于規(guī)則和詞典的方法,從戰(zhàn)術(shù)報(bào)告中抽取出有意義的實(shí)體;單赫源等[3]利用條件隨機(jī)場(Conditional Random Field,CRF)模型學(xué)習(xí)文本特征,對作戰(zhàn)文書中的軍事命名實(shí)體進(jìn)行了識別;宋瑞亮[4]基于半監(jiān)督的CRF模型,對軍用文書和軍事新聞中的軍事命名實(shí)體進(jìn)行了識別;姜文志等[5]采用CRF與規(guī)則相結(jié)合的方法,對軍事命名實(shí)體進(jìn)行了識別;馮蘊(yùn)天等[6]采用CRF結(jié)合詞典和規(guī)則的方法提取文本特征,比僅用CRF識別效果更好;胡斌等[7]基于模板的方法,從文書中提取標(biāo)繪信息進(jìn)而自動標(biāo)圖。以上研究主要采用傳統(tǒng)方法,在識別效果和可擴(kuò)展性上略顯不足,已經(jīng)難以適應(yīng)軍事理論、武器裝備和作戰(zhàn)力量日新月異的變化,也不能滿足海量大數(shù)據(jù)自動化、智能化處理的需求。目前,軍事命名實(shí)體識別主要存在以下問題:1)軍事命名實(shí)體存在大量組合、嵌套、簡稱等多種形式,且由于個(gè)體語言風(fēng)格和習(xí)慣各異,軍事文本語言表述沒有固定模式,即使是作戰(zhàn)文書也只是對部分內(nèi)容進(jìn)行規(guī)范,因此難以構(gòu)建全面合理的實(shí)體特征;2)現(xiàn)有的分詞工具主要適用于通用領(lǐng)域,對軍事領(lǐng)域分詞準(zhǔn)確率不高,特別是專業(yè)軍事術(shù)語在通用領(lǐng)域少見,即使加入軍語詞典也難以包含所有軍事實(shí)體,因此,這種對分詞依賴性強(qiáng)的方法的識別效果難以突破目前瓶頸。隨著字向量的提出,基于深度學(xué)習(xí)的方法有了新的突破,為此,筆者在前人研究的基礎(chǔ)上,提出基于深度學(xué)習(xí)的軍事命名實(shí)體識別方法,采用基于字向量的雙向長短時(shí)記憶(Bi-directional Long Short-Term Memory,Bi-LSTM)神經(jīng)網(wǎng)絡(luò)提取文本特征,不僅能避免人工提取特征的高成本和復(fù)雜性,而且能有效降低對分詞的依賴性,可以大幅提高軍事命名實(shí)體識別效果并降低系統(tǒng)開發(fā)成本。
針對軍事命名實(shí)體的特點(diǎn),筆者構(gòu)建了基于深度學(xué)習(xí)的軍事命名實(shí)體識別模型,結(jié)構(gòu)如圖1所示。
模型由3部分組成:字向量(character embedding)表示層、Bi-LSTM神經(jīng)網(wǎng)絡(luò)層、CRF層。文本序列的每個(gè)字xi通過字向量表示層轉(zhuǎn)化為模型輸入的字向量ei;字向量序列經(jīng)過Bi-LSTM神經(jīng)網(wǎng)絡(luò)層提取上下文特征并輸出特征向量pi;CRF層根據(jù)特征向量標(biāo)注命名實(shí)體并輸出相應(yīng)標(biāo)簽,實(shí)體的標(biāo)注采用BIO標(biāo)注規(guī)則[3]。
模型的第1層是字向量表示層,字(詞)向量表示是基于深度學(xué)習(xí)的文本處理的核心。字向量有one-hot[8]和character embedding[9]2種表示方法,由于character embedding能避免維數(shù)災(zāi)難,同時(shí)也能體現(xiàn)字之間的語義相關(guān)性,因此,本文選擇character embedding表示字向量,具體步驟如下:
1) 將文本序列以句子為單位進(jìn)行分隔,含有N個(gè)字的句子(字的序列)記作x=(x1,x2,…,xN)。
2) 將文本序列的每個(gè)字xi對應(yīng)轉(zhuǎn)化成字向量矩陣Wd∈Rd×V中的一個(gè)字向量ei,其中:V為語料中字典的總字?jǐn)?shù),一般使用常用漢字、數(shù)字及字母作為字典;d為字向量的維度,在訓(xùn)練字向量時(shí)可以作為預(yù)設(shè)的參數(shù)。字向量矩陣既可以選擇前人研究中預(yù)訓(xùn)練好的字向量,也可以根據(jù)構(gòu)建的語料重新訓(xùn)練。將字xi轉(zhuǎn)化成字向量ei的計(jì)算公式如下:
ei=Wdvi。
式中:向量vi的維度為V,其元素取值規(guī)則為第i行的值取1,其他行的值取0。
3) 將句子轉(zhuǎn)化為字向量序列e=(e1,e2,…,eN),并輸入到模型下一層[9]。
在設(shè)置dropout[10]后,接入一個(gè)線性層,將隱狀態(tài)向量hi從d維映射到K(K是標(biāo)注集的標(biāo)簽數(shù))維,從而得到自動提取的句子特征,記作矩陣P=(p1,p2,…,pN)∈RN×K??梢园裵i∈RK的每一維Pij都視作將字xi分類到第j個(gè)標(biāo)簽的打分值,如果再對P進(jìn)行Softmax[11],就相當(dāng)于按K類對各個(gè)位置獨(dú)立進(jìn)行分類。但是,這樣對各個(gè)位置進(jìn)行標(biāo)注時(shí)無法利用已經(jīng)標(biāo)注過的信息,需接入一個(gè)CRF層來進(jìn)行標(biāo)注。
模型的第3層是CRF層,該層用來學(xué)習(xí)標(biāo)注特征,其可為最后預(yù)測的標(biāo)簽添加一些約束以保證預(yù)測的標(biāo)簽是合法的,如在B-ORG標(biāo)簽后面不能再出現(xiàn)I-LOC標(biāo)簽,且這些約束可以在數(shù)據(jù)訓(xùn)練過程中通過CRF層自動學(xué)習(xí),CRF層的轉(zhuǎn)移矩陣A∈R(K+2)×(K+2),其元素Aij表示從第i個(gè)標(biāo)簽到第j個(gè)標(biāo)簽的轉(zhuǎn)移得分,進(jìn)而在為一個(gè)位置進(jìn)行標(biāo)注時(shí)可以利用此前已經(jīng)標(biāo)注過的標(biāo)簽,K+2表示句子首部、尾部分別添加一個(gè)起始狀態(tài)和一個(gè)終止?fàn)顟B(tài)。如果記一個(gè)長度等于句子長度的標(biāo)簽序列y=(y1,y2,…,yN),那么模型對句子x的標(biāo)簽y的打分
可以看出:整個(gè)序列的打分等于各個(gè)位置的打分之和,而每個(gè)位置的打分由2部分得到,一部分由Bi-LSTM輸出的矩陣P決定,另一部分則由CRF的轉(zhuǎn)移矩陣A決定。模型訓(xùn)練時(shí)通過最大化對數(shù)似然函數(shù),即可求得文本的最佳得分序列。
在神經(jīng)網(wǎng)絡(luò)的輸入層進(jìn)行字向量隨機(jī)初始化時(shí)需要用到字典,輸入層首先讀取每個(gè)字的索引,再轉(zhuǎn)化為one-hot向量,進(jìn)而轉(zhuǎn)化為character embedding向量。字典是將原始文本中所用到的所有漢字、標(biāo)點(diǎn)、數(shù)字及其他標(biāo)志符進(jìn)行統(tǒng)計(jì),然后對每個(gè)字建立一個(gè)數(shù)字索引。如:字典包含5 000個(gè)常用字,字典的格式為{‘基’:1,‘本’:2,‘指’:3,‘揮’:4,…,‘所’:5 000}。
字向量矩陣可以用開源的word2vec[9]工具訓(xùn)練得到。字向量是字的數(shù)值向量形式,每個(gè)數(shù)值均有固定的維度,在訓(xùn)練過程中可以自行設(shè)定,根據(jù)語料規(guī)模可以設(shè)定為50~1 000維,每個(gè)維度表示一個(gè)特征,維度影響模型的精度。字向量矩陣也可以隨機(jī)初始化,視其為一組參數(shù)在模型訓(xùn)練過程中自動進(jìn)行調(diào)優(yōu),進(jìn)而得到所需的字向量矩陣。
實(shí)體標(biāo)注是對文本序列中的每個(gè)元素標(biāo)注一個(gè)標(biāo)簽,文本序列一般以句子為單位,元素是句子中的每個(gè)詞。結(jié)合軍事命名實(shí)體識別的軍事需求,預(yù)定義8類軍事命名實(shí)體,分別是部隊(duì)、機(jī)構(gòu)、時(shí)間、地名、武器、設(shè)施、環(huán)境和數(shù)量[12]。針對嵌套、組合和多重實(shí)體,構(gòu)建軍事命名實(shí)體標(biāo)注規(guī)則[13]。如:“第1機(jī)步師指揮所”既含有部隊(duì),又含有機(jī)構(gòu),作為一個(gè)整體標(biāo)注,應(yīng)標(biāo)注為機(jī)構(gòu);對于“第1集團(tuán)軍第2裝甲旅炮兵營”類型的組合實(shí)體,不進(jìn)行拆分或重復(fù)標(biāo)注,應(yīng)標(biāo)注為一個(gè)實(shí)體部隊(duì);對于多重含義的實(shí)體,根據(jù)語境進(jìn)行標(biāo)注,如“飛機(jī)撞毀五角大樓”中的“五角大樓”應(yīng)標(biāo)注為地理位置,而“五角大樓發(fā)言人”中的“五角大樓”應(yīng)標(biāo)注為機(jī)構(gòu)。針對軍事命名實(shí)體專業(yè)術(shù)語多、歧義少的特征,采用更加簡便高效的BIO標(biāo)注方法。標(biāo)注過程中采取人工和自動標(biāo)注相結(jié)合的方式,首先人工對原始文本進(jìn)行預(yù)處理,然后使用開源工具包YEDDA對文本進(jìn)行標(biāo)注并自動生成標(biāo)簽。BIO標(biāo)注是對數(shù)據(jù)集中的每個(gè)字進(jìn)行標(biāo)注,即B用來表示命名實(shí)體的第1個(gè)字,I用來表示命名實(shí)體的內(nèi)部和結(jié)尾字,O表示不是命名實(shí)體中的字符。實(shí)體標(biāo)注方法如表1所示。
表1 實(shí)體標(biāo)注方法
根據(jù)文本數(shù)據(jù)樣本的數(shù)量選擇訓(xùn)練集和測試集的比例,為提高模型的學(xué)習(xí)效果,可以加上驗(yàn)證集對模型進(jìn)行優(yōu)化。由于目前收集的軍事文本數(shù)據(jù)樣本有限,因此采取如表2、3所示的數(shù)據(jù)集劃分方式。
表2 訓(xùn)練、驗(yàn)證、測試集劃分方式
表3 訓(xùn)練、測試集劃分方式
為驗(yàn)證基于深度學(xué)習(xí)的軍事命名實(shí)體識別方法的效果,筆者在軍事想定數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。
實(shí)驗(yàn)環(huán)境如表4所示。實(shí)驗(yàn)采用準(zhǔn)確率P、召回率R和F值3個(gè)指標(biāo)對識別效果進(jìn)行評價(jià)[14],其中,F(xiàn)值能夠體現(xiàn)整體測試效果。3種評價(jià)指標(biāo)的計(jì)算公式如下:
表4 實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)數(shù)據(jù)來源于學(xué)員訓(xùn)練用的聯(lián)合作戰(zhàn)演習(xí)想定文檔和指揮所演練想定文檔等,選擇想定30余份,約15.4萬字、2 238句;選擇其中的1 791句作為訓(xùn)練集,447句作為測試集,訓(xùn)練集占80%,測試集占20%;在增加驗(yàn)證集的情況下,訓(xùn)練集、驗(yàn)證集、測試集比例為7∶ 1.5∶ 1.5,各類標(biāo)注實(shí)體在訓(xùn)練集、驗(yàn)證集和測試集中分布均勻[15]。
3.3.1 不同方法對結(jié)果的影響
實(shí)驗(yàn)采取3種方法進(jìn)行對比驗(yàn)證,其中包括本文提出的方法1和方法2:方法1采用隨機(jī)初始化的字向量矩陣,采用Bi-LSTM神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,采用CRF作為分類器;方法2采用預(yù)訓(xùn)練的字向量矩陣,并增加驗(yàn)證集,其他與方法1相同。方法3采用單赫源等[3]提出的方法,在相同的語料和實(shí)體分類的情況下進(jìn)行實(shí)驗(yàn),并與基于深度學(xué)習(xí)的方法進(jìn)行對比。3種方法測試結(jié)果如表5所示。
表5 3種方法測試結(jié)果
由表5可知:方法2比方法1識別效果好,說明根據(jù)相應(yīng)語料預(yù)訓(xùn)練的字向量比隨機(jī)初始化的字向量更能表達(dá)字(詞)之間的語義關(guān)系;方法1和方法2比方法3識別效果好,說明基于深度學(xué)習(xí)的模型比CRF模型能學(xué)到更多的文本特征。這是由于人工選取軍事文本數(shù)據(jù)特征有一定的局限性,一方面難以窮盡所有特征,另一方面特征之間可能會有重疊或矛盾的地方,基于深度學(xué)習(xí)模型通過自動逐層學(xué)習(xí)文本特征解決了以上問題。
3.3.2 不同超參數(shù)設(shè)置對結(jié)果的影響
為降低訓(xùn)練時(shí)間和計(jì)算成本,選取方法1在不同字向量維度下進(jìn)行測試,維度設(shè)置在50~600,測試結(jié)果如圖2所示。可以看出:當(dāng)維度在50~250之間增加時(shí),P、R、F值快速上升;當(dāng)維度在250~500之間增加時(shí),P、R、F值緩慢上升,并在維度為500時(shí)達(dá)到最大;當(dāng)維度大于500時(shí),P、R、F值隨維度增加而趨于穩(wěn)定。實(shí)驗(yàn)結(jié)果表明:字向量維度并不是越大越好,在語料規(guī)模保持不變的情況下,一定的維度能夠表示文本的語義特征,通常情況下,字向量維度設(shè)置在250~500比較合理。
3.3.3 語料規(guī)模對結(jié)果的影響
為檢驗(yàn)語料規(guī)模對深度學(xué)習(xí)實(shí)驗(yàn)效果的影響,隨機(jī)選取方法1在不同語料規(guī)模下進(jìn)行實(shí)驗(yàn),語料的數(shù)量為0.7~15萬字,實(shí)驗(yàn)結(jié)果如圖3所示??梢钥闯觯篜、R、F值隨著語料數(shù)量的增大而增大,說明實(shí)體識別效果隨著語料規(guī)模的增大而增強(qiáng),這也證明基于深度的學(xué)習(xí)方法對數(shù)據(jù)量要求較高。
針對傳統(tǒng)軍事命名實(shí)體識別方法存在人工構(gòu)建特征不充分、軍事領(lǐng)域中文分詞不準(zhǔn)確的問題,筆者提出了基于深度學(xué)習(xí)的軍事命名實(shí)體識別方法,并采用軍事想定數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)驗(yàn)證。結(jié)果表明:與其他方法相比,該方法的準(zhǔn)確率、召回率、F值更高,泛化能力和魯棒性更強(qiáng),有效彌補(bǔ)了傳統(tǒng)方法的不足,是軍事命名實(shí)體識別的理想方法。當(dāng)然,目前由于受到數(shù)據(jù)規(guī)模、計(jì)算能力以及成本的限制,仍然需要綜合運(yùn)用多種方法來提升識別效果[15],未來隨著遷移學(xué)習(xí)、無監(jiān)督學(xué)習(xí)技術(shù)的深入發(fā)展,必將在較小數(shù)據(jù)規(guī)模和較少標(biāo)注的情況下取得更好的識別效果。