李衛疆,李 濤,漆 芳
(昆明理工大學 信息工程與自動化學院, 云南 昆明 650500)
信息抽取(information extraction,IE)旨在從大規模非結構或半結構的自然語言文本中抽取結構化信息。信息抽取的主要任務有: 命名實體識別、實體關系抽取、事件抽取和實體消歧等。關系抽取解決了原始文本中目標實體之間的關系分類問題,這也是構建復雜知識庫系統的重要步驟,例如,文本摘要、自動問答、機器翻譯、搜索引擎、知識圖譜等。隨著近年來信息抽取研究的興起,關系抽取問題進一步得到廣泛的關注和深入研究。
傳統的關系分類方法側重于設計有效特征或核函數。基于特征的關系抽取方法能夠取得較好效果,但是無法充分利用實體對上下文結構信息進行抽取。為此,人們提出了基于核函數的關系抽取方法,但是,由于中文的句子結構相對英語而言較為松散,詞語之間沒有位置指示信息,所以基于核函數的方法在中文關系抽取任務中未能取得期望的效果,而且,該方法訓練和測試速度太慢,不適合處理大規模數據。
近年來,深度學習方法被廣泛應用到實體關系抽取任務中。Socher等[1]在2012年提出使用循環神經網絡(RNN)來解決關系抽取問題。該方法能有效地考慮句子的句法結構信息,但同時無法很好地考慮兩個實體在句子中的位置和語義信息。Zeng等[2]在2014年采用詞匯向量和詞的位置向量作為卷積神經網絡(CNN)的輸入,通過卷積層、池化層和非線性層得到句子表示。該方法考慮了位置信息,但并未考慮句法和語義信息。Zhang等[3]在2015年采用雙向長短期記憶網絡(BLSTM)和NLP工具派生的特征(依存分析和命名實體識別(NER))來解決關系分類。該方法考慮了位置、句法和詞匯特征,但同樣沒有考慮語義特征。這些工作均未完全考慮所有類型特征,本文的工作提出使用4種不同類型的特征(詞匯、句法、語義和位置特征)。
最近,注意力機制在NLP領域得到成功應用。同時,在關系抽取任務上也有相關的應用。Zhou等[4]在2016年提出基于注意力(Attenion)的雙向長短期記憶網絡(BLSTM)的方法進行關系抽取。盡管注意力能夠學習詞的重要性,但是它不能學習序列內部信息。因此,本文引入自注意力來學習序列內部信息。
BLSTM可以學習前向和后向的上下文信息。自注意力[5]是一般注意力的一種特殊情況,可以學習到句子內部長距離依賴關系。本文提出了一種基于自注意力雙向長短期記憶網絡(SelfAtt-BLSTM)模型,用于結合詞匯、句法、語義和位置特征進行關系抽取。實驗結果表明,本文方法在中文COAE 2016 Task 3和英文SemEval 2010 Task 8兩個數據集上均表現出較好的性能。
本文貢獻如下:
(1) 在神經網絡中引入自注意力機制來處理實體關系抽取任務;
(2) 在實體關系抽取中引入了多種特征: 詞匯、句法、語義和位置特征;
(3) 在中、英兩種數據集上驗證了本文提出模型的有效性。
關系提取的方法主要分為三類: 基于特征的方法、基于核函數的方法和基于神經網絡的方法。
特征主要分為三類: (1)詞匯特征; (2)句法特征; (3)語義特征。文獻[6]采用最大熵(maximum entropy)模型,結合詞匯、句法和語義特征進行關系抽取,盡管該方法考慮了3大特征,但是并未考慮實體位置信息,且使用的分類方法比較傳統。Miller等[7]提出了基于句法解(syntatic parsing)增強的方法,該方法能夠將語法和語義信息集成到解析過程中,從而避免了潛在的錯誤。基于特征的關系抽取方法無法充分利用實體對上下文結構信息。
基于核函數的方法不需要構造特征向量,而是把結構樹作為處理對象,通過計算它們之間的相似度來進行實體關系抽取。文獻[8]采用組合核(composite kernel)方法,先使用單獨核,然后不斷地組合核(2個核, 3個核),組合了多個不同的語法特征來進行關系抽取。Plank和Moschitti[9]在2013年在樹核中嵌入語義相似度用于領域自適應的關系抽取,他們關注無監督的領域自適應(例如,無標簽數據)。核函數的選擇是核方法研究中的一個關鍵問題,同時也是一個難點問題,因此設計有效的核函數變得至關重要。
Santors等[10]在2015年提出一種新的損失函數卷積神經網絡(CNN)。該方法采用新的損失函數,有效提高了不同實體關系類型的區分度。但CNN不適合學習遠程語義信息。
Zhang和Wang[11]在2015年采用雙向循環神經網絡(BRNN)來學習原始文本數據的關系模式。雖然雙向RNN可以訪問前向和后向的上下文信息,但RNN具有梯度消失和梯度爆炸問題。長短期記憶網絡(LSTM)由Hochreiter和Schmidh Uber在1997年第一次提出,以克服梯度消失問題。胡[12]在2015年采用BLSTM來提取句子級特征,再使用MLP(前饋神經網絡)融合句子特征和詞匯特征(位置特征、命名實體、上位詞等)進行關系分類。BLSTM能夠充分利用整個文本序列的信息,所以本文的方法建立在BLSTM之上。
Lin等[13]在2016年將卷積神經網絡(CNN)和注意力機制(attention mechanism)結合起來進行遠程監督的關系抽取。該方法利用CNN作為句子編碼器,同時使用句子級別的注意力機制。王等[14]在2018年采用BLSTM學習詞之間的相互關系信息,利用注意力概率突出詞對于句子的重要程度,從而提高分類效果。
本文采用BLSTM解決傳統深度學習方法(RNN、CNN)的長距離依賴問題,同時學習實體對上下文結構信息,并充分考慮每種類型特征,利用自注意力來學習序列內部信息以及詞和特征對關系分類的重要性。
本節將詳細介紹本文模型: 基于自注意力雙向長短期記憶網絡(SelfATT-BLSTM)。如圖1所示,本文提出的模型包含5個部分:
(1) Input層: 數據清洗和特征提取。
(2) Embedding層: 將特征映射成低維稠密向量,拼接所有特征向量。
(3) BLSTM層: 利用BLSTM從部分(2)獲得高級特征。
(4) Self-Attention層: 通過Self-Attention層處理得到自注意力權重,然后將自注意力權重和BLSTM層的輸出向量加權求和。
(5) Output層: 使用Softmax函數進行關系分類。

圖1 基于自注意力雙向長短期記憶網絡模型結構
預處理主要包括數據清洗和特征提取等工作,特征主要依靠NLP工具獲取。
本文除了使用詞特征之外,還將使用詞性標注、依存句法分析、語義角色標注和位置特征,然后將其表示成向量形式。
2.2.1 詞嵌入
基于神經網絡的分布式表示一般稱為詞向量或分布式表示,由于神經網絡較為靈活,這類方法的最大優勢在于可以表示復雜的上下文。
假設,一個句子S是由n個詞組成,S=[w1,…,wn],第i個詞wi對應的詞向量為ei,對于S中的每個詞來說,存在一個詞向量矩陣:W∈Rd*|V|,其中,V是詞表大小,d是詞向量的維度。通過詞向量矩陣,可以把每個詞轉換成詞向量的表示,如式(1)所示。
ei=W*vi
(1)
其中,vi是大小為|V|的one-hot向量,句子S就被轉換成:Sw=[e1,…,en]∈Rn×d。
2.2.2 額外特征嵌入
(1) 詞性標注
詞性是詞匯基本的語法屬性,通常也稱為詞類。除了語法關系,句中單詞的詞性(位置)標記也蘊含著信息,詞的位置定義了它的用途和功能。
對于由n個詞組成的句子S,有pi∈Rl。其中,pi表示第i個詞的詞性特征向量,l表示詞性特征向量的維度,則句子的詞性特征向量為Sp=[p1,…,pn]∈Rn×l。
(2) 依存句法分析
依存句法分析是通過分析語言單位內成分之間的依存關系揭示其句法結構,主張句子中核心動詞是支配其他成分的中心成分,而其本身卻不受其他任何成分的支配,所有受支配成分都以某種關系從屬于支配者,通過可以獲得句法信息。
對于由n個詞組成的句子S,有di∈Rt,其中,di表示第i個詞的依存特征向量,t表示依存特征向量的維度,則句子的依存特征向量:Sd=[d1,…,dn]∈Rn×t。
(3) 語義角色標注
語義角色標注是一種淺層的語義分析技術,標注句子中某些短語為給定謂詞的語義角色,如施事、受事、時間和地點等。語義角色標注以句子的謂詞為中心,不對句子所包含的語義信息進行深入分析,只分析句子中各成分與謂詞之間的關系,通過其能夠獲得語義信息。表1展示了部分語義角色含義,圖2展示了語義角色標注示例結構圖。

圖2 語義角色標注
對于由n個詞組成的句子S,有ri∈Rm。其中ri表示第i個詞的語義特征向量,m表示語義特征向量的維度,則句子的語義特征向量:Sr=[r1,…rn]∈Rn×m。

表1 語義角色
(4) 位置特征
因為一個句子中有兩個實體,所以位置特征[2]是通過考慮兩個實體和其他詞之間的距離信息,可以很好地把句子中實體的信息考慮到關系抽取中。
一個句子S由n個詞組成S=[w1,…,wn],第i個詞wi距離兩個實體的相對距離如式(2)所示。
(2)
其中,i1是實體1的索引,i2是實體2的索引,最后生成一個2nk大小的位置特征向量。第i個詞的位置向量表示如式(3)所示。
fi=e1i⊕e2i
(3)
其中,e1i∈Rk,e2i∈Rk,k是位置向量的維度,e1i和e2i分別為第i個詞距離實體1和實體2的相對距離的向量表示。因此,一個句子的位置向量表示如式(4)所示。
Sf=[f1,…,fn]∈R2n×k
(4)
經過所有的預處理得到詞、詞性、依存句法關系、語義角色和位置的向量表示形式,最后將所有特征向量拼接,如式(5)所示。
F=Sw⊕Sp⊕Sd⊕Sr⊕Sf∈Rn×(d+l+t+m+2k)
(5)
傳統的RNN,處理的序列太長時,梯度將呈指數級衰減或者增長,最終會引起梯度消失和梯度爆炸。RNN的變體長短期記憶網絡(LSTM)在1997年被Hochreiter和Schmidh Uber提出,解決了梯度消失的問題,同時可以學習長時依賴關系,因此經常用于處理長文本任務。LSTM只能學習一個方向的信息,雙向長短期記憶網絡(BLSTM)可以學習兩個方向的信息,更好地捕捉雙向的語義依賴,本文采用BLSTM來學習詞和特征完整的信息。在圖1中可以看到本文使用的BLSTM的結構,輸入的是拼接后的特征向量F。假設F=(f1,…,fn),有fi∈Rd+l+t+m+2k,其中,n是句子的長度,d、l、t、m、k分別表示詞嵌入維度、詞性嵌入維度、依存分析嵌入維度和語義角色嵌入維度。結合本文,其計算如式(6)、式(7)所示。

自注意力[5]是一般注意力的特殊情況,其特點在于無視詞之間的距離直接計算依賴關系,能夠學習一個句子的內部結構。因此,本文在實體關系抽取任務中引入自注意力,將BLSTM層的輸出向量H輸入到自注意力層,通過自注意力層可以學習到不同的詞和特征對關系分類的重要性,同時也可以學習到序列內部信息,圖3展示了詞的注意力權重。圖4展示了自注意力權重的計算過程,圖中H表示BLSTM層的輸出向量,L1表示第一層線性神經網絡,L2表示第二層線性神經網絡,a表示自注意力權重,C表示H和a加權求和的結果,自注意力權重的具體計算如式(8)所示。
a=softmax(wl2tanh(wl1H))
(8)

圖3 詞注意力權重示意圖

圖4 自注意力權重計算過程
其中,H∈Rn×j,hi∈Rj,n是句子的長度,j是LSTM單元輸出的向量維度。wl1是第一個線性神經層的權重矩陣,wl2是第二個線性神經層的權重矩陣,該權重矩陣是通過自注意力層的線性神經網絡層學習得到。tanh是激活函數,softmax函數是歸一化指數函數。先通過自注意力層計算出詞和特征注意力分數,再利用softmax函數歸一化分數得到權重,如圖3所示,所有權重和為1。最后將注意力權重a和輸出向量H加權求和,最后輸出用于分類的向量C,如式(9)所示。
C=aH
(9)
本文將自注意力層得到的輸出向量C輸入到分類器進行關系分類。在分類器中,使用softmax函數,對最后的分數進行歸一化,可以得到最后輸出的概率值,如式(10)所示。
(10)


(11)
目標函數是帶L2懲罰項的交叉熵(cross entropy)損失函數,如式(12)所示。
(12)
其中,s是指句子集的數量,θ是表示模型中的所有參數,λ是L2正則系數。
本文同時在中,英文數據集上做了相關實驗,中文數據集采用COAE-2016 Task 3數據集,英文數據采用SemEval-2010 Task 8數據集。本次實驗分為以下幾組:
(1) 超參數的影響,驗證參數是否對分類結果有影響。
(2) 在BLSTM模型上分別加上不同的注意力,驗證自注意力的有效性。
(3) 在本文提出的模型上依次疊加不同特征,驗證特征的有效性。
(4) 中英文實驗結果對比,驗證本文提出模型的有效性。
本次實驗使用的中文數據是由第八屆中文傾向性分析評測(COAE-2016)任務3 (Task3)提供的評測數據集,該評測會議在2016年加入了實體關系抽取任務,即任務3。Task3數據集提供了988條訓練數據,937條測試數據。其中,共有10種關系類型,詳情見表2。

表2 COAE-2016 Task 3實體關系類型
本文使用哈工大的LTP工具對中文數據進行分詞、詞性標注、依存句法分析和語義角色標注。
本次實驗使用的英文數據是由SemEval-2010 Task 8提供的數據集。這個數據集一共有10 717個標注樣本,8 000個樣本個用于訓練,2 717個樣本用于測試。在每個樣本中標注有關系的兩個實體,且這兩個實體僅屬于1種關系類型。該數據集中共有9種帶有方向的關系和1種不帶方向的other類型的關系,如下所示:
? Cause-Effect
? Component-Whole
? Content-Container
? Entity-Destination
? Entity-Origin
? Message-Topic
? Member-Collection
? Instrument-Agency
? Product-Agency
? Other
本文使用Stanford NLP工具對英文語料進行分詞、詞性標注和依存句法分析。該工具沒有提供語義角色標注的功能,所以英文語料比中文少一個語義角色的特征。
由于中、英文數據集的差異,所以某些超參數不一致。表3展示了本文實驗所有超參數的具體取值情況,其中,LR、H_n、B_s、G_clip、λ、Dr、W_d、Po_d、Pa_d、R_d和PF_d分別表示學習率、隱藏神經單元個數、批訓練大小(Batch_Size)、梯度裁剪參數、L2正則系數、Dropout值、詞嵌入維度、詞性嵌入維度、依存句法分析嵌入維度、語義角色嵌入維度和位置特征嵌入維度。
中文詞嵌入使用最新預訓練好的百度百科300維的詞向量。中文使用Dropout: 0.7分別對嵌入層、LSTM層和自注意力的兩個線性層Dropout。英文詞嵌入使用預訓練好的Glove 300維[15]的詞向量。英文使用Dropout: 0.5分別對嵌入層、LSTM層和自注意力的兩個線性層Dropout。
除了詞以外,其他特征均采用隨機初始。本文使用帶交叉熵損失函數的Adam優化器來訓練模型。

表3 本文實驗超參數的取值情況
所有的Baseline方法和本文提出的模型都使用官方的F1-score,即F1值來評估模型性能。以下所有表中的SDP、WV、PF、POS、Parse和Role分別表示最短依存路徑、詞向量、位置特征、詞性特征、依存句法分析和語義角色。
3.3.1 超參數的影響
通常情況下,需要對超參數進行優化,給學習機選擇一組最優超參數,以提高學習的性能和效果。超參數的取值決定了學習算法能不能學到最優,因此,在中文數據集上針對常見且影響大的超參數做實驗,圖5展示了實驗結果。


圖5 超參數的影響
學習率指算法學習的快慢,隱藏神經單元個數決定模型的復雜度,Batch_Size指一次訓練里有多少個樣本。根據圖5可以發現,影響最大的是學習率,隱藏層神經元個數和Batch_Size影響都比較小。當LR、H_n和B_s分別為0.0005、250、32時,算法學到最優。當LR比較小時,學習效果比較理想,此時本文使用的優化器是Adam。Adam結合了AdaGrad和RMSProp算法最優性能,它還提供解決稀疏梯度和噪聲問題的方法。Adam的調參相對簡單,默認參數就可以處理絕大部分問題。本文選擇Adam中影響較大的參數,根據經驗法則找到這些參數的常用值,然后再使用窮舉法選擇這些參數的多個值中的最優值,最后結合其他默認參數訓練模型。
3.3.2 自注意力的有效性驗
本文引入了自注意力,為了驗證自注意力的有效性,本文在中文數據集上做相關實驗,表4展示了自注意力對F1值的影響。
注意力機制可以快速提取稀疏數據的重要特征,而自注意力機制是注意力機制的改進,其減少了對外部信息的依賴,更擅長捕捉數據或特征的內部相關性,表4的實驗結果證明了注意力和自注意力的有效性,而且自注意力優于注意力。

表4 自注意力對性能的影響
3.3.3 特征的有效性驗證
本文引入了多個特征,特征的好壞會直接影響模型的性能,為了驗證特征的有效性,本文在中文數據集上做相關實驗,表5展示了特征對F1值的影響。

表5 特征對性能的影響
在本文方法中使用了4種不同類型的特征,即詞性標注、依存句法分析、語義角色標注和位置特征。在實體關系抽取任務中,位置特征已經演變成了標準特征。因此,詞向量和位置特征的組合是參考標準,本文在參考標準基礎上依次疊加特征。從表5中可以看出,加入的特征對關系分類是有效的,依存特征和語義角色特征表現最好,詞性特征最差。詞性蘊含了潛在的位置信息,實驗表明特征對性能的提升不是很明顯,僅有0.96%的提升;依存句法分析是對句子結果進行分析,它蘊含句法相關的信息,該特征的加入使性能明顯提升;語義角色標注分析句子中的語義成分,考慮淺層語義信息,F1值提高了2.44%。
3.3.4 中英文實驗結果與分析
(1) 中文實體關系抽取結果與分析
因為中文數據集是2016年新添加的實體關系抽取任務,所以相關論文相對較少。前3個方法是孫等[16]在2017年基于COAE-2016 Task3提出的三個Baseline方法,用于做實驗參考。
模板匹配: 基于模板的實體關系抽取主要是通過模板匹配的方式來抽取實體關系。該方法通過最短依存路徑(SDP)上是否可以匹配到模板詞來判斷關系類型。雖然模板匹配的方法實現簡單,但是性能很差。
SVM: 基于特征的SVM實體關系抽取。該方法選取實體順序、實體距離和實體上下文三個特征,人工特征可以有效提高模型的性能,使用多種特征的SVM算法在三個算法中是效果最好的。
CNN1: 孫[16]等采用CNN來做實體關系抽取。該方法沒有加任何額外特征,利用CNN學習特征的方法代替傳統的人工特征的選擇,但是效果并不好。
CNN2: 王[17]采用基于特征的CNN方法,除了標準的詞向量和位置特征之外,還使用了命名實體識別和基于TP-ISP的關鍵詞特征,同時使用分段最大池化進行關系抽取。實驗效果顯著增強,其F1值達到77.5%,與該方法相比,本文方法優勢明顯,F1值提高了3.99%.
Att-CNN: Wu等[18]采用分段卷積神經網絡(PCNN)和注意力來提取高層語義信息,同時使用位置特征和實體類型來進行中文實體關系抽取。與該方法相比,本文方法的F1值提高了3.08%。
(2) 英文實體關系抽取結果與分析
為了驗證本文方法的有效性,本文同時在英文數據集上做實驗,選取英文數據集上的9個流行方法做對比。
SVM1/SVM2: 這兩個方法是Harabagiu 和Rink[19]在2010年提出一系列方法中的兩個,他們采用各種手工特征(POS和dependency parse等)和利用各種資源(WordNet, ProBank和 FrameNet等),并利用SVM進行關系分類,其F1值達到了82.19%。與該方法相比,本文方法的F1值仍然高出1.71%。
RNN: Socher等[1]在2012年首次提出使用RNN來處理關系抽取任務,該方法對句子進行解析,能夠有效地考慮句子的句法結構信息。
CNN1: Zeng等[2]在2014年首次提出采用CNN來進行關系提取,利用卷積神經網絡來提取詞匯和句子級別的特征。該方法不需要復雜的預處理,解決預處理特征錯誤傳播的問題,其F1值達到了82.7%。
BRNN: Zhang和Wang[11]在2015年采用雙向循環神經網絡(BRNN)進行關系抽取,并使用不同維度(50和300)的詞向量做實驗,使用300維詞向量做實驗的F1值最高,達到了82.5%。
SDP-BLSTM: Yan等[20]在2015年提出了基于最短依存路徑(SDP)的長短期記憶網絡(LSTM)模型進行實體關系抽取。該方法同時考慮詞性標記、語法關系和WordNet上位詞特征,其F1值達到了83.7%,與本文方法不相上下,本文僅高出了0.2%。
CNN2: 王[17]在2017年提出的CNN模型,通過TP-ISP衡量詞的重要性來獲取關鍵詞。關鍵詞增加了類別區分度,采用分段最大池化策略來解決信息丟失問題,其F1值只有77.5%。與該方法相比,本文方法的F1值明顯高出6.4%。
Att-RCNN: Zhang等[21]在2018年結合RNN、CNN和注意力機制進行關系抽取。他們僅使用詞和位置特征,F1值可以達到83.7%。
Hybrid BiLSTM-Siamese: Cui等[22]在2019年通過Siamese模型架構將兩個詞級別BLSTM組合在一起,它學習兩個句子的相似度,并通過K近鄰算法預測新句子的關系。
本文提出在BLSTM模型的基礎上加入自注意力(self attention)和豐富的特征集。表6和表7展示了本文方法和當前流行的中英文方法的對比。從這兩個表可以看出,本文方法在中、英文數據集上的性能都表現非常好,其F1值分別達到了81.49%和83.9%。根據這些實驗結果,可以得出以下結論:
① 自注意力的加入能提高BLSTM分類效果;
② 豐富的特征集有利于實體關系抽取;
③ 本文提出的方法優于與本文對比的方法。

表6 中文實體關系抽取任務結果

表7 英文實體關系抽取任務結果
本文提出了一個基于自注意力雙向長短期記憶網絡(SelfAtt-BLSTM)模型,加入詞匯、句法、語義和位置4大特征,對詞和特征的組合使用自注意力來學習序列和特征的內部信息。本文對比了各個特征,依存句法特征和語義角色特征表現比較好,詞性特征表現最差。把本文模型SelfAtt-BLSTM和BLSTM對比,證明了自注意力的有效性。本文重點是加入了語義角色特征和自注意力,實驗證明該特征效果不錯,且自注意力的特點在于無視詞之間的距離直接計算依賴關系,能夠學習一個句子的內部結構,自注意力最終被證實了可以提高模型性能。實驗結果表明,本文方法在中、英文數據集上均表現出較好的性能。
未來的工作可以從以下兩個方面展開:
(1) 除了詞性、依存句法和語義角色特征之外,還有實體類別和語法關系等特征本文未考慮到,將來可以嘗試尋找更多未使用過的關鍵特征。
(2) 本文采用自注意力和BLSTM結合的方法進行實體關系抽取,未來可以嘗試與CNN、RNN和FNN相結合。