黎芬,費凡,彭琳
(云南農業(yè)大學大數據學院,昆明 650000)
農業(yè)作為第一產業(yè),對社會穩(wěn)定和經濟發(fā)展起著至關重要的作用。農業(yè)生產中面臨著許多挑戰(zhàn),其中農業(yè)知識的準確發(fā)現、篩選與應用場景一致的農業(yè)知識是永恒的主題。隨著農業(yè)信息化的發(fā)展,農業(yè)在線問答系統以其可以跨越空間和溝通成本低廉的優(yōu)點得到了廣泛應用。農業(yè)領域問答數據集是實現農業(yè)在線問答系統的重要基礎,制作農業(yè)問答數據集不僅需要大量的人力物力,更需要農業(yè)專家的支持,因此農業(yè)問答數據集的自動生成受到廣泛關注。問題生成是一種根據輸入文本自動生成問題的技術,可用于問答數據擴充。因此,如何在龐大的農業(yè)數據中就其語句形式的多樣性匹配相關的語義豐富的問句、農業(yè)領域問題生成訓練集的數據標注困難等問題,是近年來問題生成領域急需處理的難題。
目前,深度學習達到一個空前繁榮的時期,隨著很多蘊含語義知識的預訓練模型的發(fā)表,預訓練語言模型和微調在問題生成的很多領域中取得了一定的成果。在問答系統領域,Liu等[1]從大規(guī)模的維基百科語料庫中,使用自動化方法生成了大規(guī)模有質量的問答對;在閱讀理解領域,Yang等[2]使用半監(jiān)督的方法將模型生成的問題和人工生成的問題相結合,來訓練閱讀理解模型;在醫(yī)療領域,問題生成可以用于臨床上評估人類的心理健康狀態(tài)或提高心理健康水平[3];在農業(yè)領域,李巖等[4]針對農民用戶在知識和技術上沒有查詢平臺的問題,依托于自然語言處理和人工智能技術構建了基于知識圖譜的農業(yè)知識問答系統。王郝日欽等[5]為實現農業(yè)問答社區(qū)提問數據的快速自動重復語義檢測,提出了基于BERT-Attention-DenseBiGRU的農業(yè)文本相似度匹配模型,實現對農業(yè)問答社區(qū)相同語義問句自動、精確識別。這些領域的應用知識在應用層面的規(guī)模化、智能化、體系化等方面仍有很大的提升空間[6],基于農業(yè)領域的問題生成研究也未見報道。因此,如何有效利用現有碎片化的數據實現農業(yè)領域的問題生成仍是十分有挑戰(zhàn)性的工作。
隨著各種預訓練模型的提出,新一代的NLP技術給農業(yè)大數據領域帶來更多可能和手段。BERT預訓練模型[7]是第一個基于微調的表征模型,其原理是借助Transformer來提取特征,捕獲語句間的交互信息。BERT也是第一個將無監(jiān)督的預訓練和有監(jiān)督的微調結合起來,并應用到更深層的雙向結構中的預訓練模型,但是對于語言生成任務,如翻譯、問題生成等效果達不到要求。目前,該模型在問題生成領域中的作用就是代替詞嵌入或者直接替代序列到序列框架的編碼器。
本研究在BERT預訓練模型的基礎上,提出了基于NAZHA-UniLM模型的農業(yè)領域問題生成模型,該模型結合預訓練模型NEZHA與統一預訓練模型UniLM的優(yōu)勢,首先利用NEZHA預訓練模型實現農業(yè)源文本的詞向量取,然后利用融合覆蓋機制的UniLM模型作為解碼器以實現問題生成。模型的總體架構如圖1所示。
圖1 NEZHA-UniLM模型架構
NEZHA[8]整體上是基于BERT的改進,通過沒有任何可訓練參數的預定義函數對自注意中的相對位置進行編碼,并將位置編碼信息直接加到詞嵌入作為Transformer的輸入,對大規(guī)模未標記的純文本語料庫進行訓練,以提高下游的NLP任務的性能指標。函數相對位置編碼公式如下:
式中,k表示維度,i和j是索引位置,二者的差值相當于絕對位置的索引值,dz表示NEZHA模型每個Head的隱藏層大小。
NEZHA預訓練過程使用全詞掩碼(WWM)[9]策略,有效提高了預訓練模型效果;在預訓練過程中使用了混合精確訓練技術[10]和LAMB優(yōu)化器[11]。其中,混合精確訓練技術可以將訓練速度提高2~3倍,同時降低了模型的空間消耗,從而可以利用更大的Batch Size;LAMB優(yōu)化器通過使用非常大的Batch Size來加速模型的訓練,而不會導致性能損失。
本研究使用NEZHA對源文本進行處理,輸入語料表示“[CLS]合理施肥…[SEP]玉米苗枯病該怎么防治?[SEP]”,經過Word2vec詞嵌入的方法計算生成特征向量得到“[CLS]E1,E2,E3…[SEP]Z1,Z2,Z3,Z4,Z5,Z6,Z7,X8,Z9,Z10,Z11[SEP]”,然后將該特征向量輸入NEZHA模型進行訓練,以獲得文本序列的特征向量表示,從而得到解碼器的輸入序列。
UniLM[12]是一種統一預訓練語言模型,其網絡結構和BERT一樣,由24層Transformer組成,模型的參數使用BERT的參數進行初始化,輸入由3部分拼接而成:詞嵌入、位置嵌入、段嵌入。如表1所示,將UniLM與其他模型對比,UniLM能夠進行有條件的語言生成任務。其中ELMO學習兩個單向LM:正向LM從左到右閱讀文本,而向后LM從右到左對文本進行編碼。GPT[13]使用一個從左到右的Transformer來逐字預測一個文本序列。BERT使用雙向轉換編碼器來融合左右上下文來預測掩蔽詞。雖然BERT顯著提高了各種自然語言理解任務的性能,但它的雙向性特性使其難以應用于自然語言生成任務。
表1 語言模型預訓練目標之間的比較
本研究使用融合覆蓋機制的UniLM模型來進行問題生成。針對因曝光誤差導致的累計誤差現象,引入了對抗訓練,使用FGM(Fast Gradient Method)對模型進行訓練。將對抗樣本(x0,x1,…,xn,y0,y1,y2,…,yn)加入NAZHA模型輸出的特征向量中進行對抗擾動(其中x,y分別表示模型輸入的原文本和原問題),然后一同輸入UniLM模型進行問題生成。UniLM模型先對解碼器中詞進行隨即掩碼,然后再進行預測。該模型使用不同的Self-attention Masks矩陣控制不同語言模型的交互方式,結構如圖2所示,其中白色表示屏蔽,藍色為可見信息。
2.2.1 輸入表征本研究輸入的詞序列為農業(yè)領域知識的問答對,開始處為特殊的序列開始標記[CLS],在每個段的結束處添加一個特殊的序列結束標記[SEP],用于模型學習在問題生成任務中表示何時終止解碼過程。輸入表示法遵循BERT的輸入表示法。模型表征輸入時將文本通過WordPiece進行子詞標記。針對每個輸入遮蔽,憑借與之對應的遮蔽嵌入、位置嵌入以及文本段嵌入進行求和運算得到相應的矢量表示。
2.2.2 模型微調模型微調部分采用UniLM模型中Seq2Seq框架結構處理問題自動生成任務。微調下游任務與預訓練任務中使用自注意機制掩碼相似。設定文本中源序列S1:“合理施肥,加強田間管理比合理施肥是減輕苗枯病的一項重要措施…”目標序句子為S2:“玉米苗枯病該怎么防治?”,將兩個句子進行拼接,得到輸入序列[CLS]S1[SEP]S2[SEP]。
本研究模型微調結構如圖2中Seq-to-Seq LM所示。在微調過程中,在UniLM中隨機加入一些[Mask]來屏蔽S2序列中70%的詞,實現在輸入部分進行MLM任務以提升理解能力,同時在輸出部分做Seq2Seq以增強生成任務。微調時屏蔽詞只能選取S2,并且提高比例以縮小微調時和預訓練語言模型的差距,確保預測過程生成問題的質量。
圖2 UniLM問題生成模型框架
微調任務通過對目標序列中設置比例的遮蔽進行隨機覆蓋,使模型學習還原被遮蔽的詞進行任務微調?;谇昂笪谋颈徽诒蔚淖畲笏迫欢鹊玫缴蓡栴}[14]。
對抗訓練屬于對抗防御的一種。在預訓練過程中,將對抗樣本加入到原數據集中,以增強模型對對抗樣本的魯棒性,從而提高模型的表現,如式3所示。
式中,D代表訓練集,x代表輸入,y代表標簽,θ是模型參數,L(x,y;θ)是單個樣本的損失值,Δx是對抗擾動,Ω是擾動空間[15]。
在預訓練過程中加入對抗訓練,在Embedding層中添加小擾動,生成對抗樣本,進行訓練。本研究使用對抗訓練方法Fast Gradient Method(FGM)[16],通過對抗訓練生成對抗樣本以緩解Exposure Bias問題,提升模型的泛化能力。
目前,問題生成研究主要在英文語料數據集,對于其他語種存在語料缺乏的問題[17]。絕大多數研究基于SQuAD數據集進行文本問題生成,對于農業(yè)領域的文本問題生成研究不多[18]。本研究數據集從淘金地農業(yè)網的農業(yè)問答板塊問答頁面進行爬取,利用先進的Scrapy框架,Urllib、Requests等庫,運用Python編程語言,從html頁面的特定標簽中爬取了問答頁面所有問句對存入到csv文件中。
3.1.1 數據清洗數據清洗保證了輸入模型的數據的質量,相比于不做處理,對模型有很大的提升。數據清洗處理方式包括剔除空白字符、剔除帶括號的英文、處理部分不匹配數據。本研究共爬取了一萬余條數據對,經過檢查篩選對部分殘缺、重復的問答對進行刪除,對部分帶有特殊格式和符號的字符經正則表達式刪除;然后經人工隨機校對,最終保留了5 920對問答對(表2)。本研究隨機將80%數據集中問答對設為訓練集,20%數據為測試集。
表2 農業(yè)領域數據集信息
3.1.2 數據處理根據問題生成任務對數據的要求,對劃分的數據集進行文本截斷。其中,問題文本的長度均未超過131個字符,所以相當于未做截斷:對于答案文本,79.38%的長度是小于64的,答案長度可以取得較短。答案的部分內容可以精簡,通常根據答案的前面部分,就已經能夠推理出對應的提問。因此,選取答案的長度為64,大于64的進行截斷,可以保留絕大部分信息,長度短可以加速訓練和推理。對于數據集中每一個輸入的序列、答案、問題3元組,經過分詞后按照如下方式進行拼接。數據集的主要處理格式如圖3所示。
圖3 數據預處理
其中,序列S1為序列和答案的拼接,其方式和BERT相同。S2由標準答案構成,在解碼時,S2將拼接作為輸入。
ROUGE:本研究使用Lin等[19]報道的ROUGE自動摘要評價算法,主要是基于召回率(recall)的一種常用的機器翻譯和文章摘要評價指標。構建標準問題集,將模型所生成問題與標準問題相對比,使用ROUGE-L作為評價指標。ROUGE-L中的L指最長公共子序列(Longest Common Subsequence,LCS),ROUGE-L計算的時候使用了機器譯文C和參考譯文S的最長公共子序列,生成問題相當于公式里的機器譯文,標準問題相當于參考譯文,計算公式如下所示。
其中,RLCS表示召回率,PLCS表示精確率,FLCS表示ROUGE-L,可以通過超參數β來控制對召回率和準確率的傾向程度。
BLEU:BLEU(Bilingual Evaluation Understudy)[20]意為雙語評估替換,是計算生成的問題與地面真實問題的N-gram重疊分數,重合程度越高就認為生成質量越高。對于整個語料庫而言,本研究中BLEU計算是基于句子進行的,通過計算BLEU-1、BLEU-2、BLEU-3和BLEU-4的累加得分來說明模型問題生成的性能。BLEU的總體評價公式如下:
其中,Wn指n-gram的權重,一般設為均勻權重。BP是懲罰因子,在問題生成中,lc表示生成的問題的長度,ls表示標準問題的有效長度。如果lc的長度小于lr,則BP小于1。
NEZHA-UniLM模型參數主要包括NEZHA及UniLM模型的參數。本研究模型中NEZHA設置最大 序 列 長 度 為128,Train_batch_size為16,Learning_rate為5e5。模型參數如表3所示。
表3 NEZHA預訓練語言模型參數
UniLM模型設置隱向量維度為768,微調學習率Learning_rate設為1e4,Epochs設為55。批處理大小Batch_size設 為16,Beam_search解 碼 時 的Beam_size為5。本研究試驗環(huán)境及配置如表4所示。
表4 試驗環(huán)境及配置
本研究引入了對抗訓練,通過構造對抗樣本加入到原數據集中,以增強模型對對抗樣本的魯棒性。使用FGM對模型進行訓練,FGM算法epsilon值為1。通過設置對比試驗來驗證NEZHA-UniLM模型處理問題生成任務的優(yōu)越性(表5)。
1)NQG。簡單的Seq2Seq模型,使用LSTM進行編碼解碼,并在解碼過程中引入了全局注意力機制。
2)BERT-LM。該模型使用BERT中的掩蔽語言建模對編碼器進行預訓練,并使用語言模型對解碼器進行預訓練。其中,LM是帶有下三角的Attention Mask從左到右Transformer模型。
3)BERT+UniLM。該模型采用Seq2Seq基礎架構,將Encoder替換為雙向Transformer編碼模塊,Decoder采用UniLM。使用BERT模型對編碼端參數進行初始化處理,解碼端從初始狀態(tài)訓練。
由表5可以看出,與基線模型NQG相比,BERT+LM引入預訓練模型BERT,由于BERT模型在海量語料上的訓練,模型具有優(yōu)秀的向量表征能力,進一步提升問題生成算法評測得分。BLEU-4和Rouge-L分別提升了0.053 5和0.093 6。與BERT+LM模型相比,BERT+UniLM模型的問題生成效果得到了提升。BLEU-4和Rouge-L分 別 提 升 了0.020 9和0.017 4。與基線NQG相比,BLEU-4和Rouge-L分別提升了0.074 4和0.111 0。與其他模型對比,本研究提出的NEZHA-UniLM模型的Rouge-L和BLEU1-4均取得了最好的成績。與基線模型NQG進行對比,BLEU-4和Rouge-L分別提升了0.195 3和0.151 7。模型通過兩階段進行問題生成的算法能夠有效地將NEZHA模型與UniLM模型的優(yōu)勢相結合,有效生成問題。
表5 模型評測對照表
同時,為了驗證加入FGM對抗訓練的有效性,對該模型進行消融試驗,試驗結果如表6所示。由表6可知,基于未加對抗訓練的NEZHA-UniLM預訓練模型,其BLEU-4和Rouge-L為0.314 1和0.470 1,加入對抗訓練后的BLEU-4和Rouge-L分別提高了0.068 9和0.113 8。
表6 對抗消融試驗
利用人工評估來衡量生成的問題的質量,隨機抽取50個問題對,并使用本研究預訓練模型生成問題,通過5個方面指標來測評。自然度:表示語法性和流暢性;相關性:表示與答案主題的聯系;連貫性:衡量生成的問題是否與對話歷史一致;豐富度:衡量問題中包含的信息量;可回答性:即表示該問題是否可根據該答案段落來回答。然后,將每個帖子和相應的模型生成的問題發(fā)送給5個沒有順序的人類注釋者,并要求他們評估每個問題是否滿足上述定義的標準,對每個問題打分(1-5分),分數越高越好。所有的注釋者都是研究生。
從表7可以看到,本研究方法在所有方面都優(yōu)于其他模型。當模型生成既短又流暢的問題時,會使得其在自然度、相關性方面沒有顯著差異。在豐富度、連貫性和可回答性等方面,生成模型與人類注釋之間存在著明顯的差距,說明語境理解仍然是問題生成任務中一個具有挑戰(zhàn)性的問題。
表7 人工測評結果
本研究經過數據爬取、清洗、過濾和標注等工作,構建了問題生成的數據集,并研究了基于NEZHA-UniLM預訓練模型的農業(yè)領域問題生成,其中,針對因曝光誤差導致的累計誤差現象,引入了對抗訓練來生成擾動樣本以緩解該問題。該模型不僅有效緩解生成問題與答案匹配度低、生成問題漏詞或者多詞和曝光誤差等問題,還能有效提高生成問題的質量。