唐煥玲,王 慧,隗 昊,趙紅磊,竇全勝,魯明羽
1.山東工商學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 煙臺264005
2.山東工商學(xué)院 信息與電子工程學(xué)院,山東 煙臺264005
3.山東省高等學(xué)校協(xié)同創(chuàng)新中心:未來智能計(jì)算,山東 煙臺264005
4.山東省高校智能信息處理重點(diǎn)實(shí)驗(yàn)室(山東工商學(xué)院),山東 煙臺264005
5.大連海事大學(xué) 信息科學(xué)技術(shù)學(xué)院,遼寧 大連116026
知識圖譜(knowledge graph,KG)是一種用圖模型來描述知識和建模世間萬物之間關(guān)聯(lián)關(guān)系的技術(shù)方法,可分為通用知識圖譜和領(lǐng)域知識圖譜兩種。通用知識圖譜主要應(yīng)用于語義搜索、推薦系統(tǒng)、智能問答等業(yè)務(wù)場景,并發(fā)揮著越來越重要的作用。而領(lǐng)域知識圖譜是基于行業(yè)數(shù)據(jù)構(gòu)建,由于知識來源多、知識結(jié)構(gòu)復(fù)雜、知識質(zhì)量要求更高等特點(diǎn),在解決行業(yè)痛點(diǎn)時,存在對知識圖譜利用不明晰、知識圖譜技術(shù)與行業(yè)難融合等問題。如面向時鐘領(lǐng)域,用戶越來越復(fù)雜,用戶無法將自己的需求用專業(yè)術(shù)語表達(dá),進(jìn)而導(dǎo)致需求頻繁更改、項(xiàng)目延期。同時,傳統(tǒng)售后服務(wù)不能快速識別、理解和解決用戶的售后問題。因此,迫切需要面向時鐘領(lǐng)域構(gòu)建垂直知識圖譜,輔助語言理解和數(shù)據(jù)分析。而命名實(shí)體識別是時鐘領(lǐng)域知識圖譜構(gòu)建過程中的基礎(chǔ)和關(guān)鍵環(huán)節(jié),其目標(biāo)是從海量的文本中識別出具有特定意義的實(shí)體。
主流的命名實(shí)體識別方法是基于深度學(xué)習(xí)的方法,通常是將實(shí)體識別任務(wù)轉(zhuǎn)化為序列標(biāo)注任務(wù)。而目前沒有針對時鐘領(lǐng)域命名實(shí)體識別的研究,由于時鐘領(lǐng)域的標(biāo)簽數(shù)據(jù)匱乏,現(xiàn)有的方法直接應(yīng)用于時鐘領(lǐng)域,存在實(shí)體識別精度不高的問題。
本文針對時鐘領(lǐng)域?qū)嶓w識別中的問題,提出一種新的命名實(shí)體識別模型BERT-LCRF,該模型利用預(yù)訓(xùn)練語言模型BERT能夠提取時鐘領(lǐng)域的文本特征,利用線性鏈條件隨機(jī)場(Linear-CRF)進(jìn)一步提高實(shí)體識別的精度。在時鐘行業(yè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,該模型在各項(xiàng)指標(biāo)上顯著優(yōu)于其他命名實(shí)體識別方法。BERTLCRF 命名實(shí)體識別方法,能夠更好地獲取句子間的語義關(guān)系,并且能夠提高序列標(biāo)注任務(wù)的精度,對構(gòu)建時鐘領(lǐng)域知識圖譜有著積極的促進(jìn)作用。
命名實(shí)體識別發(fā)展至今,主要有基于規(guī)則和詞典的方法、基于統(tǒng)計(jì)的方法和基于深度學(xué)習(xí)的方法,其中基于深度學(xué)習(xí)的方法可以自動學(xué)習(xí)適合領(lǐng)域的特征,獲取多層次的表達(dá),因此在命名實(shí)體識別方向有著廣泛的使用。
基于規(guī)則和字典的方法主要是采用模式字符串匹配的實(shí)現(xiàn)方式,使用人手工構(gòu)造的特征模版。該方法的不足之處在于模型的可移植性差,單一語料訓(xùn)練好的特征模板不適用于任意語料;其次,構(gòu)建模板時花費(fèi)的時間成本較大,它依賴語言學(xué)專家書寫規(guī)則,或者需要收集整理相關(guān)詞典等資源。因此,該方法存在系統(tǒng)可移植性不好,代價大,系統(tǒng)建設(shè)周期長等問題。
基于統(tǒng)計(jì)的方法依賴于特征選擇,對實(shí)體識別結(jié)果有影響的各種特征需要從文本中選取,用統(tǒng)計(jì)的模型對選出的特征進(jìn)行訓(xùn)練,從而得到各模型的參數(shù),進(jìn)而對實(shí)體進(jìn)行識別。有學(xué)者采用基于詞匯資源、模板的統(tǒng)計(jì)信息等進(jìn)行上下文聚類的方式[1-3];也有學(xué)者使用少量標(biāo)注的種子數(shù)據(jù)作為開始,再去無監(jiān)督語料中進(jìn)行訓(xùn)練,迭代后發(fā)現(xiàn)符合規(guī)則的實(shí)體[4-7]?;诮y(tǒng)計(jì)的方法主要是在標(biāo)注訓(xùn)練數(shù)據(jù)集上,利用模型來抽取數(shù)據(jù)集中的特征,對訓(xùn)練數(shù)據(jù)集以外的數(shù)據(jù)進(jìn)行實(shí)體抽取。常用的識別模型有馬爾可夫模型(hidden Markov model,HMM)[8]、支持向量機(jī)(support vector machine,SVM)[9]、條件隨機(jī)場(CRF)[10]等。有監(jiān)督學(xué)習(xí)雖然有優(yōu)勢并且能夠有效處理海量的數(shù)據(jù),但是其不足之處在于,第一,模型的訓(xùn)練需要大量的人工標(biāo)注語料、代價高;第二,有監(jiān)督學(xué)習(xí)的識別效果依賴特征工程選取的特征,因此如何選取反映實(shí)體特性的特征集合,對于模型來說至關(guān)重要。
目前,深度學(xué)習(xí)算法在自然語言處理領(lǐng)域已經(jīng)得到了大規(guī)模的應(yīng)用,在命名實(shí)體識別領(lǐng)域,基于深度學(xué)習(xí)的方法已經(jīng)成為主流。循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNN)等時序網(wǎng)絡(luò)模型,在文本序列標(biāo)注中表現(xiàn)出良好的效果,神經(jīng)網(wǎng)絡(luò)模型的輸入分為字粒度、詞粒度和句子粒度,通過學(xué)習(xí)嵌入模型以向量的形式表示,輸入到神經(jīng)網(wǎng)絡(luò)中進(jìn)行編碼,然后通過條件隨機(jī)場模型對編碼的數(shù)據(jù)進(jìn)行解碼,得到全局最優(yōu)的標(biāo)注序列。為了解決RNN 中梯度消失和梯度爆炸問題,研究學(xué)者又提出了一種長短期記憶網(wǎng)絡(luò)模型(long shortterm memory,LSTM)[11],這種改進(jìn)的時序網(wǎng)絡(luò)模型適用于命名實(shí)體識別任務(wù),具有較大的優(yōu)勢。Huang 等人[12]提出了雙向長短期記憶網(wǎng)絡(luò)(bidirectional long shortterm memory,BiLSTM)和條件隨機(jī)場(CRF)架構(gòu)用于自然語言處理序列標(biāo)注任務(wù),將拼寫特征、內(nèi)容特征、詞向量作為神經(jīng)網(wǎng)絡(luò)的輸入,該論文將模型用于命名實(shí)體識別任務(wù)中獲得了先進(jìn)水平。2018 年,由Google 的研究人員Devlin等人[13]提出的BERT模型采用Transformer編碼和自注意力機(jī)制對大規(guī)模語料進(jìn)行訓(xùn)練,得到了表征能力強(qiáng)的預(yù)訓(xùn)練字向量。李明揚(yáng)等人[14]在BiLSTMCRF模型的基礎(chǔ)上引入自注意力機(jī)制,豐富了文本的特征,在微博語料庫中達(dá)到58.76%的效果。李博等人[15]針對中文電子病歷命名實(shí)體識別傳統(tǒng)模型識別效果不佳的問題,提出一種完全基于注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)模型,對Transformer模型進(jìn)行訓(xùn)練優(yōu)化以提取文本特征;利用條件隨機(jī)場對提取到的文本特征進(jìn)行分類識別,具有較好的識別效果。
楊培等人[16]利用BiLSTM 學(xué)習(xí)字符向量,隨后將詞向量和字符向量再經(jīng)過另一個BiLSTM 以獲得詞的上下文表示,然后再利用Attention機(jī)制獲得詞在全文范圍下的上下文表示,最后利用CRF層得到整篇文章的標(biāo)簽序列。Kuru 等人[17]提出的一種基于字符級別的命名實(shí)體識別標(biāo)注模型及標(biāo)注模式,該方法能更好地捕獲詞組的形態(tài)學(xué)特征,同時又可以避免出現(xiàn)未登陸的詞(OOV)情況。Zhang 等人[18]采用Lattice LSTM 模型進(jìn)行實(shí)體識別,該模型對輸入字符序列以及與詞典匹配的所有潛在單詞進(jìn)行編碼,供模型自動取用,相比于字符級的編碼,Lattice LSTM 能夠獲取更豐富的語義;相比于詞序列的編碼,Lattice LSTM能夠避免分詞錯誤帶來的影響。
但在特定的時鐘領(lǐng)域的實(shí)體識別方法還存在一些難點(diǎn)問題:(1)時鐘行業(yè)內(nèi)數(shù)據(jù)類型眾多,存儲格式不統(tǒng)一,并且信息實(shí)體之間大部分不是直接連接的。信息實(shí)體與通用的命名實(shí)體也是不一致的,需要對概念實(shí)體進(jìn)行重新定義。(2)時鐘領(lǐng)域缺乏足夠多的標(biāo)注數(shù)據(jù),人工標(biāo)注的成本很高,需要耗費(fèi)大量的時間以及精力,并且實(shí)體標(biāo)注難度大。目前并無學(xué)者對時鐘領(lǐng)域的命名實(shí)體識別進(jìn)行探索,時鐘領(lǐng)域也沒有公開的大規(guī)模的帶標(biāo)簽的數(shù)據(jù)集。因此,本文針對時鐘領(lǐng)域的命名實(shí)體識別問題,提出了一種結(jié)合BERT和Linear-CRF的時鐘領(lǐng)域命名實(shí)體識別模型,記作BERT-LCRF。
面向時鐘領(lǐng)域的命名實(shí)體識別方法,其目標(biāo)是從時鐘行業(yè)的文檔中識別出與時鐘行業(yè)相關(guān)的實(shí)體,并將他們歸類到預(yù)先定義好的實(shí)體類別中。
首先根據(jù)收集的時鐘領(lǐng)域的各種文檔,分析時鐘領(lǐng)域的專業(yè)術(shù)語和概念,預(yù)先定義時鐘領(lǐng)域的實(shí)體類別集合C={c1,c2,…,cm}。根據(jù)時鐘領(lǐng)域的文本特點(diǎn)和實(shí)體類別集合C,采用BIO 標(biāo)注策略,定義實(shí)體標(biāo)簽集合L。令B代表Beginning,標(biāo)注實(shí)體的起始部分,I代表Inside,標(biāo)注實(shí)體的中間部分,O 代表Outside,標(biāo)注與實(shí)體無關(guān)的信息,實(shí)體標(biāo)簽集合L={l1,l2,…,lk}。面向時鐘領(lǐng)域的命名實(shí)體識別問題可以轉(zhuǎn)換為序列標(biāo)注問題,輸入句子的字序列,預(yù)測輸出其實(shí)體標(biāo)簽序列。
面向時鐘領(lǐng)域命名實(shí)體識別任務(wù)是:
訓(xùn)練階段:對給定時鐘領(lǐng)域訓(xùn)練樣本集X和實(shí)體標(biāo)簽序列空間Y,訓(xùn)練生成:
其中,hBERT-LCRF是本文面向時鐘領(lǐng)域提出的一種基于BERT和線性鏈條件隨機(jī)場(Linear-CRF)的命名實(shí)體識別模型,框架如圖1 所示。hBERT-LCRF的目標(biāo)函數(shù)是最大化如式(2)的對數(shù)似然。
測試階段:對任意句子x=(x1,x2,…,xn),預(yù)測實(shí)體標(biāo)簽序列為:
其中,hBERT-LCRF是訓(xùn)練好的命名實(shí)體識別訓(xùn)練模型。∈L,是對x預(yù)測的實(shí)體標(biāo)簽序列。
如圖1所示,BERT-LCRF的時鐘領(lǐng)域命名實(shí)體識別模型由BERT層、Linear-CRF層組成。其中,BERT層是特征提取層,實(shí)現(xiàn)特征提取的功能。Linear-CRF層是基于Linear-CRF 的序列標(biāo)注層,實(shí)現(xiàn)序列標(biāo)注的功能。BERT層和Linear-CRF層將在2.2~2.4節(jié)詳細(xì)描述。
圖1 BERT-LCRF的模型結(jié)構(gòu)圖Fig.1 BERT-LCRF model structure diagram
BERT 模型[13]是從語料中學(xué)習(xí),并充分考慮語料中句子級、詞語級和字符級之間的關(guān)系特征,增強(qiáng)字向量的語義表示。BERT 的結(jié)構(gòu)如圖2 所示,其最大的特點(diǎn)是拋棄循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和卷積神經(jīng)網(wǎng)絡(luò)(CNN),采用多層的Transformer結(jié)構(gòu)。
圖2 BERT模型結(jié)構(gòu)Fig.2 BERT model structure
如圖2所示,BERT的輸入是n個字序列,經(jīng)過BERT嵌入層(embedding),表示成字編碼向量(e1,e2,…,en),輸出是(t1,t2,…,tn),表示n個字的得分概率向量。
為融合字左右兩側(cè)的上下文,BERT 采用多個雙向Transformer 作為編碼器,即圖2 中的Trm。通過Transformer 中的注意力機(jī)制將任意位置的兩個單詞的距離轉(zhuǎn)換,反映各個字之間的相關(guān)程度,從而使輸出的各個字向量都充分融合了上下文的信息,解決了一詞多義的問題。BERT 模型具有很好的并行計(jì)算能力,且能夠捕獲長距離的特征。
條件隨機(jī)場(condition random field,CRF)模型是一種用于標(biāo)注和切分有序數(shù)據(jù)的條件概率模型,該模型結(jié)合了隱馬爾可夫和最大熵模型的優(yōu)點(diǎn)。
假設(shè)x=(x1,x2,…,xn),y=(y1,y2,…,yn)均為線性鏈表示的隨機(jī)變量序列,如果給定隨機(jī)變量序列x,隨機(jī)變量序列y的條件概率分布Pr(y|x)構(gòu)成條件隨機(jī)場,即滿足馬爾可夫性:
則稱Pr(y|x)為線性鏈條件隨機(jī)場(Linear-CRF)。
序列標(biāo)注問題中,x表示輸入觀測序列,y表示對應(yīng)的輸出標(biāo)記序列或狀態(tài)序列,且與觀測序列具有相同的結(jié)構(gòu)。因此,序列標(biāo)注問題可以表示為如圖3所示的Linear-CRF。
圖3 線性鏈條件隨機(jī)場Fig.3 Linear chain conditional random field
對序列標(biāo)簽的預(yù)測,通常采用softmax分類器方法,但是softmax方法沒有考慮標(biāo)簽之間的依賴關(guān)系。
本文采用Linear-CRF 進(jìn)行序列標(biāo)簽預(yù)測,Linear-CRF能夠考慮各字標(biāo)簽之間的約束關(guān)系,它利用每個字標(biāo)簽的得分與字標(biāo)簽之間的轉(zhuǎn)移矩陣A計(jì)算不同標(biāo)簽序列的出現(xiàn)概率Pr(y|x),從而能夠從中選取出概率最大的序列y*作為所考慮句子的標(biāo)簽序列。
本文基于BERT 和Linear-CRF 提出了面向時鐘領(lǐng)域的BERT-LCRF命名實(shí)體識別模型。
如圖1 所示,輸入句子x=(x1,x2,…,xn),由BERT模型輸出字序列標(biāo)簽的得分概率向量T=(t1,t2,…,tn),然后采用Linear-CRF 模型預(yù)測句子中的每個字xi∈x的最優(yōu)標(biāo)簽,從而完成時鐘領(lǐng)域的命名實(shí)體識別任務(wù)。
2.4.1 BERT嵌入層
BERT 嵌入層即圖1 和圖2 中的“embedding”層,由三種embedding求和而成,具體如圖4所示。
圖4 BERT嵌入層的特征嵌入表示Fig.4 Feature embedding representation of BERT embedding layer
BERT 嵌入層的輸入是字的線性序列,支持單句文本和句對文本,句首用符號[CLS]表示,句尾采用符號[SEP],斷開輸入的兩個句子。
BERT嵌入層由詞嵌入(token embeddings)、分割嵌入(segment embeddings)和位置嵌入(position embeddings)共同組成[13],其中詞嵌入是將中文字符轉(zhuǎn)為字向量,位置嵌入是指將字符的位置信息編碼成特征向量,分割嵌入用于區(qū)分兩個句子。其中,位置嵌入(position embeddings)用來加入位置信息,支持序列長度為512,利用正余弦函數(shù)對字進(jìn)行位置編碼,將字的位置信息編碼成特征矩陣,其編碼如式(5)和(6)[13]。
其中,PE為二維矩陣,其維度與輸入embedding 的相同,這里行表示字,列表示字向量,pos表示字在句子中的位置,dmodel表示字向量的維度,i表示字向量的位置,a等于10 000。位置編碼的每個維度的波長形成是從2π 到a?2π 的幾何數(shù),對于任何固定偏移k,PE(pos,k)可以表示為一個線性的位置編碼。位置編碼是通過線性變換獲取后續(xù)字符相對于當(dāng)前字符的位置關(guān)系,能夠更好地表達(dá)語義關(guān)系。
輸入句子x=(x1,x2,…,xn),由BERT嵌入層的三種embedding轉(zhuǎn)換求和之后,每個字xi轉(zhuǎn)換為嵌入向量ei輸出,得到句子的嵌入表示E=(e1,e2,…,en),其中ei是對應(yīng)xi的向量表示,是一個m維向量,E是一個n×m維的矩陣,每一行對應(yīng)句子中一個字的向量表示,然后作為圖2中Trm層的輸入。
2.4.2 Trm層
如圖2 所示,BERT 的Trm 層由多個Transformer 編碼器(Encoder)組成,每個Encoder的結(jié)構(gòu)如圖5所示。
圖5 Encoder詳細(xì)結(jié)構(gòu)Fig.5 Encoder detailed structure
每個Encoder包括多頭自注意力機(jī)制層(multi-head self-attention)、全連接層(feed forward)、殘差連接和歸一化層(add&normal)。在Encoder 中最主要的模塊為multi-head self-attention[19],其核心思想是計(jì)算句子中每個字與該句子中其他所有的字的相互關(guān)系,并調(diào)整每個字的權(quán)重,獲取每個字的新的表達(dá)方式。
Encoder的輸入是BERT嵌入層的輸出E。將目標(biāo)字的ei通過線性變換得到表示目標(biāo)字的q向量、表示上下文各個字的k向量以及表示目標(biāo)字與上下文各個字的原始v向量,然后計(jì)算q向量與各個k向量的相似度作為權(quán)重,加權(quán)融合目標(biāo)字的v向量和各個上下文字的v向量,計(jì)算[19]如式(7):
其中,q表示查詢向量,k表示鍵向量,v表示值向量,d為縮放因子,其目的是使模型的梯度更穩(wěn)定。采用點(diǎn)積的計(jì)算機(jī)制,使當(dāng)前節(jié)點(diǎn)不只關(guān)注當(dāng)前的字,而是關(guān)注整個句子,從而獲取到上下文的語義信息,在一定程度上反映出不同字符之間的關(guān)聯(lián)性和重要程度,獲得更豐富的語義特征表達(dá)。最后使用softmax進(jìn)行歸一化處理。
在實(shí)際應(yīng)用過程中,編碼器(encoder)中使用多頭自注意力(multi-head self-attention),利用不同的Self-Attention 模塊獲得句子中每個字在不同語義空間下的增強(qiáng)語義向量,并將每個字的多個增強(qiáng)語義向量進(jìn)行拼接,再進(jìn)行線性變換,從而獲得一個最終的與原始字向量長度相同的增強(qiáng)語義向量,作為Multi-Head Self-Attention層的結(jié)果,計(jì)算如式(8)和式(9)。表示第i個head的權(quán)重矩陣,WO表示附加的權(quán)重矩陣,在模型訓(xùn)練時不斷更新。在多頭注意力層通過不同的head得到多個特征表達(dá),將所有的特征拼接到一起,作為增強(qiáng)語義的向量表示。
在殘差鏈接和歸一化層(add&normal)中,利用殘差鏈接可避免在模型較深時,反向傳播過程中的梯度消失問題。當(dāng)網(wǎng)絡(luò)進(jìn)行前向傳播時,可以按照網(wǎng)絡(luò)層數(shù)進(jìn)行逐層傳播,還可以從當(dāng)前層隔一層或多層向前傳播。該層能對各特征之間的輸入進(jìn)行規(guī)范化。然后將處理后的數(shù)據(jù)zi傳送給全連接層(feed forward),該層可以進(jìn)行并行計(jì)算。
在全連接層(feed forward neural network),是一個兩層的全連接層,第一層的激活函數(shù)為Relu,第二層不使用激活函數(shù),對應(yīng)的公式如下:
其中,
其中,zi為殘差鏈接和歸一化層的輸出,W1,W2,b1,b2均為前饋網(wǎng)絡(luò)層的權(quán)值參數(shù)。
在模型結(jié)構(gòu)中,每一層都會間隔一層add&normal,這是深度殘差網(wǎng)絡(luò)的特性,將前一層的輸入和輸出進(jìn)行求和正則,得到R=(r1,r2,…,rn),并將其作為下一個Encoder 的輸入,在經(jīng)過多個Encoder 編碼后,最后通過softmax 歸一化得到各個字的標(biāo)簽得分概率向量T=(t1,t2,…,tn)。
使用Transformer編碼器(Encoder)能夠計(jì)算句中字與字之間的關(guān)系,使得模型能夠?qū)W習(xí)字之間的聯(lián)系以及每個字的重要程度,獲取全局特征信息。
2.4.3 基于Linear-CRF的序列標(biāo)注層
給定句子x=(x1,x2,…,xn),由BERT模型得到的字序列的實(shí)體標(biāo)簽得分概率T=(t1,t2,…,tn),ti是字xi的實(shí)體標(biāo)簽得分,T是linear-CRF序列標(biāo)注層的輸入。
linear-CRF 層的參數(shù)是一個(n+2)×(n+2)的實(shí)體標(biāo)簽轉(zhuǎn)移矩陣A,Aij表示是從第i個標(biāo)簽到第j標(biāo)簽的轉(zhuǎn)移得分,體現(xiàn)的是實(shí)體標(biāo)簽之間的約束關(guān)系。對一個位置進(jìn)行標(biāo)注時,可以利用此前已經(jīng)標(biāo)注過的標(biāo)簽。n+2 是為句子首部添加一個起始狀態(tài),句子尾部添加一個終止?fàn)顟B(tài)。
對給定的句子x,根據(jù)每個字的實(shí)體標(biāo)簽的得分ti,以及字標(biāo)簽之間的轉(zhuǎn)移矩陣A,計(jì)算對x預(yù)測為不同標(biāo)簽序列y的概率,取概率最大的標(biāo)簽序列y*,作為該句子的標(biāo)簽序列,具體過程如下:
對任意一個句子x=(x1,x2,…,xn),n是字序列長度,也是標(biāo)簽序列的長度,那么BERT-LCRF模型對x預(yù)測為標(biāo)簽序列y的得分計(jì)算如式(11):
其中,表示第i個字被標(biāo)記為yi的概率,A為轉(zhuǎn)移矩陣,表示從yi標(biāo)簽轉(zhuǎn)移到y(tǒng)i+1標(biāo)簽的概率,n為序列長度。因此,整個字序列的得分是每個字的分?jǐn)?shù)之和,而每個字的分?jǐn)?shù)由兩部分組成,一部分是由上一層輸出的ti決定,另一部分則由linear-CRF的轉(zhuǎn)移矩陣A決定。最后利用softmax函數(shù)歸一化,計(jì)算Pr(y|x)如式(12)所示:
其中,y′∈Y,L是對時鐘領(lǐng)域的字標(biāo)簽集合,y′是可能的字標(biāo)簽序列,式(12)的對數(shù)似然計(jì)算如式(13):
最后在解碼階段,使用維特比算法[20]求解最優(yōu)路徑,計(jì)算如式(14):
由此對于輸入字序列x=(x1,x2,…,xn),經(jīng)過模型BERT-LCRF預(yù)測,得到字序列標(biāo)簽
本文采用自建的時鐘領(lǐng)域語料庫(clock-dataset)對BERT-LCRF模型的有效性進(jìn)行實(shí)驗(yàn)評估。
(1)時鐘領(lǐng)域文本預(yù)處理
首先收集時鐘行業(yè)的時鐘系統(tǒng)建議書作為原始數(shù)據(jù),由于原始文本數(shù)據(jù)的存儲格式不同,包含對實(shí)體識別無用的信息,經(jīng)過格式轉(zhuǎn)換、過濾圖片等無用信息、分段、分句等預(yù)處理,得到初始以句子為單位的時鐘領(lǐng)域語料庫。
(2)領(lǐng)域新詞識別和自定義字典
對未分詞的語料庫,采用基于互信息和左右熵算法[21]進(jìn)行領(lǐng)域新詞的識別。該方法首先計(jì)算詞與其右鄰接字的互信息,得到候選新詞,然后再采用鄰接熵、過濾候選新詞首尾的停用詞和過濾舊詞語等規(guī)則進(jìn)行篩選,最終得到領(lǐng)域新詞集,并添加領(lǐng)域自定義詞典(clockdictionary)中。結(jié)合clock-dictionary,采用jieba 分詞對初始時鐘語料庫中的句子進(jìn)行分詞,提高領(lǐng)域分詞結(jié)果的準(zhǔn)確性。同時將分詞結(jié)果作為時鐘領(lǐng)域的先驗(yàn)知識,減少人工標(biāo)注審核的工作量,提高標(biāo)注的效率,降低標(biāo)注誤差。
(3)實(shí)體類別和實(shí)體標(biāo)簽定義
根據(jù)時鐘系統(tǒng)建議書的領(lǐng)域特性,進(jìn)行概念抽取,結(jié)合對領(lǐng)域詞匯的統(tǒng)計(jì)分析,定義時鐘領(lǐng)域的實(shí)體類別集合C={c1,c2,…,cm},其中ci∈C,可以是地域(CITY)、設(shè)備(EQU)、對象(OBJ)等,具體如表1所示。
表1 時鐘領(lǐng)域?qū)嶓w類別描述Table 1 Entity category description in clock domain
在定義了實(shí)體類別集合C后,根據(jù)時鐘領(lǐng)域的文本特點(diǎn),采用BIO 標(biāo)注策略,令B 代表Beginning,標(biāo)注實(shí)體的起始部分,I代表Inside,標(biāo)注實(shí)體的中間部分,O代表Outside,標(biāo)注與實(shí)體無關(guān)的信息,定義實(shí)體字標(biāo)簽集合L={l1,l2,…,lk},其中l(wèi)i∈L,具體描述如表2所示。
表2 clock-dataset的實(shí)體標(biāo)簽描述Table 2 Label category description of clock-dataset
(4)語料標(biāo)注
在沒有時鐘領(lǐng)域的標(biāo)注語料時,通過設(shè)計(jì)人機(jī)交互的輔助實(shí)體標(biāo)注平臺,輔助專業(yè)人士快速、高效標(biāo)注高質(zhì)量的訓(xùn)練語料,記作時鐘領(lǐng)域數(shù)據(jù)集(clock-dataset)。在獲得一定數(shù)量的人工標(biāo)注數(shù)據(jù)后,可以利用BERTLCRF命名實(shí)體識別方法,結(jié)合semi-supervised learning(半監(jiān)督學(xué)習(xí))、self-learning(自學(xué)習(xí))和active learning(主動學(xué)習(xí))等方法進(jìn)行標(biāo)注數(shù)據(jù)的擴(kuò)充。實(shí)驗(yàn)中,對標(biāo)注的clock-dataset 數(shù)據(jù)集,劃分成三個數(shù)據(jù)集:訓(xùn)練集、測試集和驗(yàn)證集,具體表述如表3所示。
表3 clock-dataset的劃分描述Table 3 Clock-dataset division
本文的實(shí)驗(yàn)環(huán)境設(shè)置:64 位Window10 系統(tǒng),AMD Ryzen 7 2700X Eight-Core Pricessor 3.70 GHz 處理器,8 GB內(nèi)存,顯卡為NVIDIA GeForce GTX 1060 6 GB中進(jìn)行。使用的編程語言為Python,深度學(xué)習(xí)框架Pytorch。
實(shí)驗(yàn)中,設(shè)置網(wǎng)絡(luò)的損失函數(shù)為最大似然函數(shù),采用BertAdam 優(yōu)化方法不斷更新參數(shù),并使損失函數(shù)最小化。為了防止模型過擬合,提高模型的泛化能力,在網(wǎng)絡(luò)模型中加入Dropout,將其設(shè)置為0.1。BERT 模型共12 層,768 個隱藏單元,12 個注意力頭。實(shí)驗(yàn)參數(shù)設(shè)置如表4所示。
表4 實(shí)驗(yàn)參數(shù)設(shè)置Table 4 Experimental parameter settings
實(shí)驗(yàn)中采用宏準(zhǔn)確率(Macro-P),宏召回率(Macro-R)和宏F1值(Macro-F1)三個指標(biāo),對如表1所示的七類實(shí)體的識別結(jié)果進(jìn)行評估,計(jì)算公式如下:
其中,TP(cj)表示屬于cj實(shí)體類別,且識別正確實(shí)體數(shù);FN(cj)表示屬于cj實(shí)體類別,但識別不正確的實(shí)體數(shù);FP(cj)表示不屬于cj實(shí)體類別,但被識別為cj的實(shí)體數(shù)。
為了驗(yàn)證所提BERT-LCRF模型的有效性,與HMM、CRF、LSTM、BiLSTM-CRF模型進(jìn)行了命名實(shí)體識別對比實(shí)驗(yàn)。
3.4.1 命名實(shí)體識別模型總體識別效果比較分析
在clock-dataset 上,BERT-LCRF 模型與BiLSTMCRF、LSTM、HMM、CRF模型的命名實(shí)體識別對比實(shí)驗(yàn)結(jié)果如表5所示。
表5 不同模型的命名實(shí)體識別結(jié)果比較Table 5 Comparison of named entity recognition results of different models %
從表5 中可以看出,針對于時鐘領(lǐng)域的語料而言,所提BERT-LCRF模型相對于其他四種算法模型取得了較為優(yōu)異的結(jié)果。如表5所示,HMM、CRF、LSTM算法的Macro-P分別為71.51%、82.84%、94.13%,BiLSTM-CRF模型為95.53%,而BERT-LCRF 的準(zhǔn)確率為96.70%,評估指標(biāo)Macro-R和Macro-F1的對比也是類似的。
分析表5中不同方法的效果對比,其中HMM、CRF算法沒有學(xué)習(xí)上下文的語義關(guān)系,因此識別效果不好。LSTM 只是單向的學(xué)習(xí)文本序列,沒有CRF,雖然可以得到句子中每個單元的正確標(biāo)簽,但是不能保證標(biāo)簽每次都是預(yù)測正確的。BiLSTM-CRF 模型采用雙向LSTM 和CRF,其結(jié)果優(yōu)于LSTM 方法,其Macro-P 為95.53%、Macro-R 為94.98%、Macro-F1 為95.26%。而BERT-LCRF 模型的三種評估指標(biāo)為96.70%、96.73%和96.71%,對比BiLSTM-CRF模型平均提升了0.9%。
原因在于,本文使用BERT預(yù)訓(xùn)練語言模型來代替BiLSTM?;贐iLSTM-CRF 命名實(shí)體識別方法不能很好地利用語料中的上下文的語義關(guān)系,而BERTLCRF 模型增加了位置編碼以及注意力機(jī)制,能夠很好地利用語料中的上下文語義關(guān)系,對時鐘領(lǐng)域數(shù)據(jù)進(jìn)行特征提取,能夠充分學(xué)習(xí)時鐘領(lǐng)域的特征信息,解決時鐘領(lǐng)域的特征表示的一詞多義問題,因此BERT-LCRF模型的識別效率相對最高。
3.4.2 時鐘領(lǐng)域每類實(shí)體的識別效果比較
為進(jìn)一步驗(yàn)證BERT-LCRF模型對每類實(shí)體的識別效果,與HMM 模型、CRF 模型和BiLSTM-CRF 模型進(jìn)行了實(shí)驗(yàn)對比,實(shí)驗(yàn)結(jié)果如表6~9所示。
從表6~9 中可以看出,BERT-LCRF 模型在13 種實(shí)體類別上的宏準(zhǔn)確率、宏召回率、宏F1值均比其他模型的高,說明BERT-LCRF 模型的每類實(shí)體識別效果要優(yōu)于其他模型。
從表6~9中還可以看出,所有實(shí)體類別中,“B-OBJ”和“I-OBJ”對象類實(shí)體的宏準(zhǔn)確率最高,HMM 模型為87.67%,CRF 模型為94.95%,BiLSTM-CRF 模型為97.46%,BERT-LCRF模型為97.49%。分析原因,時鐘領(lǐng)域數(shù)據(jù)中的對象這類實(shí)體的數(shù)量比較多,并且實(shí)體組成較為單一,邊界詞明顯,主要是以“系統(tǒng)”兩個字作為結(jié)尾,并且有固定的表達(dá)格式,例如“時鐘系統(tǒng)”“時鐘同步系統(tǒng)”“子母鐘系統(tǒng)”等,因此在識別過程中宏準(zhǔn)確率高。功能、技術(shù)這類實(shí)體的宏準(zhǔn)確率相對較低,功能(FUN)和技術(shù)(TEC)這類實(shí)體,實(shí)體數(shù)量相對其他實(shí)體來說,實(shí)體數(shù)量少,存在OOV 詞,因此其宏準(zhǔn)確率會相對較低,其余的實(shí)體類別宏準(zhǔn)確率相對而言比較平均。
表6 HMM模型實(shí)體類別識別結(jié)果Table 6 HMM model entity category recognition results %
本文針對時鐘領(lǐng)域的問題,定義時鐘領(lǐng)域?qū)嶓w類別,選擇適合時鐘領(lǐng)域文本的標(biāo)注規(guī)則,設(shè)計(jì)輔助標(biāo)注平臺,構(gòu)建時鐘領(lǐng)域數(shù)據(jù)集(clock-dataset),提出一種BERT-LCRF 的命名實(shí)體識別模型。該模型利用BERT結(jié)合時鐘領(lǐng)域的先驗(yàn)知識,充分學(xué)習(xí)時鐘領(lǐng)域的特征信息,而Linear-CRF 能夠提高序列標(biāo)注的準(zhǔn)確度,從而BERT-LCRF模型能夠提高實(shí)體識別的精度。在時鐘行業(yè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,該模型在各項(xiàng)指標(biāo)上顯著優(yōu)于同類其他模型。BERT-LCRF模型是構(gòu)建時鐘領(lǐng)域知識圖譜的基礎(chǔ),時鐘領(lǐng)域的實(shí)體類別和標(biāo)簽還有待擴(kuò)充,下一步將在此基礎(chǔ)上結(jié)合時鐘領(lǐng)域先驗(yàn)知識進(jìn)行事件抽取,進(jìn)一步構(gòu)建面向時鐘領(lǐng)域的知識圖譜。
表7 CRF模型實(shí)體類別識別結(jié)果Table 7 CRF model entity category recognition results %
表8 BiLSTM-CRF模型實(shí)體類別識別結(jié)果Table 8 BiLSTM-CRF model entity category recognition results %
表9 BERT-LCRF模型實(shí)體類別識別結(jié)果Table 9 BERT-LCRF model entity category recognition results %