夏天賜,孫 媛
(1. 中央民族大學 信息工程學院,北京 100081;2. 中央民族大學 國家語言資源監測與研究中心 少數民族語言分中心,北京 100081)
實體關系抽取任務作為信息抽取領域的重要研究課題,其主要目的是抽取句子中已標記實體對之間的語義關系,即在實體識別的基礎上確定無結構文本中實體對間的關系類別,并形成結構化的數據以便存取。例如,是的妻子。實體關系抽取能自動識別實體“葉莉”和“姚明”是夫妻關系。
傳統的實體關系抽取任務通常采用“流水線”方式。首先需要提取句子中相關實體,然后再識別實體之間的關系。這種方式的好處是,處理起來非常方便,且組合很靈活,但它忽略了兩個子任務之間的關聯,且會產生錯誤的疊加,比如,實體識別任務產生的錯誤會傳遞給關系識別的任務,導致整個模型錯誤率上升。
不同于上述的“流水線”方式,聯合模型進行實體關系抽取時,能夠從非結構或者半結構化的文本中提取出實體以及能夠識別語句中的語義關系。通過這種方式,我們能根據語義信息,從預定義的關系表中匹配語句中出現的實體之間的關系。提取實體和判別實體之間關系同時進行,大大降低了錯誤率的疊加,并且產生結果更加快速和高效。
聯合模型的框架是將實體識別和關系識別任務用簡單模型聯合起來。有效地聚集了實體和關系的信息,并且在這個任務中得出一個比較好的結果。然而,目前存在的聯合模型是基于特征的結構化系統,這個系統需要極其復雜的特征以及依靠很多的自然語言處理工具,在這種情況下,難免產生很多錯誤。為了降低人工處理的錯誤,目前業界普遍采用端到端的神經網絡模型,這種模型已經被運用到各種序列標注任務中,比如命名實體識別(NER)或者組合范疇語法(CCG)。而常用的神經網絡模型是利用BiLSTM結構來獲取句子表達或者句子信息來完成序列任務。
在本文中,我們將集中介紹聯合模型抽取的任務,從一個生文本中抽取出包含兩個(或以上)實體以及它們之間的關系,進而構成一個三元組(E1,E2,RE)。因此,我們可以直接構建一個聯合模型提取實體以及實體關系,基于這種想法,我們將實體關系轉化為一種序列標注問題,將句子切分成詞或者字,并且給每一個詞或字添加標簽組(BIESO)。同時,為了提高提取信息的準確率,我們也給每個詞或者字進行詞性標注。通過這種方法,我們僅通過神經網絡就能構建相應的模型,而不需要進行復雜的特征工程。
實體關系抽取任務是構建知識庫的一個重要環節,目前處理這個任務有兩種方式,“流水線”方式和聯合學習方式。
“流水線”方式處理這個任務分為兩個步驟: 命名實體識別和關系分類。
典型的命名實體識別模型是基于統計模型,比如Passos[1]等提出從與實體相關的詞典中學習一種新的詞向量表達形式,并且利用新的神經詞向量作為單詞語義表達。該方法在CoNLL03數據集上F1值達到90.09%。Luo[2]等提出一種新的實體關系抽取模型——JERL(Joint Entity Recognition and Linking),該模型主要將實體識別和知識庫中的實體進行聯合來捕獲實體和知識庫中的依存關系,利用CRF(Conditional Random Field)模型進行實體識別,然后利用知識庫中已有的實體進行類別判斷。該模型在CoNLL03數據集上F1值達到91.2%。目前,很多神經網絡模型也運用到命名實體識別任務中,比如Chiu[3]等利用BiLSTM+CNN聯合模型進行字級和詞級的特征提取。該模型首先從CNN模型預處理的字級特征向量中提取出新的特征向量,然后將提取出的新的特征向量輸入到BiLSTM中,進行詞級的特征提取,最后輸出該實體的類別概率值。該模型在CoNLL03數據集上F1值達到90.77%。Huang[4]等利用BiLSTM+CRF混合模型將命名實體識別任務轉變為序列標注問題。該模型將分詞后的詞向量直接輸入到BiLSTM中,提取出詞級特征,在最后判斷實體的類別時,利用CRF層將類別概率轉變成序列概率值輸出。該模型在CoNLL2000數據集上F1值為94.40%。Lample[5]等提出利用LSTM+CRF模型提取詞級特征同時基于過渡的方式構造標簽片段。該方法的實驗數據主要來源于有監督的字級語料庫以及無監督的非標記的語料庫。首先,對輸出的句子利用依存句法的過渡方式進行處理,構造出有標記的單詞,然后將預處理的單詞輸入到LSTM中,最后通過CRF輸出序列概率值。該方法在CoNLL2003(英文)上F1值達到91.20%,在CoNLL2003(德語)上F1值達到78.76%,在CoNLL2002(西班牙語)上F1值達到85.75%。
對于關系分類任務,主要有兩種方式,一是基于特征提取的人工處理方式,Rink[6]等采用SVM分類器進行語義關系類別識別,然后利用語義關系類別進行關系分類。該文采用上下文、語義角色索引以及可能存在名詞性關系等一系列特征進行分類。該模型在SemEval-2010 Task 8數據集上F1值達到82.19%,Precision達到77.92%。Kambhatla[7]等利用最大熵模型組合不同詞匯、句法和語義等特征進行關系分類。該方法在添加了多種特征,包括實體類型、依存關系以及句法樹等,F1值達到了52.50%,Precision達到了63.50%。另一種是基于神經網絡的處理方式,Xu[8]等通過卷積神經網絡(CNN)結合最短依存路徑進行語義關系分類。首先將語句輸入到CNN網絡中,提取語句中的關系特征,最后通過依存特征進行類別判斷。該方法在SemEval-2010 Task 8數據集上F1值達到了85.60%。Zheng[9]等提出基于CNN的模型和基于LSTM的模型,為了學習關系模式信息和給定實體的語法特征。首先,利用CNN進行關系模式的提取,然后利用LSTM進行實體語義的特征提取,最后將兩者結合進行語義關系分類。該方法在ACE05數據集上F1值達到了53.60%,Precision到了60.00%。
聯合學習方式處理實體關系任務通常只需要一個模型。大部分聯合模型是基于特征的結構,比如Ren[10]等提出一種基于Distant Supervision和Weakly Supervision對文本中的實體和關系聯合抽取的框架。該框架主要分為三個部分: ①候選集的生成;②聯合訓練實體和向量空間;③實體類型和關系類型的推理預測。該方法在三個公開集上做測試: 在NYT數據集上F1值為46.30%,Precision為42.30%;在Wiki-KBP數據集上F1值為36.90%,Precision為34.80%;在BioInfer數據集上F1值為47.40%,Precision為53.60%。Yang[11]等利用聯合推理模型進行觀點類實體和觀點類關系的抽取。在觀點類識別任務中,采用CRF模型將識別任務轉變成序列標注任務。在觀點類關系抽取任務中,利用觀點—參數模型識別觀點類關系。該模型在MPQA數據集上F1值為57.04%。Singh[12]等利用聯合推理進行三個任務: 實體標注、關系抽取以及共指。該模型利用聯合圖模式將三者結合在一起,相互作用,通過學習和推理的方式優化聯合推理模型參數。該模型在ACE2004數據集上針對實體抽取任務的F1值為55.39%,針對實體標注任務達到了82.9%的Precision。Miwa和Bansal[13]提出一種聯合實體檢測參數共享的關系抽取模型,模型中有兩個雙向的LSTM-RNN,一個是基于Word Sequence(bidirectional sequential LSTM-RNNs),主要用于實體檢測;另一個是基于Tree Structures(bidirectional tree-structures LSTM-RNNs),主要用于關系抽取。后者堆在前者上,前者的輸出和隱含層作為后者的輸入的一部分。Zheng[14]等利用聯合模型將實體關系抽取任務轉變成序列標注任務,主要是采用End-to-End的模型直接抽取實體和關系。
藏文信息抽取處理技術起步較晚,通常也是采用“流水線”方式進行實體關系抽取,即藏文命名實體識別和藏文關系分類。
針對藏文命名實體識別,金明[15]等首次提出基于規則和HMM模型藏文命名實體的研究方案。羅智勇[16]等通過研究藏族人名漢譯的方法,提出了利用藏族人名的字級特征以及命名規則,結合詞典采用字頻統計和頻率對比策略,以及人名前后一個詞為單位共現概率作為可信度度的藏文人名識別模型,需要先給出預先定義的域值。在新華網藏族頻道文本和《人民日報》(2000~2001)上實驗的召回率分別為85.54%和81.73%。華卻才讓[17]等提出基于音節的藏文命名實體識別方案,采用基于音節訓練模型,準確識別藏文人名、地名和機構名,識別的F1值達到86.03%。劉飛飛[18]等提出基于層次特征的藏文人名識別方法,將人名的內部和上下文特征作為CRF特征,然后將人名并列關系特征設計為規則,進一步提高識別效果,識別的F1值達到了95.02%。
針對藏文關系分類,龍從軍[19]等通過研究藏語名次語義關系,提出組織名次的基本單位是義類,聯系名詞和名詞、名詞與其他詞之間的關系是語義關系。馬寧[20]等以模板的方式從互聯網中抓取純藏文文本,然后對文本進行分詞、詞性標注和命名實體識別,并對關鍵字和實體進行過濾,抽取出候選模板,最后對抽取出的候選模板計算語義相似度,超過一定閾值就成為關系模板。
本文基于以上設計思路,同時考慮到藏文信息抽取任務的研究相對滯后、藏文的語料稀少、結構復雜、處理領域單一等問題,考慮將聯合模型運用于藏文實體關系抽取任務中,按照字級或者詞級處理語料,然后利用詞性標注特征進行補充,同時也將藏文關系抽取任務轉變成藏文序列標注任務。
首先,我們對藏文語料分別按照詞級或者字級進行序列標注處理(見2.2節),然后利用自然語言工具,給每個詞或者字進行詞性標注(見2.3節),再輸入到神經網絡編碼層(見2.4.2節),經過編碼層解析,然后通過解碼層(見2.4.3節),最后通過輸出層輸出結果(見2.4.4節),總體框架如圖1所示。
其中,模型最終輸出yi代表輸入藏文分詞或者分字的序列標簽。如圖2所示(中文釋義: 扎西頓珠出生于迭部村莊),以分詞為例,其中“/”表示詞與詞之間的分隔符,“BP”表示關系分類中“BirthPlace”類別。最后的輸出與分詞結果一一對應。

圖1 總體框架

圖2 示例圖
2.2.1 藏文詞級處理
首先,本文利用CRF++工具對藏文進行分詞。然后,對分詞后的每個單詞分配一個標簽。標簽“O”代表該單詞與提及實體無關。除了標簽“O”,其他單詞標簽分為三個部分: 實體位置、關系類型以及關系角色。實體位置,本文使用“BIES”來表示,“B”代表實體起始位置,“I”代表實體中間位置,“E”代表實體結束位置,“S”代表單個實體。關系類型,從已知的關系集中查找。關系角色則根據上下文信息確定,并同時設置為“1”和“2”。示例如圖3所示。(中文釋義: 扎西頓珠出生于迭部村莊)

圖3 藏文詞級處理示例
2.2.2 藏文字級處理
首先,本文按照藏文拼寫特征,利用藏文音節點進行字級處理,然后對分字后的音節分配標簽。與詞級對應,標簽“O”代表該音節與提及實體無關。其他的音節標簽同樣也分為三個部分: 實體位置、關系類型以及關系角色,各部分的定義與詞級一致。示例如圖4所示。(中文釋義: 扎西頓珠出生于迭部村莊)

圖4 藏文字級處理示例
由于藏文進行序列標注過后的信息較少,在與實體無關的單詞或者音節上都默認標簽為“O”,對結果的提取存在較大偏差。本文針對這種情況,在序列標注過后的藏文詞或者字進行詞性標注,對所有的詞或者字分配詞性標簽,降低最后提取的錯誤率。示例如圖5所示。(中文釋義: 扎西出生于迭部村莊)

圖5 詞性標注
這里需要注意,我們進行字標注時,根據詞的詞性來定義,示例如圖6所示。(中文釋義: 澤旺拉姆)

圖6 字性的定義
不難發現,很多藏文特有的詞性,例如,格助詞、屬格助詞等對幫助判斷兩個實體的關系有輔助的作用。同時本文也借鑒了這種藏文特有的詞性規則,比如利用屬格助詞來表達“包含”、“屬于”之類的關系,以此來強化和提高藏文實體抽取的準確率。
目前,基于神經網絡的端到端模型在序列標注任務中起到良好的效果。本文也采用端到端的模型進行實體關系抽取任務。模型主要包括預處理階段、BiLSTM編碼層、LSTM解碼層以及一個Softmax輸出層。
2.4.1 預處理階段
給定一句長度為l的藏文語句W= {x1,x2,x3,...,xl},先通過word2vec生成詞向量T={t1,t2,t3,...,tl},然后經過CRF工具獲取每個詞的詞性P={p1,p2,p3,...,pl},并且通過Word-POS[21]的方法將詞向量和該詞詞性向量進行拼接,組成新的向量表達TP={(t1,p1),(t2,p2),(t3,p3),...,(tl,pl)}。 流程如圖7所示。(中文釋義: 扎西出生于迭部村莊)

圖7 預處理流程
2.4.2 BiLSTM編碼層
將預處理階段生成的向量表達TP輸入到BiLSTM中。BiLSTM能夠捕獲到句子中的語義信息。它主要包括前向LSTM層、后向LSTM層以及一個連接層。通過預處理得到的藏文語句向量表達,輸入到BiLSTM中,這個結構包含一系列的循環連接單元,稱為記憶區塊。每個當前的記憶區塊能夠根據前一層的隱向量ht-1、前一層的單元向量ct-1以及當前的輸入向量tpt-1,捕獲當前的隱向量ht。 具體定義如式(1)~式(5)所示。
輸入門:
這一步主要決定是否對當前輸入的文本信息中重要的詞或者字進行更新。
遺忘門:
這一步決定以前的文本信息中是否丟棄無表達、無關的詞或者字。
輸出門:
最終輸出當前時刻的文本信息狀態以及最后的特征輸出向量如式(6)所示。

2.4.3 LSTM解碼層

輸入門:
(7)
遺忘門:
(8)
輸出門:
2.4.4 Softmax層
針對最后的Softmax層,基于輸出的向量Pt,來預測實體的概率標簽:
其中,Wy是輸入Softmax矩陣,Nt是整個標簽的數量,by是偏置項。
數據集采用中央民族大學自然語言處理實驗室處理的藏文數據集,數據格式同NYT數據集。該藏文數據集共包括了2 400個三元組及其原句,并有11種常見的關系,在實驗中,我們采用的訓練集有2 000句,測試集有400句。
主要采用準確率P和召回率R以及F1值作為評估指標,不同于傳統的機器學習方法,我們沒有使用標簽類型來訓練模型,因此在評估過程中不需要考慮實體類型。同時我們會在訓練集中隨機選出10%的數據作為驗證集來優化模型的參數。
我們使用Word2Vec工具來生成詞向量,對于詞向量維度可選[20,30,50,80]。本文基于實驗效果最好的維度50維,即d=50。神經網絡隱層的數量依據啟發式規則,將LSTM編碼層單元數量設置成300層,LSTM解碼層單元數量設置成600層,學習率初始值設為0.002。具體參數如表1 所示。

表1 參數表
我們比較了各種算法在藏文實體關系抽取上的結果,包括傳統的SVM和LR方法,同時也比較了單一的GRU方法在任務上的結果,我們的方法取得了最好的結果。
同時本文比較每個詞性對于實體關系的抽取的影響,經過分析,選擇詞性NG(名詞)、詞性P(格助詞)、詞性V(動詞)、詞性A(動詞)作為特征控制變量輸入。即本文只選取其中一種詞性作為詞性特征輸入,并且將其他的詞性設置為空,進行二次實驗。
在不同方法上的實驗結果,如表2所示。

表2 方法結果比較
從表2可以看出,針對藏文的分割粒度以及詞性標注的影響,我們的方法較傳統的機器學習方法提升了很高的準確率。同時,在神經網絡的方法中,綜合比較了LSTM在藏文實體關系抽取任務上的不同處理,尤其是藏文語料的處理,我們采用了不同粒度對藏文進行處理,對藏文進行詞分割和字分割,并在神經網絡學習過程中添加詞性標注進行優化,我們的方法較純粹的神經網絡模型也有一定的提升。
這里,本文僅在藏文字級處理上進行進一步的詞性標注的比較,結果如表3所示。

表3 詞性結果比較
不難發現,詞性NG的影響比較大,經過分析我們發現,藏文中詞性NG在所有詞性中占比最大,約為85%。在缺少詞性NG的情況下,提取的準確率下降了至少10%,可見詞性NG對于藏文實體抽取的重要性很高。而詞性V在所有詞性中占比最小,約為2%。同時,我們也發現,詞性P以及詞性A對于結果的影響偏差很接近,藏文中的格助詞以及形容詞在一定程度上能幫助提高藏文實體抽取的準確度。
由于藏文語料稀少、處理過程中需要有專業人士進行校正,上述的切分過程都是先使用機器進行程序化處理,然后經過人工校正,處理周期較長,并且結果也需要有專業的人士來進行修正,幫助優化神經網絡參數。
經過專業人士修正,我們發現實驗中也存在以下不足: ①在處理藏文詞或者藏文字過程中,藏文語句的長度過長,往往幾百行后才能找到相應的實體和關系;②藏文語句中表達存在意思沖突現象,藏文中一個實體往往會表達多個意思,也就是說,藏文一句話中,除了標注實體以外,其他詞或者字中也表達相同的意思,給神經網絡模型造成誤判的現象;③本文方法中,在同一個句子中的兩個實體,往往也會出現在其他句子中,但關系表達不一致,也造成了錯誤率提高。
本文主要針對藏文語料匱乏的情況,提出一種將實體關系抽取任務轉變成一種序列標注任務的方法。同時,對藏文語料的處理也是本文的一大亮點,我們的實驗相對于傳統的機器學習以及普通的神經網路模型,取得了較好的準確率。但是我們的方法在藏文的處理上也存在一些問題,針對神經網絡的優化也沒有做對比試驗。在針對藏文特有的語法規則以及性質上面,本文沒有進行深入的研究。
在未來的工作中,我們會逐步優化藏文的處理,盡量減少人工的參與,同時不斷優化模型,添加藏文的特有規則,繼續添加藏文特有的詞性規則,使模型更適應于藏文的實體關系抽取,為后續的藏文自然語言處理的深入研究提供基礎。