張一凡 聶鐵錚 申德榮 寇 月 于 戈
(東北大學(xué)計算機科學(xué)與工程學(xué)院 沈陽 110169)
知識庫的自動構(gòu)建通常依賴于其下游任務(wù),即命名實體識別和關(guān)系抽取[1]。在傳統(tǒng)的方法中,流水線式的提取實體和關(guān)系是最常見的,分為兩步來完成,第一步完成命名實體識別,第二步從命名實體識別的結(jié)果中進(jìn)行關(guān)系分類,這是一個有順序的過程。但是這種方式孤立了實體抽取和關(guān)系抽取兩個子任務(wù),忽略了兩個步驟當(dāng)中的聯(lián)系,很容易傳遞錯誤信息[2]。
隨著錯誤傳遞的弊病被暴露的愈發(fā)明顯,近期的研究者們開始嘗試使用聯(lián)合抽取實體關(guān)系的方式來同時抽取實體和關(guān)系。最新的研究表明,實體和關(guān)系的信息在聯(lián)合抽取方法中被有效的融合,使得兩項工作都有更優(yōu)的表現(xiàn)[3~4]。Zheng等[5]提出了一種統(tǒng)一標(biāo)注方案,把實體關(guān)系聯(lián)合抽取轉(zhuǎn)化為序列標(biāo)注問題。
然而,現(xiàn)有的多數(shù)研究方法都無法抽取同一實體對的多種關(guān)系以及同一句話中的多個關(guān)系的情況。這些方法默認(rèn)在一句話或者一個實體對之間只有一個關(guān)系。Zeng等提出的方法[6]第一次考慮到了重疊三元組的問題,他們?yōu)椴煌闹丿B三元組分了類別,并提出了一個序列到序列(seq2seq)的模型,該模型使用復(fù)制機制來提取三元組。圖1展示了重疊三元組的類別,主要分為實體對重疊(EPO)和單實體重疊(SEO)兩種?;趕eq2seq模型,他們進(jìn)一步研究了提取順序?qū)β?lián)合抽取的影響[7],并且通過強化學(xué)習(xí)得到了一個更優(yōu)化的結(jié)果。Fu等[8]也通過基于圖卷積網(wǎng)絡(luò)(GCNS)的模型把文本建模成為關(guān)系圖來解決重疊三元組問題。Wei等[9]提出了一個名為CASREL的框架,通過將句子中的主體映射到對象,來解決重疊三元組問題。
盡管上述方法都取得了一定程度上的效果,但是當(dāng)相同的實體之間有多個關(guān)系時,分類器的效果不是很理想,在沒有足夠多的訓(xùn)練集的情況下,分類器幾乎無法判斷實體之間的關(guān)系。同時,序列標(biāo)注的方式在抽取尾實體時沒有充分利用頭實體的語義,并且將抽取頭尾實體看作兩個相對獨立的過程,沒有充分的進(jìn)行信息融合。此外,傳統(tǒng)的信息融合方案,如簡單的使用多信息相加、相乘等方式,常常忽略信息之間的方向性,而在關(guān)系三元組中,這種方向性卻是一個重要的信息。以圖1為例,(The United States,president,Trump)是一個正確的三元組,而(Trump,president,The United States)是一個錯誤的三元組,但是如果按照傳統(tǒng)的信息融合方案來抽取關(guān)系,以上兩種情況會得出同一個結(jié)果。多信息融合技術(shù)旨在使用CLN充分融合關(guān)系抽取過程當(dāng)中的頭實體語義,避免上述情況的出現(xiàn)。
圖1 重疊三元組的兩種情況
為了解決上述問題,本文提出了一個基于標(biāo)簽標(biāo)注的聯(lián)合實體關(guān)系抽取方法,通過特定于關(guān)系的標(biāo)簽fr( head)→tail,來抽取文本中存在的三元組關(guān)系,其中每個標(biāo)簽都是一個可能的尾實體,如果不存在當(dāng)前關(guān)系,則返回NULL。本文參照了計算機視覺中信息融合方法Condition Batch Normalization(CBN)[10]啟發(fā),為了解決關(guān)系抽取方法在信息融合時無法體現(xiàn)融合信息之間的方向性的問題,文中提出了一個在自然語言處理過程中更加適用的方法:Conditional Layer Normalization(CLN)。類似于CBN中的做法,CLN通過控制BERT模型的權(quán)重參數(shù),來控制模型的生成行為。
命名實體識別是自然語言處理的一個重要分支,是很多下游任務(wù)(如:機器翻譯、信息提取等)的重要基礎(chǔ)技術(shù),同時也是人工智能的實用化轉(zhuǎn)變的重要一環(huán)。
命名實體識別技術(shù)剛剛出現(xiàn)時大部分使用基于規(guī)則的方法。針對一些相對簡單的情況,領(lǐng)域?qū)<液鸵恍┱Z言學(xué)者費心費力的制定很多復(fù)雜的規(guī)則。通過這些規(guī)則,來完成識別過程。受到制定規(guī)則的復(fù)雜性的困擾,人們把目光轉(zhuǎn)向了機器學(xué)習(xí),讓機器自行制定規(guī)則,主要有隱馬爾科夫模型、條件隨機場模型等。使用序列標(biāo)注的方式給每個字和詞打上標(biāo)簽的方式在此時興起。這種方式的出現(xiàn)雖然大幅降低了人工成本,但是依舊需要領(lǐng)域研究者來手動篩選部分的語法特征。隨著神經(jīng)網(wǎng)絡(luò)的出現(xiàn),人們發(fā)現(xiàn)了在命名實體識別任務(wù)中解放人力成本的契機,因此使用神經(jīng)網(wǎng)絡(luò)方法完成命名實體識別引起了研究者們的廣泛關(guān)注。Dong[11]等提出使用雙向的BiLSTM同時結(jié)合CRF來進(jìn)行中文命名實體識別任務(wù)。Ling[12]等通過注意力機制,關(guān)注了長文本的重要部分,提取局部特征,在BiLSTM基礎(chǔ)上完成了識別任務(wù)。Yan[13]等進(jìn)一步優(yōu)化的命名實體識別任務(wù)的性能,同時改進(jìn)了Transformer模型。
關(guān)系抽取通常是指關(guān)系三元組的抽取,當(dāng)前熱門研究方法主要分為兩大類,即流水線式的管道抽取方式和聯(lián)合實體關(guān)系抽取方式。
2.2.1 管道抽取方法
管道抽取方法是指分成兩個獨立的步驟來完成命名實體識別和關(guān)系抽取任務(wù)。管道抽取方法通常是先進(jìn)行命名實體識別,使用命名實體識別的結(jié)果完成關(guān)系分類。這種方式孤立的兩個子任務(wù),并且按順序完成,最終得到一個關(guān)系三元組結(jié)果。
單獨討論管道抽取方法的關(guān)系分類部分,目前對于關(guān)系分類的研究主要使用三類方式。第一種是基于特征向量的方式,這種方法通過對訓(xùn)練集進(jìn)行語義特征的提取,然后再通過提取出的語義特征構(gòu)建特征向量,最后使用支持向量機[14]、最大熵[15]等數(shù)學(xué)模型完成關(guān)系抽取。第二種是基于核函數(shù)的方法,這類方法通過探究句子的組成結(jié)構(gòu)特點[16],定義對應(yīng)的核函數(shù)來對比句子之間的相似性,并且根據(jù)這種相似性進(jìn)行關(guān)系分類。第三種是基于神經(jīng)網(wǎng)絡(luò)的關(guān)系分類方法,主要通過一些神經(jīng)網(wǎng)絡(luò)的模型比如BiLSTM、BERT等模型,通過抽取句子級和單詞級的特征,并且利用一些預(yù)訓(xùn)練的特性,來取得不錯的性能。比如Att-BiLSTM模型使用雙向LSTM來獲取句子級特征,再利用注意力機制來獲取單詞級的特征,最終完成分類[17]。而一些其他方法利用BERT模型完成預(yù)訓(xùn)練[18],在原有的文本上加上位置標(biāo)簽來提高性能。
由于在管道抽取的方法中,關(guān)系分類十分依賴于命名實體識別的結(jié)果,并且命名實體識別和關(guān)系分類被獨立為兩個孤立的步驟,既無法體現(xiàn)兩個子任務(wù)的相關(guān)性,同時也很容易造成誤差傳播。
2.2.2 聯(lián)合抽取方法
聯(lián)合抽取方法被提出用于解決在管道抽取方法中存在的誤差傳遞以及相關(guān)性問題。
聯(lián)合抽取方法在早期通過結(jié)構(gòu)化的去學(xué)習(xí)制定好的人工特征的方式來完成抽?。?,19~20]。這種方式基于人工特征來學(xué)習(xí),依然一定程度上依賴于人。在神經(jīng)網(wǎng)絡(luò)的發(fā)展初期,雖然可以規(guī)避依賴人工特征學(xué)習(xí)的方式來完成關(guān)系抽取,但是依然會使用一些特征生成工具(如POS標(biāo)記器、依賴解析器)[21]。隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展不斷完善,陸續(xù)有更完善的特征提取方法。一種基于遞歸神經(jīng)網(wǎng)絡(luò)的模型[22]在2016年被提出,通過共享命名實體系別和關(guān)系抽取參數(shù)的方式,加強了兩個任務(wù)之間的相關(guān)性。這個方法將樹形結(jié)構(gòu)的BiLSTM-RNN疊加在順序結(jié)構(gòu)的BiLSTM-RNN上,獲得了單詞序列和依賴樹的子結(jié)構(gòu)信息。
隨著預(yù)訓(xùn)練模型的興起,研究者們的目光投向了一種新的聯(lián)合抽取方法,即通過序列標(biāo)注的方式來進(jìn)行關(guān)系三元組抽取。Zheng等[5]的方法第一次使用序列標(biāo)注的方式完成了關(guān)系三元組的抽取,他們的方法根據(jù)關(guān)系種類擴展了實體類型標(biāo)簽,完成了聯(lián)合抽取的任務(wù)。
以上的處理方式,雖然既解決了管道抽取當(dāng)中的兩個問題,同時又不依賴于任何特征生成工具,但是仍然無法有效處理同樣關(guān)系映射多個三元組的情況。
隨著序列標(biāo)注方法的發(fā)展,更多研究者使用分離模塊的方式來完成實體識別和關(guān)系抽取兩項工作。一種新的序列標(biāo)注方法被提出[24],該方法分為兩個模塊:實體識別模塊和關(guān)系分類模塊。實體識別模塊通過序列標(biāo)注找出所有潛在的實體對,再通過關(guān)系分類模塊識別出實體對之間的潛在關(guān)系。這個關(guān)系分類模塊是一個三維的,并且可以與實體識別模塊共享編碼,進(jìn)一步提高了性能表現(xiàn)。但是三維關(guān)系分類模塊很復(fù)雜,導(dǎo)致模型很難達(dá)到收斂狀態(tài),并且有很大的內(nèi)存開銷。
從當(dāng)前國內(nèi)外的最新研究成果來看,基于聯(lián)合抽取的方法,尤其是基于序列標(biāo)注的聯(lián)合抽取方法,已成為關(guān)系三元組抽取的主流方法,并在實際應(yīng)用中取得了當(dāng)前的最佳實驗結(jié)果。
關(guān)系抽?。≧elation Extraction)是知識圖構(gòu)建的一項重要任務(wù)。RE是指基于預(yù)定義的實體和關(guān)系類別,提取非結(jié)構(gòu)化文本中包含的實體對之間的關(guān)系。一個實體對之間的關(guān)系可以形式化為一個三元組其中e1和e2分別為頭實體和尾實體,r是兩個實體之間的一種特定的關(guān)系。
在本文中,我們將關(guān)系抽取問題定義為一個序列標(biāo)注問題:給定一個句子S,對于每一個可能的關(guān) 系 三 元 組( h,r,t),我 們 使 用 一 個 標(biāo) 記p( ( h,r,t)|S)來表示所有可能出現(xiàn)的三元組情況,則此時有:
在式(1)中,我們使用了概率的鏈?zhǔn)椒▌t,對于給定的頭實體h,任何一個與h相關(guān)的關(guān)系都會對應(yīng)一個尾實體t,如果在所有關(guān)系中h都沒有對應(yīng)的尾實體t,則返回一個NULL作為尾實體。序列標(biāo)注任務(wù)的過程如圖2所示。
這樣做的好處是可以遍歷每一個頭實體和關(guān)系可能的組合,進(jìn)一步可以解決所有類型的重疊三元組問題。在我們的方法中,每次抽取對應(yīng)關(guān)系尾實體時,都會融合當(dāng)前頭實體的信息,以起到更有效的結(jié)果。例如圖2中識別出的頭實體New York City或De Blasio,在抽取尾實體時會融合他們的詞嵌入來提高識別準(zhǔn)確度。下一章節(jié)會詳細(xì)介紹文中的方法。
圖2 序列標(biāo)注任務(wù)過程圖
該方法的思想是使用兩個級聯(lián)步驟來提取三元組,首先對句子進(jìn)行Bert編碼,得到句子的上下文向量。然后對輸入的句子進(jìn)行線性變換,提取頭實體。接下來檢查所有可能的關(guān)系,提取尾實體。方法的實現(xiàn)主要分為兩個部分:編碼與頭實體標(biāo)記、關(guān)系與尾實體標(biāo)記。整體結(jié)構(gòu)如圖3所示。
圖3 模型整體架構(gòu)圖
BERT是一種多層雙向Transformer模型,通常被用來生成每個單詞的上下文深度表征。具體來說,它是由N個相同的Transformer塊組成的,目前應(yīng)在多個任務(wù)中取得了很明顯的效果。
本文使用預(yù)先訓(xùn)練過的Bert模型[25],來編碼上下文信息。我們是用Trans(x)表示Transformer塊,具體操作如下:
其中E為輸入句子中子詞的one-hot矩陣[26],Ws為子詞的詞嵌入矩陣,Wp為位置嵌入矩陣,p表示輸入中詞的位置,hn為隱藏狀態(tài)向量,即輸入語句在第n層的上下文表示,N為Transformer塊數(shù)。
此外,在關(guān)系抽取中,頭尾實體應(yīng)當(dāng)被賦予不同的語義關(guān)系,為了充分區(qū)別頭實體與尾實體的向量表示,文中加入了頭實體和尾實體的線性變換層:
其中A和B為線性變換參數(shù),hhead為變換后的頭實體向量表示,尾實體使用同樣方式,訓(xùn)練參數(shù)進(jìn)行變換。
頭實體標(biāo)記使用兩個相同的二進(jìn)制分類器來預(yù)測頭實體的開始位置和結(jié)束位置,每個標(biāo)記可以被分配一個二進(jìn)制標(biāo)簽(0或1)用于表示該位置是否為頭實體的開始或結(jié)束位置。其中1表示當(dāng)位置是一個實體的開始(結(jié)束)位置,0表示當(dāng)前位置并非一個開始(結(jié)束)位置。底層標(biāo)記模塊通過Bert編碼后的hhead向量來標(biāo)記預(yù)測可能的所有頭實體。標(biāo)記過程如下:
對于多個頭實體的情況,文中使用最近匹配原則,即將距離開始標(biāo)記最近的結(jié)束標(biāo)記匹配在一起。并且此處不考慮開始標(biāo)記之前的結(jié)束標(biāo)記,這種策略可以保證任意一個識別出的頭實體的完整性,可以規(guī)避一些錯誤情況。
關(guān)系與尾實體標(biāo)記階段主要分為線性變換、通過CLN結(jié)合頭實體編碼、抽取關(guān)系和標(biāo)記目標(biāo)尾實體三個階段。線性變換與頭實體過程類似,此處不再贅述。
4.2.1 條件層歸一化
LN(Layer Normalization),條件層歸一化,此方法通過計算數(shù)據(jù)的均值和方差,將數(shù)據(jù)在神經(jīng)網(wǎng)絡(luò)架構(gòu)中歸一化。可以解決一定的梯度爆炸和梯度消失問題,同時還一定程度上可以加速收斂,其過程如下所示:
在上式中,x為預(yù)處理的數(shù)據(jù),E[x]和Var[x]為預(yù)處理數(shù)據(jù)的均值和方差,分母是處理數(shù)據(jù)的標(biāo)準(zhǔn)差,其中添加一個?用來規(guī)避當(dāng)分母為0是的訓(xùn)練錯誤,γ和β是兩個參加訓(xùn)練過程的參數(shù)向量,充當(dāng)縮放和平移因子,形狀與x相同。該過程如圖4所示。
圖4 層歸一化結(jié)構(gòu)圖
借鑒于計算機視覺中常用的歸一化方法Conditional Batch Normalization(CBN)[10]啟發(fā),文中提出了:Conditional Layer Normalization(CLN)條件層歸一化,來完成自然語言處理過程當(dāng)中的信息融合。CLN和CBN的做法類似,都是將歸一化結(jié)構(gòu)中對應(yīng)的偏置和權(quán)重變成關(guān)于待融合條件的函數(shù)。CLN的具體計算方式如式(8)所示。
其中,S為輸入CLN結(jié)構(gòu)的特征信息,cβ和cγ分別為輸入的兩個待融合的條件信息。該過程如圖5所示。
圖5 條件層歸一化結(jié)構(gòu)圖
從式(8)中可以看出,CLN通過兩個不同的可訓(xùn)練權(quán)重W1和W2,將條件信息cγ和cβ映射到不同的空間以此體現(xiàn)記錄條件的方向信息。
如圖3所示,本模塊利用CLN結(jié)構(gòu)對頭實體編碼hhead和線性變換后的包含尾實體語義信息的編碼htail進(jìn)行信息融合,此過程如式(9)所示。
4.2.2 抽取關(guān)系和標(biāo)記目標(biāo)尾實體
我們在兩個公共數(shù)據(jù)集NYT和WebNLG上評估了我們的方法。NYT數(shù)據(jù)集最初采用遠(yuǎn)程監(jiān)督的方法生成。它由1180000個句子組成,有24種預(yù)定義的關(guān)系類型。WebNLG數(shù)據(jù)集最初是為自然語言生成(NLG)任務(wù)創(chuàng)建的,用于關(guān)系三元組抽取任務(wù)。包含246種預(yù)定義的關(guān)系類型。這兩個數(shù)據(jù)集中的句子通常包含多個關(guān)系三元組。我們使用Zeng[6]發(fā)布的數(shù)據(jù)集,其中NYT包含56195個用于訓(xùn)練的句子,5000個用于驗證的句子,5000個用于測試的句子,WebNLG包含5019個用于訓(xùn)練的句子,500個用于驗證的句子,703個用于測試的句子。在此次實驗中我們將句子分為Normal、EntityPairOverlap(EPO)和SingleEntityOverlap(SEO)三類,對不同類型的重疊關(guān)系三元組進(jìn)行詳細(xì)實驗。數(shù)據(jù)集的統(tǒng)計數(shù)據(jù)如表1所示。
表1 NYT和WebNLG數(shù)據(jù)集的統(tǒng)計數(shù)據(jù)
在本次實驗中,一些基本的超參數(shù)設(shè)置如下。預(yù)訓(xùn)練模型使用預(yù)訓(xùn)練過的BERT(BERT-Base,Cased),輸入的最大句子長度設(shè)置為100,訓(xùn)練epoch設(shè)置為40,使用批量訓(xùn)練的方式,batch設(shè)置為6,損失函數(shù)采用二分類的交叉熵,同時為了防止出現(xiàn)過擬合的情況,當(dāng)連續(xù)五個epoch沒有任何改進(jìn)時停止訓(xùn)練。
在本文中,我們使用精確值(Precision)、召回率(Recall)、F1值來評價最終的聯(lián)合抽取結(jié)果。
精確值通過計算預(yù)測結(jié)果中為真的正例與整個預(yù)測結(jié)果數(shù)量的比值來求得。召回率通過計算預(yù)測結(jié)果中為真的正例與應(yīng)該得到的所有正例的數(shù)量的比值來求得,用于衡量預(yù)測結(jié)果是否完備。
此外,本文還額外使用了F1值來當(dāng)做評價指標(biāo),F(xiàn)1值是精確值和召回率的一個調(diào)和均值,通常是為了解決精確值和召回率出現(xiàn)矛盾的情況。在關(guān)系抽取問題中,為了綜合考慮精確值和召回率,通常使用F1-measure方法來計算F1值,這樣計算的F1值可以很好地反映關(guān)系抽取效果,即關(guān)系抽取的準(zhǔn)確度。
為了驗證本文方法(Ours Method)的性能,下面將本文的方法與其他幾種目前表現(xiàn)最佳的算法作比較,分別是Zheng等提出的NovelTagging[5],Zeng等提出的CopyR[6],F(xiàn)u等提出的GraphRel[8],Zeng等提出的CopyRRL[7]和Wei等提出的CASREL[9]。此處為了獲得更好的性能,我們使用了預(yù)訓(xùn)練的BERT模型。此外,為了證明文中提出的改進(jìn)是有效的,我們做了消融實驗。其中Ours Method(without CLN)為沒有使用CLN信息融合的方法;Ours Method(without distinguish)為頭實體和尾實體沒有區(qū)分語義的方法。
表2展示了對NYT和WebNLG兩個數(shù)據(jù)集進(jìn)行關(guān)系抽取的不同方法的結(jié)果。其中我們的方法(Ours Method)在所有三個評價指標(biāo)均高于其他方法。在沒有CLN的情況下(Ours Method without CLN),本文的方法并沒有另外一種序列標(biāo)注算法CASREL效果更佳,進(jìn)一步表明CLN對于關(guān)系抽取的積極作用;同時,可以看出,在沒有充分區(qū)分頭尾實體的語義時,對于模型提升有限,文中對于頭尾實體的語義區(qū)分使用的是簡單的線性變換方式,后續(xù)可以使用更加復(fù)雜有效的方式,充分區(qū)分頭尾實體,這也是未來我們努力的方向。
表2 在NYT和WebNLG數(shù)據(jù)集上各個方法的實驗結(jié)果
為了進(jìn)一步研究我們的方法在提取重疊三元組方面的效果,我們對不同類型的句子進(jìn)行了擴展實驗,并同樣與其他方法進(jìn)行了對比。圖6展示了各個方法從在普通情況下、EPO情況下和SEO情況下的F1得分。大多數(shù)方法在普通情況、EPO情況、SEO情況上的性能呈下降趨勢,這反映了從不同重疊模式的句子中提取關(guān)系三元組的難度在增加。也就是說,普通情況是最簡單的情況,而EPO和SEO情況是相對比較困難的情況。同時可以看出,CASREL方法,在抽取重疊模式的句子時也有很好的性能,因為它同樣采用了序列標(biāo)注的方式,而文中的方法由于融合了CLN,擁有最好的性能,這說明CLN不但可以很好地融合信息,而且在改進(jìn)F1得分方面也有很大的作用。
圖6 從不同重疊模式的句子中提取關(guān)系三元組的F1得分
在本文中,我們提出了一種新的級聯(lián)關(guān)系三元組抽取方法,其將聯(lián)合關(guān)系抽取任務(wù)轉(zhuǎn)化為了一個二元的序列標(biāo)注任務(wù),并且提出了一個多信息融合方法:條件層歸一化(Conditional Layer Normalization),該方法可以很好地融合不同實體對之間的方向性。在實驗中,誤差值被放大和分類不均勻的問題在二元序列標(biāo)注的關(guān)系抽取方法中被體現(xiàn)出來。同時在處理過程中,頭尾實體語義區(qū)分方式過于簡單也是待解決的問題。這將是我們進(jìn)一步改進(jìn)模型的方向。