李敬燦,肖萃林,覃曉婷,謝夏
(海南大學計算機科學與技術學院,海南 海口 570228)
實體關系抽取是指從非結構化文本中識別并提取出頭實體、關系和尾實體的三元組信息的過程。作為信息抽取的基本任務之一,其抽取準確性將直接影響到信息抽取的準確性。隨著現(xiàn)代科學技術的快速發(fā)展,信息抽取應用越發(fā)廣泛,在問答系統(tǒng)、金融、法律等領域都有重要作用,因此信息抽取尤其是語義信息準確性高的信息抽取越來越受到人們的重視。
目前,實體關系的三元組抽取方法主要分為管道和聯(lián)合兩類。管道方法通常是先識別出實體,然后再提取實體之間的關系以進行關系抽取。早期實體關系抽取主要依賴于卷積神經(jīng)網(wǎng)絡(CNN)來處理文本。然而,這些方法存在一些局限性,比如卷積核大小的固定性和所提取特征的單一性等問題。
隨后,文獻[1]采用CNN模型和注意力機制相結合的形式來進行關系抽取。研究人員也逐漸將基于循環(huán)神經(jīng)網(wǎng)絡(RNN)的方法應用于實體關系抽取任務,這些方法能更好地處理文本中的長期依賴關系。文獻[2]設計了一種雙向循環(huán)門控單元,并集成注意力機制,能夠捕獲更多有價值的字符級信息。文獻[3]則提出一種基于最短依賴路徑的長短時記憶(LSTM)網(wǎng)絡,用于文本的關系分類,能夠收集最短路徑上的異構信息。
雖然管道方法能在一定程度上實現(xiàn)實體關系抽取的效果,但該方法在結構上存在錯誤累積和三元組重疊的問題,并且也會忽略掉實體識別和關系抽取直接的關聯(lián)。三元組重疊問題可以分為一對一正常類(OO)、單個實體重疊類(SEO)和實體對重疊類(EPO)3種主要類型。一對一正常類沒有實體重疊,每個三元組的實體都是獨立的,不共享;單個實體重疊類存在一個實體在多個三元組中重疊,但其他實體不重疊;實體對重疊類,即多個實體對在不同三元組中重疊可能會涉及多對實體。文獻[4]提出一種利用詞序信息和依存樹結構信息的樹形結構,將長短時記憶模型轉化為樹形結構進行建模,以提取實體和實體關系。然而,這種方法仍然存在一定的先后性問題。為了應對這個問題,研究人員開始嘗試采用聯(lián)合抽取或所謂的“端到端抽取”方法,通過聯(lián)合建模來同時處理實體識別和關系抽取任務。文獻[5]提出一種新的模型,由集合預測網(wǎng)絡直接并行解碼實體關系三元組,這種方法能同時完成實體和關系的抽取,從而避免了誤差的累積。但是由于關系和實體會被同時解碼,這又會導致實體主客體間聯(lián)系薄弱的問題。
近年來的大語言模型,特別是ChatGPT的出現(xiàn)在各行各業(yè)都掀起了一波熱潮。大語言模型(LLM)的最近進展已經(jīng)顯示出它在各個領域的巨大潛力[6]。文獻[7]基于大規(guī)模預訓練語言模型,提出一種API實體關系聯(lián)合抽取模型(AERJE)。文獻[8]利用GPT-3和Flan-T5 Large模型在不同監(jiān)督水平下評估它們在標準關系抽取任務上的性能,取得了很好的效果。但目前基于大模型的關系抽取方法大都針對無監(jiān)督學習領域,對于有監(jiān)督任務缺乏成熟的模型訓練方法和微調策略。
本文提出一種基于大語言模型的關系抽取算法。首先對大型語言模型 Meta AI(LLaMA)進行微調訓練,使其更加適應關系抽取的任務。為了增強關系和實體之間的交互,在提取關系的基礎上使用自注意力機制來增強實體對之間的關聯(lián)程度,增強關系和實體之間的信息共享,接著使用平均池化泛化到整個句子中。針對實體對設計一個過濾矩陣,并引入詞性信息進行語義增強,根據(jù)過濾矩陣中實體對的相關性過濾掉無效的三元組,有效減少誤差傳播和重疊問題。最后對兩個新聞文本數(shù)據(jù)集WebNLG[9]和NYT[10]進行評估。本文的工作主要有以下貢獻:
1)設計一個新的端到端結構,并將大語言模型進行微調,使其更適合關系抽取的任務。
2)針對實體對設計一個過濾矩陣,并引入詞性信息進行語義增強,根據(jù)過濾矩陣中實體對的相關性過濾掉無效的三元組。
3)在NYT和WebNLG數(shù)據(jù)集上進行全面的評估,驗證模型的有效性。
隨著重疊三元組問題的出現(xiàn),實體關系聯(lián)合抽取任務的難度以及復雜度大幅提升。因為模型需要識別和區(qū)分這些重疊的實體以及與它們的相關關系。解決這個問題需要新的建模技巧和策略,以處理不同類型的實體重疊情況。
Seq2Seq方法最早由文獻[11]引入,采用序列到序列模型直接生成三元組,避免生成大量無效信息,并且能夠捕捉輸入序列中的長距離依賴關系。文獻[12]提出一個新的標注策略,使用簡單的神經(jīng)網(wǎng)絡就可以標注關系實體信息,通過簡化模型,有效地提高了實體關系抽取任務的性能。然而,在處理單實體重疊和實體對重疊時仍存在一些不足。隨后的研究著重解決了這些問題,并將解決方案分為基于復制機制的方法和基于標注策略的方法。基于復制機制的方法如CopyRE模型[13],通過自回歸解碼器按順序解碼三元組,該模型在當時獲得了最佳的結果。但是,因為解碼方式的局限性,CopyRE模型可能無法完全識別實體,并且可能造成三元組彼此之間無法進行平衡交互。文獻[5]提出一種集合預測網(wǎng)絡模型,可以直接生成三元組集合,并且通過并行解碼三元組的方式,解決三元組之間的交互失衡問題。
盡管Seq2Seq方法已經(jīng)成為自然語言處理(NLP)領域解決各種問題的主要方法之一,但是NLP問題的復雜性和多樣性使得有些問題可以更好地通過圖來表示和解決。文獻[14]提出一種動態(tài)圖方法,引入跨度注意層用于獲取所有候選實體的表示并構建跨度圖,這個跨度圖被輸入到圖注意力模型中,以動態(tài)學習實體跨度與關系的相互作用。此外,文獻[15]設計一種具備多頭自注意力和密集連接的圖卷積網(wǎng)絡,利用多頭自注意力機制為不同的關系類型分配不同的權重,確保各種關系的概率空間不會互相排斥。動態(tài)圖方法在處理重疊實體關系抽取問題時取得了一定的進展,但也存在一些問題,尤其在處理實體對重疊類問題時表現(xiàn)不佳。
近年來,研究人員設計了許多預訓練語言模型,這些模型在大量未標記的語料庫上運行了無監(jiān)督學習,并且獲得非常不錯的特征表示。文獻[16]利用BERT模型[17]最后兩層輸出的隱藏信息構建一個二維矩陣以表示特征,通過遮蓋不相關的實體來獲取實體位置信息,在最終性能方面表現(xiàn)出色,但時間復雜度較高。文獻[18]則探索了一種新穎的模型架構,將Transformer和指針網(wǎng)絡相結合,更好地提取實體和關系,并且集成了語法引導的網(wǎng)絡,將句子中的語法信息納入到編碼器中,提高模型對句子中關鍵詞的關注度。在上述研究的基礎上,文獻[19]利用BERT模型對句子進行編碼和解碼,在驗證階段采用校準算法,過濾掉了部分不符合源句子事實的三元組,提升了結果的準確性。此外,文獻[20]提出一種包含3個步驟的算法用于提取重疊的實體關系。該算法利用BERT模型獲取句子的上下文信息,并且將這些信息共享給下游的2個子任務:命名實體識別和實體關系抽取,用以提高訓練模型的性能。然而,采取共享參數(shù)的方法進行下游任務訓練,容易造成誤差傳播的問題。
本文算法采用大語言模型作為編碼器,并對其進行微調來學習實體和關系的語義特征。首先使用自注意力機制來增強實體對之間關聯(lián)程度,增強關系和實體之間的信息共享,接著使用平均池化泛化到整個句子中。針對實體對設計一個過濾矩陣,并引入詞性信息進行語義增強,根據(jù)過濾矩陣中實體對的相關性過濾掉無效的三元組。
本文提出的端到端系統(tǒng)包括4個模塊:編碼器,關系提取,實體提取和詞性過濾矩陣?;诖笳Z言模型與語義增強的關系抽取方法如圖1所示(彩色效果見《計算機工程》官網(wǎng)HTML版)。
圖1 基于大語言模型與語義增強的關系抽取方法Fig.1 Relation extraction method based on large-language model and semantic enhancement
本文算法采用LLaMA[21]作為語言編碼器,將句子轉換為特征向量。LLaMA是由 Meta AI 發(fā)布的一個開放且高效的大型基礎語言模型,共有7B、13B、33B、65B 4種版本。因其訓練的數(shù)據(jù)集來源都是公開的,從而保證了其工作的兼容性和可復現(xiàn)性。本文選擇LLaMA-7B模型,并對其進行了微調,使其更適用于關系抽取的任務。
在得到編碼器的特征向量hi之后,將它輸入到關系抽取模塊。一個句子中可能包含多個關系,所以可以將關系抽取認定為多分類任務。每抽取一個關系必定對應一對實體對,但如何在抽取關系時利用實體信息是一個難點。本文提出一種模擬實體的方法,首先使用自注意力機制來增強實體對之間關聯(lián)程度,增強關系和實體之間的信息共享,接著使用平均池化泛化到整個句子中。具體公式如式(1)~式(3)所示:
E=Avgpool(Softmax((WqhiWk)(hi)T)Wvhi)
(1)
havg=Avgpool(hi)
(2)
Prel=ReLU(Wr·[havg;E]+br)
(3)
其中:Wq、Wk、Wv、Wr和br是可訓練的權重矩陣;havg指整體句子的信息向量;Prel是指正確答案為某關系的概率大小;hi是編碼器得到的特征向量;E是指整體的模擬實體信息向量。
如圖1所示,為了處理句子中的特殊實體重疊模式,如SEO重疊和EPO重疊,設計2個序列標記操作來提取實體對中的主語和賓語。模型包含2個全連接層,然后輸入到Softmax激活函數(shù)來預測對象的位置。其中,Psub表示主語實體的位置信息,Pobj表示賓語實體的位置信息。具體公式如式(4)、式(5)所示:
Psub=Softmax(WsubPrel+bsub)
(4)
Pobj=Softmax(WobjPrel+bobj)
(5)
其中:Prel是關系抽取的結果;Wsub、Wobj、bsub和bobj是可訓練的權重矩陣。
過濾矩陣的目標是在預測三元組的過程中篩選出與主語和賓語之間相關性較高的實體,以提高預測的準確性。這意味著它專注于選擇與給定主語和賓語之間的關系更為相關的實體,以降低誤差并提高模型性能。之前的關系抽取和實體抽取,可以看作是一個完整的三元組預測過程。關系抽取中的自注意力機制可以加強實體和關系之間的聯(lián)系,但是僅靠實體抽取模塊來確定實體對,使得主語和賓語之間的聯(lián)系確實有些薄弱。為了解決這個問題,本文設計一個實體過濾矩陣,旨在加強主語和賓語之間的聯(lián)系。本文設計一個大小為n×n的矩陣,其中n表示句子的長度。矩陣中的每個數(shù)字(i,j)表示橫坐標i位置的詞和縱坐標j位置的詞是一個實體對。在面對多種關系和實體的復雜場景時,每種關系都會生成對應的得分矩陣。當?shù)梅殖^預設閾值時,表示對應的2個實體具有這種關系。
本文在實體過濾矩陣的基礎上進一步提出名詞矩陣的理念。其核心思想在于大部分關于實體的句子通常都是由名詞或名詞性短語構成的。對2個數(shù)據(jù)集進行統(tǒng)計,名詞性實體占總實體的結果如表1所示。
表1 NYT和WebNLG數(shù)據(jù)集上實體的詞性統(tǒng)計Table 1 Part of speech statistics of entities on NYT and WebNLG datasets
通過僅關注名詞或名詞性短語中的有意義的候選對象,能夠降低在實體識別任務上出現(xiàn)錯誤的風險。為了在研究中融合這種觀察,本文利用詞性分析工具StanfordNLP[22]來鑒別句子中的詞性,從而構造一個名詞矩陣Me,其中每個格子代表一個詞。矩陣中名詞賦予值λ,非名詞的格子則維持為0值。將實體過濾矩陣與名詞矩陣對應元素相乘,得到最終的詞性過濾矩陣,從而過濾掉實體抽取模塊中錯誤的主語和賓語,提高三元組的準確性。具體計算公式如式(6)所示:
Pi,j=σ(Wm·[hi,hj]·Me+bm)
(6)
其中:Pi,j代表i,j位置實體的相關概率;Wm是可訓練權重;hi、hj為給定句子中第i、j個單詞的編碼嵌入;Me是名詞矩陣的權重。
本文算法的損失函數(shù)包含3個模塊的損失,分別是關系損失Lrel、實體損失Lent和語法損失Lfl,計算公式分別如式(7)~式(9)所示:
(1-yi)ln(1-Prel(i)))
(7)
(1-yi)ln(1-Pent(i)))
(8)
(1-ki,jmi,j)ln(1-Pm(i,j)))
(9)
其中:nr是關系種類的數(shù)量;ne是句子的長度;i和j表示矩陣的行和列;ki,j是矩陣的真值;Pi,j是圖1中灰色矩陣中的預測結果。最后,將這三部分相加,得到最終的損失函數(shù),如式(10)所示:
Ltotal=Lrel+Lent+Lfl
(10)
實驗是在Intel Xeon E5 2.40 GHz CPU的服務器上進行的,內存大小為48 GB,GPU 型號為NVIDIA Tesla V100,Linux環(huán)境為CentOS 6.8, 選擇PyTorch框架和Python語言搭建深度學習環(huán)境。在該模型上訓練了110個epoch,選擇Adam作為模型的優(yōu)化器。對于NYT數(shù)據(jù)集batch size大小設置為64,WebNLG數(shù)據(jù)集batch size大小設置為6。設置解碼器的學習速率為0.001,語法矩陣的λ值為0.6,實體抽取模塊和關系抽取模塊的閾值都是0.5,詞性過濾矩陣的閾值為0.4,編碼器的學習率為1×10-5。
NYT數(shù)據(jù)集匯集了來自其語料庫的文本,其中包括118萬條句子和24個預設的關系分類。WebNLG是一個更為復雜的數(shù)據(jù)集,其數(shù)據(jù)量相對較少,但關系類別卻更為豐富。該數(shù)據(jù)集中有5 000條普通文本句子和246個關系類別。此數(shù)據(jù)集為不同算法提供了2種標簽格式(NYT*、WebNLG*),為了得到更全面的評估,本文針對這兩種標簽格式進行了實驗。
使用LoRA[23]技術對LLaMA模型進行訓練微調。LoRA會凍結原模型 LLaMA 參數(shù),通過往模型中加入額外的網(wǎng)絡層,達到只訓練這些新增網(wǎng)絡層參數(shù)的能力。其中,lr=0.003,LoRAR=8,LoRA Alpha為16, LoRA Dropout為0.05。
將微調之后的LLaMA與T5small[21]、T5-base[24]、Roberta[25]、Albert[26]、BERT[17]、LLaMA進行實驗對比,實驗結果如表2所示。
表2 不同大語言模型作為編碼器的實驗結果Table 2 Experimental results of different large-language models as encoders %
評估結果表明,在普通文本NYT和WebNLG數(shù)據(jù)集上,微調之后的LLaMA模型在準確率、召回率和F1值得分方面都取得了最高的性能。與原始的LLaMA模型相比,微調之后的模型可以提供更好的指標,驗證了對大模型微調訓練的有效性。
為了驗證模型大小對關系提取任務的影響,實驗分別部署了T5small(6 000萬個參數(shù))和T5-base(2.2億個參數(shù))。可以看出,更大的T5模型并沒有提供更高的性能。這表明更大的模型尺寸并不一定會轉化為更好的結果。
為了驗證詞性過濾矩陣中的名詞λ取何值時,模型能夠取得最優(yōu)的結果,在NYT數(shù)據(jù)集上進行實驗,實驗結果如圖2所示。橫坐標為λ的取值,縱坐標為F1值,當λ的取值為0.6時模型能夠達到最優(yōu)的效果。
圖2 在NYT數(shù)據(jù)集上不同λ值的F1值結果Fig.2 F1 value results of different λ values on NYT dataset
進一步驗證不同的分詞工具對于模型的影響,本節(jié)設計了NLTK[27]、spaCy[28]和StanfordNLP分詞工具的對比實驗。NLTK是一個廣泛使用的Python自然語言處理工具庫;spaCy是世界上最快的工業(yè)級自然語言處理工具,支持多種自然語言處理基本功能。表3是算法在不同分詞工具上的F1值,可以看出這3種工具對于模型結果的影響并不大,說明模型的效果并不依賴于特定的分詞工具。
表3 本文算法在不同分詞工具上的實驗結果Table 3 Experimental results of this algorithm on different word segmentation tools %
表4顯示了本文模型在這2個數(shù)據(jù)集上與其他基線模型的比較,加粗表示性能最優(yōu)。除少量的準確率或召回率略低于PRGC模型外,本文模型在4個數(shù)據(jù)集上都獲取了最高的F1值。該模型在WebNLG和WebNLG*數(shù)據(jù)集上 F1值相較PRGC模型分別提高了 1.9和0.2個百分點,在 NYT 和NYT*數(shù)據(jù)集上 F1 值分別有0.4和0.1個百分點的提升。
表4 本文模型在NYT、WebNLG、NYT*和WebNLG*數(shù)據(jù)集上的實驗結果Table 4 Experimental results of this model on NYT, WebNLG, NYT* and WebNLG* datasets %
獲得句子中的多個重疊實體是具有挑戰(zhàn)性的提取任務,多個實體情況指的是多個實體三元組出現(xiàn)在同一句子中。實體重疊可以分為3種類型:一對一正常類(OO),實體對重疊類(EPO)和單個實體重疊類(SEO)。一對一是指與一個實體只和另一個實體匹配,并且這個實體對只有一種關系。實體對重疊是指一個實體與多個實體具有關系,單個實體重疊是指一個實體和另一個實體具有多個關系。
首先對多實體情景進行評估,評估具有1~4個或更多三元組的句子。其中N表示句子中實體三元組的數(shù)量。評價結果如表5所示,在普通文本數(shù)據(jù)集(NYT和WebNLG)上的F1值都超過了90%。即使是在復雜場景N≥4時,本文算法也能夠提供穩(wěn)定的F1值,其中,NYT的得分表現(xiàn)為92.9%,WebNLG為93.7%,NYT*為92.6%,WebNLG*為92.8%,表明算法處理多實體句子的有效性。
表5 本文算法在復雜三元組場景下的實驗結果Table 5 Experimental results of this algorithm in complex triple scenarios %
在第2個評估中考察了3個不同方面的實體重疊場景。表5顯示本文算法在簡單的時間內達到了很高的精度,在一對一匹配場景時,NYT上F1值為92.9%,WebNLG為92.2%。算法在NYT和WebNLG數(shù)據(jù)集上的任何場景中都能獲得90%以上的F1值,表明算法具有處理復雜場景的能力。
本節(jié)進行了一組消融實驗證明算法核心組件的有效性。算法由3個核心部分組成:關系抽取模塊、實體抽取模塊和詞性過濾矩陣模塊。實驗結果如圖3、圖4所示。圖中的Rel、Ent和FL分別表示關系抽取模塊、實體抽取模塊、詞性過濾矩陣模塊。圖3是在WebNLG數(shù)據(jù)集上的實驗,可以看出,將3個模塊相結合的模型達到最佳性能。類似的情況也可以在圖4 NYT數(shù)據(jù)集中看到。
圖3 本文算法在WebNLG數(shù)據(jù)集上的消融實驗結果Fig.3 Ablation experimental results of this algorithm on WebNLG dataset
圖4 本文算法在NYT數(shù)據(jù)集上的消融實驗結果Fig.4 Ablation experimental results of this algorithm on NYT dataset
本文提出一種新的端到端關系抽取結構,該結構利用大語言模型的能力來自動學習關系的語義特征。首先在提取關系的基礎上使用自注意力機制來增強實體對之間的關聯(lián)程度,增強關系和實體之間的信息共享,然后使用平均池化泛化到整個句子中。針對實體對設計一個過濾矩陣,并引入詞性信息進行語義增強,根據(jù)過濾矩陣中實體對的相關性過濾掉無效的三元組。實驗結果表明,本文算法在NYT和WebNLG數(shù)據(jù)集上的F1值分別為93.1%和90.4%。下一步的工作包括3個方面:將在更多樣化的數(shù)據(jù)集上進一步驗證本文提出的算法;下游任務如知識圖譜的構建,可以使用本文的技術進行開發(fā);部署一個具有6億個參數(shù)的大語言模型。