王 凱,李仁港,王天一
(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴陽(yáng) 550025)
隨著人工智能的發(fā)展,傳統(tǒng)手工、非實(shí)時(shí)的記錄方式已經(jīng)跟不上時(shí)代的步伐。中國(guó)作為一個(gè)羊業(yè)大國(guó),養(yǎng)殖智能化能方便農(nóng)戶更精準(zhǔn)、高效的管理養(yǎng)殖,促進(jìn)養(yǎng)殖業(yè)的發(fā)展,減少人工成本。知識(shí)圖譜作為養(yǎng)殖智能化中關(guān)鍵一環(huán),其在知識(shí)歸納、推理、問(wèn)答等方面有著舉足輕重的地位。
目前,基于深度學(xué)習(xí)的命名實(shí)體識(shí)別逐漸受到關(guān)注[1]。與需要人工選取特征的基于傳統(tǒng)機(jī)器學(xué)習(xí)的方法和耗時(shí)長(zhǎng)且難以移植的基于規(guī)則的方法相比,基于深度學(xué)習(xí)的命名實(shí)體識(shí)別得到了廣泛的應(yīng)用[2]。仇增輝等[3]使用條件隨機(jī)場(chǎng)(Conditional Random Field,CRF)、雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(Bidirectional Long Short-Term Memory,BiLSTM)為基礎(chǔ)網(wǎng)絡(luò)對(duì)網(wǎng)購(gòu)評(píng)論進(jìn)行識(shí)別,得到不錯(cuò)的識(shí)別效果;張帆等[4]用深度學(xué)習(xí)的方法對(duì)醫(yī)療文本進(jìn)行實(shí)體識(shí)別,得到了比傳統(tǒng)方法更高的準(zhǔn)確率和召回率;阿依圖爾蓀·喀迪爾[5]用神經(jīng)網(wǎng)絡(luò)強(qiáng)化電子病歷識(shí)別,為醫(yī)療提供了更加精準(zhǔn)的服務(wù);王學(xué)峰等[6]基于深度學(xué)習(xí)命名實(shí)體識(shí)別,在軍事語(yǔ)料庫(kù)識(shí)別的準(zhǔn)確率、召回率、F1 值都得到很大提高;方紅等[7]提出一種融合注意力機(jī)制的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)和雙向門(mén)限 控循環(huán)單元(Bidirectional Gated Recurrent Unit,BiGRU)結(jié)合的網(wǎng)絡(luò)模型,對(duì)產(chǎn)品質(zhì)量檢測(cè)進(jìn)行識(shí)別,準(zhǔn)確率和F1值都在74.7%以上。
由以上可知,基于深度學(xué)習(xí)的命名實(shí)體識(shí)別相較于基于規(guī)則和基于機(jī)器學(xué)習(xí)來(lái)說(shuō),有著更高的識(shí)別率。在羊養(yǎng)殖領(lǐng)域,文本數(shù)據(jù)來(lái)源繁多,沒(méi)有特定的規(guī)則,各種實(shí)體定義、關(guān)系類別、屬性連接都需要人為定義,這導(dǎo)致實(shí)體識(shí)別難度較大。
為了解決羊養(yǎng)殖知識(shí)圖譜構(gòu)建中的命名實(shí)體識(shí)別問(wèn)題,本文利用預(yù)先訓(xùn)練的語(yǔ)言模型,通過(guò)預(yù)訓(xùn)練語(yǔ)言模型,充分利用詞左右兩邊的信息,獲取詞的分布式表示,連接卷積神經(jīng)網(wǎng)絡(luò)與雙門(mén)控循環(huán)單元層(Convolutional Neural Network and Bidirectional Gated Recurrent Units,CBG);在CBG 層,通過(guò)卷積神經(jīng)網(wǎng)絡(luò)CNN 提取羊養(yǎng)殖文本的字向量信息,利用雙門(mén)控循環(huán)單元BiGRU 網(wǎng)絡(luò)訓(xùn)練詞向量,提取文本語(yǔ)義信息;其次,對(duì)兩者訓(xùn)練出的詞向量結(jié)果進(jìn)行拼接;利用BiLSTM 網(wǎng)絡(luò)訓(xùn)練進(jìn)一步獲得文本特征;最后,利用CRF 層得到最大概率的輸出序列,從而識(shí)別出實(shí)體。
本試驗(yàn)所采用的資料主要來(lái)自于羊養(yǎng)殖相關(guān)書(shū)籍,以及其他有關(guān)羊的資料,結(jié)合百度百科,維基百科兩大平臺(tái)。經(jīng)過(guò)整理、歸納得到相關(guān)的羊養(yǎng)殖數(shù)據(jù),共計(jì)13 859 個(gè)句子,532 484 個(gè)字符。
本文采用BIO(Beginning Inside and Outside)標(biāo)注,數(shù)據(jù)集共包含實(shí)體17 451 個(gè),各類標(biāo)注實(shí)體數(shù)量見(jiàn)表1。
表1 標(biāo)注實(shí)體數(shù)量Tab.1 Number of labeled entities
本文先使用文本數(shù)據(jù)輸入BERT(Bidirectional Encoder Representations from Transformers,BERT)模型,進(jìn)行預(yù)訓(xùn)練處理,增加文本的泛化能力;其次,將訓(xùn)練好的字、詞向量分別送入CNN 網(wǎng)絡(luò)和Bi-GRU網(wǎng)絡(luò),提取字向量信息和上下文信息,并且將兩者訓(xùn)練出的詞向量結(jié)果進(jìn)行拼接;由于文本較大,為保證長(zhǎng)文本語(yǔ)義信息的依賴,將拼接的詞向量送入BiLSTM 網(wǎng)絡(luò),通過(guò)訓(xùn)練學(xué)習(xí)到輸入向量的雙向信息;最后,把BiLSTM 層學(xué)習(xí)到的特征輸入到CRF 層中,得到輸出序列。BERT-CBG-BiLSTM-CRF 模型整體結(jié)構(gòu)如圖1 所示。
圖1 BERT-CBG-BiLSTM-CRF 模型結(jié)構(gòu)Fig.1 BERT-CBG-BiLSTM-CRF model structure
BERT 模型有別于傳統(tǒng)的預(yù)訓(xùn)練模型只能單向訓(xùn)練,突破傳統(tǒng)語(yǔ)言預(yù)訓(xùn)練模型桎梏,通過(guò)MLM(Masked Language Model)及其本身特殊的結(jié)構(gòu)—雙向Transformer 編碼,能更深層次獲取文本的深層表征。因此,BERT 由于其獨(dú)特的結(jié)構(gòu)和其預(yù)訓(xùn)練任務(wù)的創(chuàng)新性,在自然語(yǔ)言處理預(yù)訓(xùn)練中取得驚人的效果,其模型結(jié)構(gòu)示意如圖2 所示。
圖2 BERT 結(jié)構(gòu)示意圖Fig.2 Schematic diagram of the BERT structure
CBG 層是由CNN 網(wǎng)絡(luò)模型和BiGRU 網(wǎng)絡(luò)模型拼接而成。通過(guò)CNN 訓(xùn)練BERT 輸入的字符集特征和BiGRU 網(wǎng)絡(luò)訓(xùn)練的詞語(yǔ)的語(yǔ)義特征,把兩者結(jié)果進(jìn)行組合,不僅得到字向量的信息,還得到包含上下文語(yǔ)義信息的詞向量。CBG 結(jié)構(gòu)示意圖如圖3所示。
圖3 CBG 結(jié)構(gòu)示意圖Fig.3 Schematic diagram of CBG structure
2.2.1 CNN
字符級(jí)CNN 用于命名實(shí)體識(shí)別,利用子詞信息消除對(duì)形態(tài)標(biāo)記或人工特征的需要并生成新單詞,本文基于CNN 的字符集分布式輸入特征表示如圖4 所示。
圖4 基于CNN 的字符級(jí)分布式輸入特征表示Fig.4 CNN-based representation of a character-level distributed input feature
該模型主要包含4 個(gè)結(jié)構(gòu),即輸入層、卷積層、池化層和全連接層。
輸入層輸入的是文本矩陣,通過(guò)BERT 預(yù)訓(xùn)練模型得到字、詞向量。
自向量進(jìn)入神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)的核心是卷積層,通過(guò)多層卷積計(jì)算,對(duì)輸入的向量進(jìn)行特征提取,再經(jīng)過(guò)池化層,最后把提取的特征向量進(jìn)行拼接。CNN 卷積層的計(jì)算如式(1):
其中,v為輸入向量;k為卷積核大??;w為權(quán)重矩陣;S為輸出值;b表示偏置。
經(jīng)過(guò)卷積計(jì)算后得到的特征向量進(jìn)入池化層,池化層繼續(xù)將這些特征進(jìn)行選擇和過(guò)濾。全連接層再把這些特征進(jìn)行分類,最后拼接。
本文采用CNN 網(wǎng)絡(luò)來(lái)訓(xùn)練字向量,通過(guò)卷積、池化、全連接,最后得到新的詞級(jí)別的特征向量E'c。
2.2.2 Bi-GRU
羊養(yǎng)殖文本較長(zhǎng),若選用RNN 網(wǎng)絡(luò)來(lái)進(jìn)行序列處理,可能因?yàn)樾蛄休^長(zhǎng)引起梯度消失和梯度爆炸,不能保證學(xué)習(xí)到長(zhǎng)距離的依賴特征。本文選用結(jié)構(gòu)跟LSTM 類似的GRU 網(wǎng)絡(luò),把遺忘門(mén)和輸入門(mén)合二為一,變成新的一個(gè)門(mén)即更新門(mén),又同時(shí)混合細(xì)胞狀態(tài)和隱藏狀態(tài)。Bi-GRU 能將當(dāng)前時(shí)刻的輸入與前一時(shí)刻的狀態(tài)都能與后一時(shí)刻的狀態(tài)產(chǎn)生聯(lián)系,從而達(dá)到很好的學(xué)習(xí)效果,使羊養(yǎng)殖文本具有連貫性,避免訓(xùn)練空泛。GRU 編碼單元如圖5 所示。
圖5 GRU 結(jié)構(gòu)Fig.5 GRU structure
GRU 的計(jì)算方式:在t時(shí)刻,Zt為更新門(mén),用來(lái)控制當(dāng)前狀態(tài)中前序記憶與候選記憶所占的比例,如式(2):
rt為重置門(mén),用于控制當(dāng)前內(nèi)容是否被記憶,計(jì)算如式(3):
ht代表隱藏層,計(jì)算如式(5):
其中,Wr、Wz、W、Ur、UZ、U都是GRU 的權(quán)重值;σ代表sigmoid激活函數(shù);ht-1為t -1 時(shí)刻隱含狀態(tài)的輸入。
將輸入詞向量Ew通過(guò)BiGRU 網(wǎng)絡(luò)訓(xùn)練,即可得到初步提取過(guò)語(yǔ)義信息的詞向量hcbg,將其與CNN 的輸出E'C拼接;在CBG 層獲得了拼接后的詞向量Ecbg,融合了初步提取的上下文語(yǔ)義和詞語(yǔ)語(yǔ)義;將其輸?shù)紹iLSTM 網(wǎng)絡(luò)訓(xùn)練,提取深層特征,由前向后的拼接所得的輸出將會(huì)產(chǎn)生BiLSTM 層的輸出h'cbg,將其引入CRF 層,經(jīng)過(guò)CRF 得到最大概率輸出序列。
經(jīng)過(guò)CBG 網(wǎng)絡(luò)的訓(xùn)練,從CNN 網(wǎng)絡(luò)得到訓(xùn)練好的詞向量,又從BiGRU 網(wǎng)絡(luò)得到深層特征的詞向量,但對(duì)于羊養(yǎng)殖文本而言,經(jīng)過(guò)這兩個(gè)網(wǎng)絡(luò)并沒(méi)有考慮到詞語(yǔ)在文本中的前后順序,也沒(méi)有考慮詞語(yǔ)之間的依賴關(guān)系。如“關(guān)中奶山羊”,經(jīng)過(guò)訓(xùn)練只知道“奶山羊”,而不知“關(guān)中”這個(gè)限定。因此,本文加了BiLSTM 網(wǎng)絡(luò)對(duì)文本進(jìn)行訓(xùn)練。
BiLSTM 網(wǎng)絡(luò)主要有兩個(gè)作用:一是可以考慮前后句子之間的相互關(guān)系,對(duì)文本向前和向后兩個(gè)方向進(jìn)行訓(xùn)練,在訓(xùn)練過(guò)程中學(xué)到保存哪些信息,遺棄哪些信息;二是對(duì)更微小的分類進(jìn)行限定,更好地捕獲句子之間的語(yǔ)義信息。門(mén)機(jī)制中各個(gè)門(mén)和記憶細(xì)胞的表達(dá)式介紹如下:
在t時(shí)刻遺忘門(mén)Ft的表達(dá)式(6):
在t時(shí)刻輸入門(mén)It的表達(dá)式(7):
在t時(shí)刻記憶門(mén)Ct的表達(dá)式(8):
在t時(shí)刻輸出門(mén)Ot的表達(dá)式(9):
最后的輸出為Ht,表達(dá)式(10):
其中,σ代表sigmoid激活函數(shù);tanh 為雙曲正切激活函數(shù);Wf、Wi、Wc、Wo、分別代表遺忘門(mén)權(quán)重矩陣、輸入門(mén)權(quán)重矩陣、當(dāng)前輸入單元權(quán)重矩陣和輸出門(mén)權(quán)重矩陣;Xt為t時(shí)刻的輸入向量;Ht-1為t -1時(shí)刻的輸出向量;bf、bi、bc、bo分別為遺忘門(mén)偏置向量、輸入門(mén)偏置向量、當(dāng)前輸入單元偏置向量和輸出門(mén)偏置向量。
通過(guò)BiLSTM 網(wǎng)絡(luò)輸出的是經(jīng)過(guò)標(biāo)注標(biāo)簽的預(yù)測(cè)值,但這些預(yù)測(cè)值雜亂無(wú)序,為了知道輸出的標(biāo)簽對(duì)應(yīng)實(shí)體,需要將這些預(yù)測(cè)值輸入CRF 層。
CRF 模塊主要作用就是考慮相鄰數(shù)據(jù)的標(biāo)記信息,自動(dòng)對(duì)BiLSTM 網(wǎng)絡(luò)輸出的預(yù)測(cè)分值進(jìn)行約束,確保盡量輸出的是合法序列,降低非法序列輸出概率。
對(duì)于輸入序列X =(x1,x2,…,xn)預(yù)測(cè)輸出序列Y =(y1,y2,…,yn)的得分可以用式(12)表示,即轉(zhuǎn)移概率和狀態(tài)概率之和。
其中,A表示轉(zhuǎn)移矩陣,P表示BiLSTM 的輸出得分矩陣。
再利用softmax 求得標(biāo)簽序列Y的概率值,式(13):
CRF 網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都代表一個(gè)預(yù)測(cè)值,在BiLSTM 輸出的預(yù)測(cè)序列的基礎(chǔ)上,該方法在網(wǎng)絡(luò)中找到最有可能的路徑,以確定所輸出的指定實(shí)體的標(biāo)簽,以實(shí)現(xiàn)標(biāo)識(shí)實(shí)體的標(biāo)識(shí)。因而訓(xùn)練的目標(biāo)就是最大化概率P(y |X),可通過(guò)對(duì)數(shù)似然的方式實(shí)現(xiàn),式(14):
最后利用維比特算法預(yù)測(cè)解碼,得到求解的最優(yōu)路徑,式(15):
實(shí)驗(yàn)采用Pytorch1.7.1 框架,實(shí)驗(yàn)環(huán)境設(shè)置為:Intel(R)Core(TM)i7-9700K CPU 6 核處理器;GPU 為RTX 2080,運(yùn)行內(nèi)存32 G。
本文實(shí)驗(yàn)參數(shù)具體設(shè)置見(jiàn)表2。
表2 參數(shù)設(shè)置Tab.2 Parameter settings
本文采用精確率、召回率和F1 值作為評(píng)價(jià)指標(biāo),如式(16)~式(18):
其中,TP表示正確把正樣本預(yù)測(cè)為正;FP表示錯(cuò)誤把負(fù)樣本預(yù)測(cè)為正;FN表示錯(cuò)誤把正樣本預(yù)測(cè)為負(fù)。
本文把數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集,比率為7 ∶3。各種實(shí)體相互獨(dú)立,確保實(shí)驗(yàn)的獨(dú)立性。各種實(shí)體信息見(jiàn)表3。
表3 實(shí)體信息Tab.3 Entity information
為了驗(yàn)證不同模型對(duì)于羊養(yǎng)殖數(shù)據(jù)集識(shí)別效果,本文做了4 組實(shí)驗(yàn),用當(dāng)前比較熱門(mén)的模型和本文提出的模型作對(duì)比,實(shí)驗(yàn)結(jié)果見(jiàn)表4。
表4 4 種模型實(shí)驗(yàn)Tab.4 Four model experiments
通過(guò)表4 可知,BiLSTM-CRF 模型F1 值為93.03%,識(shí)別效果最差;本文提出的BERT-CBGBiLSTM-CRF 模型的F1 值為95.86%,識(shí)別效果最好;BiLSTM-CRF 模型沒(méi)有對(duì)數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,導(dǎo)致識(shí)別效果不佳;BERT-LSTM-CRF 模型雖然對(duì)數(shù)據(jù)進(jìn)行了預(yù)訓(xùn)練,只使用單向長(zhǎng)短期記憶網(wǎng)絡(luò),訓(xùn)練只能從一個(gè)方向訓(xùn)練,丟失了部分句子之間的語(yǔ)義信息。本文提出的BERT-CBG-BiLSTM-CRF 模型在CBG 層通過(guò)CNN 網(wǎng)絡(luò)進(jìn)行字向量的訓(xùn)練,又通過(guò)Bi-GRU 網(wǎng)絡(luò)訓(xùn)練詞向量,充分學(xué)習(xí)到文本數(shù)據(jù)的上下文信息特征,從而達(dá)到很好的學(xué)習(xí)效果,使羊養(yǎng)殖文本具有連貫性,較BERT-BiLSTM-CRF 模型提高了1.07%。
對(duì)不同的網(wǎng)絡(luò)模型進(jìn)行了識(shí)別實(shí)驗(yàn)后,本文又對(duì)數(shù)據(jù)集進(jìn)行了不同的實(shí)體分類,并將其送入本文模型進(jìn)行命名實(shí)體識(shí)別,實(shí)驗(yàn)結(jié)果見(jiàn)表5。
表5 BERT-CBG-BiLSTM-CRF 模型下不同實(shí)體識(shí)別Tab.5 Identification of different entities under the BERT-CBGBiLSTM-CRF model
通過(guò)表5 可以看出,相較于特征、產(chǎn)地、建設(shè)和繁殖,經(jīng)濟(jì)價(jià)值和產(chǎn)區(qū)環(huán)境的準(zhǔn)確率、召回率和F1值都較低。原因有兩點(diǎn):一是由于某些不成功的實(shí)體是未登錄的,如:“關(guān)中奶山羊的皮毛和骨等為毛紡、制革、化工提供原料”中,“制革”在實(shí)體識(shí)別中就屬于未登錄詞,因此實(shí)體識(shí)別有很大概率識(shí)別不出來(lái);二是不同來(lái)源的知識(shí)說(shuō)法不一致,語(yǔ)料新舊不同,導(dǎo)致未能識(shí)別出來(lái)。比如“奶質(zhì)優(yōu)良”,有的說(shuō)法是“奶中含有多種營(yíng)養(yǎng)物質(zhì)”。
本文還對(duì)非數(shù)據(jù)集內(nèi)容進(jìn)行實(shí)體識(shí)別驗(yàn)證,結(jié)果見(jiàn)表6,可以看出,對(duì)于非數(shù)據(jù)集內(nèi)容,本文模型仍然可以將其識(shí)別出來(lái)。
表6 實(shí)體識(shí)別結(jié)果Tab.6 Entity Recognition Results
在構(gòu)建羊養(yǎng)殖知識(shí)圖譜過(guò)程中,針對(duì)羊養(yǎng)殖實(shí)體識(shí)別效果不佳的問(wèn)題,本文提出了改進(jìn)的命名實(shí)體識(shí)別模型BERT-CBG-BiLSTM-CRF,該模型在已有模型的基礎(chǔ)上增加了CBG 層,通過(guò)對(duì)字詞向量的訓(xùn)練,且將訓(xùn)練結(jié)果進(jìn)行拼接,最終的識(shí)別結(jié)果F1值為95.86%。