王 凱 秦永彬 李 婷 楊衛哲 陳艷平
(貴州大學計算機科學與技術學院 貴陽550025)
關系抽取[1]是指抽取句子中兩個實體的語義關系。例如:“任正非是華為公司總裁”一句,關系抽取系統能自動識別出“任正非”和“華為公司”這兩個實體的關系是“雇傭關系”。關系抽取作為自然語言處理(Natural Language Processing,NLP)領域的一項關鍵性任務,被廣泛應用在信息抽取[2]、問答系統[3~4]、機器翻譯[5]等領域,在過去十多年間備受研究者關注[6~7]。
得益于詞性標注、依賴解析等NLP工具的利用,基于特征工程和核函數的傳統方法已經取得很大的進步[8~9],但是這些方法需要手工設計復雜的特征,費力費時,可移植性差。近年來,運用深度學習方法進行關系抽取逐漸成為主流,大量的研究者使用卷積神經網絡(Convolutional Neural Network,CNN)和循環神經網絡(Recurrent Neural Network,RNN)來提取深層語義特征[10~11]。在經過多層神經網絡的多層堆疊后,可以從原始輸入中提取到高階抽象特征。然而,許多神經網絡模型仍均需要附加的特定特征組合或依賴解析,過多的特征經常造成參數爆炸,不僅大大增加訓練的時間,還會對主要信息造成干擾,影響關系抽取的性能。
本文在雙向長短期記憶模型(Bidirectional Long Short-Term Memory,BiLSTM)的基礎上,引入注意力機制(Attention),通過設置不同大小的隱藏層,構建一個多層雙向長短期記憶-注意力模型(Multi-BiLSTMA)。該模型能充分利用BiLSTM擅長處理序列模型的優勢和Attention能捕獲全局關鍵依賴信息的特點,自動學習到不同維度的、帶依賴信息的特征。本文選取ACE RDC 2005中文數據集作為實驗數據,在僅使用字向量作為特征的情況下,取得71.61%的F1值。
早期的關系抽取主要是基于語法規則,通過分析句中的語法結構,將其作為關系發生的依據。但是由于其嚴謹的規則,導致此方法的召回率很難提升,且需要專業的語法知識和文學基礎,適用性不高。隨著技術的不斷發展,關系抽取根據人工干預的程度可分為有監督、半監督、無監督三種。基于本文所涉及的內容,我們將重點研究有監督的關系抽取方法。有監督的關系抽取大都可看作是分類問題,概括起來主要有兩種方法:淺層結構模型和深度學習模型。
淺層結構一般只有一層或沒有隱藏層節點,如支持向量機、最大熵等,關系抽取中的淺層結構常使用特征工程或核函數的方法。傳統的基于特征工程的方法主要是依賴設計巧妙的經語言處理過程輸出的特征集[8,12]。虞歡歡等[13]通過構造一種合一句法和實體語義關系樹,驗證了句法和實體語義對中文關系抽取有互補性。劉丹丹等[14]探討了不同語義信息和一詞多義現象對關系抽取的影響。Chen等[15]利用句子結構的特點,創新性地利用兩實體將句子分成不同的BIN,經過巧妙的特征設計,利用最大熵做分類器來進行關系抽取。然而,以上這些方法大都依賴大量人工設計的特征,或依賴精心設計的核函數。盡管有很多優秀的NLP工具的輔助,但是仍然存在因分詞不準確或句法解析錯誤等誤差而導致性能降低的風險。
近年來,基于深度學習的關系抽取研究取得了很大進展。Liu等[16]首次將CNN用于關系抽取。Nguyen[17]等將預訓練的詞向量和位置向量結合,用CNN做分類器,提升了關系抽取效果。Vu等[18]通過融合CNN和RNN兩種模型,使得識別效果進一步提高。Xu等[19]在最短依賴路徑上運用CNN模型來抽取實體關系。類似地,Yan等[11]在兩實體間構建最短依賴路徑,然后用LSTM在最短依賴路徑上提取各種特征。Peng[20]等提出了基于注意力的雙向長短期記憶網絡來捕捉句子中最重要的語義信息。在只使用單詞向量的情況下,使得實驗結果明顯優于Zeng等[10]和Yan等[11]的方法。Wang等[21]運用了兩個層面的Attention,一個層面是在輸入序列中各部分對兩個實體相關的注意力,另一層面針對目標類別的注意力,該模型在關系抽取任務上獲得很好的效果。
我們借鑒了多核CNN可以學習到不同維度特征的特點,利用BiLSTM和Attention機制,通過設置不同大小的BiLSTM,構建了Multi-BiLSTMA模型,實驗顯示我們的模型有效改善了中文關系抽取的效果,在ACE RDC 2005中文數據集上,取得大類71.6%的F值。
RNN多被用來學習長期的依賴信息,但實踐證明其不擅于學習并長期保存信息,而且隨著序列的增長容易出現梯度消失或梯度爆炸問題。LSTM[22]被提出來解決這個問題。其主要思想是引入一個自適應的門控機制,決定了LSTM單元保存當前狀態和記憶當前信息的程度。
LSTM自被提出以來已經演變出很多變體,本文中使用的是Graves等[23]提出的一個變體,主要由四個部分組成:輸入門、輸出門、遺忘門和記憶單元(cell)。通過當前的輸入it、上一時刻的隱藏狀態ht-1和當前的cell狀態ct-1的共同作用,決定是否將當前信息輸入、遺忘或者更新cell。LSTM示意圖如圖1所示。

圖1 LSTM示意圖
其中t和t-1分別表示當前時刻和上一時刻,h表示隱藏狀態,c表示cell,i表示輸入門,f表示遺忘門,o表示輸出門,g表示候選cell,?表示逐元素相乘,⊕表示相加,σ和tanh分別表示sigmoid激活函數和tanh激活函數。
t時刻LSTM的操作可形式化如下:

式中Wx*、Wh*、Wc*、b*分別是輸入門、遺忘門、輸出門和cell的相應權值矩陣和偏置量,σ指sigmoid函數,tanh指tanh函數。ht是LSTM層的輸出。
LSTM雖然能長期保存信息,但是信息在長距離的傳播中容易損失,所以在本實驗中我們將LSTM與Attention搭配使用。
Attention機制已被成功地應用在問答系統、機器翻譯等領域。與LSTM不同,Attention的每一步計算并不依賴上一步的計算結果,能一步到位捕獲全局的依賴信息。正因如此,它能有效改善LSTM中的信息由于遠距離傳播導致的損失問題。本文中將Attention同LSTM結合起來用于關系抽取任務。
若H=h1,h2,…,hL是LSTM的輸出結果,齊其中L是句子長度。本文中Attention的操作可形式化如下:

W是權值矩陣,T表示轉置。Attention最后的輸出為

同LSTM一樣,Attention也有一些缺陷。Atten?tion并不能捕獲句子的語言順序,也就是說,單獨的Attention就像一個高級版的詞袋模型。然而,LSTM天生具有捕獲語言順序的能力,這就使得LSTM與Attention形成良好的互補。因此,在本文中將兩者結合起來用作關系抽取任務。
鑒于BiLSTM和Attention存在較好的互補性,我們將兩者結合起來使用。但是單一的、固定的BiLSTM只能學習到一個特定維度的信息,因此我們通過設置不同的BiLSTM,構建了一個Multi-BiL?STMA模型。該模型可以學習到多個維度的帶有依賴信息的特征。模型結構如圖2(a)所示。
3.3.1 輸入層
令S=w1,w2,…是帶有兩個命名實體的一個句子,wi表示句中的第i個字,S通過查找表(Look?up Table)被映射成相應的詞向量(Embedding)[24],Lookup Table可通過初始化獲得,也可直接使用預訓練好的,本文中采用初始化的方法。若句子長度為L,則映射成向量后的句子可表示為X=[x1,x2,…,xL],其中xi∈RD是第i個字wi的向量表示,D是向量的維度。若詞典大小為V,則輸入層可表示為X∈RV×D。這一過程可表示為

3.3.2 Multi-BiLSTMA層
本文中Multi-BiLSTMA層由三個BiLSTMA單元組成。其中,每個BiLSTMA單元由一層BiLSTM和一層Attention組成。如圖2(b)所示,BiLSTMA接收輸入層的數據,使用了一個正向的LSTM和一個反向的LSTM,形成一個BiLSTM層,用來提取Embedding的更深層的特征。這一過程概括為


圖2 Multi-BiLSTMA模型
Attention層合并BiLSTM層中每一個時間步長上的信息,并通過計算得出對抽取結果影響較大的信息。這一過程可概括為

3.3.3 全連接層
將三個BiLSTMA單元的輸出拼接起來之后,通過一層全連接層將前一層完全連接,將上述模型學到的信息分類,其中隱藏層的大小為關系類型數,即為7。這一過程概括為

3.3.4 Softmax層
為了得到更好的實驗效果,我們使用softmax層對全連接層的輸出結果進行歸一化處理,得最后分類結果。總地來說,這一處理過程可概括為

本文采用公開發行的ACE RDC 2005中文數據集來進行關系抽取。經過篩選掉不規范的文檔,實驗一共用到628個文檔。這個數據集包含六種實體關系類型(統稱正例),分別是:“PART-WHOLE”、“PHYS”、“ORG-AFF”、“GEN-AFF”、“PER-SOC”、“ART”。由于數據集中的關系是有方向的,例如:若實體對(A,B)在數據集中存在“ART”關系,但實體對(B,A)間不存在任何數據集標注的關系類型,因此我們把所有這種情況統稱負例,關系類型記為“Other”。
因為關系抽取主要在句子級別進行的,所以用“,”、“。”、“!”、“?”、“:”這五種中文標點符號將數據集中的文本切分成句子。舍棄不含實體對的句子,同時去掉正例和負例間重復的句子(因為同一句子不可能既是正例又是負例),一共得到1010056個句子,其中包括9244條正例句子和91812條負例句子。
在詞向量處理上,采取隨機初始化Embedding的方法,其在訓練過程中會不斷調整,詞向量維度設置為100維。為了平衡抽取效果和訓練代價,選取句長等于50為最大輸入長度。我們選擇Ad?aDelta函數作為優化函數,學習率為優化函數默認的1.0。此外,將批次量設置為50,迭代次數為100。經實驗驗證,我們選擇三個BiLSTMA單元,其中隱藏層的大小分別為50、100和150。
將正例和負例一共101056條數據隨機打亂后按照7∶1∶2的比例切分成三份,分別為訓練集、驗證集、測試集。使用常規的P、R、F值評價方法來評估性能。由于數據集中正負例的不平衡性,為了更接近真實情況,同時減少因大量負例數據帶來的影響,所以在評估時,只評估正例的結果。
經過五重交叉驗證實驗后,得到性能如表1所示。從表1可以看到,雖然每一種關系類型性能有所差別,但是總體上呈現出數量多的類型結果也高的特點。數據集中占比最多的“PART-WHOLE”類型性能最高,而占比最少的“ART”性能最低。

表1 Multi-BiLSTMA實驗性能
為了證明Multi-BiLSTMA模型取得更好的性能不僅僅是因為參數的增多,我們設計了一組實驗,驗證在使用單個BiLSTMA的情況下,不同大小的隱藏層對抽取效果的影響,結果圖3所示。

圖3 參數對性能的影響
從圖3可以看到,當隱藏層較小時,性能較低,適當增大隱藏層可提高抽取效果。但是當隱藏層超過100時,性能出現明顯的下降,且隨著隱藏層的增大下降得越快。實驗表明,Multi-BiLSTMA模型取得更好的抽取效果,并不僅僅是簡單地增加參數,該模型通過使用不同大小的LSTM單元,模仿CNN利用多卷積核抽取不同維度特征的特點,能獲取到不同維度的帶有依賴信息的特征,從而提升抽取效果。
為進一步驗證模型的有效性,我們做了一些對比實驗,結果見表2。

表2 實驗效果對比
其中,虞歡歡等[13]通過把實體語義信息加入到關系實例的結構化信息中,構造了合一句法和實體語義關系樹來捕獲實體語義信息和結構化信息,從而提高了關系抽取的性能。由于作者也使用了和我們相同的數據集,因此我們直接引用其結果,而沒有復現其方法。
劉丹丹等[14]利用基于樹核函數的方法,以《同義詞詞林》為例子,探討了詞匯的語義信息對中文關系抽取的影響,證明了無論在實體類型是否已知的情況下,語義信息都能提高關系抽取的性能。同樣,作者使用了ACE 2005中文數據集,因此我們直接引用其結果。
Nguyen T H等[17]利用多核卷積網絡來自動提取句子的特征,使用了預訓練的詞向量和位置向量結合作為卷積網絡的輸入。作者提出的CNN模型能明顯提高關系抽取效果。但是文中使用的是英文數據集,因此我們在ACE數據集上復現了他的方法,除了位置向量外,使用與其完全相同的實驗參數。
Zhou P等[20]認為很多關系抽取方法嚴重依賴外部資源或NLP工具,且重要信息可能出現出句中任意位置。針對這兩個問題,他們構建了Att-BLSTM模型捕獲句中最重要的語義信息,顯著提升了抽取效果。由于作者使用了英文數據集,所以我們也在ACE 2005中文數據集上復現了他的方法,使用了與其完全相同的實驗參數。
從表2可以看到,我們的Multi-BiLSTMA模型明顯優于另外四種方法。表2中第二、第三行所示使用了基于樹核的方法,在使用的大量額外特征的情況下,取得67%左右的F值。而表2中第五行的Att-BLSTMA模型的性能之所以不高,是因為我們使用了和原文相同的實驗參數,原文中用于英文數據的參數在中文上并不一定有同樣的效果。事實上,在我們將參數調整過來后,性能相較之前有很大提升(如圖3所示)。
實驗證明,我們提出的Multi-BiLSTMA能大幅提高關系抽取效果,而不僅僅是因為簡單地增加參數。通過設置不同大小的LSTM單元,配合Atten?tion機制,Multi-BiLSTMA模型能獲取到句中不通過維度帶有依賴信息的特征,從而提升關系抽取效果。
CNN可以利用多個卷積核學習到不同維度的抽象特征,但是難以獲取句子內部的長距離語義依賴信息。而RNN能自動獲取句子內部的語義依賴關系,但是通常只能學習到某個特定維度的特征。針對這兩種神經網絡的特點,本文提出一種基于Multi-BiLSTMA的中文關系抽取方法。實驗證明,在僅使用字向量特征、不使用任何附加特征的情況下,Multi-BiLSTMA模型在ACE RDC 2005數據集上取得很好的抽取效果,取得71.6%的F1值。
同時我們也意識到,句子的結構信息對正確理解句子是至關重要的。下一步的工作我們將著重研究如何利用神經網絡來提取句子的結構信息,以期獲得更好的抽取效果。