王 揚 鄭 陽 楊 青 王旭強 田雨婷
(國網天津市電力公司信息通信公司 天津 300310)
隨著互聯網技術的飛速發展,各個行業都產生并累積了豐富的數據資源。其中作為語言載體的文本數據占據了很大的比重,這些數據普遍存在于各行各業中,包含著大量的有用信息。然而,文本信息一般是以非結構化或者半結構化文本的形式呈現的,無法使用統計分析工具對其中蘊含的信息進行分析和挖掘,人工篩選又花費大量的時間[1]。因此,如何高效準確地從眾多的文本數據中進行信息抽取(Informat-ion Extraction)是一個值得研究的問題。信息抽取主要是指從一個給定的文本中識別并提取出具有一定現實意義的或者感興趣的子序列結構化的內容,是很多自然語言處理任務中基礎但又很重要的一環[2]。
信息抽取技術的發展也使得很多文本、Web系統等應用程序從中受益,例如使用基于Web的信息抽取系統來抽取多種多樣的信息如招聘信息、新聞信息和技術成果信息等[3-5]。除此之外,信息抽取技術在一些重要的應用領域中也得到了充分的應用。駱軼姝等[6]使用信息抽取方法來處理非結構化的甲狀腺病史文檔,實現了對甲狀腺病史的結構化,并將結構化的結果通過RDF格式進行了存儲,對該疾病的診斷有著重要的意義;丁晟春等[7]使用信息抽取技術來實現對動物衛生事件輿情信息中時間、地點、疫病名稱、動物數量和應對措施等內容的抽取,提高了動物衛生領域輿情監測的效率;李艷[8]基于信息抽取技術來提取案件描述文本中的有用信息,有效節約了相關人員對過往案件的查閱過程中花費的時間和精力。
現有的信息抽取工作多是對于處在同級語義的信息抽取,如在新聞文章中抽取其中存在的命名實體,如人名(PER)、地名(LOC)、組織機構名(ORG)等[9],被抽取出的信息通常用三元組
然而,在許多實際問題中,文本內容具有層次嵌套的邏輯結構。如圖1所示,其中:(a)是無層次結構的信息抽取問題;(b)則包含了嵌套的層次信息。

圖1 帶層次結構與無層次結構信息抽取示例
現有的信息抽取算法只能識別到文本中存在的某一層的信息而丟棄其他層級存在的有用信息,進而喪失了使用價值。對于該問題,一個普遍的做法是依次使用多個標注模型,將由一個標注模型得到的結果送入下一個標注模型來進行下一層的信息抽取,但這種方法無疑會導致誤差的傳播[10],上一層標注的錯誤結果傳入下一層往往會導致更為嚴重的錯誤。
基于上述問題以及相關研究工作,本文以具有兩層語義結構的貨運航運郵件文本數據為研究對象,結合其層次性的特點,構建基于聯合標注的層級信息抽取方法。同時對高層的盤塊信息和底層的基本信息進行建模,并基于聯合學習方法融合不同層級的標注結果,實現對層級信息的抽取,有效地避免了依次使用多個標注模型來處理層級信息所導致的誤差傳遞的問題。經過實驗驗證,本文方法在該任務上具有更好的有效性。
信息抽取是自然語言處理領域內一個重要的子領域,迄今為止相關領域的學者們已經進行了很多研究。在這些研究工作中,信息抽取的方法大致可以分為基于規則的方法、基于統計學習的方法和基于深度學習的方法三大類。
基于規則的信息抽取技術是目前應用較為廣泛和發展比較成熟的技術,其主要分為基于詞典和基于指定規則兩個類別。
基于詞典的方法首先構建了一個模式詞典,從而使用該詞典來從未標注的新文本中抽取需要的信息。比較出名的CRYSTAL系統[11]便是基于這種方法。這種方法也被叫做基于模板的方法,其核心在于如何學習出可用于識別文本中相關信息的模式字典。
不同于基于詞典的方法, 基于指定規則的方法使用一些通用規則而不是詞典來從文本中提取信息。其中一種比較常用的方法是學習要提取的信息邊界的句法或者語法規則,如判別出信息周圍可能存在的特殊詞組等作為界定。霍娜等[12]對巴西泥石流、俄羅斯客輪沉沒、印尼火山爆發等三種災難追蹤事件報道進行了相關研究,并構建了54條文本抽取規則來進行災難事件的信息抽取。丁君軍等[13]通過大量的閱讀、分析,歸納出了對應的規則來完成了對《情報學報》中學術概念的抽取。
基于規則模板的方法同樣存在很大的缺陷,不僅需要依靠大量的專家來編寫規則或模板,覆蓋的領域范圍有限,而且很難適應數據變化的新需求。
由于基于規則方法的缺點,一些經典的機器學習模型如支持向量機[14]、隱馬爾可夫模型[15]、條件隨機場[16]和決策樹[17]、最大熵模型[18]等逐漸被提出用于信息抽取。Mayfield等[14]利用支持向量機在手動提取的數據集特征上進行訓練,在英文命名實體識別數據集上得到了84.67%的F1值,超越了之前的方法。Zhou等[15]提出一個基于HMM的命名實體識別系統,融合了大小寫、數字等簡單單詞特征以及句子內部語義特征等,在MUC-6和MUC-7的英語實體識別數據集上分別得到了96.6%和94.1%的F1值。Lafferty等[16]提出了CRFs模型,具有將過去和未來的特征相結合、基于動態規劃的高效訓練和解碼等優點。
基于統計學習模型的信息抽取方法取得了較好的表現,但是嚴重依賴于人工提取的特征。而近些年來出現的神經網絡算法具有較強的學習能力以及自動抽取特征的能力,很適合用到信息抽取的任務中。
Collobert等[19]使用CNN作為特征提取器,對詞向量表示序列進行建模,最終用CRF模型預測序列的標簽。Huang等[20]首次將BiLSTM-CRF模型應用到信息抽取中,雙向LSTM即BiLSTM能夠有效利用過去和將來的輸入特征,CRF能夠建模句子級別的標簽信息,并與LSTM、BiLSTM和LSTM-CRF等退化模型結構作對比,在詞性標注、組塊分析和實體識別中取得了較好的結果。進一步地,Ma等[21]提出了BiLSTM-CNN-CRF模型,首先使用CNN建模字符信息,將CNN建模得到的字符級別特征與預先訓練的詞向量相結合,之后送入BiLSTM-CRF中,取得了更好的實驗效果,且提出的模型是完全端到端的,不需要任何的特征工程和數據預處理手段。
在層次級信息抽取任務中,對任意文檔d可以將其按句分割為d={s1,s2,…,sT},T代表該文檔所包含的句子的個數。d中的任意句子si={wi1,wi2,…,wiN},N為該句中的單詞數。該任務首先對句子級信息進行建模,得到句子級的高層標簽TAG_HIGH,然后結合句子級標簽TAG_HIGH來對單詞級的信息進行建模,得到單詞級的低層標簽TAG_LOW,進而抽取出層級的語義信息四元組:
考慮到層級語義數據所具有的特點,本文提出基于聯合序列建模的層級信息抽取方法。首先,使用卷積神經網絡模型來建模每一個單詞的字符表示ci。然后拼接預訓練好的單詞的詞嵌入向量ei作為單詞級的向量表示wi。再將單詞的向量表示wi以句子為單位送入雙向LSTM中進行編碼得到編碼后的單詞級表示向量ht,并結合注意力機制得到句子級的特征表示si。最終使用CRF模型完成對單詞級和句子級的信息的標注,結合兩層的標注結果進而抽取出文檔中的關鍵信息。本文模型結構如圖2所示。

圖2 基于聯合學習的層級信息抽取方法
接下來本文將沿著自下而上的方向詳細介紹模型的具體結構。
卷積神經網絡(CNN)是近些年來逐步興起的一種人工神經網絡模型,具有很強的特征提取能力,在自然語言處理和圖像識別任務中得到了廣泛的應用。在近幾年的研究工作[22-23]中更是證明了CNN模型能夠有效地從單詞的字符中提取出形態學特征,如一個單詞的前綴、后綴等,因此本文選用CNN模型提取單詞的字符特征。其結構如圖3所示。

圖3 基于CNN的字符特征提取模型
其中每一個單詞wi可由一個字符表示矩陣表示,矩陣的每一行為字符的嵌入表示,矩陣的行數為該單詞具有的字符的個數。對該矩陣進行卷積和最大池化操作后便得到了該單詞對應的字符表示向量ci,接下來拼接預訓練的GloVe[24]詞向量ei作為該單詞的向量表示:
wi=[ei;ci]
(1)
在完成字符級的特征提取后,得到了由字符級特征和預訓練詞向量拼接的單詞的向量表示wi,接下來則需要對句子中的時序關系進行建模。而在時序關系的建模上,循環神經網絡模型(RNN)及其變體模型(LSTM、GRU等)通常具有很大的優勢。循環神經網絡通常可以按照時間步來展開,其基本結構如圖4所示。

圖4 循環神經網絡的基本結構
其中:xt為t時刻的輸入向量;Ot為t時刻的輸出向量,ot=softmax(Vst)為t時刻的輸出,表示預測標簽的概率分布。ht時刻的隱藏層狀態。ht可以通過上一時刻的狀態ht-1以及當前時刻的輸入xt來計算:
ht=f(Uxt+Wst-1)
(2)
式中:f()為tanh函數;W、U、V為網絡模型學習的參數。
在實際應用中,循環神經網絡通常會存在梯度消失和梯度爆炸的問題,長短期記憶網絡(LSTM)則可以有效緩解該問題,因此一般會選擇使用LSTM網絡來進行對時序關系的建模。LSTM依靠三個部分來完成對細胞狀態的保護和處理,分別為輸入門、遺忘門和輸出門,其中的門結構均是通過Sigmoid函數以及按位乘運算操作來實現的。在時間序列的第t個時間段,長短期記憶網絡的各個部分的計算方法如下:
ft=σ(Wf·[ht-1;xt]+bf)
(3)
it=σ(Wi·[ht-1;xt]+bi)
(4)
(5)
(6)
ot=σ(Wo·[ht-1;xt]+bo)
(7)
ht=ot⊙tanh(Ct)
(8)

雙向LSTM即是在原來從左往右的模型基礎上再加一個從右到左的LSTM,但是輸入是共享的,輸出也是由前向隱藏狀態和后向隱藏狀態共同決定的。雙向LSTM之所以被提出來是因為在序列建模中,當前的輸出不僅與前面的信息有關系,也與后面的信息有關系,使用LSTM時隱藏層狀態ht只能從過去的輸入中獲得信息,無法獲得該輸入之后的信息。在實體識別、組塊分析等信息抽取任務上使用雙向模型的效果要比單向的要好。
因此,本文選用BiLSTM來對單詞級的特征進行建模,對任意句子s中的單詞表示w1,w2,…,wN送入BiLSTM模型中:
(9)
(10)
(11)

注意力機制由人的視覺注意力啟發而來,通常人的眼睛在觀察事物的時候會集中注意力在一些比較重要的部分而忽略掉一些沒有用的細節,在理解一篇文章時總是能夠抓住最為重要的段落、句子或詞語,這就是注意力機制[25]。該機制可以用于建模長句中的語義關系,在自然語言處理任務中得到了廣泛的應用。
在經過BiLSTM層之后,每個詞wi都被表示為隱藏狀態ht,融合了句子內部的上下文語義信息。為了獲得文檔的高層語義信息,需要建模句子級的特征表示并對其進行標注。對任意句子s,有s={h1,h2,…,hN},其中ht為單詞向量經BiLSTM編碼后的結果。若將各單詞的特征表示進行簡單的拼接,則會忽視多個單詞對句子語義的影響程度大小,可能會引入一定的噪聲,影響句子級特征表示的結果。因此本文引入了注意力機制,對當前單詞ht與句子中的所有詞進行對齊模型計算,最終按權重加權求和,得到富含相關語義信息的單詞的新表示zt:
(12)
式中:αi,t表達的是ht與hi的相關程度。
(13)
(14)
式中:M為權重,是注意力模型要學習的參數。通過上文所計算的注意力值,得到了具有不同權重的新的單詞表示zt,以其均值作為句子的特征表示:
(15)
式中:T為句子中單詞的個數。在以上的部分中得到了單詞級的特征表示hi以及句子級的特征表示si,在下面的部分中使用CRF模型分別進行句子級和單詞級的標注。
在序列標注以及廣泛的結構化預測任務中,對一個給定的輸入單詞序列,考慮其相鄰的單詞的標簽關系并解碼出全局最優的標簽序列是很有必要的,而條件隨機場(CRF,Conditional Random Field)能很好地捕獲序列的局部結構并進行最優的全局解碼,因此被廣泛應用到序列標注的任務中。
對于給定的輸入序列x={x1,x2,…,xn},其中xi為第i個單詞的向量表示,y={y1,y2,…,yn}為輸入序列x對應的標簽,鏈式CRF定義了對于給定的輸入序列x其標簽序列y的概率:
(16)
式中:Y(x)為所有可能的標簽序列的集合;ψi(y′,y,x)為勢函數。ψi(y′,y,x)定義為:
(17)


(18)
本文分別使用CRF模型完成對句子級和單詞級的標注,其中對句子級標注模型,使用句子級特征表示si作為輸入特征,單詞級標注使用單詞級特征表示hi并拼接其所在句子的特征向量si作為表示特征,以引入句子的語義信息。
(19)
(20)
式中:LH為對句子序列進行標注得到的損失;LL為對單詞級的序列進行標注得到的損失;WH、WL、bL和bH為待學習權重矩陣和偏置向量。
由此,可以得到聯合標注模型的總損失函數:
L=LH+λLL
(21)
式中:λ為超參數,用于調節聯合模型在訓練時優先側重的傾向。在本任務中,對高層標簽的標注相對而言較為重要,實驗時設定λ值為0.7。
為了驗證本文模型的有效性,本文使用具有兩層結構的貨運航運郵件來進行實驗。數據層次級結構如圖5所示。

圖5 數據的層級結構
數據集共包含3 917個郵件文本,每個郵件文本中包含一個或多個盤塊信息,需要抽取出來的盤塊信息有船盤、貨盤、期租盤三種,每個盤塊占據郵件的一行或者多行。三類盤塊中包含了多類字段信息,如:船盤內包含了船名、載重量、航速、建造船廠和控船方等;貨盤中主要字段有貨種、貨量、租家和受載時間等;期租盤包含的主要字段有租家名稱、交船時間/地點和租期等。三類盤塊一共涵蓋了118類信息,其中34類信息在多類盤塊中重復出現。
為驗證所提出方法的性能,本文將該模型與其他幾種方法的實驗效果進行對比,所用的對比算法如下:
(1) 層級BiLSTM-CNN-CRF。使用兩層單獨的BiLSTM-CNN-CRF模型進行層級信息抽取,第一層提取盤塊級信息,然后使用不同的BiLSTM-CNN-CRF模型對不同類別的盤塊內的數據進行抽取。
(2) BiLSTM-CNN-CRF。在本文實驗中,使用高層標簽與低層標簽拼接的方法得到包含了層次信息的標簽,如船盤中的船名被標記為“B-船盤|B-船名”,使用BiLSTM-CNN-CRF模型進行標注。
(3) BiLSTM-CRF。標簽方式同上,不使用CNN來提取字符級特征信息,使用BiLSTM直接對預訓練的單詞向量進行編碼。
(4) LSTM-CNN-CRF。標簽方式同上,使用單向LSTM來建模特征表示,其他設定與BiLSTM-CNN-CRF模型一致。
本文的方法獨立地進行高層和低層的信息抽取,并使用聯合學習方法進行信息交互促進兩層標注任務的相互影響,最終拼接兩層的標簽來提取層級信息。

基于3.3節的實驗參數設定,本文在貨運航運數據集上進行層級信息抽取對比實驗,并使用精確率、召回率、F1值作為評價指標,其值的計算方式如表1所示,評價準則均是越大越好。

表1 評價指標
在層級信息抽取問題中,可以通過真實的四元組與模型預測出的四元組進行比對,進而求出TP、FP、TN、FN等值。其中:TP代表真實存在該四元組,模型也預測出了該四元組的個數;FN代表真實存在該四元組,但模型沒有預測出來的個數;其他兩類類推。
為測試預訓練詞向量對模型性能的影響,本文首先使用不同的詞向量表示進行實驗,以9 ∶1的比例劃分訓練集和測試集,評價指標使用F1值,實驗結果如表2所示。

表2 不同詞向量表示的實驗結果
可以看出,GloVe詞向量表示方法相對隨機初始化詞向量和Word2vec詞向量有著更好的性能提升,因此本文選用了GloVe詞向量進行后續的實驗,以9 ∶1的比例劃分訓練集和測試集,并綜合使用精確率、召回率和F1值作為評價指標,實驗結果如表3所示。

表3 貨運航運數據集層級信息抽取結果
可以看出,本文模型具有優于其他對比方法的性能,驗證了其有效性。
本文分別以0.1、0.3、0.5、0.7和0.9等比例劃分訓練集和測試集,以此來分別檢驗在不同訓練集比例下測試模型的效果,評價指標使用F1值,實驗結果如表4所示。

表4 不同比例劃分數據集實驗結果
可以看出,無論是在何種比例劃分的測試集上,本文模型都具有優于其他對比方法的效果,在使用較小的訓練集的情況下,本文方法依然具有較高的F1值,能有效應對實際應用中訓練數據較少的情況。
除上述實驗外,本文還進一步分析了模型對參數的敏感程度。在本文方法中使用了CNN模型來提取出字符級的語義表示,然后再拼接預訓練詞向量作為其他模塊的輸入,其字符級特征的提取在本文方法中扮演著重要的角色。因此這里主要研究了用于提取字符級特征的CNN模型的參數對于模型效果的影響。圖6展示了CNN的卷積核個數從16變化到512的過程中模型在該數據集上信息抽取性能F1值的變化情況。

圖6 分類性能隨卷積核個數變化情況
可以看出,當卷積神經網絡的卷積核的個數增加時,模型的分類性能在整體趨勢上有所上升,但當卷積神經網絡的卷積核的個數過多時,模型的性能反而會略微下降。原因是卷積核的個數過多,神經網絡模型過于復雜,很容易處于過擬合的狀態,不能很好地完成預測任務。因而在本文實驗中使用256個卷積核進行句子級特征的提取,以達到最佳分類效果。
為分析本文模型的實際效果同樣進行了信息抽取的實例展示,使用本文模型與相對其他方法效果更好的BiLSTM-CNN-CRF對圖7所示的郵件文本進行信息抽取。

圖7 用于信息抽取的文本示例
該示例文本由四行組成,其中:第一行為無用信息;第二行、第三行為一個貨物盤塊;第四行為一個船只盤塊,其具體真實標簽與模型預測結果如圖8所示。

圖8 示例郵件文本信息抽取結果
可以看出,本文模型相對于BiLSTM-CNN-CRF模型能更好地結合高層級和低層級的語義信息,進而做出更為正確的預測,有效地提升了層級信息抽取的正確率。
在大數據的背景下,針對層級文本數據的信息抽取問題在很多研究課題與實際應用中都占據十分重要的地位,具有很重要的現實意義。本文以貨運航運數據為研究對象,構建基于聯合標注的層級信息抽取方法,對不同層級的信息獨立進行抽取,并結合多任務學習的方法進行聯合訓練。最后對實驗結果進行了細致的分析與對比,證明了本文模型的有效性。本文提出的聯合標注的層級信息抽取方法為面向層級文本數據的信息抽取任務提供了一定的思路,通過大量的實驗以及結果分析為后續的研究工作提供了理論依據和實踐基礎。
隨著深度學習理論的發展,深度神經網絡方法在眾多任務中均展現出較好的實驗效果。目前本文所使用的模型均為淺層的神經網絡模型,并沒有涉及到過于復雜的網絡結構,可能無法達到最優的推斷性能。因此在后續的研究工作中將對該框架做進一步的改進,使用更為優秀的神經網絡模型,如使用Transformer模型等,以期達到更好的推斷效果。