費(fèi)凡,楊林楠
(云南農(nóng)業(yè)大學(xué)大數(shù)據(jù)學(xué)院,昆明 650201)
隨著人工智能技術(shù)不斷涌入各個(gè)行業(yè),農(nóng)業(yè)領(lǐng)域的服務(wù)平臺(tái)及電商產(chǎn)業(yè)也在不斷升級(jí)。在每天呈幾何級(jí)數(shù)增長(zhǎng)的農(nóng)業(yè)文本數(shù)據(jù)中,高效且無(wú)誤地找出所需的實(shí)體信息以及解析出更復(fù)雜的語(yǔ)義知識(shí)都是在實(shí)現(xiàn)智慧農(nóng)業(yè)道路上所必須面臨的挑戰(zhàn)。命名實(shí)體識(shí)別屬于自然語(yǔ)言處理領(lǐng)域中基礎(chǔ)的信息技術(shù),可以看作是序列標(biāo)注的一種特殊形式[1],在此主要解決的問(wèn)題是從海量的非結(jié)構(gòu)化農(nóng)業(yè)文本數(shù)據(jù)中識(shí)別出專有的實(shí)體及其類型,常見(jiàn)的實(shí)體類型有農(nóng)作物、病害、蟲(chóng)害等。這為農(nóng)技服務(wù)平臺(tái)問(wèn)答系統(tǒng)的實(shí)現(xiàn)搭建了基礎(chǔ),也為農(nóng)業(yè)領(lǐng)域中的信息抽取和挖掘研究明確了方向[2]。
在命名實(shí)體識(shí)別的研究道路中,最初是采用規(guī)則和字典匹配的方法。例如Liu等[3]通過(guò)設(shè)計(jì)和調(diào)整最佳模板來(lái)識(shí)別數(shù)字和時(shí)間表達(dá)式。字典匹配方法是通過(guò)字典中內(nèi)置的實(shí)體從目標(biāo)序列中提取所有匹配的字符串。這些方法可能會(huì)在某些特定領(lǐng)域取得成功,但是都未能解決OOV(Out-of-vocabulary)問(wèn)題[4]。另外,這兩種方法都嚴(yán)重依賴于耗時(shí)的手工特性。后來(lái),統(tǒng)計(jì)機(jī)器學(xué)習(xí)的方法逐步興起,CRF結(jié)構(gòu)[5]成為命名實(shí)體識(shí)別最常用的方法。Li等[6]和Malarkodi等[7]使用CRF結(jié)構(gòu)在其自構(gòu)建的注釋語(yǔ)料庫(kù)上識(shí)別農(nóng)業(yè)命名實(shí)體,如作物、疾病和農(nóng)藥等,通過(guò)選擇不同的特征組合得到合理的試驗(yàn)結(jié)果。統(tǒng)計(jì)的機(jī)器學(xué)習(xí)方法雖然有效地提高了中文命名實(shí)體識(shí)別的精度,但是其仍然依賴于特征工程,導(dǎo)致工序十分耗時(shí)和繁瑣[8]。
基于深度學(xué)習(xí)的模型由于其不需要手工設(shè)計(jì)特征的端到端學(xué)習(xí)[9]而被廣泛應(yīng)用于命名實(shí)體識(shí)別。其中,代表性的網(wǎng)絡(luò)模型就是雙向長(zhǎng)短期記憶(Bidirectional Long Short-Term Memory,BiLSTM)神經(jīng)網(wǎng)絡(luò)[10]。Huang等[11]提出了第一個(gè)用于識(shí)別命名實(shí)體的BiLSTM-CRF機(jī)制。此外,Espejo-Garcia等[12]首次提出了一種基于BiLSTM和Softmax的深度學(xué)習(xí)架構(gòu),用來(lái)開(kāi)發(fā)一個(gè)端到端的序列標(biāo)簽植物檢疫規(guī)則。研究表明,基于BiLSTM的模型擅長(zhǎng)捕獲句子的局部上下文特征,但對(duì)于更長(zhǎng)距離的全局上下文特征的提取能力微弱,在捕獲遠(yuǎn)程依賴關(guān)系方面受到限制。因此,最近的研究使用了預(yù)訓(xùn)練語(yǔ)言模型,如基于Transformer的雙向編碼器表示模型BERT[13,14],以此動(dòng)態(tài)生成更長(zhǎng)距離的上下文嵌入表示。試驗(yàn)結(jié)果表明,BERT預(yù)訓(xùn)練階段在大規(guī)模的語(yǔ)料庫(kù)和較高的硬件性能支持下,可以顯著提高許多自然語(yǔ)言處理任務(wù)的性能。近年來(lái),深度學(xué)習(xí)與對(duì)抗訓(xùn)練機(jī)制[15]相結(jié)合的方式在自然語(yǔ)言處理領(lǐng)域開(kāi)始流行,它作為一種正則化方法成為文本研究的另一條道路。Miyato等[16]利用深度學(xué)習(xí)技術(shù),首次提出在詞向量層添加擾動(dòng),進(jìn)行半監(jiān)督文本分類任務(wù)。Chen等[17]將對(duì)抗訓(xùn)練應(yīng)用到實(shí)體識(shí)別和關(guān)系抽取的聯(lián)合模型中,取得了跨語(yǔ)言、多數(shù)據(jù)集的優(yōu)秀效果。Zhou等[18]則在詞嵌入層添加擾動(dòng),提升了低資源下命名實(shí)體識(shí)別模型的泛化能力。
由于農(nóng)業(yè)領(lǐng)域的命名實(shí)體識(shí)別語(yǔ)料庫(kù)大多尚未公開(kāi)[19,20],因此本研究利用Scrapy框架爬取了中國(guó)農(nóng)業(yè)科學(xué)院版權(quán)下的中國(guó)作物種質(zhì)資源網(wǎng)的關(guān)于農(nóng)作物病蟲(chóng)害的相關(guān)知識(shí),經(jīng)過(guò)正則表達(dá)式、字符格式規(guī)范化等操作去除了不必要的字符、網(wǎng)址等非文本數(shù)據(jù)。經(jīng)統(tǒng)計(jì),本研究爬取并清洗的文字共800余篇農(nóng)業(yè)文本,5 600個(gè)句子。接下來(lái)就是標(biāo)注標(biāo)簽工作,由于是自己定義的標(biāo)簽類別,所以需要人工手動(dòng)標(biāo)注,而實(shí)體的標(biāo)注需要大量特定領(lǐng)域的知識(shí),從而又增加了注釋的難度。另外,本研究通過(guò)查閱資料和咨詢專家的方法,選擇校驗(yàn)農(nóng)業(yè)領(lǐng)域的專有名稱實(shí)體,包括了農(nóng)作物和疾病?;诂F(xiàn)有研究本文進(jìn)一步將疾病類別劃分為更細(xì)粒度的實(shí)體,分別為“病害”和“蟲(chóng)害”。此外與農(nóng)作物相關(guān)的一些實(shí)體,比如農(nóng)藥和肥料以及病原也被考慮在內(nèi)。采取BMES的實(shí)體標(biāo)注方式,B代表實(shí)體名稱的開(kāi)始位置,M代表實(shí)體名稱的中間位置,E代表實(shí)體名稱結(jié)束位置,S代表只有單個(gè)字的實(shí)體名稱,O代表文本中的非實(shí)體。后面緊跟的實(shí)體類別信息分別用以下英文來(lái)表示:CROP(農(nóng)作物)、DISEASE(病害)、PEST(蟲(chóng)害)、AC(農(nóng)藥)、FERTILIZER(肥料)、MICROBE(病原)。部分語(yǔ)料庫(kù)標(biāo)記示例如圖1所示。
圖1 語(yǔ)料庫(kù)標(biāo)記示例
另外,針對(duì)數(shù)據(jù)集中存在的錯(cuò)標(biāo)現(xiàn)象,選取實(shí)體在數(shù)據(jù)集中標(biāo)記最多的類別作為真實(shí)類別,將錯(cuò)標(biāo)實(shí)體進(jìn)行矯正,針對(duì)存在的漏標(biāo)現(xiàn)象對(duì)實(shí)體進(jìn)行文本匹配,對(duì)漏標(biāo)實(shí)體進(jìn)行標(biāo)記,以此達(dá)到降低數(shù)據(jù)噪聲、優(yōu)化訓(xùn)練的目的。為了更好地捕捉上下文信息以及預(yù)訓(xùn)練語(yǔ)言模型的輸入序列長(zhǎng)度限制問(wèn)題,將長(zhǎng)文本按照512個(gè)字符長(zhǎng)度進(jìn)行切分,同時(shí)為保證句子的完整性而不喪失上下文語(yǔ)義信息,以句號(hào)作為切分符,對(duì)長(zhǎng)度為512的子句向前索引進(jìn)行截?cái)?,剩下句子加入到下一個(gè)序列中去。
經(jīng)統(tǒng)計(jì),最終得到的標(biāo)記實(shí)體數(shù)目共16 048個(gè),其中農(nóng)作物名稱6 287個(gè),病害名稱2 176個(gè),蟲(chóng)害名稱1 538個(gè),農(nóng)藥名稱3 514個(gè),肥料名稱1 425個(gè),病原名稱1 108個(gè),為方便后續(xù)試驗(yàn),將所有類別數(shù)據(jù)按照7∶2∶1的比例劃分為訓(xùn)練集、測(cè)試集以及驗(yàn)證集,具體詳情如圖2所示。
圖2 農(nóng)業(yè)語(yǔ)料庫(kù)實(shí)體類別的分布
本研究總體模型架構(gòu)(BERT-Adv-BiGRUCRF)的處理流程是:首先以單個(gè)字符作為輸入單元,將BERT預(yù)訓(xùn)練語(yǔ)言模型作為模型嵌入層,接著對(duì)每個(gè)嵌入向量進(jìn)行擾動(dòng),將得到的對(duì)抗樣本radv和嵌入向量T一同輸入BiGRU網(wǎng)絡(luò),最后連接CRF架構(gòu)優(yōu)化輸出序列,最終得到所需的實(shí)體及其類別標(biāo)簽。整體模型架構(gòu)如圖3所示。
圖3 總體模型框架
由Transformer組成的雙向編碼器表示的BERT,是一種用于預(yù)訓(xùn)練的無(wú)監(jiān)督和深度的語(yǔ)言表示模型。為了準(zhǔn)確地表示與上下文相關(guān)的語(yǔ)義信息,需要調(diào)用模型的接口,以獲取語(yǔ)料庫(kù)中每個(gè)漢字的嵌入表示。BERT采用深層雙向Transformer編碼器作為模型的主要結(jié)構(gòu),它主要引入了自注意機(jī)制,并利用了卷積神經(jīng)網(wǎng)絡(luò)的殘差機(jī)制使模型的訓(xùn)練速度更快、表達(dá)能力更強(qiáng)。同時(shí),摒棄了循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的循環(huán)結(jié)構(gòu),BERT模型的整體結(jié)構(gòu)如圖4所示。
圖4 BERT模型
En是單詞的編碼表示,Tn是經(jīng)過(guò)訓(xùn)練后的詞向量。該模型的工作原理是利用Transformer結(jié)構(gòu)構(gòu)造多層雙向編碼器網(wǎng)絡(luò),一次性讀取整個(gè)文本序列,使每一層都可以集成上下文信息。模型的輸入采用嵌入加法方法,通過(guò)添加詞向量(Token Embedding)、句向量(Segment Embedding)和位置量(Position Embedding)這3個(gè)向量實(shí)現(xiàn)了預(yù)訓(xùn)練和預(yù)測(cè)下一個(gè)句子的目的,組成結(jié)構(gòu)如圖5所示。
圖5 BERT模型輸入
在中文農(nóng)業(yè)語(yǔ)料的文本處理中,不同位置的字符或詞語(yǔ)具有不同的語(yǔ)義,Transformer表明標(biāo)簽序列中嵌入的信息為其相對(duì)位置或絕對(duì)位置信息,計(jì)算公式如下。
式中,Ppos是單詞在文本中的位置,i表示維數(shù),dmodel是編碼向量的維數(shù)。利用余弦函數(shù)對(duì)奇數(shù)位置進(jìn)行編碼,偶數(shù)位置也用一個(gè)正弦函數(shù)進(jìn)行編碼。
為了更好地捕捉詞級(jí)和句級(jí)信息,采用掩碼語(yǔ)言模型和下一句預(yù)測(cè)(Next Sentence Prediction,NSP)2個(gè)任務(wù)對(duì)BERT預(yù)訓(xùn)練語(yǔ)言模型進(jìn)行聯(lián)合訓(xùn)練。掩碼語(yǔ)言模型類似于完形填空,隨機(jī)屏蔽掉語(yǔ)料庫(kù)中15%的單詞,用[mask]形式來(lái)標(biāo)記,接著要求BERT模型正確預(yù)測(cè)被屏蔽的單詞。訓(xùn)練中采用的具體策略是,對(duì)于這15%的單詞,其中只有80%的單詞被[mask]替換,10%的單詞被隨機(jī)替換為其他單詞,剩余10%維持不變。NSP任務(wù)是通過(guò)訓(xùn)練模型來(lái)理解句子之間的關(guān)系,即判斷下一個(gè)句子是否是前一個(gè)句子的下一個(gè)句子。具體方法是從文本語(yǔ)料庫(kù)中隨機(jī)選擇50%的正確句子對(duì),并從文本語(yǔ)料庫(kù)中隨機(jī)選擇剩下50%的句子對(duì)來(lái)判斷句子對(duì)的正確性。掩碼語(yǔ)言模型的詞匯處理和下一句預(yù)測(cè)的句子處理是聯(lián)合訓(xùn)練的,確保每個(gè)單詞的向量都能代表全局信息,使模型表達(dá)語(yǔ)義更加準(zhǔn)確充分,能夠描述字符級(jí)、詞級(jí)、句子級(jí)甚至句子之間的關(guān)系,從而提高整體模型的泛化能力。
門控循環(huán)單元(GRU)[21]是長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)的一種變體,LSTM網(wǎng)絡(luò)包括遺忘門、輸入門和輸出門。在傳統(tǒng)遞歸神經(jīng)網(wǎng)路(RNN)訓(xùn)練過(guò)程中,常常出現(xiàn)梯度消失或爆炸問(wèn)題,LSTM僅在一定程度上解決了梯度消失問(wèn)題,并且計(jì)算耗時(shí)。GRU結(jié)構(gòu)包括了更新門和重置門,它是將LSTM中的遺忘門和輸入門合并為更新門。因此,GRU不僅具有LSTM的優(yōu)勢(shì),而且簡(jiǎn)化了其網(wǎng)絡(luò)結(jié)構(gòu),可以有效地進(jìn)行特征提取,其網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
圖6 GRU結(jié)構(gòu)單元
xt
在GRU網(wǎng)絡(luò)結(jié)構(gòu)中,更新門為z,重置門為r,更新門zt是計(jì)算需要將多少前一隱藏層的序列信息傳輸?shù)疆?dāng)前隱藏狀態(tài)。假設(shè)zt取值[0,1],則當(dāng)值接近于1時(shí)表明需要傳遞,而當(dāng)值接近于0時(shí)表明需要忽略信息。重置門rt的計(jì)算公式與更新門原理相似,但權(quán)重矩陣不同,zt和rt的計(jì)算公式見(jiàn)(3)和(4)。首先,在t時(shí)刻輸入的序列數(shù)據(jù)xt,之前時(shí)刻隱藏層的狀態(tài)ht-1,以及相應(yīng)的權(quán)重分別被相乘,并添加到σ函數(shù)中。在zt和rt計(jì)算完成后,可以計(jì)算出在t時(shí)刻需要記憶的內(nèi)容。其次,利用重置門確定t-1處序列信息的隱藏狀態(tài),在時(shí)刻t需要被忽略的信息,輸入rt、ht和xt,并使用tanh函數(shù)計(jì)算候選隱藏狀態(tài)。最后,將當(dāng)前單位保留的序列信息轉(zhuǎn)移到下一單位,即是在t時(shí)刻zt和??的乘積,??表示隱藏單元ht需要保留的序列信息,(1-zt)和ht的乘積則表示需要多少信息,詳細(xì)計(jì)算公式如下所示。
式中,xt表示t時(shí)刻序列信息的輸入,?t-1表示前一隱藏層的狀態(tài),?t表示t時(shí)刻的隱藏狀態(tài),w為權(quán)重矩陣,wz為更新門權(quán)重矩陣,wr為重置門權(quán)重矩陣;σ為sigmoid非線性變換函數(shù),tanh為激活函數(shù),??為候選隱藏狀態(tài)。
從GRU單元的工作原理來(lái)看,它可以丟棄一些無(wú)用的信息并且模型的結(jié)構(gòu)簡(jiǎn)單,從而降低了計(jì)算的復(fù)雜度。然而,簡(jiǎn)單的GRU并不能充分利用文本的上下文信息。因此,本研究設(shè)計(jì)添加后向GRU來(lái)學(xué)習(xí)后向語(yǔ)義,GRU前向和后向神經(jīng)網(wǎng)絡(luò)一起提取序列信息的關(guān)鍵特征,即BiGRU網(wǎng)絡(luò)模型,如圖7所示。
圖7 BiGRU網(wǎng)絡(luò)結(jié)構(gòu)
命名實(shí)體識(shí)別問(wèn)題可以看作是一個(gè)序列標(biāo)記問(wèn)題,BiGRU層輸出隱藏狀態(tài)上下文特征向量h,表示為h={h1,h2,…,hn},這個(gè)向量只考慮了數(shù)據(jù)中的上下文信息,而不考慮標(biāo)簽之間的依賴關(guān)系。CRF是一種基于EM模型和HMM模型提出的序列標(biāo)記算法,通過(guò)考慮標(biāo)簽序列的全局信息,可以解決標(biāo)簽偏差問(wèn)題,并更好地預(yù)測(cè)標(biāo)簽。命名實(shí)體識(shí)別的CRF模型是使用輸入句子中的單詞序列作為觀察序列,標(biāo)注過(guò)程是根據(jù)已知的單詞序列推斷出最有可能的標(biāo)簽序列。
因此,本研究添加了1個(gè)CRF層來(lái)對(duì)全局最優(yōu)序列進(jìn)行標(biāo)記,并將隱藏狀態(tài)h={h1,h2,…,hn}轉(zhuǎn)換為最優(yōu)標(biāo)簽序列y={y1,y2,…,yn}。CRF的計(jì)算原理:首先對(duì)于指定的文本輸入序列x={x1,x2,…,xn},計(jì)算每個(gè)位置的得分,如公式(10)所示。其次,通過(guò)Softmax函數(shù)計(jì)算歸一化序列y的概率,如公式(11)所示。最后,使用維特比算法計(jì)算得分最高的標(biāo)簽序列,如公式(12)所示。
式中,Ayt-1,yt代表轉(zhuǎn)移矩陣,表示從標(biāo)簽yt-1到標(biāo)簽yt的轉(zhuǎn)移概率,Wt,yt代表發(fā)射矩陣,表示從詞xt得到標(biāo)簽yt的發(fā)射概率,T為序列長(zhǎng)度,score(H,y)表示輸入取值為H的條件下,輸出標(biāo)簽序列取值為y的得分函數(shù)。y′∈Y(?)為所有可能標(biāo)簽序列表示歸一化后得到的關(guān)于輸出序列y的概率分布。y*表示解碼后得到的最大分?jǐn)?shù)的輸出序列。
對(duì)抗訓(xùn)練就是在原始輸入樣本中添加一些擾動(dòng),雖然變化不大,但是很容易造成分類錯(cuò)誤,然后訓(xùn)練網(wǎng)絡(luò)來(lái)適應(yīng)這些變化,使得對(duì)擾動(dòng)樣本更具魯棒性,以此提高模型的泛化能力。對(duì)抗訓(xùn)練的數(shù)學(xué)原理可以概括為如下公式。
它可以看成由2個(gè)部分組成,分別是內(nèi)部損失函數(shù)的最大化以及外部經(jīng)驗(yàn)風(fēng)險(xiǎn)的最小化。前者目的是尋找最壞情況下的擾動(dòng),其中radv表示在輸入樣本中添加的擾動(dòng),Ω表示擾動(dòng)的范圍空間,L表示損失函數(shù),θ表示模型參數(shù),x表示輸入樣本,y表示樣本的標(biāo)簽。后者目的是基于對(duì)抗方式的基礎(chǔ)上,尋找損失最小的模型參數(shù),使得模型具有一定的魯棒性,其中,D表示輸入樣本的空間分布。
關(guān)于設(shè)計(jì)合適的擾動(dòng),Miyato等[22]提出了FGSM和FGM算法,思路都是讓擾動(dòng)的方向沿著損失增大的方向,也即梯度提升的方向。它們的區(qū)別在于采用歸一化方法不同,F(xiàn)GSM是通過(guò)Sgn函數(shù)對(duì)梯度采取max歸一化:
其中,?為常數(shù),通常設(shè)為0.25。?x(L(x,y;θ))表示損失函數(shù)L對(duì)于輸入x的梯度,Sgn為符號(hào)函數(shù),即如果梯度上的某個(gè)維度的值為正,則為1,如果為負(fù),則為0。FGM則是采取L2歸一化:
式中,g為梯度,||g||2表示梯度的L2范數(shù),即用L2范數(shù)做了1個(gè)scale,從公式(15)來(lái)看,L2歸一化更加保留了梯度的方向,而max歸一化不一定和原始梯度的方向相同。當(dāng)然它們都有1個(gè)共同的前提,就是損失函數(shù)L必須是線性或至少是局部線性的,以此保證梯度提升的方向是最優(yōu)的方向。
選用FGM對(duì)抗訓(xùn)練算法,在模型訓(xùn)練過(guò)程中,直接對(duì)由BERT模型得到的每個(gè)嵌入向量組成的參數(shù)矩陣進(jìn)行擾動(dòng),并且是將1個(gè)batch數(shù)據(jù)當(dāng)成整體,統(tǒng)一進(jìn)行歸一化計(jì)算,因?yàn)楸緛?lái)范數(shù)的計(jì)算也只是起到scale的作用,所以這樣做影響很大,還能實(shí)現(xiàn)更加高效的調(diào)用。
模型的參數(shù)配置都經(jīng)過(guò)了反復(fù)的試驗(yàn)證明。采用ADAM優(yōu)化算法,模型訓(xùn)練的批處理參數(shù)為24,迭代次數(shù)設(shè)定為8,學(xué)習(xí)率為2e-5,還引入了dropout機(jī)制以減輕模型的過(guò)擬合問(wèn)題,dropout的值對(duì)模型的性能有直觀的影響,設(shè)定為0.5。模型訓(xùn)練最大序列長(zhǎng)度為128,評(píng)估最大序列長(zhǎng)度為512。此外,試驗(yàn)的運(yùn)行環(huán)境配置如表1所示。
表1 試驗(yàn)環(huán)境配置
在不依靠人工設(shè)計(jì)特征的情況下,通過(guò)不斷地調(diào)整模型參數(shù),在自構(gòu)建的農(nóng)業(yè)注釋語(yǔ)料庫(kù)上測(cè)試模型的識(shí)別效果。語(yǔ)料庫(kù)中的訓(xùn)練集、測(cè)試集、驗(yàn)證集的劃分比例合理,三者之間無(wú)重疊部分,因此,將測(cè)試集的輸出結(jié)果作為實(shí)體識(shí)別效果的評(píng)價(jià)指標(biāo)是恰當(dāng)?shù)?。農(nóng)業(yè)領(lǐng)域中的實(shí)體抽取和類別標(biāo)注的試驗(yàn)結(jié)果常采用以下3個(gè)評(píng)價(jià)指標(biāo),分別是準(zhǔn)確率、召回率和F值。其中,準(zhǔn)確率是指正確識(shí)別命名實(shí)體的識(shí)別率,召回率是指測(cè)試集中正確識(shí)別命名實(shí)體的識(shí)別率,F(xiàn)值是以上兩者的調(diào)和平均值,這是模型的綜合評(píng)價(jià)指標(biāo)。
為了表明本研究提出的BERT-Adv-BiGRUCRF模型在農(nóng)業(yè)領(lǐng)域命名實(shí)體識(shí)別的表現(xiàn)效果,在其他模型上進(jìn)行對(duì)比和消融試驗(yàn),其他模型包括IDCNN-CRF、BiLSTM-CRF、BiGRU-CRF、BERTSoftmax、BERT-CRF、BERT-BiLSTM-CRF、BERTBiGRU-CRF、ERNIE-BiGRU-CRF和RoBERTa-WWM-BiGRU-CRF,其對(duì)比識(shí)別結(jié)果如表2所示。
表2 不同模型試驗(yàn)結(jié)果對(duì)比(單位:%)
由表2可知,IDCNN-CRF、BiLSTM-CRF和BiGRU-CRF模型通過(guò)隱藏層獲取了豐富的上下文的序列信息,通過(guò)添加CRF層,動(dòng)態(tài)規(guī)劃實(shí)體間相鄰的標(biāo)簽獲取最優(yōu)的序列標(biāo)注,模型識(shí)別F值分別達(dá)到83.81%、85.37%和86.40%。但由于它是基于詞向量的輸入,會(huì)出現(xiàn)實(shí)體被錯(cuò)誤拆分的情況,導(dǎo)致有些復(fù)雜的實(shí)體不會(huì)被正確識(shí)別。例如:水稻品種鄂汕雜1號(hào)會(huì)被錯(cuò)誤拆分成鄂汕/雜/1號(hào)。另外分析結(jié)果發(fā)現(xiàn),同一文本中,部分農(nóng)藥實(shí)體“順天星1號(hào)”會(huì)被錯(cuò)誤標(biāo)記為農(nóng)作物名稱,出現(xiàn)這種標(biāo)記不一致的現(xiàn)象,是由于“順天星1號(hào)”與許多農(nóng)作物名稱構(gòu)詞方式相同,都是詞語(yǔ)加上數(shù)字的形式,在識(shí)別過(guò)程中,雖然這些模型獲得了上下文的局部特征信息,但是并沒(méi)有考慮到更長(zhǎng)距離以及全局的語(yǔ)境,從而導(dǎo)致整體識(shí)別效果不夠理想。
基于BERT模型的輸入是基于字向量且完整保存了全局的語(yǔ)義信息,它很好地解決了不同語(yǔ)境下同一詞語(yǔ)的不同語(yǔ)義以及指代問(wèn)題,與前3個(gè)模型相比,準(zhǔn)確率、召回率和F值均得到明顯提升,BERT-BiLSTM-CRF和BERT-BiGRU-CRF準(zhǔn) 確 率分別達(dá)到91.15%和91.42%,召回率分別為91.68%和91.82%;F值 分 別 為91.41%和91.62%,其 中BERT-BiGRU-CRF模型相比較BERT-BiLSTMCRF稍優(yōu)一點(diǎn)。在BERT-BiGRU-CRF模型基礎(chǔ)上,依次去掉上下文編碼層BiGRU和輸出層CRF,以此進(jìn)行消融試驗(yàn),得到的BERT-CRF和BERT-Softmax模型識(shí)別的F值分別降低了0.90和2.71個(gè)百分點(diǎn)。這表明了BiGRU網(wǎng)絡(luò)是提高編碼質(zhì)量的有效方法,以及CRF層對(duì)于中文命名實(shí)體識(shí)別至關(guān)重要。
在BERT-BiGRU-CRF模型的試驗(yàn)結(jié)果基礎(chǔ)上,進(jìn)一步將預(yù)訓(xùn)練語(yǔ)言模型換成ERNIE和Ro-BERTa-WWM,以此進(jìn)行其他預(yù)訓(xùn)練語(yǔ)言模型的效果評(píng)估,結(jié)果顯示F值分別下降0.88和0.70個(gè)百分點(diǎn),這表明BERT模型對(duì)于本研究自構(gòu)建農(nóng)業(yè)數(shù)據(jù)集的識(shí)別效果最優(yōu),其他改進(jìn)預(yù)訓(xùn)練語(yǔ)言模型在農(nóng)業(yè)命名實(shí)體識(shí)別上可能不一定會(huì)奏效。
最后,加入對(duì)抗訓(xùn)練后的BERT-BiGRU-CRF模型的準(zhǔn)確率提升了1.33個(gè)百分點(diǎn),召回率下降了0.29個(gè)百分點(diǎn),F(xiàn)值提升了0.87個(gè)百分點(diǎn)。這表明本研究添加的對(duì)抗訓(xùn)練算法確實(shí)可以在一定程度上提高識(shí)別結(jié)果。為了驗(yàn)證對(duì)抗訓(xùn)練機(jī)制的通用性,選用中文領(lǐng)域的命名實(shí)體識(shí)別數(shù)據(jù)集Resume NER進(jìn)行試驗(yàn),該數(shù)據(jù)集是根據(jù)新浪財(cái)經(jīng)網(wǎng)(https://finance.sina.com.cn/)關(guān)于上市公司的高級(jí)經(jīng)理人的簡(jiǎn)歷摘要數(shù)據(jù)進(jìn)行篩選過(guò)濾和人工標(biāo)注生成的。它包含1 027份簡(jiǎn)歷摘要,實(shí)體標(biāo)注分為人名、國(guó)籍、籍貫、種族、專業(yè)、學(xué)位、機(jī)構(gòu)、職稱8個(gè)類別,試驗(yàn)結(jié)果如表3所示,它成功驗(yàn)證了對(duì)抗訓(xùn)練機(jī)制對(duì)于提升模型泛化性和魯棒性的作用。
表3 不同模型試驗(yàn)結(jié)果對(duì)比(單位:%)
如圖8所示,利用本研究模型對(duì)于農(nóng)作物、病害、蟲(chóng)害、農(nóng)藥、肥料以及病原六類實(shí)體的識(shí)別結(jié)果F值,可以看出模型對(duì)農(nóng)作物和蟲(chóng)害的識(shí)別結(jié)果F值普遍較高,其余類別則相對(duì)降低一些。分析其原因,農(nóng)作物的實(shí)體數(shù)目眾多,所以訓(xùn)練程度較為充分,而且一些培育品種名稱常常是詞語(yǔ)加數(shù)字的組成方式,例如豫粳6號(hào)、桂引901,這些明顯的特征信息在一定程度上提高了農(nóng)作物實(shí)體識(shí)別的準(zhǔn)確率。大部分蟲(chóng)害名稱也具有較為規(guī)則的后綴組成詞,例如葉蟬、薊馬等,因此識(shí)別準(zhǔn)確率也比較高。而對(duì)于一些病害名稱,它們往往存在實(shí)體嵌套情況,例如水稻倒伏等,模型還不能獲取相關(guān)特征信息來(lái)有效解決此類問(wèn)題。肥料名稱大多構(gòu)詞比較單一,比如氮肥、鉀肥等,但是卻存在大量的一詞多義現(xiàn)象,比如氮、磷、硫酸銨、過(guò)磷酸鈣等,它們?cè)谀承┑胤街皇腔瘜W(xué)名詞,并不代表肥料的意思,模型不能有效地區(qū)分干擾信息。病原名稱構(gòu)詞復(fù)雜、冗長(zhǎng)且邊界模糊,而且大部分存在實(shí)體嵌套情況,如茶擬盤多毛孢、水稻條紋葉枯病毒等,模型很難得到較好的語(yǔ)義和邊界信息,所以識(shí)別效果普遍較差。對(duì)于上述提及的問(wèn)題,可以通過(guò)提升模型整體的復(fù)雜度方法,以此獲取更豐富的額外特征信息,或者構(gòu)建相關(guān)的領(lǐng)域詞典等方法以期達(dá)到更高的識(shí)別效果。
圖8 農(nóng)業(yè)實(shí)體試驗(yàn)結(jié)果F值對(duì)比
總體來(lái)說(shuō),本研究提出的BERT-Adv-BiGRUCRF模型對(duì)農(nóng)作物、病害、蟲(chóng)害、農(nóng)藥、肥料以及病原六類農(nóng)業(yè)實(shí)體的識(shí)別結(jié)果F值分別達(dá)到了95.30%、84.00%、94.68%、84.96 %、86.67%、86.27%,表明模型在不使用任何字典或外部注解資源的情況下,在自構(gòu)建的農(nóng)業(yè)標(biāo)注語(yǔ)料庫(kù)上對(duì)于命名實(shí)體識(shí)別任務(wù)的有效性和合理性。
針對(duì)農(nóng)業(yè)領(lǐng)域標(biāo)注語(yǔ)料庫(kù)稀缺有限的問(wèn)題,首先自構(gòu)建了一個(gè)農(nóng)業(yè)領(lǐng)域的注釋語(yǔ)料庫(kù),其中包含了6類實(shí)體和16 048個(gè)樣本。此外,對(duì)于農(nóng)業(yè)領(lǐng)域中文命名實(shí)體識(shí)別任務(wù),提出了引入BERT預(yù)訓(xùn)練語(yǔ)言模型的識(shí)別方法,提升了模型的識(shí)別效果。最后,對(duì)輸入樣本進(jìn)行對(duì)抗訓(xùn)練,以此提高模型整體的泛化性和魯棒性,一定程度上提升了命名實(shí)體識(shí)別效果??傮w模型架構(gòu)BERT-Adv-BiGRU-CRF在自構(gòu)建的農(nóng)業(yè)注釋語(yǔ)料庫(kù)中對(duì)6類農(nóng)業(yè)實(shí)體都達(dá)到了良好的識(shí)別效果。今后的工作將集中在以下3個(gè)方面:一是將自構(gòu)建的農(nóng)業(yè)注釋語(yǔ)料庫(kù)進(jìn)一步擴(kuò)充以及對(duì)于存在的噪音誤差進(jìn)行修正或增強(qiáng),對(duì)類別數(shù)目少的樣本進(jìn)行平衡處理,以此達(dá)到模型的更好識(shí)別效果。二是引入更加豐富的特征信息,比如radical-level特征[23]和工業(yè)詞典等,提升對(duì)于構(gòu)詞復(fù)雜冗長(zhǎng)和邊界模糊實(shí)體的識(shí)別效果。三是嘗試一些模型壓縮方法,比如知識(shí)蒸餾、剪枝等以此來(lái)減少訓(xùn)練時(shí)間和算力,降低模型空間復(fù)雜度,以此達(dá)到工業(yè)級(jí)的需求和應(yīng)用。