李育賢,呂學(xué)強(qiáng),游新冬
(北京信息科技大學(xué) 網(wǎng)絡(luò)文化與數(shù)字傳播北京市重點(diǎn)實(shí)驗(yàn)室,北京 100101)
不同領(lǐng)域的術(shù)語(yǔ)可以很好地表現(xiàn)不同領(lǐng)域的特點(diǎn),領(lǐng)域術(shù)語(yǔ)的發(fā)展變化也在一定程度上反映了領(lǐng)域的發(fā)展變化。構(gòu)建領(lǐng)域術(shù)語(yǔ)庫(kù),極大便利了領(lǐng)域內(nèi)、領(lǐng)域間的溝通交流,也給領(lǐng)域內(nèi)的多項(xiàng)任務(wù)展開(kāi)帶來(lái)幫助。
武器裝備領(lǐng)域的術(shù)語(yǔ)庫(kù)構(gòu)建可以為國(guó)防科技發(fā)展提供服務(wù)和保障,但目前我國(guó)這方面的研究還不足。在相關(guān)的軍事領(lǐng)域,我國(guó)關(guān)于軍事術(shù)語(yǔ)的唯一權(quán)威詞典《中國(guó)人民解放軍軍語(yǔ)》,自建軍以來(lái)僅僅發(fā)行過(guò)6個(gè)版本[1]。人工編撰軍語(yǔ)詞典的高成本,導(dǎo)致了軍語(yǔ)詞典更新速度較為緩慢,單純依賴人工構(gòu)建術(shù)語(yǔ)庫(kù)的方式費(fèi)時(shí)費(fèi)力,已經(jīng)不能匹配新術(shù)語(yǔ)的增長(zhǎng)速度。隨著計(jì)算機(jī)技術(shù)和自然語(yǔ)言處理技術(shù)的發(fā)展,我們可以構(gòu)建一套自動(dòng)領(lǐng)域術(shù)語(yǔ)抽取模型完成術(shù)語(yǔ)抽取任務(wù),從而降低時(shí)間和人工成本,提升術(shù)語(yǔ)抽取效率。
早在1996年,Bourigault等[2]使用詞性標(biāo)注大量的文本數(shù)據(jù),使用有限自動(dòng)機(jī)學(xué)習(xí)文本詞性的各種規(guī)則,利用規(guī)則抽取術(shù)語(yǔ)。此后,Kaushik等[3]對(duì)農(nóng)業(yè)領(lǐng)域大量文本進(jìn)行分析,找出了針對(duì)該領(lǐng)域的術(shù)語(yǔ)抽取規(guī)則,利用正則表達(dá)式編寫(xiě)規(guī)則提取術(shù)語(yǔ),并利用整個(gè)術(shù)語(yǔ)詞的詞性組合來(lái)過(guò)濾不合理的術(shù)語(yǔ)。孫水華等[4]通過(guò)詞典匹配,先識(shí)別出可能的組成術(shù)語(yǔ)的詞根詞綴等字詞信息,之后再組合判斷整體是否為術(shù)語(yǔ),該方法在中醫(yī)針灸領(lǐng)域取得了較好的抽取效果。
基于規(guī)則的方法雖然簡(jiǎn)單有效,但只適用于特定場(chǎng)景,規(guī)則無(wú)法覆蓋更多的情形。于是研究者嘗試?yán)媒y(tǒng)計(jì)學(xué)信息或使用機(jī)器學(xué)習(xí)模型進(jìn)行術(shù)語(yǔ)抽取。Justeson等[5]運(yùn)用詞頻統(tǒng)計(jì)量進(jìn)行術(shù)語(yǔ)抽取,做出在特定領(lǐng)域中術(shù)語(yǔ)的詞頻一定較大的假設(shè)。Frantzi等[6]針對(duì)僅僅依靠詞頻無(wú)法識(shí)別嵌套術(shù)語(yǔ)和無(wú)法區(qū)分長(zhǎng)短術(shù)語(yǔ)的問(wèn)題,提出使用C-value指標(biāo)對(duì)候選術(shù)語(yǔ)進(jìn)行排序,最終按排序結(jié)果得到術(shù)語(yǔ)。熊李艷等[7]針對(duì)現(xiàn)有術(shù)語(yǔ)抽取方法對(duì)低頻術(shù)語(yǔ)不友好的問(wèn)題,使用背景語(yǔ)料庫(kù)作為反例計(jì)算領(lǐng)域分布度,并結(jié)合有效詞頻改進(jìn)了C-value,在計(jì)算機(jī)領(lǐng)域獲得了較好的術(shù)語(yǔ)抽取效果。
使用機(jī)器學(xué)習(xí)模型方面,趙欣等[8]設(shè)計(jì)了一套中文術(shù)語(yǔ)抽取系統(tǒng),通過(guò)大量的標(biāo)注數(shù)據(jù)訓(xùn)練最大熵模型,之后使用此模型對(duì)候選術(shù)語(yǔ)進(jìn)行分類(lèi),判斷該詞語(yǔ)是否為術(shù)語(yǔ)。Judea等[9]也通過(guò)數(shù)據(jù)訓(xùn)練了邏輯回歸(logistic regression,LR)和條件隨機(jī)場(chǎng)(conditional random field,CRF)兩種分類(lèi)器,之后對(duì)候選詞進(jìn)行分類(lèi)判斷。何宇等[10]在許多特征的基礎(chǔ)上,加入了依存句法分析關(guān)系,并訓(xùn)練了條件隨機(jī)場(chǎng)模型,證實(shí)了依存句法分析關(guān)系是術(shù)語(yǔ)抽取任務(wù)的一個(gè)非常有效的特征。王昊等[11]在鋼鐵冶金領(lǐng)域,訓(xùn)練了一套CRF術(shù)語(yǔ)抽取模型,給序列中的每個(gè)字符打上一個(gè)標(biāo)簽,最后解碼出術(shù)語(yǔ),使用迭代自訓(xùn)練的方式,將每一輪識(shí)別出的新術(shù)語(yǔ)加入下一輪訓(xùn)練集繼續(xù)訓(xùn)練。
由于深度學(xué)習(xí)模型可以節(jié)省人工構(gòu)建特征的成本,且有著強(qiáng)大的特征提取能力,使用深度學(xué)習(xí)模型進(jìn)行序列標(biāo)注已經(jīng)成為術(shù)語(yǔ)抽取任務(wù)新的范式。Zhao等[12]使用雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(bidirectional long short-term memory,BiLSTM)提取語(yǔ)義特征,并結(jié)合多個(gè)語(yǔ)言學(xué)特征,使用CRF解碼完成術(shù)語(yǔ)抽取。Kucza等[13]使用遞歸神經(jīng)網(wǎng)絡(luò)抽取術(shù)語(yǔ),并結(jié)合字嵌入信息,增強(qiáng)術(shù)語(yǔ)抽取效果。Wu等[14]借助基于轉(zhuǎn)換器(Transformer)的雙向編碼器表示(bidirectional encoder representation from transformers,BERT)[15]預(yù)訓(xùn)練模型獲得語(yǔ)義信息更加豐富的文本字符表示,之后使用BiLSTM進(jìn)一步對(duì)字符表示進(jìn)行強(qiáng)化,最終使用CRF解碼得到實(shí)體。
由于武器裝備領(lǐng)域的特殊性,其術(shù)語(yǔ)抽取工作研究較少。2020年,Zhang等[16]從軍事語(yǔ)料中提取多個(gè)特征,利用這些特征訓(xùn)練CRF模型抽取術(shù)語(yǔ)。但是此方法沒(méi)有利用到深度學(xué)習(xí)模型強(qiáng)大的學(xué)習(xí)能力,存在進(jìn)一步提升的空間。本文使用深度學(xué)習(xí)模型進(jìn)行武器裝備領(lǐng)域術(shù)語(yǔ)的抽取,以獲得更好的抽取效果。
本文的最終目的就是構(gòu)建一個(gè)效果良好的術(shù)語(yǔ)自動(dòng)抽取模型。通常情況下,術(shù)語(yǔ)抽取任務(wù)和實(shí)體識(shí)別任務(wù)相似,以序列標(biāo)注的方式完成。通用領(lǐng)域中,主流模型選用BERT+CRF完成術(shù)語(yǔ)抽取任務(wù),本文針對(duì)武器裝備領(lǐng)域術(shù)語(yǔ)的特點(diǎn),構(gòu)建了BERT+頭尾指針網(wǎng)絡(luò)+Focal Loss的術(shù)語(yǔ)抽取模型。首先用BERT預(yù)訓(xùn)練模型將句子編碼,得到句子中每個(gè)字符的向量表示,之后將每個(gè)字符拼接上其對(duì)應(yīng)的五筆向量表示,旨在融入更多字形信息來(lái)增強(qiáng)表示層所包含的信息。接著使用頭尾指針網(wǎng)絡(luò)對(duì)序列中的字符逐個(gè)進(jìn)行標(biāo)注,最終得到兩個(gè)序列:術(shù)語(yǔ)開(kāi)頭的標(biāo)注序列和術(shù)語(yǔ)結(jié)尾的標(biāo)注序列,分別表征每個(gè)字符是否為術(shù)語(yǔ)的開(kāi)頭或結(jié)尾。由于使用頭尾指針網(wǎng)絡(luò)解碼,將術(shù)語(yǔ)抽取任務(wù)轉(zhuǎn)換成了對(duì)每個(gè)字符的分類(lèi)任務(wù),考慮到由此帶來(lái)的標(biāo)簽不平衡問(wèn)題,本文選擇Focal Loss進(jìn)行損失計(jì)算,以減輕標(biāo)簽不平衡帶來(lái)的不良影響。模型的整體框架如圖1所示。
圖1 模型框架
如圖所示,輸入的句子經(jīng)過(guò)模型的表示層得到文本上下文向量,然后拼接五筆特征,最后由頭尾指針網(wǎng)絡(luò)解碼器輸出“福特號(hào)航空母艦”、“杰拉德R福特號(hào)”和“美國(guó)海軍核動(dòng)力航空母艦”3個(gè)武器裝備術(shù)語(yǔ)。
以往研究表明,序列標(biāo)注任務(wù)中底層嵌入的效果對(duì)最終抽取效果會(huì)產(chǎn)生很大的影響。表示層表示越強(qiáng),帶有信息越多,模型的最終效果越好,抽取效率更高。本文模型的表示層分為兩個(gè)部分,一是通過(guò)BERT預(yù)訓(xùn)練模型獲取字符的向量表示,更好地表達(dá)語(yǔ)義信息,二是通過(guò)詞向量工具訓(xùn)練出每個(gè)字符對(duì)應(yīng)的五筆編碼,融入字形信息,以便模型更好地實(shí)現(xiàn)術(shù)語(yǔ)的抽取。
1.1.1 BERT編碼
BERT是一種預(yù)訓(xùn)練語(yǔ)言模型,在自然語(yǔ)言處理的各項(xiàng)任務(wù)中都表現(xiàn)出優(yōu)異的性能。BERT以Transformer的編碼器為基礎(chǔ),由12個(gè)或者24個(gè)采用自注意力機(jī)制的Transformer編碼器堆疊組成。BERT模型主要由嵌入層、編碼器、下游任務(wù)適配的解碼器組成。
嵌入層設(shè)置3個(gè)向量:字嵌入(Token embedding)、段嵌入(Segment embedding)和位置嵌入(Position embedding)。字嵌入負(fù)責(zé)將輸入BERT模型的字符轉(zhuǎn)換成字向量;段嵌入負(fù)責(zé)區(qū)分輸入到BERT模型中的是哪一條句子;位置嵌入用來(lái)區(qū)分句子中字符的不同位置。之后,將這3個(gè)嵌入向量相加送入到Transformer的編碼器中。
經(jīng)過(guò)Transformer的編碼器進(jìn)一步編碼后,使用得到的向量作為字符表示,銜接各種各樣的下游任務(wù)。為了使字符表示帶有更加豐富的語(yǔ)義信息,更好地生成表示向量,在編碼器后接兩個(gè)預(yù)訓(xùn)練任務(wù),通過(guò)海量數(shù)據(jù)預(yù)訓(xùn)練模型,更新參數(shù)。兩個(gè)預(yù)訓(xùn)練任務(wù)分別是掩碼語(yǔ)言模型(masked language model,MLM)任務(wù)和下一句預(yù)測(cè)(next sentence prediction,NSP)任務(wù)。其中MLM通過(guò)隨機(jī)將句子中的字符進(jìn)行遮掩并預(yù)測(cè)恢復(fù)被遮掩字符的方式,學(xué)到帶有上下文語(yǔ)義信息的字符表示;NSP任務(wù)判斷輸入的一對(duì)句子是否為上下句關(guān)系,來(lái)學(xué)習(xí)句子之間的語(yǔ)義關(guān)系。
至此,BERT完成了整個(gè)的預(yù)訓(xùn)練任務(wù),得到了較好的字符表示。
本文方法使用BERT作為字符表示進(jìn)行術(shù)語(yǔ)抽取任務(wù),從表示層的角度提高武器裝備領(lǐng)域術(shù)語(yǔ)抽取模型的性能。在BERT嵌入層模塊,將包含武器裝備領(lǐng)域術(shù)語(yǔ)的非結(jié)構(gòu)化文本進(jìn)行數(shù)據(jù)預(yù)處理,按字符將句子分割得到句子中單字符的列表,在列表的首尾添加“[CLS]”和“[SEP]”標(biāo)簽,不足最大長(zhǎng)度的列表填充“[PAD]”標(biāo)簽。之后將這些字符標(biāo)簽轉(zhuǎn)換成BERT詞表對(duì)應(yīng)的ID,得到輸入序列:X=(x0,x1,…,xn-1),對(duì)這個(gè)序列進(jìn)行編碼獲取字符表示向量。輸入序列的向量化過(guò)程如式(1)所示。
VBERT=BERT(X)
(1)
式中:VBERT為輸入序列X通過(guò)BERT模型編碼得到的文本向量。BERT表示BERT預(yù)訓(xùn)練模型。
1.1.2 五筆編碼
使用BERT對(duì)字符進(jìn)行編碼表示時(shí),模型對(duì)句子處理的最小單元是字。而漢字中不僅包含語(yǔ)義信息,還包含了許多字形信息。字形上相似的漢字一般在語(yǔ)義上也有相似性,這一特點(diǎn)對(duì)術(shù)語(yǔ)的判斷有著很大的幫助。
漢字中,字形信息有不同的表達(dá)形式,如偏旁部首、筆畫(huà)等,其中偏旁部首只表達(dá)了一個(gè)字中的部分信息,橫、豎、撇、點(diǎn)等筆畫(huà)所表達(dá)出的信息過(guò)于簡(jiǎn)單,而五筆編碼通過(guò)拆字的形式,將漢字的各個(gè)部分分別用一個(gè)編碼表示,最后組合形成整個(gè)字的編碼。五筆表示的字形較為完整,而且其拆出的一些字形部分本身就具有一定含義,相較于偏旁部首和筆畫(huà),可以更好地表示字形信息。
在武器裝備領(lǐng)域,許多術(shù)語(yǔ)中的字符有著相似的五筆編碼,證明這些字符在字形、語(yǔ)義上有一定的相似性,這些相似性可以輔助我們判斷一個(gè)詞是否為術(shù)語(yǔ)。例如,“艦”字和“航”字,“艦”的五筆編碼為“temq”,“航”的五筆編碼為“tey”??梢钥吹絻蓚€(gè)字的五筆編碼中都含有“te”編碼,說(shuō)明其字形存在部分相似。如果“艦”字是術(shù)語(yǔ)中的一個(gè)字符,那么“航”字也很可能是術(shù)語(yǔ)中的一個(gè)字符。因此,本文將五筆字形信息引入字符的向量表示中,用來(lái)提升武器裝備領(lǐng)域術(shù)語(yǔ)識(shí)別的效果。
本文使用word2vec對(duì)五筆編碼進(jìn)行轉(zhuǎn)換。首先將網(wǎng)絡(luò)上收集的語(yǔ)料按照字符進(jìn)行分句,根據(jù)漢字五筆對(duì)應(yīng)表,將每個(gè)字符轉(zhuǎn)換成對(duì)應(yīng)的五筆編碼,在漢字五筆對(duì)應(yīng)表中查不到相應(yīng)五筆編碼的字符,以及其他語(yǔ)種字符,使用符號(hào)“[UNK]”代替。把這些編碼去重,構(gòu)建五筆編碼詞表,準(zhǔn)備好訓(xùn)練數(shù)據(jù)。之后使用word2vec方法生成五筆編碼對(duì)應(yīng)的向量,并保存待用。
得到各個(gè)五筆編碼的向量后,下一步就是獲得句子中每個(gè)字符的五筆向量,和BERT獲得的字向量拼接在一起。首先對(duì)句子以字為單位進(jìn)行分詞,得到句子單字符組成的列表,將列表里的字符轉(zhuǎn)為五筆編碼。為了保證字符的五筆向量和BERT向量是一一對(duì)應(yīng)的,向五筆編碼列表首尾各添加一個(gè)“[UNK]”,對(duì)應(yīng)BERT中的“[CLS]”和“[SEP]”標(biāo)簽,對(duì)句子長(zhǎng)度填充相應(yīng)數(shù)量的“[UNK]”標(biāo)簽,對(duì)應(yīng)BERT中的“[PAD]”標(biāo)簽。之后將五筆編碼和“[UNK]”標(biāo)簽轉(zhuǎn)換成五筆編碼詞表對(duì)應(yīng)的索引,得到輸入序列
Xwubi=(xwubi0,xwubi1,…,xwubin-1)
(2)
用上一步保存的詞向量表初始化神經(jīng)網(wǎng)絡(luò)的嵌入層,通過(guò)嵌入層得到每個(gè)字符對(duì)應(yīng)的五筆向量表示。輸入的五筆序列的向量化過(guò)程為
Vwubi=embedding(Xwubi)
(3)
式中:Vwubi為輸入的五筆序列Xwubi通過(guò)嵌入層得到的文本向量;embedding表示抽取模型中的嵌入層。
最后拼接五筆向量和BERT向量作為最后的向量表示Vinput:
Vinput=concat(Vwubi,VBERT)
(4)
式中concat函數(shù)表示拼接操作。
在BERT向量表示豐富的語(yǔ)義基礎(chǔ)上,拼接上五筆向量,可以融入更多字形特征,幫助模型更好地識(shí)別句中的術(shù)語(yǔ)。
有了向量表示之后,便可以通過(guò)解碼器解碼完成序列標(biāo)注。主流的方法大多選用Softmax或者CRF作為解碼器。CRF相較于Softmax,學(xué)習(xí)到了序列中標(biāo)簽之間的聯(lián)系,使得識(shí)別結(jié)果更加準(zhǔn)確。但在武器裝備領(lǐng)域中,存在一定數(shù)量的長(zhǎng)術(shù)語(yǔ),CRF可能會(huì)出現(xiàn)長(zhǎng)實(shí)體識(shí)別不準(zhǔn)的問(wèn)題。例如,“F/A-18E/F超級(jí)大黃蜂艦載戰(zhàn)斗攻擊機(jī)是美國(guó)波音公司所生產(chǎn)的一種艦載戰(zhàn)斗攻擊機(jī)”一句中,“F/A-18E/F超級(jí)大黃蜂艦載戰(zhàn)斗攻擊機(jī)”這條術(shù)語(yǔ)有21個(gè)字符。為了避免抽取模型使用CRF解碼造成長(zhǎng)術(shù)語(yǔ)識(shí)別斷裂或缺失的問(wèn)題,本方法采用頭尾指針網(wǎng)絡(luò)作為術(shù)語(yǔ)識(shí)別模型。使用頭尾指針網(wǎng)絡(luò)可以更好地識(shí)別術(shù)語(yǔ)邊界,改善模型對(duì)長(zhǎng)術(shù)語(yǔ)的識(shí)別效果。
頭尾指針網(wǎng)絡(luò)由兩個(gè)線性層組成,使用這兩個(gè)線性層對(duì)序列中的字符逐個(gè)進(jìn)行標(biāo)注,最終得到兩個(gè)序列:術(shù)語(yǔ)開(kāi)頭的標(biāo)注序列和術(shù)語(yǔ)結(jié)尾的標(biāo)注序列。本文模型使用兩個(gè)分類(lèi)器:術(shù)語(yǔ)開(kāi)頭分類(lèi)器和術(shù)語(yǔ)結(jié)尾分類(lèi)器,用這兩個(gè)分類(lèi)器對(duì)字符進(jìn)行分類(lèi)。取出分類(lèi)為實(shí)體頭尾的字符,根據(jù)在句子中的位置索引截取字段確定最后的術(shù)語(yǔ)。
1.2.1 術(shù)語(yǔ)開(kāi)頭分類(lèi)器
將BERT輸出的字符表示通過(guò)第一個(gè)線性層分類(lèi)器得到術(shù)語(yǔ)開(kāi)頭的標(biāo)注序列,即對(duì)序列的每一個(gè)字符進(jìn)行一個(gè)二分類(lèi),分類(lèi)器預(yù)測(cè)的分值代表了該字符是術(shù)語(yǔ)開(kāi)頭的可能性大小。將術(shù)語(yǔ)預(yù)測(cè)的分值通過(guò)Softmax激活函數(shù)轉(zhuǎn)換成0~1的概率,取概率較大的索引作為單個(gè)字符的分類(lèi)結(jié)果,若是預(yù)測(cè)結(jié)果中索引1的概率較大,那么當(dāng)前字符就是術(shù)語(yǔ)的開(kāi)頭字符,否則不是術(shù)語(yǔ)開(kāi)頭字符。術(shù)語(yǔ)開(kāi)頭分類(lèi)器模塊的原理如式(5)所示。
yi=argmax(Softmax(linear(Vinput,2)))
(5)
式中:yi代表第個(gè)i字符是否為術(shù)語(yǔ)開(kāi)頭的結(jié)果,是則為1,不是為0;linear代表將表示層得到的向量表示Vinput轉(zhuǎn)換維度,得到分類(lèi)數(shù)值;argmax代表取預(yù)測(cè)概率較大值索引的操作。
1.2.2 術(shù)語(yǔ)結(jié)尾分類(lèi)器
術(shù)語(yǔ)結(jié)尾分類(lèi)器依然是一個(gè)線性層,負(fù)責(zé)識(shí)別字符是否為術(shù)語(yǔ)的結(jié)尾字符。術(shù)語(yǔ)的頭尾字符應(yīng)該是成對(duì)出現(xiàn)的,為了保證模型能夠感知術(shù)語(yǔ)頭尾之間的對(duì)應(yīng)關(guān)系,在得到術(shù)語(yǔ)開(kāi)頭的標(biāo)注序列結(jié)果之后,將術(shù)語(yǔ)開(kāi)頭的標(biāo)注序列結(jié)果拼接到表示層得到的向量表示上,之后送入線性層分類(lèi)器得到術(shù)語(yǔ)結(jié)尾的標(biāo)注序列(訓(xùn)練模型階段,因?yàn)榇嬖跇?biāo)準(zhǔn)的正確的術(shù)語(yǔ)開(kāi)頭序列,所以直接將真實(shí)的標(biāo)注術(shù)語(yǔ)開(kāi)頭的序列和表示層得到的向量拼接)。拼接術(shù)語(yǔ)開(kāi)頭的識(shí)別結(jié)果,能夠讓模型在預(yù)測(cè)術(shù)語(yǔ)結(jié)尾時(shí)考慮到術(shù)語(yǔ)開(kāi)頭的信息,使術(shù)語(yǔ)頭尾對(duì)應(yīng)關(guān)系更加完善。拼接后的向量在進(jìn)入術(shù)語(yǔ)尾線性層分類(lèi)器之前,先經(jīng)過(guò)Tanh激活函數(shù),為整體模型帶來(lái)更多的非線性元素,使得模型性能更強(qiáng)。之后結(jié)果進(jìn)入LayerNorm層進(jìn)行歸一化處理,使數(shù)值降到可以落在梯度下降的敏感區(qū)間,加快網(wǎng)絡(luò)收斂速度。LayerNorm層完成層歸一化(layer normalization)的操作,對(duì)整個(gè)序列整體進(jìn)行歸一化,相較于批歸一化(batch normalization)在每個(gè)batch的維度上進(jìn)行歸一化的操作,整體歸一化考慮了序列的完整性,更加適合自然語(yǔ)言處理任務(wù)。術(shù)語(yǔ)結(jié)尾分類(lèi)器模塊的原理如式(6)~(8)所示。
Vinput-tail=concat(Vinput,Vhead)
(6)
Vinput-tail-new=layerNorm(Tanh(Vinput-tail))
(7)
yi=argmax(Softmax(linear(Vinput-tail-new,2)))
(8)
式中:Vinput-tail代表字符表示與術(shù)語(yǔ)開(kāi)頭結(jié)果拼接后的向量;Vinput-tail-new表示經(jīng)過(guò)激活函數(shù)和層歸一化計(jì)算后的向量;yi代表第i個(gè)字符是否為術(shù)語(yǔ)結(jié)尾的結(jié)果,是則為1,不是為0;linear代表將經(jīng)過(guò)操作后的向量表示Vinput-tail-new轉(zhuǎn)換維度,形成分類(lèi)數(shù)值;argmax代表取預(yù)測(cè)概率較大值索引的操作。
得到兩個(gè)標(biāo)注好的序列后,通過(guò)術(shù)語(yǔ)頭尾的位置索引最終將術(shù)語(yǔ)截取出來(lái)。針對(duì)模型預(yù)測(cè)結(jié)果可能出現(xiàn)的術(shù)語(yǔ)開(kāi)頭和術(shù)語(yǔ)結(jié)尾數(shù)目不相等,如某一個(gè)術(shù)語(yǔ)開(kāi)頭對(duì)應(yīng)兩個(gè)術(shù)語(yǔ)結(jié)尾等情況,采用嚴(yán)格解碼的方式確定結(jié)果,即句子在兩個(gè)術(shù)語(yǔ)開(kāi)頭字符形成區(qū)間內(nèi),若存在多個(gè)術(shù)語(yǔ)結(jié)尾字符,則枚舉出所有的術(shù)語(yǔ)頭尾字符對(duì),一一進(jìn)行術(shù)語(yǔ)結(jié)尾概率的比較,選出概率更高的術(shù)語(yǔ)頭尾字符對(duì)作為最后的結(jié)果。將最后處理好的術(shù)語(yǔ)結(jié)果進(jìn)行指標(biāo)的計(jì)算。
可以看出,頭尾指針網(wǎng)絡(luò)是直接對(duì)字符進(jìn)行二分類(lèi),將關(guān)注點(diǎn)放到字符上,不是特別關(guān)注整體概率和標(biāo)簽間的關(guān)系,并且直接對(duì)術(shù)語(yǔ)的邊界進(jìn)行預(yù)測(cè),避免了識(shí)別長(zhǎng)術(shù)語(yǔ)出現(xiàn)斷裂、缺失等現(xiàn)象。使用線性層解碼,結(jié)構(gòu)簡(jiǎn)單,計(jì)算復(fù)雜度和參數(shù)量都較小,相較于CRF減少了訓(xùn)練時(shí)間和計(jì)算量。
在待抽取的每一條語(yǔ)句中,術(shù)語(yǔ)所占比例本身較小,再加上使用頭尾指針網(wǎng)絡(luò)解碼器只對(duì)字符預(yù)測(cè)術(shù)語(yǔ)開(kāi)頭或結(jié)尾部分,導(dǎo)致正類(lèi)即被預(yù)測(cè)為術(shù)語(yǔ)開(kāi)頭或術(shù)語(yǔ)結(jié)尾的類(lèi)別較少,標(biāo)簽為1的數(shù)據(jù)所占比例過(guò)小,出現(xiàn)了標(biāo)簽不平衡的問(wèn)題。常用的交叉熵?fù)p失函數(shù)同等地學(xué)習(xí)兩類(lèi)標(biāo)簽,導(dǎo)致占比更少的標(biāo)簽沒(méi)有得到充分學(xué)習(xí)。改進(jìn)損失函數(shù),可以讓抽取效果得到進(jìn)一步提升。交叉熵?fù)p失函數(shù)如式(9)所示。
(9)
式中:L為交叉熵?fù)p失函數(shù);yi為樣本i的標(biāo)簽,正類(lèi)為1,負(fù)類(lèi)為0;pi為樣本i預(yù)測(cè)為正類(lèi)的概率;N為總體的樣本數(shù)量。
由式(9)可知,交叉熵?fù)p失函數(shù)對(duì)所有類(lèi)別的損失進(jìn)行求和,對(duì)所有類(lèi)別一視同仁,可能導(dǎo)致占比小的標(biāo)簽對(duì)損失貢獻(xiàn)不大。要提升占比小的標(biāo)簽的貢獻(xiàn),可以對(duì)標(biāo)簽賦予不同的權(quán)重,以優(yōu)化模型的效果。具體如式(10)所示。
(1-α)·(1-y)log (1-pi)]
(10)
式中:L1為考慮標(biāo)簽權(quán)重的交叉熵?fù)p失函數(shù);α為每個(gè)標(biāo)簽類(lèi)別的權(quán)重,對(duì)于數(shù)量占比大的標(biāo)簽,設(shè)置一個(gè)較小的α,反之設(shè)置一個(gè)較大的α。
除了數(shù)量上的不平衡,數(shù)據(jù)之間還存在難易程度的不平衡。數(shù)據(jù)中必然會(huì)存在一些難學(xué)習(xí)的樣本和一些容易學(xué)習(xí)的樣本,如果簡(jiǎn)單樣本占多數(shù),易學(xué)習(xí)樣本產(chǎn)生的損失將會(huì)主導(dǎo)整體損失,但是易學(xué)習(xí)樣本本身就能被模型很好地識(shí)別,這樣難學(xué)習(xí)的樣本對(duì)參數(shù)的更新不會(huì)改善模型效果。為了將一些關(guān)注點(diǎn)放到難分的樣本上,交叉熵?fù)p失函數(shù)可以優(yōu)化為式(11)所示。
piγ·(1-y)log (1-pi)]
(11)
式中:L2為考慮樣本難易的交叉熵?fù)p失函數(shù);γ為超參數(shù),假設(shè)γ的值設(shè)置為2,預(yù)測(cè)的置信度為0.95,則(1-pi)γ的值為0.002 5,相當(dāng)于縮小了該類(lèi)別樣本的損失,達(dá)到預(yù)設(shè)的目標(biāo)。
綜合上述函數(shù)的優(yōu)化,得到Focal Loss的最終形式,如式(12)所示。
LF=
(12)
式中:LF為綜合優(yōu)化后的交叉熵?fù)p失函數(shù)。
Focal Loss緩解了兩種情況的標(biāo)簽不平衡問(wèn)題,相比交叉熵?fù)p失函數(shù)更適用于頭尾指針網(wǎng)絡(luò)架構(gòu),有助于提升抽取效果。
在本文所提模型中,使用了兩個(gè)線性層做解碼,將其各自的損失相加取平均作為模型總體的損失,如式(13)所示。
(13)
式中:LF_entire代表最終整體的損失;LF_head代表術(shù)語(yǔ)開(kāi)頭分類(lèi)器的損失;LF_tail代表術(shù)語(yǔ)結(jié)尾分類(lèi)器的損失。
本實(shí)驗(yàn)的數(shù)據(jù)來(lái)自于武器裝備領(lǐng)域相關(guān)網(wǎng)站,包括百度百科、軍事環(huán)球網(wǎng)等,通過(guò)數(shù)據(jù)自動(dòng)采集技術(shù)獲取。對(duì)獲取的非結(jié)構(gòu)數(shù)據(jù)進(jìn)行標(biāo)注,最終人工標(biāo)注數(shù)據(jù)3 000條,包含術(shù)語(yǔ)6 425條,并由核對(duì)人員對(duì)標(biāo)注數(shù)據(jù)進(jìn)行核對(duì),以確保數(shù)據(jù)質(zhì)量。數(shù)據(jù)按照9∶1的比例劃分為訓(xùn)練數(shù)據(jù)、測(cè)試數(shù)據(jù)。對(duì)數(shù)據(jù)進(jìn)行長(zhǎng)度補(bǔ)齊,之后劃分batch輸入到模型進(jìn)行訓(xùn)練,根據(jù)每輪模型表現(xiàn)對(duì)參數(shù)進(jìn)行調(diào)整,并在測(cè)試集上測(cè)試效果。
2.2.1 環(huán)境配置
實(shí)驗(yàn)在戴爾服務(wù)器上運(yùn)行,系統(tǒng)為L(zhǎng)inux,提供了可使用的GPU加速模型訓(xùn)練。具體實(shí)驗(yàn)環(huán)境配置如表1所示。
表1 實(shí)驗(yàn)環(huán)境
2.2.2 參數(shù)配置
實(shí)驗(yàn)的預(yù)訓(xùn)練語(yǔ)言模型使用在中文語(yǔ)料上預(yù)訓(xùn)練好的bert-base-chinese模型,通過(guò)調(diào)用HuggingFace庫(kù)實(shí)現(xiàn),其由12個(gè)Transformer編碼器堆疊而成,bert_embedding維度為768,多頭個(gè)數(shù)為12個(gè),詞表大小31 116。批尺寸設(shè)置為32。使用Adam優(yōu)化器優(yōu)化,學(xué)習(xí)率設(shè)置為0.000 1,dropout概率設(shè)置為0.5。實(shí)驗(yàn)參數(shù)的設(shè)置如表2所示。
表2 參數(shù)設(shè)置
不同于標(biāo)簽級(jí)別的F1值計(jì)算,評(píng)估術(shù)語(yǔ)抽取模型時(shí)以術(shù)語(yǔ)級(jí)別的F1值作為指標(biāo)。如果采用標(biāo)簽級(jí)別的F1值,由于被判別為不是術(shù)語(yǔ)頭尾的標(biāo)簽“0”占比過(guò)多,導(dǎo)致即使在沒(méi)能識(shí)別出術(shù)語(yǔ)頭尾即沒(méi)有得到標(biāo)簽“1”的情況下,仍然能得到很高的F1值,這樣會(huì)誤導(dǎo)對(duì)模型效果的判斷。所以本實(shí)驗(yàn)使用術(shù)語(yǔ)級(jí)別的F1值進(jìn)行評(píng)估,即以整個(gè)術(shù)語(yǔ)為單位計(jì)算F1值。
F1值由精確率P和召回率R綜合計(jì)算得出。P為模型識(shí)別對(duì)的術(shù)語(yǔ)數(shù)目和模型識(shí)別出的術(shù)語(yǔ)總數(shù)的比值;R為模型識(shí)別對(duì)的術(shù)語(yǔ)數(shù)目和標(biāo)注術(shù)語(yǔ)數(shù)目的比值。術(shù)語(yǔ)級(jí)別的F1值的計(jì)算如式(14)所示。
(14)
2.4.1 抽取模型解碼器對(duì)比
首先設(shè)置3個(gè)對(duì)比實(shí)驗(yàn)驗(yàn)證不同解碼器的抽取效果。3個(gè)實(shí)驗(yàn)都使用BERT作為字符表示,分別使用Softmax、CRF、頭尾指針網(wǎng)絡(luò)作為解碼器。實(shí)驗(yàn)結(jié)果如表3所示。
表3 不同解碼器抽取模型對(duì)比 %
由對(duì)比實(shí)驗(yàn)可知,得益于BERT強(qiáng)大的語(yǔ)義表示,使用3種解碼器都取得了不錯(cuò)的整體效果。其中Softmax作為解碼器,由于未能考慮標(biāo)簽間的邏輯合理性,相對(duì)表現(xiàn)最差。CRF解碼器對(duì)整個(gè)序列解碼,考慮了標(biāo)簽間的邏輯關(guān)系,使得抽取結(jié)果更加準(zhǔn)確。頭尾指針網(wǎng)絡(luò)對(duì)長(zhǎng)術(shù)語(yǔ)的識(shí)別更加準(zhǔn)確,獲得了最好的抽取效果。
目前主流的方法大多采用CRF作為解碼器,但是CRF存在長(zhǎng)術(shù)語(yǔ)識(shí)別的斷裂、缺失等問(wèn)題。本文選取了一些長(zhǎng)術(shù)語(yǔ)樣例進(jìn)行分析,來(lái)說(shuō)明頭尾指針網(wǎng)絡(luò)直接對(duì)邊界進(jìn)行解碼的方式在長(zhǎng)術(shù)語(yǔ)識(shí)別中的優(yōu)勢(shì),如表4所示。
表4 長(zhǎng)術(shù)語(yǔ)樣例抽取對(duì)比
由表4可知,樣例1和樣例2中,CRF對(duì)長(zhǎng)術(shù)語(yǔ)的抽取不全;樣例3中,CRF將長(zhǎng)實(shí)體識(shí)別成兩個(gè)短實(shí)體,中間的“導(dǎo)彈”未能識(shí)別出,造成抽取出的術(shù)語(yǔ)發(fā)生斷裂;樣例4中,CRF多抽取了4個(gè)字符,造成了術(shù)語(yǔ)識(shí)別不準(zhǔn)確。而頭尾指針網(wǎng)絡(luò)在這幾個(gè)樣例上均識(shí)別正確,獲得了較好的長(zhǎng)術(shù)語(yǔ)識(shí)別效果。
通過(guò)對(duì)實(shí)驗(yàn)結(jié)果和抽取樣例進(jìn)行分析,證明了直接對(duì)術(shù)語(yǔ)邊界進(jìn)行解碼的有效性,說(shuō)明頭尾指針網(wǎng)絡(luò)在識(shí)別長(zhǎng)術(shù)語(yǔ)上表現(xiàn)較好。
2.4.2 融合信息及損失對(duì)比
在同樣使用頭尾指針網(wǎng)絡(luò)的情況下,比較了不同表示層和不同損失函數(shù)的效果。設(shè)置4組模型進(jìn)行對(duì)比,如表5所示。各模型具體如下:
1)模型1:使用BERT作為字符表示,使用頭尾指針網(wǎng)絡(luò)作為解碼器,使用交叉熵作為損失函數(shù)。
2)模型2:在模型1的基礎(chǔ)上融合五筆特征。
3)模型3:在模型1的基礎(chǔ)上將交叉熵?fù)p失函數(shù)更換成Focal Loss損失函數(shù)。
4)模型4:在模型1的基礎(chǔ)上融入五筆特征并使用Focal Loss作為損失函數(shù)。
不同模型的F1值如表5所示。
表5 抽取模型對(duì)比 %
由表可知,模型2、3的抽取效果分別較模型1有所提升,模型4綜合使用了五筆向量和Focal Loss損失函數(shù),獲得了最好的抽取結(jié)果。
本文通過(guò)對(duì)武器裝備領(lǐng)域語(yǔ)料數(shù)據(jù)的分析,在BERT得到的字向量基礎(chǔ)上,融合字符的五筆表示,從字形信息的角度增強(qiáng)模型的抽取能力。同時(shí),使用頭尾指針網(wǎng)絡(luò)作為解碼器抽取術(shù)語(yǔ),避免了使用CRF解碼帶來(lái)的長(zhǎng)術(shù)語(yǔ)識(shí)別斷裂、缺失的問(wèn)題。針對(duì)標(biāo)簽不平衡問(wèn)題,采用Focal Loss作為損失函數(shù),使得占比小的標(biāo)簽得到充分學(xué)習(xí),抽取效果進(jìn)一步提升。實(shí)驗(yàn)證明,本文所提模型在武器裝備領(lǐng)域術(shù)語(yǔ)抽取中得到了較好的抽取效果。