董哲, 王亞, 馬傳孝, 李志軍
(北方工業(yè)大學(xué)電氣與控制工程學(xué)院, 北京 100144)
近年來食品安全事件頻發(fā),食物中的有毒、有害物質(zhì)對民眾的身體健康帶來急性、亞急性或者慢性危害。同時,隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)數(shù)據(jù)規(guī)模增長迅速,其中包括大量的有關(guān)食品安全的文本數(shù)據(jù)。但是目前對食品安全領(lǐng)域內(nèi)現(xiàn)有數(shù)據(jù)資源的分析利用工作較少,因此,如何高效準(zhǔn)確地從非結(jié)構(gòu)化的食品安全文本中提取出重要信息并將其轉(zhuǎn)化為知識是構(gòu)建食品安全領(lǐng)域知識圖譜的前提,也是促進食品安全工作智能化發(fā)展的關(guān)鍵一步,而實體關(guān)系抽取是實現(xiàn)信息抽取的重要環(huán)節(jié)。食品安全領(lǐng)域關(guān)系抽取是在已知食品安全文本中相關(guān)實體的基礎(chǔ)上,識別出實體之間的關(guān)系,例如從“沙門菌常出現(xiàn)在豬肉中”提取出“沙門菌”和“豬肉”間的關(guān)系。
最早的實體關(guān)系抽取主要是基于模式規(guī)則的,該方法主要由相關(guān)領(lǐng)域的專家人工編寫抽取規(guī)則,然后根據(jù)定義好的領(lǐng)域相關(guān)的抽取規(guī)則與目標(biāo)文本做匹配。例如,Miller等[1]采用了對實體信息詞匯化和概率分布的上下文無關(guān)的語法解析器,生成規(guī)則用于關(guān)系抽取。鄧擘等[2]提出了一種將詞匯語義匹配技術(shù)和模式匹配技術(shù)結(jié)合的漢語實體關(guān)系提取技術(shù),且實驗表明該模型的性能較單獨的模式匹配抽取方法有明顯提升。Aone等[3]通過分析語料特點,并基于相關(guān)領(lǐng)域?qū)<以O(shè)計規(guī)則,抽取文本中與規(guī)則相匹配的關(guān)系實例。
隨著機器學(xué)習(xí)的發(fā)展,關(guān)系抽取的主流研究方向大量遷移至機器學(xué)習(xí)領(lǐng)域。Kambhatla等[4]綜合實體上下文信息、句法分析樹、依存關(guān)系等多種特征,將詞匯、句法和語義特征與最大熵模型相結(jié)合進行關(guān)系分類。甘麗新等[5]提出一種基于句法語義特征的實體關(guān)系抽取方法,融入了句法關(guān)系組合特征和句法依賴動詞特征特征項,并使用支持向量機(support vector machine,SVM)進行關(guān)系分類。黃衛(wèi)春等[6]提出一種基于特征選擇的方法對人物關(guān)系進行抽取,對比了四種特征選擇方法,將特征選擇后得到的特征向量進行降維,最后使用SVM進行關(guān)系抽取。Yan等[7]融合依存特征和淺層語法模板,提出了一種模式組合的聚類方法,可以在不同語料的關(guān)系抽取中實現(xiàn)高精度聚類。
近年來,各種深度學(xué)習(xí)方法被應(yīng)用于關(guān)系抽取領(lǐng)域。張永真等[8]將詞性、位置、上下文等傳統(tǒng)特征和句法語義特征相結(jié)合進行專利文本三元組的抽取,并通過極端梯度增強算法(extreme gradient boosting,XGBOOST)對各特征進行有效性分析,證明了方法的有效性;Li等[9]將雙向長短期記憶網(wǎng)絡(luò)(bi-directional long short term memory network,BiLSTM)與卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)相結(jié)合,并通過softmax函數(shù)來模擬目標(biāo)實體之間的最短依賴路徑,用來進行臨床關(guān)系抽取。黃培馨等[10]引入對抗訓(xùn)練以提高模型的魯棒性,同時采用帶有偏置的損失函數(shù)增強模型提取實體對的能力。丁澤源等[11]使用BiLSTM+CRF模型進行中文生物醫(yī)學(xué)實體識別,然后使用基于注意力機制的BiLSTM抽取實體間的關(guān)系。肜博輝等[12]提出了一種基于多通道卷積神經(jīng)網(wǎng)絡(luò)關(guān)系抽取的方法,各通道的輸入均為不同的詞向量,以此提高模型的語義表征能力。田佳來等[13]使用解決序列標(biāo)注問題的方式來進行實體關(guān)系聯(lián)合抽取,并進行分層序列標(biāo)注,這種新型標(biāo)記方式對與重疊三元組抽取的有效。
盡管這些深度學(xué)習(xí)方法在中文關(guān)系抽取任務(wù)上取得了顯著的進步,但是深度學(xué)習(xí)方法通常是基于大量有標(biāo)注的數(shù)據(jù)來充分學(xué)習(xí)數(shù)據(jù)的特征。食品安全領(lǐng)域關(guān)系抽取任務(wù)存在以下難點。
(1)食品安全領(lǐng)域涉及到的實體類型和關(guān)系種類較多且復(fù)雜,不僅有食品、病菌等與食品相關(guān)性強的實體類型,還涉及食物中毒導(dǎo)致的癥狀、抑制病菌的抗生素、食品中出現(xiàn)的化學(xué)物質(zhì)等實體類型,實體間的關(guān)系交錯使得關(guān)系種類也變得復(fù)雜。
(2)食品安全領(lǐng)域中的實體通常專業(yè)性較強,如“類志賀鄰單胞菌”“椰酵假單胞菌”等,且有些實體是由多種類型字符組合而成,如“4-甲基吡唑”“維生素K3”等。
(3)食品安全領(lǐng)域缺乏大規(guī)模高質(zhì)量的標(biāo)注語料庫。
因此,現(xiàn)有的針對通用語料庫的模型和方法在實體類型和關(guān)系種類復(fù)雜且缺少標(biāo)注數(shù)據(jù)的食品安全領(lǐng)域無法得到有效的應(yīng)用。針對以上問題,本文提出了一種融合對抗訓(xùn)練[14](adversarial training)和膠囊網(wǎng)絡(luò)[15](capsule network,CapsNet)的食品安全領(lǐng)域關(guān)系抽取模型GAL-CapsNet。該模型使用BERT進行文本向量化表示,獲取具有豐富特征表達的字向量,同時在字向量上添加可能使模型產(chǎn)生錯誤判斷的微小擾動生成對抗樣本,提高模型的魯棒性。然后通過BiLSTM捕獲上下文信息獲取全局特征,再利用CapsNet矢量神經(jīng)元的特性和動態(tài)路由機制獲取高層次的局部特征。多尺度的特征融合和膠囊矢量對特征的充分利用使得模型具備較強的文本序列理解能力,能夠從小規(guī)模數(shù)據(jù)集中學(xué)習(xí)到有效特征,在提高模型性能的同時保證計算效率,從而準(zhǔn)確高效地實現(xiàn)食品安全文本的關(guān)系抽取任務(wù)。
本文提出的模型主要由三大模塊組成:嵌入模塊、全局特征提取模塊、膠囊網(wǎng)絡(luò)模塊。其整體框架如圖1所示。
圖1 GAL-CapsNet模型Fig.1 GAL-CapsNet model
1.1.1 文本表示
關(guān)系抽取需要考慮語料的語義和實體的位置特征。嵌入層通過將文本序列中的每個字符轉(zhuǎn)化為向量,來表示文本的語義信息。對于一條文本序列有
S=[w1,w2,…,wL]
(1)
式(1)中:L為文本序列的長度;wi為文本序列中的第i個字符。
BERT的輸入層是由詞向量Etoken(wi)、段向量Eseg(wi)和位置向量Epos(wi)3部分組成的,將這3部分相加作為BERT的輸入Ei,即
Ei=Etoken(wi)+Eseg(wi)+Epos(wi)
(2)
再經(jīng)過基于Transformer的預(yù)訓(xùn)練模型,將每個字符wi轉(zhuǎn)化為維度為dw的向量xwordi,得到輸入語句的字向量表示[xword1,xword2,…,xwordL],具體結(jié)構(gòu)如圖2所示。
同時,將文本序列中每個字符wi與頭實體e1的相對位置p1,與尾實體e2的相對位置p2分別映射成維度為dw的距離向量xpos1i和xpos2i。
最后將字符的語義信息和位置信息進行融合,作為全局特征提取層的輸入,即
X=[x1,x2,…,xL]
(3)
式(3)中:xi=xwordi+xpos1i+xpos2i。
[CLS]代表輸入序列的開始,[SEP]為分隔符,用來分隔同一 輸入序列中的子句 圖2 BERT預(yù)訓(xùn)練模型框架Fig.2 BERT pre-training model framework
1.1.2 對抗訓(xùn)練
Goodfellow等[14]在2014年首次提出了對抗訓(xùn)練,并將其應(yīng)用于機器視覺領(lǐng)域。對抗訓(xùn)練是一種提高神經(jīng)網(wǎng)絡(luò)魯棒性的重要方式,其在訓(xùn)練過程中,向樣本中加入可能使模型產(chǎn)生錯誤判斷的微小擾動,并且使神經(jīng)網(wǎng)絡(luò)適應(yīng)這種改變,以此提高模型的魯棒性。
為了提高文本表示的質(zhì)量,在嵌入層加入對抗訓(xùn)練,生成對抗樣本,并將對抗樣本放入模型中訓(xùn)練,從而提升模型的抗擾動性能。
最優(yōu)的對抗擾動,通常是指在最壞情況下的擾動,這個擾動能使模型的損失最大化[16],即
(4)
式(4)中:x表示長度為L的原始文本序列;y表示輸入序列對應(yīng)的輸出;r表示對輸入的擾動,對于文本序列中的每一個字符xi都存在相應(yīng)的擾動ri(i∈{1,2,…,L});Loss為交叉熵損失函數(shù);ε是一個標(biāo)量,用來約束擾動的大小;θ′表示當(dāng)前網(wǎng)絡(luò)的參數(shù),對抗損失不進行反向傳播。在訓(xùn)練的每一步,確定當(dāng)前模型最壞情況的擾動radv。并通過最小化方程來訓(xùn)練模型對這種擾動具有魯棒性。然而,一般不能準(zhǔn)確地計算這個值。Goodfellow提出通過Loss圍繞x線性化來近似得到radv的值,即
(5)
(6)
式(6)中:λ為一個超參數(shù),用來平衡兩個損失函數(shù)。
輸入文本經(jīng)過嵌入層得到的是獨立的單個字符本身的特征信息,為了得到融合前后文信息的特征向量,采用雙向長短期記憶網(wǎng)絡(luò)(bi-directional long short term memory network,BiLSTM)進行全局特征提取。本層將嵌入層得到的特征表示分別輸入到含有h個隱藏單元的前向和后向長短期記憶網(wǎng)絡(luò)中。LSTM的單元結(jié)構(gòu)如圖3所示。
在t時刻,LSTM計算新狀態(tài)為
ft=σ(Wf[ht-1,xt]+bf)
(7)
it=σ(Wi[ht-1,xt]+bi)
(8)
(9)
圖3 LSTM內(nèi)部結(jié)構(gòu)圖Fig.3 Internal structure diagram of LSTM
ct=ft?ct-1+it?c′t
(10)
ot=σ(Wo·[ht-1,xt]+bo)
(11)
ht=ot?tanh(ct)
(12)
式中:?為按元素乘,Wf、Wi、Wc、Wo為權(quán)重;xt為t時刻LSTM的輸入,bf、bi、bc、bo為偏置項。ft為遺忘門的輸出;it為輸入門的輸出;ot為輸出門的輸出;ct為t時刻的細胞狀態(tài);c′t為t時刻的候選細胞狀態(tài);ht-1為t-1時刻該單元的最終輸出;ht為t時刻該單元的最終輸出。
LSTM能夠有效處理文本序列的長距離依賴,單向LSTM只能從前向后傳遞信息,但是想要充分理解文本序列,通常需要從整體上分析其語義。因此采用BiLSTM進行序列的全局特征提取,使得模型能夠?qū)W習(xí)到更多的上下文信息。全局特征提取模型結(jié)構(gòu)如圖4所示。
(13)
圖4 BiLSTM結(jié)構(gòu)圖Fig.4 Structure diagram of BiLSTM
1.3.1 N-gram卷積層
(14)
式(14)中:?表示卷積運算;f()表示ReLU激活函數(shù);b0為偏置項。N-gram卷積層共有A個步長為1的濾波器,設(shè)M為通過卷積層得到的特征映射矩陣,則有M=[m1,m2,…,mA]∈R(L-K+1)×A,其中mi∈RL-K+1,i∈{1,2,…,A}。
二是完善集團化運作體制。不斷完善省農(nóng)墾集團-產(chǎn)業(yè)集團和區(qū)域集團-子公司(含農(nóng)場基地公司)三級運行架構(gòu)。其中,省農(nóng)墾集團公司定位為戰(zhàn)略決策中心、資本運營中心、監(jiān)督控制中心和支持服務(wù)中心;產(chǎn)業(yè)集團定位為產(chǎn)業(yè)運營中心、利潤中心,從事產(chǎn)業(yè)運營,實現(xiàn)經(jīng)營資產(chǎn)的保值增值;區(qū)域集團定位為資產(chǎn)管理中心、利潤中心;子公司(含農(nóng)場基地公司)定位為經(jīng)營管理中心、成本控制中心,直接從事生產(chǎn)經(jīng)營管理。
1.3.2 主膠囊層
與傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)不同,膠囊網(wǎng)絡(luò)采用矢量輸出來保存實例化參數(shù)。主膠囊層濾波器Wb∈RA×d1在不同的向量Mi∈RA(i∈{1,2,…,L-K+1})上滑動生成特征映射u∈R(L-K+1)×d1,其中每一個膠囊向量ui∈Rd1,計算公式為
ui=g(Mi?Wb+b1)
(15)
式(15)中:g()為非線性擠壓函數(shù);b1為偏置項。主膠囊層有B個步長為1的濾波器,因此共產(chǎn)生(L-K+1)×B個d1維膠囊。
1.3.3 全連接膠囊層
主膠囊的輸出向量通過與權(quán)重矩陣相乘得到淺層膠囊,然后通過動態(tài)路由機制傳送到文本膠囊中,文本膠囊的輸出向量vj計算步驟為
(16)
(17)
(18)
(19)
(20)
模型訓(xùn)練所需數(shù)據(jù)集選用獨立構(gòu)建的食品安全領(lǐng)域關(guān)系抽取數(shù)據(jù)集(relation extraction of food data,RE-FOOD)。將收集的語料以句為單位進行人工標(biāo)注得到食品安全領(lǐng)域數(shù)據(jù)集(RE-FOOD)并作為實驗使用的數(shù)據(jù)集。在數(shù)據(jù)集中隨機選取20%的語料作為測試集,70%的語料作為訓(xùn)練集,10%作為驗證集,數(shù)據(jù)集的相關(guān)統(tǒng)計數(shù)據(jù)如表1所示,關(guān)系類型如表2所示。
本文實驗使用768維的詞向量。模型中,LSTM模塊隱藏層神經(jīng)元個數(shù)設(shè)置為128;N-gram特征提取層使用32個(A=32)卷積濾波器,窗口大小為3(k=3),
表1 數(shù)據(jù)集情況統(tǒng)計Table 1 Statistics of data sets
表2 實體關(guān)系表Table 2 Entity relationship
主膠囊層使用32個濾波器(B=32)生成10維的膠囊向量(d1=10),全連接膠囊層生成12個文本膠囊(D=12)表示12個關(guān)系種類。本文取模長最大的文本膠囊向量所對應(yīng)的關(guān)系種類作為最后結(jié)果。
本文使用采用精確率P(precision)、召回率R(recall)、F1值對算法的有效性進行綜合評估,三個指標(biāo)的定義為
(21)
(22)
(23)
式中:TP表示正類預(yù)測正確的數(shù)量;FP表示負類預(yù)測錯誤的數(shù)量;FN表示正類預(yù)測錯誤的數(shù)量。
2.4.1 對比實驗分析
采用4種不同的模型進行食品安全領(lǐng)域關(guān)系抽取任務(wù)實驗。實驗1使用包括3層卷積、3層池化以及1層全連接層的CNN,其中卷積和池化的移動步長都設(shè)置為1,實驗2使用雙層隱藏神經(jīng)元個數(shù)為128的BiLSTM,實驗3使用四頭注意力的Transformer,實驗4使用3層GCN的GCNs,實驗4是本文提出的GAL-CapsNet。表3為關(guān)系抽取實驗結(jié)果。
由實驗結(jié)果可以看出,GAL-CapsNet模型在食品安全文本數(shù)據(jù)集上的三個評價指標(biāo)值均為最高,精確率、召回率和F1分別達到了85.91%、82.82%、84.33%。在無對抗擾動時,與CNN、BiLSTM、Transformer和GCNs相比精確率分別提高了43.84%、27.78%、34.52%、33.89%,在有對抗擾動時,與CNN、BiLSTM、Transformer和GCNs相比精確率分別提高了43.65%、25.39%、30.15%、29.36%。CNN在本文數(shù)據(jù)集上的關(guān)系抽取效果較差是因為CNN的池化操作容易丟失重要信息,且捕捉全局特征的能力較差。Transformer和GCNs則是因為沒有考慮輸入序列位置信息,無法捕捉順序序列特征。GAL-CapsNet模型進行了多尺度的特征提取,利用BiLSTM提取全局特征,利用卷積核提取局部特征,具備較強的文本序列的理解能力。同時常用的詞向量方法(Word2Vec)生成的是靜態(tài)詞向量,且詞向量訓(xùn)練過程中難以獲取大量食品安全文本進行訓(xùn)練,因此在食品安全領(lǐng)域上效果較差。而 BERT在大規(guī)模語料上進行預(yù)訓(xùn)練,然后在食品安全文本上對其參數(shù)進行微調(diào),生成的動態(tài)詞向量更加符合數(shù)據(jù)特征,因此在食品安全文本上采用BERT編碼能獲取更加豐富的特征表達。
此外,根據(jù)實驗結(jié)果可以看出,在加入對抗訓(xùn)練后,精確率上CNN提高1.61%、BiLSTM提高3.81%、Transformer提高5.79%、GCNs提高5.95%、GAL-CapsNet提高1.42%。說明在數(shù)據(jù)集規(guī)模較小的情況下,對抗訓(xùn)練可以有效提高關(guān)系抽取模型的性能。其比較結(jié)果如圖5、圖6所示。
表3 實驗結(jié)果對比Table 3 Experimental results
圖5 不同模型的消融實驗對比Fig.5 Comparison of ablation experiments of five models
圖6 不同迭代次數(shù)實驗效果比較Fig.6 Comparison of experimental effects with different iteration times
表4為五個模型在同一設(shè)備上的訓(xùn)練時長,平均訓(xùn)練時長為153.530 8 s。從表4中可以看出GAL-CapsNet模型的訓(xùn)練時長與BiLSTM和Transformer相比縮短了103.477 9 s和71.959 s,與CNN和GCNs相比增加了11.953 7 s和52.826 6 s,低于平均訓(xùn)練時長。結(jié)合表3和表4中的數(shù)據(jù)可以看出,GAL-CapsNet模型在提高關(guān)系抽取任務(wù)性能的同時保證了模型的訓(xùn)練效率。
2.4.2 動態(tài)路由迭代次數(shù)的選擇。
膠囊網(wǎng)絡(luò)通過囊間動態(tài)路由算法生成文本膠囊并迭代更新參數(shù)。為使模型的性能達到最優(yōu),通過設(shè)置不同的迭代次數(shù)進行實驗,選擇動態(tài)路由的最佳迭代次數(shù),實驗結(jié)果如圖8所示。由實驗結(jié)果可知,當(dāng)?shù)螖?shù)小于4時,膠囊網(wǎng)絡(luò)的性能隨著迭代次數(shù)的增加逐漸提升,模型對輸入序列的特征學(xué)習(xí)更加充分。當(dāng)?shù)螖?shù)大于4時,膠囊網(wǎng)絡(luò)的性
表4 模型訓(xùn)練時長Table 4 Model training time
能隨著迭代次數(shù)的增加逐漸降低,這是由于模型的過度學(xué)習(xí)導(dǎo)致其泛化能力降低。實驗結(jié)果表明,當(dāng)動態(tài)路由的迭代次數(shù)設(shè)置為4時,模型的精確率、召回率以及F1均為最優(yōu)。
針對食品安全領(lǐng)域關(guān)系抽取數(shù)據(jù)集體量小且關(guān)系種類復(fù)雜的問題,提出了一種融合對抗訓(xùn)練和膠囊網(wǎng)絡(luò)的食品安全領(lǐng)域關(guān)系抽取模型GAL-CapsNet。GAL-CapsNet模型通過BiLSTM捕捉文本序列上下文信息,解決了傳統(tǒng)CapsNet在處理文本時缺乏遠距離依賴關(guān)系的能力,通過CapsNet進行高層次的局部特征獲取,使模型充分理解文本序列的語義,同時通過對抗訓(xùn)練進行數(shù)據(jù)增強,提升模型的抗干擾能力。實驗結(jié)果表明,本文的方法比其他方法在食品安全領(lǐng)域關(guān)系抽取任務(wù)上的精確率、召回率、F1分別至少提升了25.39%、20.29%、22.82%,在模型精度提升的同時保證了模型的計算和存儲效率,證明了本文模型在食品安全領(lǐng)域關(guān)系抽取任務(wù)中的可行性。下一步研究工作將基于本文模型進行多種特征融合,從而進一步提高關(guān)系抽取效果。