朱天佑,王路濤,李 博,邊靖宸,陳振宇,李繼偉,陳思宇,劉普凡,雷曉宇,鄧艷紅
(1.國家電網(wǎng)有限公司大數(shù)據(jù)中心,北京 100053;2.北京中電普華信息技術有限公司,北京 100089)
隨著國家電網(wǎng)有限公司數(shù)字化轉型的不斷深入,從海量業(yè)務數(shù)據(jù)中提取有效信息是強化數(shù)據(jù)賦能業(yè)務的關鍵[1]。實體關系三元組提取可從給定文本中提取(頭實體、關系、尾實體)形式的所有關系三元組,其提取能力對知識挖掘、信息提取、圖譜的構建與自動維護至關重要。目前,pipeline 與聯(lián)合抽取方案被廣泛應用于實體關系抽取任務。隨著各種基線模型被陸續(xù)提出,三元組抽取能力與準確度不斷提升。
(1)pipeline 方案在實體關系抽取研究初期,研究人員嘗試了分而治之的策略。首先提取給定文本的實體,即命名實體識別(Named Entity Recognition,NER)[2]子任務,然后確定實體間的關系,即關系分類(Relation Classification,RC)[3]子任務。經(jīng)典的NER 模型采用線性統(tǒng)計策略,例如隱馬爾可夫模型(Hidden Markov Models,HMM)[4]、條件隨機場(Conditional Random Fields,CRF)[5]等。后期,Lample等[6]提出循環(huán)神經(jīng)網(wǎng)絡與條件隨機場相結合的結構,Chiu等[7]采用BiLSTM-CNN 的架構,其已被成功應用于NER 子任務。
早期,關系分類任務大多基于統(tǒng)計方法。例如,Kambhatla[8]提出一種使用最大熵模型結合不同的詞匯、句法和語義特征構建分類模型。Zhou 等[9]采用支持向量機(Support Vector Machine,SVM)進行關系分類。后期,采用深度學習方法。例如,Santos 等[10]提出CR-CNN 模型,該方法將每個詞分為詞向量和位置向量兩部分,經(jīng)過卷積獲得整個句子的向量表示,在SemEval-2010 Task 8 數(shù)據(jù)集上F1-score 為84.1%,優(yōu)于當時最好的非深度學習方法。
雖然,pipeline 方案具有易于執(zhí)行、組件靈活配置等優(yōu)點[11],但忽略了實體和關系間相互依存、不可分割的事實,可能會導致最終識別結果出現(xiàn)誤差傳播、泛化性能差等問題。
(2)聯(lián)合提取方案。實體關系聯(lián)合提取方法建立了任務間的關聯(lián),在一定程度上規(guī)避了基于pipeline 方法存在的問題,引起了國內(nèi)外學者的廣泛關注。根據(jù)不同的特征提取方式,聯(lián)合抽取方法可分為基于特征工程和基于神經(jīng)網(wǎng)絡的聯(lián)合抽取。基于特征工程的聯(lián)合抽取需要根據(jù)數(shù)據(jù)特點設計特征。Kate 等[12]提出一個卡片金字塔圖表示文本中的實體及其關系。Li 等[13]提出一種基于分段的解碼器,以增量方式聯(lián)合提取實體及其關系。雖然在簡單文本抽取中基于特征工程的抽取方法取得了不錯的效果,但該方法需要依賴其他自然語言處理(Natural Language Processing,NLP)工具,人工成本消耗巨大,并需要具備大量的領域專業(yè)知識。于是,深度學習工具被引入聯(lián)合抽取模型中,通過基于數(shù)據(jù)驅動的深度學習方法規(guī)避了復雜的人工抽取特征。
基于神經(jīng)網(wǎng)絡的聯(lián)合抽取方法自動抽取數(shù)據(jù)包含的特征,Miwa 等[14]首次采用基于神經(jīng)網(wǎng)絡的實體關系聯(lián)合抽取方式,通過共享序列層和詞嵌入層信息將實體對映射到對應的關系,實現(xiàn)了兩個子任務間的交互,但難以高效解決關系重疊等問題,如圖1所示。
Fig.1 Example sentences with overlapping relationships圖1 關系重疊例句
關系重疊包含實體對重疊(Entity Pair Overlap,EPO)和單個實體重疊(Single Entity Overlap,SPO)。目前,解決關系重疊類型的三元組抽取,提升模型性能是研究重點。Yuan 等[15]采用基于關系的注意力機制優(yōu)化句子特征表示,將關系提取映射到實體對的方式實現(xiàn)聯(lián)合抽取,在一定程度解決了關系重疊問題,但基于關系識別出實體的難度較大,不利于泛化。隨著預訓練語言模型的普及,較新的研究方法包含基于Bert 編碼器的級聯(lián)模型[16]。Wang等[17]考慮了聯(lián)合提取中token 對鏈接的問題,提出一種新的握手token 方法,但解碼方式設計復雜。Zheng 等[18]提出將任務分解為關系判斷、實體提取、主客對齊3 個子任務,但不可避免會產(chǎn)生誤差傳播問題。Shang 等[19]提出單模塊單步框架優(yōu)化網(wǎng)絡結構,但仍然存在訓練耗時長、占用內(nèi)存較大的問題。
綜上,盡管現(xiàn)有方法極大提升了實體關系的交互程度,但忽略了三元組提取過程中各元素的緊密相關度,并在處理關系重疊問題時召回率較低。針對上述聯(lián)合抽取模型存在的關系重疊、模型性能差、模型結構復雜等問題,本文從新視角出發(fā),嘗試從分類后的頭尾實體對跨度中直接解碼出事實三元組。與文獻[17]采用的基于預測實體引導的復雜解碼器不同,直接對三元組整體結構進行建模,專注于從文本中提取實體與關系,以充分捕捉三元組各元素間的依賴關系,而非采用傳統(tǒng)方法中基于某個元素來提取出其他元素的方式。
本文模型將初始文本送入預訓練語言模型Roberta,獲取文本token(經(jīng)語言模型分詞處理后的單詞標記)嵌入表示。然后,基于關系枚舉文本token,獲得文本的token 對序列,并使用文本卷積神經(jīng)網(wǎng)絡和多層感知機整合token 對序列,獲得其嵌入表示。接下來,采用分類器預測文本頭尾實體的token 對標簽。最后,基于關系和頭尾實體的token 對跨度解碼出事實三元組。該模型在基于遠程監(jiān)督方法生成的公共數(shù)據(jù)集NYT 上進行實驗,取得了良好效果,其綜合性能指標F1-score 達到92.1%,并且文本中包含的實體嵌套、關系重疊和多三元組情況準確度較高,證明了該框架在應對關系重疊三元組等復雜場景時的有效性。
基于實體對分類的聯(lián)合抽取模型從文本分類后的頭尾實體token 對跨度中直接解碼出事實三元組,該模型由4部分組成為:①文本詞嵌入層,通過預訓練語言模型Roberta 編碼得到輸入文本S={w1,w2,…wn}中單詞wi的嵌入表示;②枚舉并整合token 對表示層,將文本詞嵌入層獲得的token 嵌入兩兩組合成(vi,vj),重新編碼token 對,并為每種關系構建一組token 對表示;③分類層,對每個類別的token 對嵌入表示進行標簽預測,確定每種關系中每組token 對的所屬類別;④解碼層,根據(jù)分類層中對token 對所屬類別的判斷及token 對的分類標簽,解碼出事實三元組。模型總體結構如圖2所示。
Fig.2 Network structure of joint extraction model based on entity pair classification圖2 基于實體對分類的聯(lián)合抽取模型網(wǎng)絡結構
給定一條文本S={w1,w2,…wN},N表示該文本共有N個詞語;預定義關系表示為R={r1,r2,…rK},K表示共有K種預定義關系。
實體關系聯(lián)合抽取的目標是識別文本S中所有可能的事實三元組T(S)={(hi,ri,ti)=1,hi,ti∈E,ri∈R},其中hi表示文本S的頭實體,ti表示文本S的尾實體,E表示實體集,ri∈R表示預定義的關系,L表示文本S中三元組的個數(shù)。
模型最底層為詞嵌入層,該層將輸入的文本詞匯編碼為嵌入向量,本文使用預訓練語言模型Roberta[20]進行編碼。模型輸入序列S={w1,w2,…wN},由于Roberta 對單詞使用BPE 標記器進行標記,可能會將一個完整的單詞切分為幾個token 片段,因此文本S輸入Roberta 后將得到token級別的嵌入向量表示,具體數(shù)學表達式為:
其中,vi∈Rd,d為經(jīng)過Roberta 表示后獲得的token 級別的嵌入向量維度。
使用文本編碼器Roberta 將文本S編碼為token 嵌入后,將每條文本的token 兩兩組合,形成token 對。從文本內(nèi)容的第一個token 枚舉到最后一個token,以獲得文本中所有token 的兩兩組合,形成token 對,即。其中,m表示文本S的token 數(shù)量,vi、vj表示token。
然而,真實的組合過程需將token 對應的嵌入兩兩組合,以獲得token 對的長度為m2,因此對內(nèi)存空間消耗較高。本文模型采用向后組合的方式,即token 對的組合只需要后一個token 的索引位于前一個token 索引的后方即可,通過,j>i表示一組token 對,得到組合token對的長度為m,其中m表示一條文本S中的token數(shù)量。如圖3 所示,該圖展示了文本首先被Roberta 劃分為token 后,被兩兩組合為token 對的過程。
接下來,將token 對的嵌入表示相連接,首先采用文本卷積提取的token 嵌入連接后特征,然后利用多層感知機(Multi-Layer Perceptron,MLP)方式重新整合嵌入表示。
Fig.3 Token pair combination form圖3 token對組合形式
其中,?表示激活函數(shù),Wv表示可訓練的參數(shù)矩陣,Conv表示采用卷積,bv表示可訓練的偏置。經(jīng)過上述訓練得到token 對的嵌入表示。
本文模型通過基于關系和邊界token 確定實體,因此將每種關系得到的組合token 對復制兩份,一份代表“HBto-TB”,另一份代表“HE-to-TE”。其中,HB(Head Entity to Begin Token)表示頭實體的開始token,TB(Tail Entity to Begin Token)表示尾實體的開始token,這一組token 對嵌入表示將被用來預測每種關系中頭尾實體對應的Begin tokens。例如,圖3 中('The'+'?social')('The','?energy')是關系'guarantee'和'provide'的“HB-to-TB”矩陣將要預測輸出的內(nèi)容?!癏E-to-TE”中HE(Head Entity to End Token)表示頭實體的結束token,TE(Tail Entity to End Token)表示尾實體的結束token,這一組token 對嵌入表示將被用來預測每種關系中頭尾實體對應的End tokens。例如,圖3中('?grid'+'?development')('?grid','?electricity')為關系'guaranentee'和'provide'的“HE-to-TE”矩陣將要預測輸出的內(nèi)容。
經(jīng)過基于關系的token 對表示可得到K×2 個組合token 對表示,其中K表示預定義的關系數(shù)量,直觀而言就是枚舉所有可能的(vi,rk,vj),j>i三元組組合。將這些組合token 對送入兩個分類器,如式(3)、式(4)所示。通過一個分類器分類“HB-to-TB”矩陣,另一個分類器分類“HE-to-TE”矩陣,使用分類器獲得“HB-to-TB”和“HE-to-TE”矩陣的token 對標簽。
由于上述采用的是向后組合token 對的方式,因此會發(fā)生預測頭實體位于尾實體后方的情況,受聯(lián)合預測模型編碼方式啟發(fā)[17],本文模型將token 對標簽設計為0、1、2,如圖4所示。
Fig.4 Examples of classification labels圖4 分類標簽示例
以“HB-to-TB”的token 對分類為例,0 表示該token 對不屬于特定關系下頭尾實體對的開始token 對;1表示該token 對屬于特定關系實體對的開始token 對;2 表示該token對屬于特定關系實體對的開始token 對,但該token 對中頭實體位于文本S后方,尾實體位于文本S前方。圖4 中('?social','The')并不存在圖3 描述的token 對組合,因此token 對“HB-to-TB”矩陣的('The','?social'),在contains關系下對應位置標簽被預測為2,通過該策略使得其在(vi,rk,vj),j>i的情況下仍能枚舉到頭實體位于尾實體后方。
解碼層根據(jù)分類層預測的token 對標簽及特定關系進行解碼。具體的,由于每種關系均會被預測出兩組矩陣“HB-to-TB”“HE-to-TE”,因此根據(jù)“HB-HE”的token 跨度解碼出頭實體,根據(jù)“TB-TE”的token 跨度解碼出尾實體。此外,提取該關系類型便可解碼出對應的事實三元組,具體解碼策略步驟如圖5所示。
由圖5 可見,該解碼策略可自然處理具有關系重疊情況的三元組。具體的,針對實體對重疊情況,對于不同關系預測出相同的“HB-to-TB”和“HE-to-TE”矩陣標簽解碼出實體對相同、關系不同的三元組。針對單個實體重疊情況,當兩個三元組包含相同關系時,針對同一種關系預測的“HB-to-TB”“HE-to-TE”矩陣標簽token 對中'HB''HE'相同,或'TB''TE'相同,同樣可解碼出正確的三元組,但該方式可能會發(fā)生預測實體冗余的情況。針對頭尾實體重疊情況,例如(Bejing city,city name,Bejing),雖然預測出的“HB-to-TB“相同、“HE-to-TE“不同,但仍能被正確解碼。
Fig.5 Decoding strategy steps圖5 解碼策略步驟
由于該模型需要訓練兩個分類器,一個預測實體對的開始token,另一個預測實體對的結束token,因此損失通常由這兩部分構成,他們均采用交叉熵方式計算損失訓練損失函數(shù)。
本文選用由遠程監(jiān)督產(chǎn)生的公共數(shù)據(jù)集NYT[22]驗證模型的有效性,該數(shù)據(jù)集包含56 195 個訓練文本,5 000 個驗證文本,5 000 個測試文本。由于NYT 數(shù)據(jù)集中文本通常包含多個關系三元組和重疊模式,因此非常適合評估模型的提取能力。
本文根據(jù)關系三元組的不同重疊模式,將NYT 數(shù)據(jù)集分為正常數(shù)據(jù)(Normal)、實體對重疊數(shù)據(jù)(EPO)和單個實體重疊數(shù)據(jù)(SEO),如表1所示。
Table 1 Dataset information表1 數(shù)據(jù)集信息
表2 展示了NYT 測試集中三元組數(shù)量統(tǒng)計。本文遵循實體關系聯(lián)合抽取模型常用的評價指標,采用標準的微精確率(Micro Precision)、召回率(Recall)和F1-score 作為評估指標量化模型優(yōu)劣。
Table 2 Statistics of the number of triads in the NYT test set表2 NYT測試集三元組數(shù)量統(tǒng)計
本文實驗在顯存為32GB 的Tesla V100 GPU 上訓練,基于pytorch 1.12.0 機器學習庫。預訓練語言模型使用Huggingface transformers 庫中的Roberta(Roberta-base)獲取詞嵌入表示,生成詞嵌入維度為768 維。訓練集batch size 大小設置為24,學習率設置為5e-5,參數(shù)通過Adam 算法優(yōu)化,并使用余弦退火方法調(diào)整學習率,最大長度設置為80。模型共訓練了50 個epoch,保存在驗證集上F1-score 最高的模型,在測試集上測試輸出結果。
為驗證本文模型的有效性,將其與TPLinker 模型[17]、CasRel 模型[21]、CopyRE 模型[22]、GraphRel 模型[23]等4 種基線模型進行比較。目前,最新的研究方法為PRGC[18]模型,研究過程中嘗試復現(xiàn)該模型,但由于其占用系統(tǒng)內(nèi)存過大,未能較好復現(xiàn)出該模型的應有效果,雖然該模型雖取得了最好效果,但內(nèi)存量占用過大、訓練效率較低,因此未作為本文的比較模型。上述基線模型在NYT 數(shù)據(jù)集上的結果均來自官方結果,如表3所示。
由此可見,本文模型相較于GraphRel、CasRel、CopyRE,在精確率、召回率和F1-score 方面均存在較大提升。具體的,在精確率方面分別提升30.2%、27.3%、1.5%;在召回率方面分別提升36.5%、33.1%、3.6%;在F1-score 方面分別提升33.4%、30.2%、2.5%。
本文模型相較于TPLinker 模型,在召回率、F1-score 方面分別提升0.6%、0.3%。盡管TPLinker捕獲了三元組依賴關系,在精確率上略高于本文模型,但存在解碼策略設計復雜、參數(shù)量大等問題。本文模型以犧牲微小精確率為代價,設計了更簡單、快速的解碼策略,可同時提取具有實體嵌套、關系重疊等情況的三元組。
Table 3 Comparison of effects of different models in NYT dataset表3 不同模型在NYT數(shù)據(jù)集效果比較 (%)
為驗證模型處理一條文本中包含多個三元組的性能,本文在NYT 測試集8 種子集中,對模型在關系重疊模式下的三元組提取的性能進行實驗驗證,并與CopyRE、GraphRel、CasRel、TPLinker 這4 種基線模型進行比較,如表4所示。
由表4 可知,隨著文本中三元組數(shù)量增加,CopyRE、GraphRel 模型的預測能力明顯下降。當2≤N<5 時,Cas-Rel、TPLinker 預測能力呈增長趨勢;當N≥5 時,CasRel、TPLinker 預測能力呈遞減趨勢;當2≤N<5 時,本文模型預測能力呈遞增趨勢;當N≥5時,本文模型相較于基線模型效果最好;當N≥2 時,本文模型相較于4 種基線模型,在F1-score 方面均有所提升;當N=4 時,F(xiàn)1-score 分別提升42.7%、41.2%、2.1%、0.2%,且在EPO、SEO 情形下的效果更優(yōu),這得益于本文模型的解碼策略能充分抽取文本包含多三元組的情況。綜上,本文模型相較于4 種基線模型能更好地處理關系重疊問題。
Table 4 Performance comparison of model processing multiple triples and relational overlapping triples表4 模型處理多三元組及關系重疊三元組性能比較
為分析模型在不同應用場景下的健壯性,對本文方法進行案例分析,如圖6 所示。該圖展示了模型對初始文本中包含Normal、EPO、SPO 和多三元組情況的提取能力。
Fig.6 Model processing text multiple triples case圖6 模型處理文本多三元組案例
由圖6 可見,“Text1””Text2”均包含4 組三元組?!癟ext1”基本事實欄中第2、4 組三元組既為EPO 類型,又為SPO 類型;第1、2 組三元組為SPO 類型三元組;第3 組為Normal 類型三元組?!癟ext2”中三元組均既為EPO 類型,又為SPO 類型的三元組。在模型預測欄中可見本文模型對于“Text 1”預測正確3 組,但在”Text1”中將三元組(Bobby Fischer,nationality,Iceland)預測為(Fischer,nationality,Iceland),原因可能是模型未能較好地捕捉頭實體的跨度,還需進一步完善模型實體跨度獲取方案?!癟ext2”全預測正確。通過實驗證明,本文模型在處理不同長度文本、不同三元組模式時的魯棒性更強。
本文針對實體關系聯(lián)合抽取中普遍存在的實體嵌套、關系重疊及事實三元組各元素相互依存關系的問題,提出基于實體對分類的聯(lián)合抽取模型。首先采用實體對分類方式獲得token 對預測標簽;然后對頭尾實體token 對解碼,同時抽取出三元組的實體和關系。實驗表明,該模型采用實體對分類方式可充分捕獲三元組各元素間的依賴關系,有效解決了實體嵌套、關系重疊等問題。
未來,將進一步優(yōu)化模型訓練效率,將模型應用于電網(wǎng)電力行業(yè)等亟需構建新場景業(yè)務領域知識圖譜中,以充分發(fā)揮這些領域知識的價值。