楊紅菊,靳新宇
(1.山西大學 計算機與信息技術學院,太原 030006;2.山西大學 計算智能與中文信息處理教育部重點實驗室,太原 030006)
信息提取的目的是從非結構化自然語言文本中提取結構化知識。對于給定的自然語言句子,信息提取的子任務事件抽取根據預先設定的事件類型及其所包含的事件信息點,預測句子中的事件信息。事件類型和事件中所包含的關系信息定義了事件抽取的范圍(事件類型:地震;事件論元:地點、事件、傷亡人數)。實體關系抽取的目的是根據給定自然語言語句設置的預定義SPO 三模板,提取與模板相匹配的所有語句信息。SPO 三模板定義關系P、相應的主體S和對象O。例如事件類型:“音樂專輯”;實體關系:“所屬專輯”“主體類型”“歌曲”。
研究人員對事件抽取和實體關系抽取方面的工作進行大量研究,但未同時解決兩個任務均存在的共性問題。因此,本文提出一種兩階段的實體關系抽取和事件抽取的通用模型。受預訓練語言模型的啟發,采用RoBERTa 表示作為編碼器,獲得共享的特征表示。將多標簽分類任務用于抽取實體關系或事件類型,利用多個二進制分類器確定論元的范圍,以解決漢語中的角色重疊、詞觸發不匹配、詞邊界問題。
由于中文存在特定的語言問題[1],因此中文信息抽取是一項比較困難的任務。漢語在詞與詞之間沒有定界符,分詞通常是文本數據進一步處理的必要步驟,導致觸發詞不匹配[2]。基于詞分類的方法通常會受到這種影響。例如,一個句子中有“打死”兩個字會觸發兩個不同的事件:由“打”觸發“攻擊”事件和由“死”觸發“死亡”事件。為避免該問題的出現,本文將事件抽取和實體關系抽取作為基于單個字符的分類任務。
事件抽取和實體關系抽取的例句如表1所示。兩個例子分別來自千言數據集中信息抽取任務的事件抽取任務數據集DuEE[3]和關系抽取數據集DuIE[4]。

表1 事件抽取和實體關系抽取例句 Table 1 Examples of event extraction and entity relationship extraction
從表1 可以看出,實體關系抽取任務和事件抽取任務的數據存在三個相似特點:1)在事件抽取任務中單個實例允許包含多個事件,例1 提到兩個事件,其中一個事件類型為“人生-結婚”,另一個是“人生-生子”,在實體關系抽取中,單個實例也允許包括多個關系及其主客體,例如,例2 提到的三個關系“所屬專輯”“歌手”和“母親”;2)在事件抽取中允許不同的事件論元共享相同的論元角色,例如,例1 中“余文樂”和“王棠云”共同承擔了角色“結婚雙方”,在實體關系抽取中,例2 的“葉惠美”和“周杰倫”都屬于“人物”類別;3)事件抽取一個論元可以扮演不同的角色,“王棠云”在第一個事件中扮演角色“結婚雙方”,在例1 中第二個事件中扮演角色“產子者”,在實體關系抽取中,關系是有方向性的,例如“周杰倫”可能既扮演現實角色“父親”,又扮演角色“兒子”。
事件抽取和實體關系抽取最初都是基于模板匹配來完成的,模板通過手工或自動獲取的方法獲得,抽取時通過各種模板匹配算法找出符合模板約束條件的信息。RILOFF等[5]使用事件內容描述和上下文語義信息開發自動匹配事件抽取系統。KIM等[6]開發一個可以從文本中提取基于事件信息的語言模板系統,縮短了構建知識庫的時間。YU等[7]對相關領域的語料庫進行研究,并結合領域專家編寫的文本關系規則,對文本進行實體關系抽取。基于模板匹配的方法在領域事件抽取任務中取得較優的效果,但其系統的可移植性差,模板的構建所需勞動量和專業指導量較大。
機器學習在自然語言處理中的應用已取得一定成果。將事件抽取和實體關系抽取任務作為分類任務,已成為當前研究熱點。其中,神經網絡和深度學習已成為事件抽取和實體關系抽取的關鍵方式。ZENG等[8]將卷積神經網 絡(Convolutional Neural Network,CNN)應用于實體關系抽取。CHEN等[9]提出一種基于動態多池化卷積神經網絡的事件抽取模型,以捕獲語句中包含的多個事件信息。SOCHER等[10]使用循環神經網絡方法分析語句,考慮語句的語法結構并完成實體關系提取任務。FENG等[11]提出使用雙向長短期記憶(Bidirectional Long-Short Term,BiLSTM)網絡和卷積神經網絡進行事件抽取,在多種語言上取得有效成果。NGUYEN等[12]將雙向遞歸神經網絡的協同框架應用到事件抽取任務中。KATIYAR等[13]在實體關系提取任務中將遞歸神經網絡與注意力機制相結合。LIU等[14]針對句子中含有多個事件的問題,將語法信息引入到框架中來增強信息流,將語言模型和圖卷積神經網絡相結合,實現聯合抽取事件觸發詞和事件論元信息。武國亮等[15]提出一種基于加強命名實體識別任務反饋的我國應急抽取方法FB-Latiice-BiLSTM-CRF。唐朝等[16]提出一種融合殘差網絡和雙向門控循環單元的混合模型來完成關系抽取任務。
預訓練模型基于遷移學習的思想,通過訓練大型數據集生成模型,根據下游任務,小型數據集對預訓練模型進行微調,能有效提升模型性能,加快模型訓練的收斂速度。預訓練模型可以學習到文本深層語義信息,解決了相同詞語在不同上下文中具有不同特征的問題,因此,被應用于事件抽取和實體關系抽取任務中,并取得較好的效果。YANG等[17]將事件抽取分為兩個階段,使用預訓練模型BERT 分別對觸發詞和事件論元進行抽取,根據事件角色的重要性重新加權損失函數。ZHAO等[18]提出一個多樣化的問答機制和答案集成策略,以改進現有基于機器閱讀理解的實體關系框架。DU等[19]將事件抽取任務轉化為閱讀理解任務,使用兩個基于預訓練模型BERT 的問答模型,分別抽取觸發詞和事件論元。ZHONG等[20]提出一種簡單pipeline 方法,采用兩個相互獨立的預訓練模型進行實體識別和關系識別,在多個數據集上具有較優的性能。LIU等[21]通過邏輯回歸模型抽取觸發詞,根據觸發事件類型,利用問題模板進行無監督問題生成,最后使用基于預訓練模型BERT 的問答模型進行事件論元抽取。XU等[22]定義事件關系三元組來明確表示事件觸發詞、論元和論元角色之間的關系,并提出一種新的中文事件聯合抽取框架,該框架基于預訓練語言模型BERT的共享特征表示來聯合預測事件觸發詞和事件論元。王炳乾等[23]提出一種端到端的多標簽指針網絡事件抽取方法,并將事件檢測任務融入到事件角色識別任務中,達到同時抽取事件角色及事件類型的目的。SUI等[24]將預訓練模型BERT 與非自回歸解碼器相結合,將聯合實體和關系抽取任務表述為集合預測問題,并提出一個基于集合的損失函數。
本文將事件抽取和實體關系抽取均看作一個兩階段的任務,包括類型抽取器和論元抽取器。類型抽取器是抽取事件抽取任務中的事件類型和實體關系抽取任務中的關系類型,論元抽取器是抽取事件抽取任務中每個事件所包含的事件論元和實體關系抽取任務中與關系相對應的主體和客體。本文模型結構如圖1 所示,由一個類型抽取器和一個論元抽取器組成,兩者都依賴于RoBERTa 的特征表示。

圖1 本文模型架構Fig.1 Framework of the proposed model
傳統的序列標注模型需要預測每個字符觸發的事件或實體關系。然而,本文模型預測整個句子中所包含的所有事件類型或實體關系類型,并將其作為一個多標簽分類任務,其標簽是事件類型或實體關系類型。
本文采用RoBERTa 提取文本的語義特征,輸入部分將每個句子分割為單個字符。為進一步提取文本特征,本文對RoBERTa 輸出的特征矩陣進行卷積操作(如圖1 中左半部分所示)。
令Wi∈Rk表示RoBERTa 輸出的特征矩陣句子中第i個字的k維向量,長度n為句子,其特征矩陣的表示如式(1)所示:

其中:⊕表示連接符。令ω∈Rh×k表示卷積核,h×k表示窗口大小,因此通過卷積操作的特征c表示為:

其中:b∈R 表示偏執變量;f表示非線性激活函數ReLU。在卷積操作后,特征矩陣W1:n轉化成特征圖c,表示如式(3)所示:

采用最大池化的方式將特征圖c變為=max{c}。本文使用三個不同大小的卷積內核來提取文本信息。
論元抽取器的輸入與類型抽取器的輸入相同,但是,論元抽取器需要知道句子中所包含的事件類型或實體關系類型。首先,在數據集中通過預訓練模型進行微調,以獲取文本序列的語義表示。將獲取的詞表示向量輸入到BiLSTM 模型中,以進一步整合文本語義信息。
本文給定輸入序列X={x1,x2,…,xn},通過RoBERTa模型后可得W={w1,w2,…,wn},其中wi表示第i個詞的上下文嵌入,n表示序列最長長度,W表示BiLSTM 的輸入。t時刻的隱藏狀態是ht=[;],其中表示t時刻前向LSTM 的信息,表示t時刻反向LSTM 的信息。最后由BiLSTM 編碼后的句子可表示為R={h1,h2,…,hn}。
與類型抽取器相比,論元抽取器更復雜,因為其存在論元對事件類型或實體關系類型的依賴性、論元是長名詞短語以及論元角色重疊問題。為解決論元抽取器中的后兩個問題,本文在RoBERTa 上增加多組二值分類器。每組分類器為一個論元角色提供服務,以確定扮演分類器的所有論元范圍,且每個范圍都由一個頭位置指針和一個尾位置指針確定。一個參數可以扮演多個角色,一個字符可以屬于不同的參數。本文使用和分別表示句子字符中每個論元角色的開始和結束的概率值,如式(4)和式(5)所示:

其中:下標s 表示頭位置;下標e 表示尾位置;Wrs和分別表示用于檢測論元角色r的開始和結束的二元分類器的權重;R(t)表示經過BiLSTM 編碼后的句子表示。
在論元抽取器中,由于論元角色之間的頻率存在很大差距,本文使用文獻[11]在ACE2005 數據集上的加權方法,根據論元角色的重要性對損失函數重新加權,并使用角色頻率(Role Frequency,RF)和逆類型頻率(Inverse Type Frequency,ITF)來衡量論元角色的重要性。角色頻率定義為角色r出現在類型v(事件類型或關系類型)中的頻率。逆類型頻率定義為包含角色r的類型v的對數比例的倒數。RF和ITF 的表示如式(6)和式(7)所示:

其中:表示在類型v中角色r的計數;V表示類型的集合。
本文將RF-ITF作為RF和ITF的乘積:RRF-IITF(r,v)=RRF(r,v)×IITF(r)。I(r,v)是通過RF-ITF 衡量角色r在類型v中的重要性,如式(8)所示:

本文給出類型v的輸入,主要檢測所有論元開始和結束的二進制分類器的損失函數Ls和Le,如式(9)和式(10)所示:

其中:H表示交叉熵損失函數;R表示論元角色集合;S表示輸入句子;|S|表示S中的字符數。最后,本文將Ls和Le的平均值作為論元抽取器的損失函數L。
本文使用千言數據集上信息抽取任務中提供的事件抽取數據集DuEE 和關系抽取數據集DuIE。
DuEE 由現實世界熱門話題和新聞構建,包含19 640 個事件,這些事件被分為65 種不同的預定義事件類型,41 520 個事件論元被映射到121 個唯一的預定義論元角色。該數據集分為12 000 條訓練集、1 500 條驗證集和3 500 條測試集。
DuIE 是從百度百科、百度貼吧、百度信息等網絡信息流中獲取,涵蓋現實世界信息需求的主要領域,包括實體描述、娛樂新聞、用戶生成文章等。該數據集包含超過43 000條三元組數據、21 000個中文句子及48個預定義的關系類型。該數據集分為17 000 條訓練集、21 000 條驗證集和21 000 條測試集。
在評測方法上,本文事件抽取部分采用字級別匹配F1 值作為評價指標。F1 值的計算如式(11)所示:

其中:P表示預測論元得分總和與預測論元數量的比值;R表示預測論元得分總和與所有人工標注論元數量的比值。
實體關系抽取部分采用式(11)中的F1 值作為評價指標。但不同的是:P表示測試集所有句子中預測正確的SPO 個數與測試集所有句子中預測出SPO 個數的比值;R表示測試集所有句子中預測正確的SPO 個數與測試集所有句子中人工標注的SPO 個數的比值。
本文模型使用PyTorch 框架進行深度學習來實現,通過反向傳播和隨機梯度下降訓練網絡。Python 語言用于完成網絡構建、訓練和測試。
本文使用的預訓練模型是中文版的RoBERTa-Large[25],共有24層,隱藏層維數為1 024,采用16 頭模型,共330×106個參數。在TITAN Xp GPU 上利用RoBERTa 進行預訓練,epoch 為10,最大序列長度為256,優化算法為Adam,學習速率為2e-5,訓練的batch_size 為8,BiLSTM 的隱藏單元大小為256。
本文對主體模型進行調整,如去掉BiLSTM 層(ours_without_BiLSTM)、去掉在損失函數上的加權(ours_without_newloss),并分別對調整后的模型進行實驗。在實體關系抽取任務的結果中,三元組是包含方向性的,該方向性是由簡單的規則所決定。為證明該模型的有效性,本文將其與以下傳統模型進行比較:
1)DuEE_baseline 模型:采用基于ERNIE 的序列標注方案,分為一個基于序列標注的觸發詞抽取模型和一個基于序列標注的論元抽取模型。
2)DuIE_baseline模型:使 用ERNIE 作為編碼層,對字級別Token 進行編碼,解碼層是一個全連接層,以ERNIE 字向量作為輸入,輸出一個多層label實現實體關系的抽取。
3)BERT-CRF 模型:經典的序列標注模型,事件抽取包括觸發詞抽取和論元抽取,在實體關系抽取中抽取主體、客體以及實體關系。BERT 模型用于在預訓練語料庫上抽取的文本特征,并將其輸入到CRF層。
4)RoBERTa-CRF 模型:其實驗過程與BERT-CRF模型相同,將其中的BERT 模型替換為RoBERTa模型。
以上序列標注模型的標簽均為實體關系/事件類型和其相對應的實體關系/事件論元角色的組合,每個Token 根據其在實體span 中的位置(包括B、I、O三種),為其標注三類標簽。
表2 和表3 所示為不同模型在DuEE 和DuIE 測試集上的對比結果。從表2 可以看出,本文模型相較于DuEE_baseline 和DuIE_baseline 有較大的優勢,并具有較高的召回率。在事件抽取任務中損失函數的調整和BiLSTM 層的加入,進一步改進了模型的抽取效果。

表2 在DuEE 測試集上不同模型的實驗結果對比 Table 2 Experimental results comparison among different models on DuEE testset %

表3 在DuIE 測試集上不同模型的實驗結果對比 Table 3 Experimental results comparison among different models on DuIE testset %
相比傳統基于CRF 的序列標注模型,本文所提論元抽取器的優勢是能夠有效地處理兩個任務中角色重疊的問題。本文將DuEE 驗證集中論元角色重疊的110 條樣本作為驗證集Dev2,將DuIE 驗證集中論元角色重疊的6 162 條樣本作為驗證集Dev3,并在這兩個數據集上進行對比實驗,結果如表4 所示。本文模型在處理兩個任務中角色重疊問題上具有較優的效果。

表4 在Dev2 和Dev3 驗證集上不同模型的實驗結果對比 Table 4 Experimental results comparison among different models on Dev2 and Dev3 validation sets %
表5所示為在兩個任務中經典的RoBERTa-CRF模型和本文模型的抽取結果對比。例1 和例2 為事件抽取樣例,例3 為實體關系抽取樣例。在處理類似例1 中存在角色重疊問題的樣本時,RoBERTa-CRF模型會丟失事件類型“人生-死亡”;在處理類似例2的樣本時,RoBERTa-CRF 模型會丟失事件角色“交易物”“紅帽公司”;在處理類似例3 的樣本時,RoBERTa-CRF 模型會丟失關系類型“歌手”及其相應的論元。本文所提的模型在處理類似樣本時具有較優的抽取效果。

表5 不同模型的抽取結果對比Table 5 Extraction results comparison among different models
針對實體關系抽取任務和事件抽取任務的共有特性,本文設計一個實體關系抽取與事件抽取兩階段的通用模型。以預訓練模型RoBERTa 作為文本的編碼器,將多標簽分類任務用于抽取實體關系或事件類型,以解決漢語中角色重疊和數據標簽不平衡,以及詞觸發不匹配和詞邊界的問題。在千言數據集上的實驗結果驗證本文模型的有效性,實驗結果表明,本文模型的F1 值分別為83.1%和75.3%。后續將利用多種特征融合的方法從文本中抽取結構化信息,以提高事件抽取和關系抽取任務的抽取效率。