王 潔,張瑞東,吳晨生
1(北京工業大學 信息學部,北京 100124)
2(北京市科學技術情報研究所,北京 100048)
自然語言處理(Nature Language Processing)是近年來快速發展的一門涵蓋了數學、語言學和計算機科學的交叉學科.其旨在讓計算機能夠正確的理解人類的語言,并且實現人與機器之間通過自然語言進行交互,其中包括信息抽取、機器翻譯、信息檢索、問答系統等方面[1].
命名實體識別是自然語言處理的一項關鍵任務,在1995年的MUC會議上被第一次引入,目的是識別文本中的特定類型的事物名稱和有意義的數量短語,包括命名性實體、時間、數字等三大類,又可細分為七個小類:人名、地名、機構名、時間、日期、貨幣以及百分比等[2].作為自然語言處理中的一項基礎任務,命名實體識別對于機器翻譯、信息的檢索與抽取等工作有重要意義.隨著時代的發展,命名實體識別的目標早已超出了上述幾類的范圍,特定領域的命名實體識別需求非常廣泛,如電子病歷、生物醫學等領域,本文的子實驗既是在會議名稱識別這一特定領域的命名實體上展開的.除了需要識別的實體在不斷增加外,命名實體識別方法也在不斷進步和完善[3–5].
傳統的命名實體識別多采用基于規則和統計機器學習的方法.最初,命名實體識別采用基于手工制定詞典和規則的方法.這些方法大多以語言學專家建立的規則知識庫和詞典為基礎,采用模式匹配或者字符串匹配的方法識別命名實體[6,7].對于規律性強的文本,基于規則的方法準確而且高效.但對于規律性不強的文本,規則的編寫變得困難,識別效果也相當不理想,所以人們開始將目光投向機器學習的方法.
在命名實體識別領域常用的機器學習方法有隱馬爾可夫模型(Hidden Markov Model,HMM)、條件隨機場模型(Conditional Random Fields,CRF)、最大熵模型(Maximum Entropy)、支持向量機模型(Support Vector Machine,SVM)等[8–10].其中最典型的也是應用比較成功的是隱馬爾可夫模型和條件隨機場模型.基于機器學習的方法在遷移性、識別效果等方面的表現優于基于規則的方法,但使用統計機器學習方法的命名實體識別模型也存在一些局限性.一方面,為了使推理易于處理,它需要明確的依賴性假設;另一方面,以統計模型為基礎的機器學習方法對特征選取的要求比較高,需要選擇對命名實體識別任務有影響的各種特征,即特征工程(feature engineering),它對識別結果有重要影響,但是該過程費時費力[11–14];最后,它們通常需要大量的與任務相關的特定知識,如設計HMM的狀態模型,或選擇CRF的輸入特征.
隨著深度學習研究的不斷深入,人們開始引入深度神經網絡來處理自然語言.2011年Collobert提出一種基于窗口的深層神經網絡模型,該模型可以自動學習輸入句子中的抽象特征,在訓練中使用反向傳播算法來訓練參數.其效果和性能超過了之前的傳統算法.該模型的主要局限性是使用固定長度的上下文,不能充分的利用語境信息[15–18].Mikolov于2010年提出一種基于循環神經網絡(Recurrent Neural Networks,RNNs)的語言模型,它不使用固定大小的上下文信息,通過重復鏈接,信息可以在這些網絡內循環,這種信息循環的方式非常適用于處理序列數據[19–24].
本文利用循環神經網絡在處理序列數據方面的優勢,建立了基于循環神經網絡的命名實體識別模型.循環神經網絡包含多種不同的變體,經過分析對比,本文最終選用了由RNN改進而來、結構相對簡單的GRU.本文結構安排如下:第2節介紹語料庫的構建;第3節闡述基于GRU的命名實體識別模型;第4節是實驗和分析;最后做全文總結.
以字作為輸入單位容易產生歧義,需要根據具體的語境信息判斷每個字的標簽,循環神經網絡能很好的計算和保持語境信息.RNN是比較簡單的循環神經網絡,不含“門”結構,訓練時會出現梯度消失或梯度爆炸的問題.LSTM與GRU是在RNN的基礎上改進而來的循環神經網絡,本文分析了RNN、LSTM和GRU三種循環神經網絡之間的關系,在此基礎上,提出了一個基于GRU的命名實體識別模型.該模型以字向量作為輸入,經過雙向GRU層計算,提取句子特征,經softmax層計算得到一個相應的輸出序列.
循環神經網絡是深度學習中常用的一類神經網絡,包括RNN和RNN的變體LSTM、GRU等,它利用序列信息并通過中間層保持這些信息,這使它在處理序列數據時有獨特優勢.
RNN將一個向量序列(s1,s2,···,sn)作為輸入,得到另一個序列h1,h2,···,hn,其中st表示時刻t的輸入向量,ht是隱藏層狀態,表示關于每個輸入時刻t的序列信息,它的結構示意圖如圖1.其中,

U、V、W是權值矩陣,f是激活函數,一般是Sigmoid或者tanh函數,ot是輸出向量.

圖1 RNN 網絡
理論上RNN可以學習長期依賴,但實際上它不能實現這個目標,因為根據求導的鏈式法則,公式(1)使得損失函數的梯度成為連續乘積的形式,這樣做會導致梯度消失或者梯度爆炸的問題.
為了解決梯度消失(或者梯度爆炸)的問題,Hochreiter和Schmidhuber[25]提出了一種RNN的改進型網絡:LSTM.在自然語言處理中常用的LSTM可以用如下公式來描述:

本文使用的GRU是RNN的另一種改進模型,它與LSTM非常類似,也是通過門來保持序列信息,同時克服RNN中的梯度消失問題.它的公式如下:

其中,zt是一個更新門,決定t–1時刻的信息有多少進入t時刻.rt是一個重置門,決定丟棄多少信息,二者共同決定ht的值.GRU只有兩個門,舍棄了LSTM中增加一個細胞狀態C的做法,把線性自更新的過程放到了隱藏層狀態的計算中,把h作為序列信息的載體,這樣做不但使得GRU的結構比LSTM更簡單,參數更少,而且加快了神經網絡的計算速度,節省了時間.
近年來,很多學者使用前饋神經網絡進行命名實體識別,得到了不錯的效果,這種方法一般使用輸入窗口,即利用固定長度的輸入來學習待識別詞的上下文信息,它的結構可以用圖2描述.

圖2 基于窗口的前饋神經網絡結構
因為窗口大小有限(如上圖的窗口大小是3),所以該方法學習上下文信息的能力不足.另一方面,該神經網絡的隱藏層狀態之間沒有聯系,不能夠學習到長期依賴,對于序列標注任務來說,這意味著丟失了序列信息.
循環神經網絡的輸入則不受窗口大小的限制,并且網絡的隱藏層之間是有聯系的,即攜帶了序列信息,如圖3所示.

圖3 基于 RNN 的序列處理結構
圖2和圖3中,xt表示t時刻對應的字或者詞.以字作為輸入單位,命名實體的長度一般會超過三個字,使用基于窗口的方法無法將整個名稱作為一個整體考慮,容易丟失信息,致使邊界判定準確率低,而且基于字的判別對上下文環境的依賴程度更高.循環神經網絡學習上下文信息與窗口大小無關,實現了學習長期依賴的目的,適用于命名實體較長的情況.本文分別使用循環神經網絡的變體LSTM和GRU作為模型的基本算法,并且對比說明了GRU的優勢.
為了充分利用每個字的上下文信息,這里使用了一個雙向GRU結構,即考慮了句子的正向和反向兩個方向上的序列信息.另外,用于會議等新實體識別的用料庫一般較小,所以模型的結構不宜過復雜,否則容易出現過擬合的現象.本文設計的命名實體識別模型如圖4所示.
圖4中,模型的第一層和第二層分別對應輸入層和Embedding層.由于神經網絡不能直接處理自然語言符號,所以,應該將輸入的字或者詞轉換成對應的向量,即Embedding層的工作,其中,向量Et與xt之間的關系滿足,即通過向量表LT查找xt對應的向量.輸入Et經過前向GRU層和后向GRU層計算得到了句子的正向信息和反向信息,兩者共同組成了隱藏層狀態,這里用ht表示,,經過狀態輸出層計算得到ot=f(ht),再由Softmax層進行概率歸一化計算,得到最終的預測值.

圖4 基于 GRU 的命名實體識別網絡
這里可以把命名實體識別當作一個序列標注過程,對于一個輸入序列:

經過模型計算,給每個輸入xt一個對應的標簽,得到一個相應的輸出序列:

對于輸入xt,預測結果為yt滿足:

yt是一個長度為n的向量,n是標簽種類的個數,即本文用向量表示預測結果,yt的每個位置上的值表示是該標簽的概率:


訓練時,使用交叉熵作為代價函數:其中,yi表示真實值,表示預測值,n是標簽的種類.
得到代價函數后,通過訓練集訓練模型,對于訓練集的使用,一般有批量梯度下降、隨機梯度下降和mini-batch gradient(小批量梯度下降)三種方法,本文使用第三種方法,因為批量梯度下降方法每次計算損失函數都要遍歷整個訓練集,并通過計算函數對所有參數的梯度來更新參數,這種方法每更新一次參數就要遍歷一次訓練集,導致計算開銷很大,計算速度較慢;隨機梯度下降法每次計算損失函數僅使用一條數據,并通過梯度下降來更新參數.與第一種方法相比,雖然該方法的計算速度比較快,但是收斂性能較差;而第三種方法則結合了二者的優點,它把訓練數據分成多個批次,計算損失函數時只使用其中的一批.這樣,梯度的方向由這一小批次中的數據共同決定,降低了方向選擇的隨機性,提高了收斂性能;同時,與整個訓練集相比,每個批次數據量要小很多,這降低了計算量,節省了計算開銷.
過擬合是使用人工神經網絡時經常遇到的問題,尤其是語料規模較小時,更容易產生過擬合現象,為了解決這個問題,本文采用了 DropOut方法.DropOut是Srivastava[26]提出的用來解決前饋神經網絡過擬合問題的方法,它通過在訓練過程中隨機的讓一些神經元暫時停止工作來增加網絡的稀疏性.與權重衰減、過濾器范數約束等其它防止過擬合的方法相比,DropOut方法更有效,而且計算方便,只需要在訓練過程中產生相應的隨機數來控制神經元的開閉即可.在循環神經網絡中,將DropOut應用到非循環層,這樣做即能有效的避免過擬合的出現,又能保證神經元之間不失去“聯系”,保存了序列信息.
本文提出的模型需要在監督訓練數據上進行訓練.對于特定領域的命名實體識別來說,往往沒有可用的標注語料,自己構建的語料庫規模又比較小,為了提高模型的效果,一方面,應當盡可能降低模型的復雜程度,所以,本文設計的模型只使用了一層雙向GRU結構;另一方面,將已有的相關標注語料融合到自建語料庫中,可以豐富預料的語境語義特征,提高識別效果,第3節通過實驗說明了該方法的可行性.
本文分別在人名這一傳統命名實體和會議名稱這個特定領域實體上進行了實驗.人名識別實驗使用的是人民日報語料庫.會議名稱識別使用的是自建語料庫.由于本文的成果最終要運用到情報所的工作實踐中,所以兩類實驗使用的都是字向量,第3.2節會進一步分析使用字向量的優勢.
語料庫是進行自然語言處理必須的數據集,它承載著重要的語言知識.基于神經網絡的命名實體識別需要帶標注的預料庫作為訓練數據.本文除了在傳統命名實體領域測試模型外,還使用會議名稱這一特定領域實體對模型進行了測試.由于目前沒有會議名稱識別的語料庫,本文通過搜集文本、篩選、分詞和標注等步驟構建了一個針對會議名稱識別的語料庫.
文本搜集是構建語料庫的第一步.本文搜集的文本來自中國學術會議在線網.這里搜集了會議預告、會議新聞、會議評述、會議回顧的相關材料,一共得到了31.2 M的初始文本.
第二步需要人工篩選搜集的文本,刪除大量與會議名稱無關的段落,并使用結巴分詞對文本句子進行切分,形成了初步標識的語料庫.
第三步,標注已經處理過的文本,即人工標注會議名稱.會議名稱有兩種,一種是簡單會議名稱,如“中國醫學會年會”、“香山論壇”、“十八屆四中全會”等,這類名稱不存在嵌套,屬于簡單的會議名稱;第二種是結構復雜的會議名稱,包括嵌套格式、并列結構等,如“香山科學會議第473次學術討論會”、“第四屆中國古籍數字化國際學術研討會暨第六屆文學與資訊技術國際研討會”.本文采取的策略是最大化邊界,即將最完整的會議名稱作為一個標注單位,給予會議標簽,完成標注.這樣做的優勢是可以根據后續實驗的具體策略靈活的改變會議名稱的標注方式,既可以采用并列結構分別標注的方法,也可以采用整體標注的方法.
完成上述步驟后,得到了一個針對會議名稱識別的專用語料庫,為實驗提供了可用的數據集.
語料庫中的數據并不能直接輸入到本文的模型中,因為神經網絡只能計算數字,所以應先將詞或者字轉換成數字形式,即轉換成向量.傳統的方法是先將文本分詞,以詞向量作為輸入單位.以詞作為輸入單位需要首先進行分詞,本文沒有采用先分詞再識別的方法,而是直接使用字向量作為模型的輸入,采用字向量有如下兩點優勢:
1)以字作為輸入單位可以避免不同分詞系統及分詞錯誤對識別效果的影響,節省了分詞時間,提高了模型的識別速度;
2)新領域的自建語料庫相對較小,如果以詞作為輸入單位,那么測試時會遇到很多未登錄詞,降低識別效果.而常用漢字不超過 3000 個,相對于詞,數據集覆蓋的字的種類更加全面,采用字向量可以避免因為未登錄詞過多而影響識別效果的情況.
會議名稱識別中,為了進一步提高模型的泛化能力,訓練字向量時采用了兩種數據集,一種是基于自建語料庫的數據集,記為DataSet1;另一種則通過加入人民日報語料庫擴展了原有數據集,這種擴展并沒有增加帶標注的會議語料的規模,只是增加了與會議無關的文本,達到豐富數據集特征的目的,該數據集記為DataSet2.本文使用的字向量隨循環神經網絡訓練過程產生.
命名實體識別中常用的標注策略有BIO、BIEO、BIESO,O 表示不是實體,S 表示單個實體,B 表示實體其實邊界,I表示實體的中間部分,E表示實體的結束邊界.由于本文采用的是輸入形式是字向量,所以必須同時找出起始和結束邊界,所以采用BIEO形式的標注策略.命名實體識別的結果是否正確有兩個標準:①實體的邊界正確,類型正確;② 類型正確,邊界只覆蓋了實體的一部分.只要滿足上述兩個條件中的一個,就認為識別結果是正確的.
本文使用精確率、召回率和F值來評價模型的識別效果.命名實體識別可以看做分類問題,以人名識別為例,正類(Positive)表示該詞的預測結果是人名,負類(Negative)表示該詞的預測結果不是人名.人名被正確識別的個數為TP,即正類中真正的人名個數是TP;正類中非人名的個數為FP;負類中非人名的個數為TN;負類中被錯誤識別的個數為FN,即被預測為負類的人名的個數是FN.則精確率P、召回率R、F值的計算公式如下:

通過上述評價指標,文章對比了LSTM、GRU和RNN的識別效果.表1是人名的識別結果,可以看出,三種網絡在召回率方面相差較少,但是GRU的識別結果的準確率更高,得到了最高的F值.

表1 人名識別實驗結果
表2和表3分別是在DataSet1和DataSet2上對會議名稱進行識別的結果,觀察兩個表可知,在兩個數據集上,GRU的都得到了最高的F值.由表2實驗結果可知,在DataSet2數據集上訓練的模型,效果要好于DataSet1上訓練的模型.雖然DataSet2數據集只是增加了與會議無關的文本,但它豐富了文本特征,提高了模型的泛化能力.

表2 DataSet1 會議名稱識別結果

表3 DataSet2 會議名稱識別結果
表4是GRU和LSTM的訓練時間,根據實驗結果可知,GRU與LSTM的效果相差并不顯著,但是由于GRU結構相對簡單,參數較少,所以它的訓練時間比LSTM減少約15%,這是GRU的優勢所在.

表4 GRU 與 LSTM 訓練時間對比
本文提出了一個基于GRU的會議名稱識別模型,并且在傳統命名實體和特定領域實體兩類實體上進行了實驗,并且根據識別會議名稱的需要搜集了會議文本,通過機器分詞和人工標注構建了語料庫.本文使用的方法的最大的優勢是不依賴外部知識,省去了人工設計特征的繁瑣工作,是一種端到端的會議名稱識別方法.識別特定領域命名實體是命名實體識別的一個發展方向,但經常面臨沒有監督訓練數據的困境,自建的數據庫又比較小,這就在一定程度上限制了神經網絡模型的泛化能力,如何利用自建的小語料集訓練一個具有足夠泛化能力的神經網絡模型是一個值得探索的方向.