曹衛(wèi)東 徐秀麗
(中國民航大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 天津 300300)
隨著互聯(lián)網(wǎng)的發(fā)展,大量的非結(jié)構(gòu)化數(shù)據(jù)應(yīng)運(yùn)而生,如何從海量的數(shù)據(jù)中提取出有價(jià)值的信息一直是專家學(xué)者研究的熱點(diǎn)。實(shí)體關(guān)系抽取便是一項(xiàng)重要且具有挑戰(zhàn)性的從非結(jié)構(gòu)化文本中提取信息的任務(wù),其目的是對非結(jié)構(gòu)化的文本中所蘊(yùn)涵的實(shí)體語義關(guān)系進(jìn)行挖掘處理,從而整理成三元組REL(e1,e2)存儲(chǔ)在數(shù)據(jù)庫中,為之后的智能信息檢索和語義分析提供了一定的支持和幫助。REL(e1,e2),表示REL在實(shí)體e1和實(shí)體e2之間保持的關(guān)系。例如給定一個(gè)句子:The most commonwere aboutand recycling。被包裹的詞為實(shí)體,兩個(gè)實(shí)體audits和waste的關(guān)系在SemEval-2010 Task8中表示為Message-Topic(e1,e2)。實(shí)體關(guān)系抽取作為許多下游任務(wù)的基石,在各種自然語言處理應(yīng)用中起著重要作用,包括文本摘要、生物醫(yī)學(xué)知識(shí)發(fā)現(xiàn)[1]、知識(shí)圖譜[2]、問答系統(tǒng)[3]和機(jī)器翻譯[4]等。
傳統(tǒng)上,研究人員主要使用基于特征和基于核函數(shù)的方法進(jìn)行實(shí)體關(guān)系抽取。Zhou等[5]融合基本的文法分塊信息、半自動(dòng)的收集特征,利用支持向量機(jī)進(jìn)行實(shí)體關(guān)系抽取,在ACE數(shù)據(jù)集上F1值達(dá)到了55.5%;郭喜躍等[6]利用 SVM 作為分類器,分別研究詞匯、句法和語義特征對實(shí)體語義關(guān)系抽取的影響;劉克彬等[7]在語義序列核函數(shù)的基礎(chǔ)上,結(jié)合k近鄰算法(KNN)進(jìn)行實(shí)體關(guān)系抽取;郭劍毅等[8]利用融合了多項(xiàng)式函數(shù)和卷積樹核函數(shù)的向量離散化的矩陣訓(xùn)練模型進(jìn)行實(shí)體關(guān)系抽取任務(wù),驗(yàn)證了多核融合方法較于單核方法性能更優(yōu)。
但是傳統(tǒng)方法往往嚴(yán)重依賴于手工特征和現(xiàn)有的自然語言處理工具,從而造成誤差的積累傳播。隨著深度學(xué)習(xí)的發(fā)展,許多研究者提出了基于深度神經(jīng)網(wǎng)絡(luò)的關(guān)系抽取方法。Zeng等[9]在2014年首次提出使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行實(shí)體關(guān)系抽取,提高了模型的準(zhǔn)確性;Socher等[10]利用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)對標(biāo)注好的文本數(shù)據(jù)進(jìn)行句法分析并不斷迭代,在關(guān)系抽取任務(wù)上取得了比較好的效果;Zhang等[11]使用雙向長短時(shí)記憶網(wǎng)絡(luò)(Bi-LSTM),充分利用了當(dāng)前詞語前后的信息,其實(shí)驗(yàn)結(jié)果相比CNN方法提高了14.6%。但是這些方法通常都依賴于NLP工具獲得的高級詞匯和句法功能,例如詞典(WordNet)[12],依賴解析器、詞性標(biāo)記器(POS)和命名實(shí)體識(shí)別器(NER)[13],無法有效利用數(shù)據(jù)本身隱含的信息。
研究表明,語言模型預(yù)訓(xùn)練[14]對于改善許多自然語言處理任務(wù)是有效的。Devlin等[15]提出的預(yù)訓(xùn)練模(Bidirectional Encoder Representation from Transformers,BERT)具有特別重要的影響,并已成功應(yīng)用于多個(gè)自然語言處理任務(wù)中。Wu等[16]利用預(yù)先訓(xùn)練的BERT語言模型,并結(jié)合目標(biāo)實(shí)體的信息來處理關(guān)系抽取任務(wù)并取得了顯著的效果。
本文將預(yù)訓(xùn)練的BERT模型應(yīng)用于實(shí)體關(guān)系抽取任務(wù),將實(shí)體級別的信息融入預(yù)訓(xùn)練模型,并用卷積神經(jīng)網(wǎng)絡(luò)提取句子級別的信息,提出了預(yù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)模型(R-BERT-CNN)。模型在將文本輸入到BERT進(jìn)行微調(diào)之前,首先在目標(biāo)實(shí)體之前和之后插入特殊標(biāo)記,以便識(shí)別兩個(gè)目標(biāo)實(shí)體的位置并傳輸信息進(jìn)入BERT模型,從BERT模型中定位兩個(gè)目標(biāo)實(shí)體在輸出嵌入中的位置。然后使用它們的嵌入以及句子編碼(在BERT設(shè)置中嵌入的特殊字符[CLS],[SEP])分別作為輸入到CNN和全連接神經(jīng)網(wǎng)絡(luò)中進(jìn)行關(guān)系抽取。它能夠捕捉句子和兩個(gè)目標(biāo)實(shí)體的語義,以更好地適應(yīng)關(guān)系抽取任務(wù)。本文主要有三個(gè)方面的貢獻(xiàn):
(1) 將實(shí)體級信息納入預(yù)先訓(xùn)練的語言模型,并使用CNN提取句子級的信息,能夠更好地捕捉句子和兩個(gè)目標(biāo)實(shí)體的語義,更好地適應(yīng)關(guān)系抽取任務(wù)。
(2) 本文的模型在SemEval-2010 Task 8中獲得了89.51%的F1分?jǐn)?shù),相較于其他的神經(jīng)網(wǎng)絡(luò)模型都有了不同程度的提高。
(3) 在沒有依賴任何自然語言處理工具下,其性能優(yōu)于現(xiàn)有的最新模型。
預(yù)訓(xùn)練模型BERT模型是谷歌提出的基于多層雙向Transformer[17]構(gòu)建的語言模型,內(nèi)部采用Transformer作為編碼結(jié)構(gòu),比傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)具有更強(qiáng)的信息捕捉能力,在自然語言處理的多項(xiàng)任務(wù)中取得了良好的效果。BERT模型的本質(zhì)是通過在海量的語料的基礎(chǔ)上運(yùn)行自監(jiān)督學(xué)習(xí)方法為單詞學(xué)習(xí)一個(gè)好的特征表示,所謂的自監(jiān)督學(xué)習(xí)是指在沒有人工標(biāo)注的數(shù)據(jù)上運(yùn)行的監(jiān)督學(xué)習(xí)。在特定的NLP任務(wù)中,可以直接使用BERT的特征表示作為該任務(wù)的詞嵌入特征。所以BERT提供的是一個(gè)供其他任務(wù)遷移學(xué)習(xí)的模型,該模型可以根據(jù)任務(wù)微調(diào)或者固定之后作為特征提取器。
BERT的預(yù)訓(xùn)練階段包括兩個(gè)任務(wù):一是掩蓋語言模型(Masked Language Model,MLM);二是下一個(gè)句子預(yù)測(Next Sentence Prediction,NSP)。簡單描述為:在一句話中mask掉幾個(gè)單詞然后對mask掉的單詞做預(yù)測、判斷兩句話是否為上下文的關(guān)系,而這兩個(gè)訓(xùn)練任務(wù)是同時(shí)進(jìn)行的。MLM使得BERT能夠從文本中進(jìn)行雙向?qū)W習(xí),也就是說這種方式允許模型從單詞的前后單詞中學(xué)習(xí)其上下文關(guān)系。只要把對應(yīng)的標(biāo)簽輸入BERT,每一層Transformer層輸出相應(yīng)數(shù)量的隱藏向量,如此一層層傳遞下去,直到最后輸出。
圖1是BERT執(zhí)行文本分類時(shí)的模型。BERT是一個(gè)句子級別的語言模型,可以直接獲得整個(gè)句子的唯一向量表示。BERT的輸入表示的設(shè)計(jì)應(yīng)能夠在一個(gè)標(biāo)記序列中表示單個(gè)文本句子和一對文本句子。每個(gè)標(biāo)記的輸入由標(biāo)記嵌入(Token Embeddings),片段嵌入(Segment Embeddings)和位置嵌入(Position Embeddings)的總和構(gòu)成。Token Embeddings是在每個(gè)輸入前面加的一個(gè)特殊的標(biāo)簽[CLS],可以使用Transformer對[CLS]進(jìn)行深度編碼,由于Transformer是可以無視空間和距離,把全局信息編碼進(jìn)每一個(gè)位置的,而[CLS]的最高隱藏層作為句子/句對的表示直接跟softmax的輸出層連接,因此其作為梯度反向傳播路徑上的“關(guān)卡”,可以學(xué)到整個(gè)輸入的上層特征;Segment Embeddings是使用[SEP]將兩個(gè)句子分開,從而實(shí)現(xiàn)以兩個(gè)句子作為輸入的分類任務(wù);Position Embeddings是用來表示輸入句子向量中每個(gè)字詞所對應(yīng)的位置,由于Transformer無法像RNN一樣獲取句子的時(shí)序信息,所以需要Position Embeddings表示自此在句子中的先后順序。
圖1 Bert 文本分類結(jié)構(gòu)
連接標(biāo)簽嵌入、分段嵌入和位置嵌入的向量通過框中的多層自注意力機(jī)制(變壓器編碼器),可以將輸入語句映射到不同的子空間中,能夠更好地理解到語句所包含的信息。對于每個(gè)輸入標(biāo)簽,都有對應(yīng)的輸出值。其中,C是整個(gè)文本的表示形式,因?yàn)镃獲得了所有單詞的信息。最后,將C輸入到softmax層以獲得分類結(jié)果。實(shí)際上C注重文本中每個(gè)單詞的重要性,并且每個(gè)單詞都是平等且獨(dú)立的,但它不注意文本中某些片段或短語的信息。
近年來,深度神經(jīng)網(wǎng)絡(luò)在自然語言處理中取得了良好的效果。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)[18]是由動(dòng)物視覺的局部感受野原理啟發(fā)而提出的,是深度學(xué)習(xí)技術(shù)中極具代表性的網(wǎng)絡(luò)結(jié)構(gòu)之一,在圖像分析和處理領(lǐng)域取得了眾多突破性的進(jìn)展,在學(xué)術(shù)界常用的標(biāo)準(zhǔn)圖像標(biāo)注集ImageNet上,基于卷積神經(jīng)網(wǎng)絡(luò)的模型取得了很多成就,包括圖像特征提取分類、場景識(shí)別等。卷積神經(jīng)網(wǎng)絡(luò)相較于傳統(tǒng)的圖像處理算法的優(yōu)點(diǎn)之一在于避免了對圖像復(fù)雜的前期預(yù)處理過程,尤其是人工參與圖像預(yù)處理過程,卷積神經(jīng)網(wǎng)絡(luò)可以直接輸入原始圖像進(jìn)行一系列工作,至今已經(jīng)廣泛應(yīng)用于各類圖像相關(guān)的應(yīng)用中。最近的一些研究者也將CNN應(yīng)用到自然語言處理領(lǐng)域,并取得了一些引人注目的成果。
卷積神經(jīng)網(wǎng)絡(luò)豐富的卷積核可以用于提取各類特征,盡管這些特征大多數(shù)都是不可解釋的,但卻是非常有效的,因此通過不斷的卷積,CNN 能夠自動(dòng)發(fā)現(xiàn)一些文本中隱含的隱性特征。CNN的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 CNN結(jié)構(gòu)圖
CNN的本質(zhì)是輸入到輸出的映射,它能夠?qū)W習(xí)大量的輸入與輸出之間的映射關(guān)系,而不需要任何輸入和輸出之間的精確的數(shù)學(xué)表達(dá)式,只要用已知的模式對卷積網(wǎng)絡(luò)進(jìn)行訓(xùn)練,網(wǎng)絡(luò)就具有輸入和輸出的映射關(guān)系。CNN通常是由數(shù)據(jù)輸入層、卷積計(jì)算層、池化層、全連接層組成。
卷積層是CNN最重要的一個(gè)層次,一般會(huì)有一個(gè)或多個(gè)卷積層。卷積層中有兩個(gè)關(guān)鍵操作:局部關(guān)聯(lián),把每個(gè)神經(jīng)元看作一個(gè)濾波器(filter);窗口滑動(dòng),使用過濾器對局部數(shù)據(jù)集逆行計(jì)算。卷積的主要作用就是提取特征,因?yàn)橐淮尉矸e可能提取的特征比較粗糙,多次卷積,可以提取每一層特征,使得提取的特征更加精細(xì);池化層也叫降采樣層,夾在連續(xù)的卷積層中間,用于降低數(shù)據(jù)的維度,避免過擬合,從而提升特征提取魯棒性,提高計(jì)算速度;全連接層通常在卷積神經(jīng)網(wǎng)絡(luò)的尾部,其作用主要是對特征進(jìn)行整合,池化層的輸出以全連接的形式傳遞給全連接層,通過分類器得到分類(預(yù)測結(jié)果),再將預(yù)測的結(jié)果與實(shí)際的結(jié)果進(jìn)行比較,通過損失函數(shù)梯度下降反向傳播的方式更新網(wǎng)絡(luò)參數(shù)。
為了更好地獲得文本和兩個(gè)目標(biāo)實(shí)體的語義信息,本文提出了用于關(guān)系抽取任務(wù)的R-BERT-CNN模型。模型主要分為五個(gè)部分:輸入層、預(yù)訓(xùn)練層、語義提取層、全連接層和輸出層。構(gòu)建的模型結(jié)構(gòu)如圖3所示。模型進(jìn)行實(shí)體關(guān)系抽取任務(wù)的流程為:
圖3 R-BERT-CNN模型
Step1數(shù)據(jù)預(yù)處理,將數(shù)據(jù)添加[CLS]、[SEP]標(biāo)簽和一些特殊的規(guī)范字符。
Step2將處理好的數(shù)據(jù)輸出到BERT模型中進(jìn)行預(yù)訓(xùn)練。
Step3BERT預(yù)訓(xùn)練完成后,對實(shí)體向量取平均并激活,再分別使用CNN和全連接神經(jīng)網(wǎng)絡(luò)提取句子和兩個(gè)目標(biāo)實(shí)體中的語義信息。
Step4將提取的標(biāo)簽語義,句子語義和實(shí)體語義信息進(jìn)行全連接。
Step5通過Softmax分類器對實(shí)體關(guān)系進(jìn)行抽取,輸出兩個(gè)目標(biāo)實(shí)體的關(guān)系。
模型的輸入是一個(gè)具有兩個(gè)目標(biāo)實(shí)體e1、e2的標(biāo)簽序列s。其中s={x1,x2,…,xn},xi為句子的第i個(gè)詞向量,n為模型設(shè)置的輸入句子的最大長度。為了使BERT模塊更好地捕獲兩個(gè)實(shí)體的位置信息,在第一個(gè)實(shí)體的開頭和結(jié)尾,插入一個(gè)特殊的規(guī)范字符“$”,在第二個(gè)實(shí)體的開始和結(jié)束位置,插入一個(gè)特殊的規(guī)范字符“#”。同時(shí)還在每個(gè)句子的開頭和結(jié)尾分別添加了[CLS]和[SEP]標(biāo)簽。例如,在插入特殊的標(biāo)記后,對于目標(biāo)實(shí)體為“audits”和“waste”的句子,輸入格式為:[CLS]The most common$audits$were about # waste # and recycling.[SEP]。
輸入處理模塊將每個(gè)xi編碼成一個(gè)包含兩個(gè)目標(biāo)實(shí)體和特殊標(biāo)簽符號的向量ei的公式為:
ei=Etoken(xi)+Eseg(xi)+Epos(xi)
(1)
式中:Etoken(xi)表示詞嵌入;Eseg(xi)表示片段嵌入;Epos(xi)表示位置嵌入。
輸入處理模塊通過BERT中的Transformer預(yù)訓(xùn)練后輸出相應(yīng)數(shù)量的隱藏向量,一層層傳遞下去,直到最后輸出。設(shè)經(jīng)過預(yù)訓(xùn)練BERT后最終輸出的隱藏向量是H={H0,H1,…,Hn}。其中包含了[CLS]標(biāo)簽向量,實(shí)體e1最終的隱藏狀態(tài)向量,實(shí)體e2最終的隱藏狀態(tài)向量和其他字向量的隱藏向量。假設(shè)[CLS]標(biāo)簽向量為H0,向量Hi到Hj是實(shí)體e1的BERT的最終隱藏狀態(tài)向量,而Hk到Hm是實(shí)體e2的BERT的最終隱藏狀態(tài)向量。
語義提取分為標(biāo)簽語義提取,實(shí)體語義提取和句子語義提取。標(biāo)簽語義主要提取[CLS]標(biāo)簽信息;實(shí)體語義提取主要是提取實(shí)體標(biāo)簽信息并平均兩個(gè)實(shí)體向量;句子語義提取為使用CNN提取句子級別的信息。
2.3.1 標(biāo)簽語義提取
[CLS]標(biāo)簽向量可以作為整篇文本的語義表示。通過預(yù)訓(xùn)練處理后得到[CLS]標(biāo)簽向量,直接輸入全連接層并添加激活函數(shù)(tanh)獲得整個(gè)句子的標(biāo)簽信息。輸出H′0的過程可以表示為:
H′0=W0(tanh(H0))+b0
(2)
式中:W0是參數(shù)矩陣,且W0∈Rd×d,d是BERT的隱藏狀態(tài)大小;b0是偏差向量。
2.3.2 實(shí)體語義提取
(3)
(4)
式中:W1、W2是參數(shù)矩陣,具有相同的維度,即W1∈Rd×d,W2∈Rd×d,d是BERT的隱藏狀態(tài)大小;b1、b2是偏差向量,且W1=W2,b1=b2。
2.3.3 句子語義提取
為了使文本的表現(xiàn)更好地集中在句子中的局部信息上,如一個(gè)簡短的句子和短語,我們使用卷積神經(jīng)網(wǎng)絡(luò)對BERT層的輸出矩陣H={H0,H1,…,Hn}進(jìn)行卷積、降采樣操作,然后通過一層拼接層,提取文本特征。假設(shè)卷積核長度為k,即每次對k個(gè)分詞向量進(jìn)行卷積操作,卷積核滑動(dòng)的步長一般設(shè)為1,對文本矩陣進(jìn)行上下滑動(dòng),則H可以分成{H0:k,H1:k+1,H2:k+2,…,Hn-k+1:n},其中Hi:j表示向量Hi到Hj的所有向量的級聯(lián),對于每一個(gè)分量執(zhí)行卷積操作后得到向量C={C0,C1,…,Cn-k+1},而Ci是對分量Hi:i+k-1執(zhí)行卷積操作后得到的值,稱為一個(gè)局部特征映射,計(jì)算公式為:
Ci=W3THi:i + k-1+b3
(5)
式中:W3是卷積核的參數(shù),按照均勻分布隨機(jī)初始化,并在模型訓(xùn)練過程中不斷學(xué)習(xí);b3是偏差向量。
接著對卷積捕獲的文本特征映射向量C進(jìn)行池化操作,采用最大池化操作,公式為:
(6)
則對于q個(gè)卷積核得到的結(jié)果為:
(7)
卷積操作實(shí)質(zhì)上完成了對文本特征中表示局部重要信息的捕獲,池化操作則完成了局部重要特征的提取。經(jīng)過全連接后CNN的輸出向量為最終的向量C′。
(8)
p=softmax(h″)
(9)
式中:W4∈RL×4d,L是關(guān)系類型的個(gè)數(shù),b4是偏差向量,p是概率輸出。
Softmax輸出的是一個(gè)概率值,根據(jù)概率值可以預(yù)測兩個(gè)目標(biāo)實(shí)體的關(guān)系并輸出。
模型實(shí)驗(yàn)環(huán)境為:Windows 10操作系統(tǒng),i7-9570H處理器,16 GB內(nèi)存,GTX1060 Ti 6 GB顯卡,Python 3.7編程語言,PyTorch深度學(xué)習(xí)框架,PyCharm開發(fā)環(huán)境。
在SemEval-2010 Task 8數(shù)據(jù)集上評估本文模型,它是關(guān)系抽取的常用基準(zhǔn),并將實(shí)驗(yàn)結(jié)果與該領(lǐng)域最先進(jìn)的模型進(jìn)行比較。數(shù)據(jù)集中包含10種關(guān)系,每種關(guān)系及其數(shù)量如表1所示。其中前9個(gè)關(guān)系是有序的,Other沒有方向。關(guān)系的方向性有效地使關(guān)系的數(shù)量加倍,因?yàn)橹挥挟?dāng)順序也正確時(shí),才認(rèn)為實(shí)體對被正確標(biāo)記,所以最終存在19個(gè)關(guān)系(2×9+1)。該數(shù)據(jù)集包含10 717個(gè)標(biāo)注的句子,8 000個(gè)樣本用于訓(xùn)練,2 717個(gè)樣本用于測試。
表1 數(shù)據(jù)集
對于實(shí)驗(yàn)效果的評估主要采用SemEval-2010 Task 8的官方評估指標(biāo),該指標(biāo)基于宏觀平均F1得分(不包括Other),并考慮了方向性。另外,一些實(shí)驗(yàn)還使用精確率(P)、召回率(R)作為實(shí)驗(yàn)的評估指標(biāo),其計(jì)算公式為:
(10)
(11)
(12)
式中:TP表示屬于關(guān)系r的樣本被正確識(shí)別為關(guān)系r;TN表示為屬于關(guān)系r的樣本被錯(cuò)誤識(shí)別為其他關(guān)系;FP表示不屬于關(guān)系r的樣本被錯(cuò)誤識(shí)別為關(guān)系r;FN表示不屬于關(guān)系r的樣本被正確識(shí)別為對應(yīng)的關(guān)系。
用交叉熵作為損失函數(shù)。訓(xùn)練期間在每個(gè)完全連接的層之前應(yīng)用dropout方法,防止過擬合。并采用Adam優(yōu)化器,關(guān)于預(yù)先訓(xùn)練的BERT模型的參數(shù),參考[15]中的配置。本文實(shí)驗(yàn)主要的參數(shù)設(shè)置見表2。
表2 參數(shù)設(shè)置
3.5.1 單個(gè)關(guān)系實(shí)驗(yàn)結(jié)果
為了驗(yàn)證本文提出的R-BERT-CNN模型的有效性,在SemEval-2010 Task 8數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),表3的結(jié)果顯示了針對每種關(guān)系類型和總體關(guān)系在測試集上模型的性能??傮w關(guān)系Overall不包括Other。
實(shí)驗(yàn)結(jié)果顯示,除Other關(guān)系,Instrument-Agency關(guān)系的準(zhǔn)確率、召回率和F1值最低,原因是在數(shù)據(jù)集中這個(gè)關(guān)系類別數(shù)量少,在訓(xùn)練過程中不能更好地學(xué)習(xí),導(dǎo)致模型輸出這種關(guān)系的概率較小;其次性能比較差的是Component-Whole和Member-Collection關(guān)系,因?yàn)檫@兩種關(guān)系在關(guān)系清單種類中是兩種相近的關(guān)系,都是Part-Whole的特殊情況。其余的關(guān)系類型在測試集上模型的性能和總體關(guān)系各項(xiàng)評價(jià)指標(biāo)相差不大。
3.5.2 對比實(shí)驗(yàn)
本組實(shí)驗(yàn)使用官方評價(jià)標(biāo)準(zhǔn)宏平均F1值比較了本文提出的模型與最近發(fā)布的SemEval-2010 Task 8數(shù)據(jù)集的多個(gè)模型,模型的實(shí)驗(yàn)結(jié)果來自對應(yīng)的論文。各模型的F1值的實(shí)驗(yàn)結(jié)果如表4所示。
表4 實(shí)驗(yàn)結(jié)果對比
支持向量機(jī)(SVM)[19]是一種非神經(jīng)網(wǎng)絡(luò)模型,使用SVM分類器捕獲上下文,語義角色從屬關(guān)系以及名詞可能存在的關(guān)系的功能來執(zhí)行分類,在SemEval比賽中獲得了最佳結(jié)果;Attention-CNN[20]是基于注意力的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),充分利用了詞嵌入,詞性標(biāo)簽嵌入和位置嵌入信息;Att-Pooling-CNN[21]是一個(gè)基于多Attention機(jī)制CNN網(wǎng)絡(luò)的實(shí)體關(guān)系抽取模型;C-GCN[22]是一種圖卷積網(wǎng)絡(luò),它能夠有效地并行存儲(chǔ)任意依賴結(jié)構(gòu)的信息;Entity Attention Bi-LSTM[23]是一種端到端循環(huán)神經(jīng)模型,結(jié)合了具有潛在實(shí)體類型(LET)方法的感知實(shí)體的注意力機(jī)制。
實(shí)驗(yàn)結(jié)果表明,本文R-BERT-CNN模型,相較于基準(zhǔn)模型,有了明顯的提高,F1值達(dá)到了89.51%。支持向量機(jī)SVM的性能最差,因?yàn)樵撃P鸵蕾囉谌斯ぴO(shè)置的語義關(guān)系分類,從而造成誤差的積累傳播;改進(jìn)CNN的神經(jīng)網(wǎng)絡(luò)Attention-CNN,Att-Pooling-CNN,C-GCN模型也都獲得了不錯(cuò)的效果,但它們依賴于NLP工具的高級詞匯和句法功能,本文R-BERT-CNN模型在沒有使用任何NLP的工具下相較于C-GCN,Attention-CNN,Att-Pooling-CNN,其F1值分別提高了4.71、3.61和1.51百分點(diǎn);Entity Attention Bi-LSTM可以有效地利用實(shí)體及其潛在類型,但沒有利用句子級別的信息,而R-BERT-CNN模型可以充分利用句子級和實(shí)體級別的信息,相較于Entity Attention Bi-LSTM模型F1值提高了1.51百分點(diǎn)。
3.5.3 消融實(shí)驗(yàn)
為了解實(shí)體級信息和句子級信息分別對關(guān)系抽取結(jié)果的影響,分別創(chuàng)建了單獨(dú)獲取句子信息(BERT-CNN)和單獨(dú)獲取實(shí)體信息(R-BERT)的模型,并進(jìn)行實(shí)驗(yàn)結(jié)果對比。
BERT-CNN模型是沒有將實(shí)體級信息融入預(yù)訓(xùn)練模型的純BERT與CNN的結(jié)合,即丟棄圍繞句子中的兩個(gè)實(shí)體的特殊單獨(dú)標(biāo)注(即“$”和“#”),但保持兩個(gè)實(shí)體的隱藏向量輸出,換句話說,只在句子的開頭添加“ [CLS]”,并將帶有兩個(gè)實(shí)體的句子輸入BERT模塊,然后使用BERT預(yù)訓(xùn)練后第一個(gè)輸出向量H直接輸入CNN后添加全連接層和softmax層進(jìn)行抽取。
在本組實(shí)驗(yàn)中,使用BERT預(yù)訓(xùn)練模型的實(shí)驗(yàn)結(jié)果值均由本文的實(shí)驗(yàn)環(huán)境運(yùn)行得出。表5是消融實(shí)驗(yàn)的結(jié)果。
表5 消融實(shí)驗(yàn)結(jié)果(%)
表5表明了本文提出的R-BERT-CNN模型綜合評價(jià)指標(biāo)優(yōu)于其他兩個(gè)模型。在準(zhǔn)確率上,比BERT-CNN和R-BERT分別提高了2.87百分點(diǎn)和1.78百分點(diǎn)。在召回率上,與R-BERT模型結(jié)果相當(dāng),比BERT-CNN模型提高了2.34百分點(diǎn)。在F1值上,比BERT-CNN和R-BERT分別提高了2.61百分點(diǎn)和0.97百分點(diǎn)。分析其原因,BERT-CNN模型只考慮了句子級別的語義關(guān)系,沒有使用特殊標(biāo)記字符,無法定位目標(biāo)實(shí)體,造成實(shí)體信息丟失;R-BERT模型只在預(yù)訓(xùn)練階段融入了實(shí)體信息,沒有考慮到文本句子的上下文語義。
為了分析模型的時(shí)間性能,本文比較了三種模型的在SemEval-2010 Task 8數(shù)據(jù)集上完成五次迭代需要的時(shí)間,實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 模型訓(xùn)練時(shí)間對比
圖4顯示本文提出的模型相較于其他兩個(gè)模型訓(xùn)練時(shí)間分別縮短了15、19 min,這是因?yàn)榫渥诱Z義和實(shí)體語義是并行提取的,模型在訓(xùn)練過程中能夠獲取到所需要的各種數(shù)據(jù),所以同時(shí)獲取文本中的兩種語義,并沒有增加訓(xùn)練時(shí)間,反而提高了訓(xùn)練速度。
綜上可以表明,實(shí)體語義和句子語義對關(guān)系抽取任務(wù)有著至關(guān)重要的作用,本文提出的R-BERT-CNN模型能夠充分利用文本數(shù)據(jù)的信息,在提高關(guān)系抽取任務(wù)的各項(xiàng)性能的同時(shí)縮短了模型的訓(xùn)練時(shí)間。
3.5.4 優(yōu)化器對關(guān)系抽取的影響
優(yōu)化器對實(shí)體關(guān)系抽取的效果有很大的影響,因此選用合適的優(yōu)化器對模型的性能有至關(guān)重要的作用。本組實(shí)驗(yàn)對比了不同的優(yōu)化器的性能,分別選用自適應(yīng)矩估計(jì)(Adam)、自適應(yīng)梯度下降(AdaGrad)和隨機(jī)梯度下降(SGD)三種優(yōu)化器,對其實(shí)驗(yàn)重復(fù)十次,每次實(shí)驗(yàn)迭代五次取平均的結(jié)果如圖5所示。
圖5 不同優(yōu)化器對實(shí)驗(yàn)結(jié)果的影響
由圖可知,使用SGD優(yōu)化器的模型效果最差,可能是因?yàn)镾GD更新比較頻繁,造成損失函數(shù)有嚴(yán)重的動(dòng)蕩,從而陷入局部最優(yōu)解;AdaGrad優(yōu)化器使用梯度平方和作為分母,比較適合稀疏的數(shù)據(jù);Adam優(yōu)化器可以計(jì)算每個(gè)參數(shù)的自適應(yīng)學(xué)習(xí)率,使得模型達(dá)到最高的結(jié)果,比其他適應(yīng)性學(xué)習(xí)方法效果要好。
本文提出了一種R-BERT-CNN模型,用于抽取實(shí)體之間的關(guān)系。該模型將實(shí)體級信息納入預(yù)先訓(xùn)練的模型,并使用CNN提取句子級的信息,能夠更好地捕捉句子和兩個(gè)目標(biāo)實(shí)體的語義,提升了實(shí)體關(guān)系抽取任務(wù)的性能。模型能夠并行提取句子語義和實(shí)體語義,提高了訓(xùn)練速度,減少了收斂時(shí)間。采用SemEval 2010 Task 8數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果驗(yàn)證了該模型在關(guān)系抽取任務(wù)上在沒有依賴任何自然語言處理工具情況下,不僅能夠獲得較好的評價(jià)指標(biāo),還縮短了訓(xùn)練時(shí)間,在實(shí)體關(guān)系抽取任務(wù)上有重要的應(yīng)用價(jià)值。
本文只考慮了在特定關(guān)系類別下的關(guān)系抽取,在以后的研究中,將考慮無監(jiān)督情況下的關(guān)系抽取任務(wù),得出文本中豐富的語義關(guān)系。