陳鵬之,張 瑾,劉 悅,程學(xué)旗
(1.中國科學(xué)院計算技術(shù)研究所 中國科學(xué)院網(wǎng)絡(luò)數(shù)據(jù)科學(xué)與技術(shù)重點實驗室, 北京 100190;2.中國科學(xué)院大學(xué), 北京 100049)
實體關(guān)系聯(lián)合抽取是指從非結(jié)構(gòu)化文本中抽取出具有某種語義關(guān)系的實體對,即實體關(guān)系三元組,如圖1所示。它應(yīng)用廣泛,可以用于構(gòu)建知識圖譜和本體知識庫,支持上層應(yīng)用,如問答系統(tǒng)、搜索引擎等,為其他自然語言處理技術(shù)提供支持。
圖1 實體關(guān)系三元組抽取
傳統(tǒng)的實體關(guān)系抽取任務(wù)通常采用管道式(pipeline)模型,將實體關(guān)系抽取分成命名實體識別與實體關(guān)系分類2個獨立的子任務(wù),2個子任務(wù)獨立工作。
管道式方法的優(yōu)點是可以靈活調(diào)用每個模型,每個模型都可以應(yīng)用到不同的場景,同時缺點也很明顯,它忽視了實體識別與關(guān)系分類之間的語義關(guān)聯(lián);其次,實體識別引入的錯誤會影響關(guān)系分類的效果;最后,任意實體對間不一定都存在某種關(guān)系,但需要對所有實體對進行關(guān)系分類。
近幾年研究者們逐漸將實體關(guān)系抽取當(dāng)成一個整體任務(wù)來研究,同時抽取句子中的實體和關(guān)系。與管道式抽取方法相比,聯(lián)合式抽取方法[1]能夠有效利用實體和關(guān)系間緊密的交互信息,同時抽取實體并預(yù)測實體間的關(guān)系。Kate等[2]在2010年提出了“卡片-金字塔”的圖形結(jié)構(gòu),并將其用在實體關(guān)系聯(lián)合抽取上。Yang等[3]在2013年提出了一種聯(lián)合抽取模型,使用整數(shù)線性規(guī)劃提取符合條件的實體及關(guān)系。Katiyar等[4]在2016年首次將深度雙向LSTM序列標(biāo)注的方法用于聯(lián)合提取觀點實體IS-FROM、IS-ABOUT關(guān)系。Zheng等[5]在2017年提出一種復(fù)合型標(biāo)簽策略,利用序列標(biāo)注的方法同時識別出實體和關(guān)系。近兩年來,基于端到端的聯(lián)合抽取方法逐漸被研究者提出,Zeng等[6]在2018年提出一種基于端到端的實體關(guān)系聯(lián)合抽取模型CopyRE,根據(jù)機器翻譯的思想,將輸入語句看成是源語言,將實體關(guān)系三元組組成的序列看作是目標(biāo)語言,以此抽取實體及關(guān)系。
基于端到端的聯(lián)合抽取方法主要存在2個問題:首先,在實體抽取的過程中,該類方法默認每個實體僅由一個單詞構(gòu)成,從而導(dǎo)致模型沒有辦法抽取出完整的實體;其次,該類方法抽取出的實體對準(zhǔn)確率低,在整個抽取過程中,關(guān)系預(yù)測和實體抽取會相互影響,使得關(guān)系預(yù)測不準(zhǔn)確,進而導(dǎo)致抽取出的三元組準(zhǔn)確率低。
針對上述問題,本文提出一種基于標(biāo)簽校正的聯(lián)合抽取方法,稱為CopyLC。首先,在解碼階段使用4個權(quán)重矩陣,配合Attention、Copy、Mask機制,分別抽取主、客實體的首尾,以此抽取完整的實體。其次,在解碼完成時,通過標(biāo)簽序列對抽取的實體進行校正。最后,將以上2部分結(jié)合,構(gòu)建一個多任務(wù)學(xué)習(xí)模型。實驗結(jié)果證明,本文的方法在NYT和WebNLG數(shù)據(jù)集上均能獲得更好的抽取效果。
主要貢獻包括:
1) 引入4個權(quán)重矩陣進行解碼,配合Attention、Copy及Mask機制,在解碼過程中抽取出完整的實體;
2) 利用標(biāo)簽序列進行抽取實體校正,同時提高實體對抽取和關(guān)系預(yù)測的準(zhǔn)確率,進而提升三元組抽取效果。
實體關(guān)系抽取是信息抽取領(lǐng)域中的重要研究課題。主要分為2種抽取方法,一種是管道式抽取,另一種是聯(lián)合式抽取。
管道式抽取將實體關(guān)系抽取分為實體識別和實體關(guān)系分類2個獨立的子任務(wù)。實體識別主要分為基于統(tǒng)計和基于深度學(xué)習(xí)2種方法?;诮y(tǒng)計的方法將命名實體識別看成序列標(biāo)注問題,代表方法如隱馬爾科夫模型(HMM)[7],最大熵馬爾科夫模型(MEMM)[8]以及條件隨機場模型(CRF)[9]等。近幾年,不少學(xué)者將深度學(xué)習(xí)技術(shù)應(yīng)用在命名實體識別上。Lample等[10]使用LSTM等神經(jīng)網(wǎng)絡(luò)模型抽取實體。除此之外,卷積神經(jīng)網(wǎng)絡(luò)(CNN)[11]等深度學(xué)習(xí)方法也被用來解決命名實體識別問題,并取得了較好的結(jié)果。
實體關(guān)系分類可以分為基于特征向量、基于核函數(shù)以及基于深度學(xué)習(xí)3種方法?;谔卣飨蛄康姆椒ǔ槿〕?個實體所在位置的上下信息,如語法、語義特征以及實體的特征等,利用這些特征訓(xùn)練分類模型,此類方法有Kambhatla等[12-13]。相比于基于特征向量的方法,核方法能夠有效地對實體對上下文信息進行表示,對人工的依賴更小,并且擴充了語義表達空間,可以涵蓋更多信息?;诤撕瘮?shù)的關(guān)系分類方法有Mooney等[14-15]。隨著深度學(xué)習(xí)技術(shù)的發(fā)展與興起,神經(jīng)網(wǎng)絡(luò)方法被引入到實體關(guān)系分類任務(wù)中。Socher等[16]于 2012 年首次提出基于RNN模型的關(guān)系分類方法。Zeng等[17]在2014年首次將CNN用于關(guān)系分類,通過CNN分別提取詞匯和句子的特征,利用池化后的特征及位置特征對實體對進行分類。
聯(lián)合式抽取方法能夠有效利用實體和關(guān)系間緊密的交互信息,將實體關(guān)系抽取看作一個整體任務(wù),同時抽取實體并預(yù)測實體間的關(guān)系。Miwa等[18]在2016年首次將神經(jīng)網(wǎng)絡(luò)用于聯(lián)合表示實體和關(guān)系。該方法將實體識別任務(wù)當(dāng)作序列標(biāo)注任務(wù),使用雙向LSTM輸出具有依賴關(guān)系的實體標(biāo)簽;再根據(jù)依存樹中目標(biāo)實體間的最短路徑對文本進行關(guān)系抽取。Katiyar等[19]于2017年首次將注意力機制與雙向LSTM結(jié)合在一起,用于聯(lián)合抽取實體及關(guān)系,該模型可以進行擴展以提取各種預(yù)定義好的關(guān)系類型,是真正意義上的第一個神經(jīng)網(wǎng)絡(luò)實體關(guān)系聯(lián)合抽取模型。Zheng等[5]在2017年提出了一種新穎的標(biāo)注策略的實體關(guān)系抽取方法,把原來涉及到命名實體識別和關(guān)系分類2個子任務(wù)的聯(lián)合學(xué)習(xí)模型抽象成一個序列標(biāo)注的問題,他們提出一種復(fù)合型標(biāo)簽策略,利用序列標(biāo)注的方法同時識別出實體和關(guān)系。Zeng等[6]在2018年提出一種基于端到端的實體關(guān)系聯(lián)合抽取模型,使用Encoder-Decoder框架,配合Attention、Copy機制等同時抽取實體及關(guān)系。
為解決現(xiàn)有端到端模型的抽取中未考慮實體multi-token問題以及抽取過程中關(guān)系預(yù)測與實體抽取相互影響的問題,本節(jié)將選取當(dāng)前代表性的端到端抽取模型CopyRE作為基礎(chǔ)模型,根據(jù)機器閱讀理解中尋找答案的思想,采用多個權(quán)重矩陣抽取實體,并引入標(biāo)簽校正機制,提出基于標(biāo)簽校正的聯(lián)合抽取方法CopyLC(copy mechanism for relational facts with label correction)。
CopyRE是基于Encoder-Decoder框架的一種聯(lián)合抽取模型,它主要包含Encoder和Decoder兩部分。Encoder模塊對輸入語句編碼并轉(zhuǎn)化為特征向量。Decoder模塊利用Encoder生成的特征向量,生成實體關(guān)系三元組。
(1)
Decoder模塊使用單向LSTM,配合Attention機制與Copy機制抽取三元組。抽取過程分為迭代的3步,第1步是預(yù)測關(guān)系,第2步是抽取主實體,第3步是抽取客實體,然后迭代該過程,直至達到預(yù)先設(shè)定的步長。整個解碼過程,模型會得到多個實體關(guān)系三元組。當(dāng)輸入語句中的三元組個數(shù)小于模型設(shè)置的最大三元組個數(shù)時,Decoder生成NA三元組,表示空實體關(guān)系三元組。
解碼過程可形式化為式(2):
(2)
Decoder模塊t時刻的輸入ut由2部分組成,一部分是t時刻的輸入vt,另一部分是Encoder的輸出與Decoder的隱狀態(tài)生成的Attention向量at。
ut表示如下:
ut=[vt;at]·Wu
(3)
vt表示t-1時刻模型預(yù)測的關(guān)系或是抽取出的實體。Attention向量at表示為:
(4)
αt是權(quán)重,由Encoder的輸出與Decoder的隱狀態(tài)經(jīng)過非線變化得到,如式(5)所示:
(5)
(6)
式中:qr是一個N維的向量,每一維表示對應(yīng)的關(guān)系;Wr是權(quán)重矩陣;br是偏置項。因為模型可能會生成空關(guān)系,簡稱為NA關(guān)系,用qNA表示空關(guān)系向量,如式(7)所示:
(7)
CopyRE將關(guān)系集合qr和空關(guān)系qNA拼接在一起,得到一個N+1維的向量,表示可能預(yù)測出的所有關(guān)系,再選出概率分布上值最高的那一維對應(yīng)的關(guān)系作為當(dāng)前三元組的關(guān)系,如式(8)所示:
prel=softmax([qr;qNA])
(8)
(9)
pe=softmax([qe;qNA])
(10)
客實體抽取與主實體類似,為了保證抽取的三元組有意義,2個實體不能重疊,M表示客實體不能是主實體對應(yīng)的單詞,客實體概率分布為:
pe=softmax([M?qe;qNA])
(11)
2.2.1無法抽取完整的實體
CopyRE只能抽取實體中的最后一個單詞。在現(xiàn)實情況中,實體不僅只由一個單詞構(gòu)成,也存在多個單詞構(gòu)成的實體,特別是在中文中,大多實體都是由多個字符組成,在這種情況下,CopyRE無法抽取出完整的實體。
2.2.2抽取出的實體對準(zhǔn)確率低
通過復(fù)現(xiàn)CopyRE模型,還發(fā)現(xiàn)該方法抽取出的三元組F1值較低,主要原因是抽取出的實體對準(zhǔn)確率較低,進而使得整體抽取效果較低。
針對端到端抽取模型存在的不足,本文在CopyRE模型基礎(chǔ)上提出一種基于標(biāo)簽校正的端到端實體關(guān)系聯(lián)合抽取方法,稱為CopyLC,模型框架如圖2所示。
圖2 CopyLC模型框架
如果只生成有明確意義的實體關(guān)系三元組,在一定程度上就能減少抽取所帶來的冗余信息,同時,端到端模型自動將實體與關(guān)系以及實體與實體間建立了某種語義關(guān)聯(lián)。另外,要抽取的實體一定是源于句子中,所以使用拷貝機制而非從固定詞表中生成單詞,可以更精確完整地抽取實體。因此,本文使用基于RNN的神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)待識別句子的上下文信息,并通過注意力機制與拷貝機制,直接生成實體關(guān)系三元組,并且在解碼完成時進行標(biāo)簽校正,實現(xiàn)多任務(wù)學(xué)習(xí),從而提升實體關(guān)系抽取的效果,稱為Copy Mechanism for Relational Facts with Label Correction,簡稱CopyLC模型。
模型框架包含3個主要模塊,第1個模塊是Encoder,負責(zé)對輸入語句進行編碼;第2個模塊是Decoder,負責(zé)關(guān)系預(yù)測和實體抽取;第3個模塊是標(biāo)簽校正,對抽取出的實體進行校正。Encoder編碼及關(guān)系預(yù)測部分與CopyRE相同,在本文中不再贅述,下文主要針對實體抽取及標(biāo)簽校正進行介紹。
2.3.1實體抽取
標(biāo)準(zhǔn)生成式模型是每一步從固定詞表中選擇一個當(dāng)前條件下概率最高的單詞作為輸出,但這個單詞不一定是原文中的單詞。就實體抽取而言,組成實體的每一個單詞,其實都是原文中的某一個詞,所以可以用拷貝機制替代固定詞表生成,從輸入文本中分別將2個實體拷貝出來。本文用2步來抽取一個實體,第1步,找到實體的開始位置,第2步,找到實體的結(jié)尾位置,這樣,每2步就可以抽取出任意長度實體,而不受限于實體長度,也不存在分詞等預(yù)處理引入的錯誤傳遞。整個過程類似于機器翻譯,不斷地生成單詞,只不過現(xiàn)在是從原文中拷貝,每2步就可以抽取出一個實體,一個實體關(guān)系三元組由一個關(guān)系和2個實體(主實體、客實體)構(gòu)成,所以,每5步就可以抽取出一個完整的實體關(guān)系對(第1步抽取出關(guān)系,第2步至第5步抽取主、客實體)。相對于管道式抽取方法,它能更好地建模實體與關(guān)系,以及實體與實體間的語義關(guān)聯(lián)。
實體的抽取分為2大步,4小步,前2步抽取主實體,后2步抽取出客實體。第1步抽取主實體的開始位置,利用Encoder的輸出與Decoder的輸出得到輸入句子中每個單詞的表達向量:
(12)
psub_beg=softmax([qsub_beg;qNA])
(13)
下一步需要抽取出主實體的結(jié)尾位置,抽取方法與抽取主實體開始位置類似。主實體的結(jié)尾位置必須位于主實體開始位置之后(可以重疊,相當(dāng)于實體由一個單詞構(gòu)成),為了保證抽取的實體有意義,使用Mask機制:
(14)
式中:j表示主實體開始位置:i表示句子中某個單詞的位置,通過Mask機制可以計算主實體結(jié)尾位置的表達向量:
psub_end=softmax([Msub?qsub_end;qNA])
(15)
抽取出主實體后,接下來需要抽取客實體的開始位置。本文假設(shè)2個實體之間是不能重疊的,即客實體不能和主實體之間有交叉。同樣,使用Mask機制來輔助抽取出客實體的開始位置:
(16)
式中:subject表示主實體所在的位置;i表示句子中某個單詞的位置,通過Mask機制可以計算客實體開始位置的表示向量:
pobj_beg=softmax([Mobj_beg?qobj_beg;qNA])
(17)
最后一步,抽取客實體的結(jié)尾位置。這里存在2種情況,第1種是主實體位于客實體之前,第2種是主實體位于客實體之后。
當(dāng)主實體位于客實體之前時,客實體開始位置位于主實體之后,所以客實體前的所有位置不可能成為客實體的結(jié)尾,具體表示如下:
(18)
當(dāng)主實體位于客實體之后時,客實體的結(jié)尾位置必須位于主實體開始與客實體開始位置之間,具體表示如下:
(19)
實際中,根據(jù)具體情況計算客實體的結(jié)尾位置:
pobj_end=softmax([Mobj_end?qobj_end;qNA])
(20)
最終,將開始與結(jié)尾的之間的所有單詞組合,得到完整的實體,再將第1步預(yù)測的關(guān)系和第2步至第5步抽取出的2個實體組合在一起,就可以得到一個完整的實體關(guān)系三元組,迭代下去,就可以得到多個實體關(guān)系三元組。
2.3.2標(biāo)簽校正
當(dāng)模型抽取出多對實體關(guān)系三元組后,使用一個標(biāo)簽校正(label correction)模塊校正抽取出的實體。用正確的實體對模型抽取出的實體進行校正。本文用4個序列分別記錄主實體開始、結(jié)尾、客實體開始、結(jié)尾位置的標(biāo)簽。將一個句子表示為s=[w1,w2,w3,…,wn],其中s代表整個輸入的句子,n表示句子的長度,wi表示第i個單詞,在中文里表示第i個字符。例如,當(dāng)句子中第1個單詞和第3個單詞表示主實體的開頭時,本文用tagsub_beg=[1,0,1,…,0]表示主實體開始的標(biāo)簽序列,即在輸入句子中,將主實體開始對應(yīng)的位置標(biāo)記為1,其余位置標(biāo)記為0。同理,用tagsub_end,tagobj_beg,tagobj_end分別表示主實體結(jié)尾,客實體開始、結(jié)尾的標(biāo)簽序列,具體標(biāo)注方法如圖3所示。
圖3 標(biāo)簽校正序列
本文通過Decoder解碼與標(biāo)簽校正,構(gòu)建一個多任務(wù)學(xué)習(xí)系統(tǒng),使得模型同時考慮生成的實體關(guān)系三元組以及實體本身,損失函數(shù)如下:
(21)
損失L由生成的三元組和標(biāo)簽校正共同決定,γ是權(quán)重,表示標(biāo)簽校正在整個損失函數(shù)中的重要程度;標(biāo)簽校正部分的損失Ltag由主實體開始、結(jié)尾,客實體開始、結(jié)尾這4部分損失共同決定,β,γ是權(quán)重,表示正確識別出實體開始位置與識別出實體結(jié)尾位置的相對重要程度。
實驗采用2個公開數(shù)據(jù)集New York Times(NYT)和WebNLG來評估算法的有效性。
NYT是谷歌發(fā)布的關(guān)于遠程監(jiān)督關(guān)系抽取的數(shù)據(jù)集,該數(shù)據(jù)集包含1987年到2007年紐約時報文章中118萬條句子,一共有24種關(guān)系。本文將數(shù)據(jù)集看作是監(jiān)督數(shù)據(jù),選出所有句子長度大于100的句子用于訓(xùn)練、驗證及測試。
WebNLG原本是為自然語言生成任務(wù)而提出的數(shù)據(jù)集,一共包含246種關(guān)系。數(shù)據(jù)集中的每一個樣本都包含幾條人工編寫的句子以及幾個實體關(guān)系三元組,本文只選取每個樣本中的第一條句子,并且過濾所有三元組都沒在第一條句子中出現(xiàn)的樣本,即保證一個樣本中至少有一個三元組。
經(jīng)過統(tǒng)計,發(fā)現(xiàn)NYT數(shù)據(jù)集中大約34%的實體是multi-token實體,WebNLG數(shù)據(jù)集中大約56%的實體是multi-token實體。數(shù)據(jù)集詳情見表1。
表1 數(shù)據(jù)集分析
為了與CopyRE方法公平比較,本文在實驗中的參數(shù)設(shè)置與CopyRE相同。本文使用雙向LSTM進行編碼,單向LSTM進行解碼,詞向量使用CopyRE預(yù)訓(xùn)練的詞向量,使用Adam優(yōu)化神經(jīng)網(wǎng)絡(luò)。實驗中使用2種解碼方法,一種是用一個解碼器生成所有三元組,稱為OneDecoder,另一種是一個解碼器生成一個三元組,稱為MultiDecoder。具體參數(shù)見表2。
表2 參數(shù)設(shè)置
使用負對數(shù)似然損失函數(shù)(negative log likelihood loss,簡稱NLL)訓(xùn)練實體關(guān)系三元組的生成,損失函數(shù)如下式:
(22)
式中:T表示解碼長度;y表示目標(biāo)序列,y=[y1,y2,…,yn];yi表示目標(biāo)序列中的第i個字符,表示已經(jīng)生成的字符;x表示輸入句子;θ表示模型的參數(shù)。
本文使用交叉熵損失函數(shù)(cross entropy loss,簡稱 CE)校正生成的實體,損失函數(shù)如下所示:
(23)
與CopyRE方法相比,本文使用更嚴格的評價方法,只有當(dāng)抽取出的關(guān)系以及主實體、客實體首尾都完全正確時,才認為抽取出的三元組是正確的。相比于CopyRE只抽取出實體的一部分就認為是正確的,本文的評價方法更加合理、嚴謹。
本文使用微平均精確率(precision),召回率(recall)以及F1值評估算法的效果。當(dāng)模型預(yù)測的結(jié)果中含有NA對(空關(guān)系實體對)時,本文在計算精確率、召回率時,將其剔除。
將本文CopyLC模型實驗結(jié)果與CopyRE結(jié)果進行對比,如表3和表4所示??梢钥闯?,本文模型的抽取效果在不同數(shù)據(jù)集上都優(yōu)于CopyRE。本文中,使用OneDecoder方法進行解碼的CopyLC稱為CopyLC-One,使用MultiDecoder方法進行解碼的CopyLC稱為CopyLC-Mul。CopyRE-One(ours)與CopyRE-Mul(ours)表示對CopyRE復(fù)現(xiàn)后的模型。
表3 NYT數(shù)據(jù)集實驗結(jié)果
表4 WebNLG數(shù)據(jù)集實驗結(jié)果
為了分析標(biāo)簽校正模塊對抽取效果的影響程度,本文設(shè)計了消融實驗,實驗結(jié)果如表5和表6所示,分別驗證標(biāo)簽校正模塊在NYT和WebNLG數(shù)據(jù)集上的效果。CopyLC表示本文的模型,-LC表示本文模型去除標(biāo)簽校正模塊。
表5 NYT數(shù)據(jù)集消融實驗
表6 WebNLG數(shù)據(jù)集消融實驗
通過消融實驗,發(fā)現(xiàn)標(biāo)簽校正模塊對抽取效果有提升,三元組的準(zhǔn)確率、召回率及F1值均得到提升,在使用OneDecoder的情況下,在NYT數(shù)據(jù)集上F1值提高1.4%,在WebNLG數(shù)據(jù)集上F1值提高2%;在使用MultiDecoder的情況下,在NYT數(shù)據(jù)集上F1值提高2.3%,在WebNLG數(shù)據(jù)集上F1值提高2.4%。為了進一步探究標(biāo)簽校正模塊的具體影響,本文在CopyLC-One模型上進行實驗,統(tǒng)計模型在關(guān)系預(yù)測和實體對(由主、客實體共同構(gòu)成)抽取上的效果,如表7、表8所示。
表7 NYT數(shù)據(jù)集關(guān)系和實體對抽取效果
表8 WebNLG數(shù)據(jù)集關(guān)系和實體對抽取效果
根據(jù)表7、表8的實驗結(jié)果,本文發(fā)現(xiàn)標(biāo)簽校正模塊對關(guān)系預(yù)測以及實體抽取的效果均有提升。本文認為關(guān)系預(yù)測及實體抽取效果提升的原因是模型采用的是Encoder-Decoder架構(gòu),標(biāo)簽校正使得抽取的實體更準(zhǔn)確,抽取出的實體會影響下一個三元組中的關(guān)系預(yù)測,使得關(guān)系的預(yù)測更加準(zhǔn)確,反之,關(guān)系預(yù)測也會影響實體的抽取。
針對當(dāng)前基于端到端的聯(lián)合抽取方法存在抽取中未考慮實體multi-token問題以及抽取過程中關(guān)系預(yù)測與實體抽取相互影響等問題,本文結(jié)合Encoder-Decoder框架的特點,引入標(biāo)簽校正機制,提出了一種基于標(biāo)簽校正的實體關(guān)系聯(lián)合抽取方法。從實驗結(jié)果來看,本文提出的方法,在更嚴格的評價方法下,相比較當(dāng)前主流方法在NYT和WebNLG數(shù)據(jù)集上均能獲得更好的抽取效果。本文提出的方法在初始設(shè)置時需要指定最大解碼長度,當(dāng)一個句子中存在的實體關(guān)系事實大于預(yù)設(shè)定的最大值時,某些實體關(guān)系事實可能會被遺漏,同時融合更豐富的全局信息以獲取更好的抽取效果,下一步研究將圍繞這些問題繼續(xù)推進。