胥建杰,董莉霞,鄧曉壘
(甘肅農(nóng)業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院,甘肅蘭州 730070)
隨著互聯(lián)網(wǎng)的高速發(fā)展,在各類農(nóng)業(yè)問(wèn)答APP、農(nóng)技論壇等平臺(tái)上,用戶提交的問(wèn)題數(shù)量增長(zhǎng)迅速,但許多平臺(tái)仍在使用人工篩選特征和淺層學(xué)習(xí)模型對(duì)提問(wèn)數(shù)據(jù)進(jìn)行分類,效率降低。為快速精準(zhǔn)地為用戶提供所需信息,利用自然語(yǔ)言處理技術(shù)[1-2]構(gòu)建智能問(wèn)答系統(tǒng),可以對(duì)農(nóng)戶在種植生產(chǎn)過(guò)程中遇到的問(wèn)題進(jìn)行分析并給出相關(guān)解答。農(nóng)業(yè)智能問(wèn)答系統(tǒng)的核心模塊之一為農(nóng)業(yè)問(wèn)句分類[3],其直接影響系統(tǒng)的檢索效率[4-5]。
目前,國(guó)內(nèi)眾多學(xué)者利用機(jī)器學(xué)習(xí)和深度學(xué)習(xí)等人工智能方法在農(nóng)業(yè)文本分類方面進(jìn)行了相關(guān)研究。例如,陳鵬等[6]、趙燕等[7]使用樸素貝葉斯分類器這一傳統(tǒng)機(jī)器學(xué)習(xí)方法對(duì)農(nóng)業(yè)新聞文本信息進(jìn)行了自動(dòng)分類研究;馮帥等[8]運(yùn)用深度卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了水稻知識(shí)文本的自動(dòng)分類;趙明等[9]提出基于雙向門控循環(huán)單元的短文本分類模型,在番茄病蟲(chóng)害細(xì)分領(lǐng)域進(jìn)行了問(wèn)句分類。目前,基于傳統(tǒng)機(jī)器學(xué)習(xí)和典型深度學(xué)習(xí)方法的文本分類技術(shù)已經(jīng)相當(dāng)成熟,但基于深度預(yù)訓(xùn)練模型[10]的農(nóng)業(yè)問(wèn)句分類研究較少。針對(duì)農(nóng)業(yè)問(wèn)句特征稀疏、提問(wèn)不規(guī)范、數(shù)據(jù)量龐大、分類繁多等特點(diǎn)[11-12],構(gòu)建一種基于深度預(yù)訓(xùn)練的農(nóng)業(yè)問(wèn)句分類模型,以實(shí)現(xiàn)農(nóng)業(yè)問(wèn)句更加精準(zhǔn)的自動(dòng)分類。
采集農(nóng)業(yè)科技網(wǎng)絡(luò)書(shū)屋專家在線系統(tǒng)[13](http://zjzx.cnki.net/)中的農(nóng)業(yè)問(wèn)句形成訓(xùn)練所需數(shù)據(jù)集。整理5種類別問(wèn)句作為原始訓(xùn)練數(shù)據(jù),分別為農(nóng)作物、園藝、養(yǎng)殖技術(shù)、水產(chǎn)漁業(yè)、農(nóng)業(yè)工程,均以分類標(biāo)簽和文本內(nèi)容的形式存儲(chǔ)。通過(guò)數(shù)據(jù)收集、清洗、整理后最終得到12.5 萬(wàn)條數(shù)據(jù),用于建立訓(xùn)練模型的農(nóng)業(yè)問(wèn)句語(yǔ)料庫(kù)。按照8∶1∶1 的比例分配數(shù)據(jù)集,其中訓(xùn)練集為80%,驗(yàn)證集和測(cè)試集分別為10%。測(cè)試集、訓(xùn)練集和驗(yàn)證集均無(wú)重復(fù)交叉,因此測(cè)試數(shù)據(jù)集的試驗(yàn)結(jié)果可作為模型分類效果的評(píng)價(jià)指標(biāo)[14]。
深度預(yù)訓(xùn)練語(yǔ)言模型在自然語(yǔ)言處理任務(wù)中表現(xiàn)優(yōu)異,可移植性強(qiáng)[15]。其中,BERT(Bidirectional Encoder Representations from Transformers)模型[16-17]和ERNIE(En?hanced Language Representation with Informative Entities)模型[18-20]利用注意力機(jī)制對(duì)數(shù)據(jù)進(jìn)行建模處理,與典型的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)[21]和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[22-23]有很大區(qū)別。注意力機(jī)制多與RNN 配合使用,以解決數(shù)據(jù)建模中的遺忘等問(wèn)題。基于神經(jīng)網(wǎng)絡(luò)的機(jī)器翻譯采用Seq2seq架構(gòu)[24],其編碼器和解碼器均是基于RNN 構(gòu)建的。
ERNIE 模型是百度公司提出的基于知識(shí)增強(qiáng)的預(yù)訓(xùn)練模型,是對(duì)BERT模型的改進(jìn),其通過(guò)建模海量數(shù)據(jù)中的實(shí)體概念等先驗(yàn)語(yǔ)義知識(shí)學(xué)習(xí)真實(shí)世界的語(yǔ)義關(guān)系。ER?NIE 模型采用了BERT 模型的基本架構(gòu),同樣使用雙向Transformer 編碼器進(jìn)行編碼,結(jié)構(gòu)如圖1 所示,其中E1、E2...En表示字的文本輸入,經(jīng)過(guò)雙向Transformer 編碼器得到文本的向量化表示[25]。
Transformer 是一個(gè)基于自注意力機(jī)制(Self-atten?tion)[26]的Seq2seq 模型[27]。Seq2seq 模型為編碼器——解碼器(Encoder-Decoder)結(jié)構(gòu),即輸入和輸出是同樣的序列,編碼器將一個(gè)可變長(zhǎng)度的輸入序列變化為固定長(zhǎng)度的向量,編碼器再將固定長(zhǎng)度的向量解碼為可變長(zhǎng)度的輸出序列。該模型結(jié)構(gòu)如圖2所示。
解決序列問(wèn)題的編碼器——解碼器結(jié)構(gòu)的核心為RNN,但由于RNN 不能進(jìn)行并行計(jì)算,Transformer 采用Self-at?tention 替代RNN。ERNIE 模型中Transformer 的編碼器結(jié)構(gòu)[28]如圖3所示。
Fig.1 Structure of ERNIE model圖1 ERNIE模型結(jié)構(gòu)
Fig.2 Structure of Seq2seq model圖2 Seq2seq模型結(jié)構(gòu)
Fig.3 Structure of Transformer encoder圖3 Transformer 編碼器結(jié)構(gòu)
編碼器以一個(gè)句子的字嵌入表示[26],再加上這個(gè)句子中每一個(gè)字的位置信息,經(jīng)過(guò)Self-attention 層,在每個(gè)字通過(guò)編碼器進(jìn)行編碼時(shí)還可以看到這個(gè)字的前后信息。然后,編碼器的輸出會(huì)再次經(jīng)過(guò)Add&Norm 層,將輸出與輸入相加,進(jìn)行一次規(guī)范化,再將規(guī)范化的向量傳入Feed Forward 層,F(xiàn)eed Forward 層同樣會(huì)進(jìn)行Add&Norm 處理,獲取輸出的規(guī)范化向量信息。ERINE 模型會(huì)對(duì)Self-attention層進(jìn)行N 次堆疊[29],其中Self-attention 的核心思想是計(jì)算每個(gè)詞與整個(gè)句子其他詞之間的相互關(guān)系,關(guān)注的是詞與詞之間的語(yǔ)義關(guān)系,弱化不相關(guān)的詞,建立一個(gè)更加全局化的表達(dá)式,從而提高分類效果。假設(shè)Self-attention 的輸入用矩陣X 表示,該矩陣為輸入句子中每個(gè)詞的嵌入向量。使用線性變換矩陣WQ、WK、WV 計(jì)算出矩陣X 的Query、Key、Value 向量,其中X、Query、Key、Value 的每一行也都表示一個(gè)字的向量,則Attention的計(jì)算方法[30]表示為:
式中計(jì)算了矩陣Q和K每一行向量的內(nèi)積,為防止內(nèi)積過(guò)大,右端式中除以dk的平方根[31]。Q乘以K的轉(zhuǎn)置后得到的矩陣行列數(shù)均為n,n 為句子單詞數(shù),該矩陣可以表示單詞之間的Attention 強(qiáng)度[32]。Softmax 是指將矩陣中每一行的和都變?yōu)?[33]。使用Softmax 計(jì)算每個(gè)單詞對(duì)于其他單詞的Attention 系數(shù),最終得到已融合其他位置字的向量信息,是一個(gè)全新的向量表示。
基于深度預(yù)訓(xùn)練模型的農(nóng)業(yè)問(wèn)句分類結(jié)構(gòu)如圖4 所示。在模型的輸入層中將農(nóng)業(yè)問(wèn)句作為輸入,在輸入層后接入BERT 或ERNIE 模型,再加入全連接層,最后使用Softmax 層計(jì)算每種類別的概率分布情況[34-35]。
Fig.4 Agricultural question classification structure based on deep pretraining model圖4 基于深度預(yù)訓(xùn)練模型的農(nóng)業(yè)問(wèn)句分類結(jié)構(gòu)
根據(jù)農(nóng)業(yè)問(wèn)句數(shù)量設(shè)計(jì)3 組實(shí)驗(yàn),分別為實(shí)驗(yàn)A(50 000)、實(shí)驗(yàn)B(100 000)、實(shí)驗(yàn)C(125 000),并分別按照8∶1∶1 的比例生成訓(xùn)練集、驗(yàn)證集和測(cè)試集。各類別實(shí)驗(yàn)數(shù)據(jù)如表1所示,各數(shù)據(jù)集數(shù)據(jù)分布如表2所示。
Table 1 Setting of experimental data表1 實(shí)驗(yàn)數(shù)據(jù)設(shè)置
Table 2 Experimental data distribution表2 實(shí)驗(yàn)數(shù)據(jù)分布
具體實(shí)驗(yàn)環(huán)境參數(shù)配置如表3所示。
Table 3 Experimental environment parameters configuration表3 實(shí)驗(yàn)環(huán)境參數(shù)配置
本文使用的模型評(píng)價(jià)指標(biāo)為精確率(Precision)、召回率(Recall)和F1值,計(jì)算方式分別為:
采用精確率、召回率和F1 值評(píng)價(jià)比較TextRNN-Atten?tion 模型、Transformer 模型、BERT 模型、ERNIE 模型的分類性能,整體數(shù)據(jù)如表4所示。
Table 4 Comparison of classification effect evaluation indexes of dif?ferent models表4 不同模型分類效果評(píng)價(jià)指標(biāo)比較
續(xù)表
由圖5 可以看出,隨著數(shù)據(jù)集中數(shù)據(jù)量的增加,4 個(gè)模型的F1 值均有所提高,且深度預(yù)訓(xùn)練模型BERT 和ERNIE的F1 值一直優(yōu)于深度學(xué)習(xí)模型TextRNN-Attention 和Transformer。在3 組實(shí)驗(yàn)中,ERNIE 模型的F1 值均為最高,表明增加了實(shí)體級(jí)掩蓋和短語(yǔ)級(jí)掩蓋的預(yù)訓(xùn)練分類模型性能明顯提升。
Fig.5 Comparison of F1 values in different experiment group圖5 不同實(shí)驗(yàn)組別下各模型F1值比較
圖6 為3 組實(shí)驗(yàn)中4 個(gè)模型對(duì)5 種類別農(nóng)業(yè)問(wèn)句分類的F1 值比較,可以看出養(yǎng)殖技術(shù)和水產(chǎn)漁業(yè)問(wèn)句的分類精確率較高,這是由于這兩類數(shù)據(jù)文本特征明顯,有更多的類別區(qū)分詞,便于模型學(xué)習(xí)。此外,無(wú)論是何種類別的農(nóng)業(yè)問(wèn)句,ERNIE 模型的分類準(zhǔn)確率均最高。
Fig.6 Classification effect of different kinds of data of each model圖6 各模型不同類別文本分類效果
本文使用預(yù)訓(xùn)練模型替代深度學(xué)習(xí)模型對(duì)農(nóng)業(yè)問(wèn)句進(jìn)行分類,在農(nóng)業(yè)問(wèn)句數(shù)量不足、數(shù)據(jù)噪音大以及特征不明顯的數(shù)據(jù)集上,測(cè)試集的F1 值最高達(dá)到94.76%,且ER?NIE 模型的分類性能優(yōu)于BERT 模型,可有效實(shí)現(xiàn)農(nóng)業(yè)問(wèn)句的自動(dòng)分類。后續(xù)將會(huì)提高農(nóng)業(yè)問(wèn)句類別的覆蓋率和細(xì)粒度,并探索如何降低模型訓(xùn)練成本,以及結(jié)合其他優(yōu)質(zhì)分類模型進(jìn)一步提高農(nóng)業(yè)問(wèn)句分類的準(zhǔn)確性。