張文濤
(四川大學計算機學院,成都610065)
命名實體識別(NER)是許多自然語言處理下游任務(關系提取、知識圖譜等)的基礎,其旨在從非結構化文本中識別命名實體,如人員、位置、產品和組織名稱等。
目前,高性能的NER 模型均基于神經網絡。Ham?merton(2003)[1]提出了基于LSTM 的模型,首次將神經網絡引入NER 任務中。Lample 等人(2016)[2]提出了基于BiLSTM-CRF 的模型,獲得了較好的性能。Ma 和Hovy(2016)[3]在此基礎上引入了CNN 來計算字符級嵌入。由于中文的特殊性,當上述NER 模型應用于中文時存在一些障礙。
問題1:中文是一種符號語言,其字形蘊含了豐富的意義信息。現有的高性能NER 系統主要針對英文設計,無法利用中文的字形信息。
問題2:中文不存在明顯的單詞邊界。現有的高性能NER 系統應用于中文時需要首先進行分詞操作,然后對單詞序列進行標記[4]。然而,中文分詞系統不可避免地會產生一些錯誤的分詞,進而對下游NER 任務產生負面影響[5]。
問題3:高性能神經網絡通常需要在一個非常大的標注數據集上進行訓練。目前,中文NER 數據集主要有TAC-KBP/ EDL Track(2015-2017)、ACE 2005、SIGHAN bakeoff 2006 NER MSRA、微博NER 等。總的來說,標注數據量比較少,各個數據集的內容類型(新聞、廣播、微博)、標注的實體類型均有所不同。
針對問題1:本文介紹了利用字形信息的兩種思路。第一種思路,從視覺角度來抽取字形信息;第二種思路,從字符的部首組成角度來抽取字形信息。
針對問題2:本文介紹了利用詞匯信息的兩種方法。第一種方法,基于LSTM 變體。第二種方法,基于圖模型。
針對問題3:本文介紹了利用不同任務的數據集、不同域的數據集來提高中文NER 模型性能的方法。
漢語是一種符號語言,其字形蘊含了豐富的意義信息。然而,主流的嵌入表示計算方法[6](連續詞袋模型、Skip-Gram 模型等),均無法抽取中文字符蘊含的字形信息。
針對這一問題,主要有兩種思路:
第一種思路,以Yuxian Meng 等人(2018)[7]為代表,從視覺角度來抽取字形信息;第二種思路,以Dong 等人(2016)[8]為代表,從字符的部首組成角度來抽取字形信息。
Yuxian Meng 等人(2018)[7]提出了Glyce 模型,從兩個方面入手充分抽取字形信息。
在數據方面:漢字有著悠久的進化歷史。經歷數次簡化的現代中文,已經丟失了大量的象形文字信息。通過收集不同歷史時期(金文、隸書、篆書、魏碑、繁體中文、簡體中文)、不同書寫風格(宋體、草書、隸書)的文字,來整合各種象形文字的特征并提高模型的概括能力。
在模型架構方面:相較于其他任務漢字字符圖像的尺寸較小,這導致使用普通CNN 的性能不佳。通過采用適合漢字字符嵌入任務的田字格-CNN 架構,提高模型抽取字形信息的能力。
一個漢字字符通常可以分解為多個部首。這些部首是構成漢字意義的最基本單位,是漢字的內在特征,具有附加的語義信息。含有相同部首的字符通常具有相似的意義。如“鐵”、“銅”和“金”都具有與金屬相關的意義,因為它們含有共同的部首“金”。利用部首信息可以使具有相似部首序列的字符在向量空間中彼此靠近。
Dong 等人(2016)[8]提出了基于BLSTM-CRF 的部首模型,將漢字字符分解為部首序列。
對于一個漢字字符:首先,將其分解為一系列較小的部首。其次,利用漢字的書寫順序,將組成該漢字的部首排成一個部首序列。再次,對部首序列應用雙向LSTM 進行處理,得到兩個方向的狀態序列。最后,連接兩個方向最后時刻的狀態作為字符的嵌入。
目前,最先進的NER 系統通常以單詞為操作單位。當應用于中文文本時,首先要使用現有的中文分詞系統對文本進行分詞,然后對單詞序列進行標記。然而,中文分詞系統不可避免地會產生一些錯誤,進而對NER 任務產生負面影響。
針對這一問題,主流思路為:使用以字符為操作單位的模型,同時借助詞匯特征來使用單詞邊界信息。目前,針對該思路主要有兩種建模方法:
第一種方法,以Zhang 和Yang(2018)[9]為代表,基于序列建模,使用LSTM 的一種變體。
第二種方法,以Gui 等人(2018)[10]為代表,基于圖模型。
Zhang 和Yang(2018)[9]介紹了一種長期短期記憶網絡(Lattice LSTM)的變體(如圖1 所示),聯合建模字符序列及其所有匹配的單詞,充分利用了詞匯的邊界信息。模型基于字符的LSTM-CRF 網絡,借助Lattice LSTM 將單詞信息集成到單詞的開始字符和結束字符之間的一個快捷路徑中。Lattice LSTM 中的門控單元可以將詞匯信息從不同路徑動態路由到每個字符,自動控制句子從開始到結束的信息流動。通過訓練,Lat?tice LSTM 可以學會自動從上下文中查找更多有用的單詞,從而獲得更好的性能。

圖1 Lattice LSTM模型
該模型存在著一些問題:①門機制有時無法選擇正確的路徑,極端情況下可能會導致模型退化為部分基于單詞的模型。②每個字符都有一個可變大小的候選單詞集,這意味著輸入和輸出路徑的數量是不固定的。在這種情況下,Lattice LSTM 模型失去了批訓練的能力。

圖2 WC-LSTM模型
Liu 等人(2019)[11]針對上述問題,提出了WCLSTM 模型(如圖2 所示)。針對模型退化問題:直接將單詞信息分配給單個字符(前向WC-LSTM 的結束字符和后向WC-LSTM 的開始字符),并確保字符之間沒有快捷路徑。針對批處理問題:引入四種策略從不同的單詞中提取固定大小的有用信息,保證模型在不丟失單詞信息的情況下進行批量訓練。
發動機 ....................................................................4.0升水平對置6缸自然吸氣
Gui 等人(2019)[10]介紹了一種圖神經網絡(如圖3所示),利用詞匯信息將句子轉換為有向圖,并將中文NER 作為節點分類任務來實現。

圖3 基于詞匯的圖神經網絡模型
給定詞典和輸入句子,將句子轉換為有向圖分為三個步驟:第一步,找出句子中與詞典匹配的單詞集合。第二步,將每個字符作為有向圖的節點。第三步,對于匹配的每個單詞,將其第一個字符和最后一個字符連接起來作為有向圖的邊。
有向圖中每個節點的狀態表示文本序列中對應令牌的特征,每個邊的狀態表示對應的匹配單詞的特征。有向圖中還存在一個全局中繼節點,其連接所有節點和邊,收集句子的全局信息。
目前,最先進的NER 系統通常基于神經網絡。高性能神經網絡通常需要在一個非常大的標注數據集上進行訓練。在命名實體識別中,通常沒有足夠的領域內標注數據來直接訓練模型。現有的中文NER 數據集包括TAC-KBP/EDL Track(2015-2017)、ACE 2005、SIGHAN bakeoff 2006 NER MSRA、微博NER 等。總的來說,中文NER 數據集的總量較少,各個數據集的內容類型(新聞、廣播、微博)和標注的實體類型不盡相同。
針對這一問題,主要有兩種思路:
第一種思路,利用其他域的標注數據集。目前,中文NER 主要集中在正式文本(新聞)、非正式文本(微博、郵件等)兩個領域。因為標簽分布的差異,不能直接將源域上訓練的模型應用到目標域。借助領域適應技術,充分利用源領域豐富數據,提高目標領域的性能。
第二種思路,利用其他任務的標注數據集。與NER 相比,中文分詞(CWS)的標注訓練數據量非常豐富。鑒于兩個任務存在一些相似性,可以嘗試使用中文分詞任務的信息來改進中文實體識別任務的性能。
第一種方法(如圖4 所示):以Lee 等人(2017)[12]為代表,目標域和源域使用相同結構的模型。具體步驟為:首先,使用來自源域的標注數據來訓練模型;然后,使用學習到的參數來初始化目標模型;最后,使用來自目標域的標注數據來優化初始化的目標模型。

圖4 參數初始化方法
第二種方法(如圖5 所示):以Yang 等人(2017)[13]為代表,基于多任務學習,使用目標域和源域的標注數據同時訓練兩個模型。除CRF 層外,兩個模型在訓練過程中共享其他參數。

圖5 類多任務學習方法
上述兩種方法存在一個共性問題:針對源域和目標域進行訓練時,模型使用通用的嵌入。這樣的操作基于一個假設:輸入特征空間沒有發生域移位。然而,當兩個領域具有明顯不同的語言風格并且涉及大量領域特定的術語時,這樣的假設可能是錯誤的。
針對這一問題:第一步,我們在源域和目標域的標注數據集上分別進行訓練,得到兩個領域特定的嵌入。第二步,引入單詞適應層(Lin 等人,2018)[14],將目標域嵌入空間中學習到的嵌入內容投影到源域嵌入空間中。
中文分詞(CWS)的任務是識別單詞邊界。中文NER 的任務可以分解為識別單詞邊界和判斷實體類型兩個部分。兩個任務存在一定的相似性,也存在著一些差別。

圖6 中文分詞任務與中文命名實體識別任務
將兩個任務共享的信息稱為任務共享信息,將任務單獨使用的信息稱為任務特定信息。我們的目標是最大化的利用中文分詞任務中的任務共享信息,同時過濾掉中文分詞任務的任務特定信息。

圖7 對抗性遷移學習模型
針對這一目標,以Cao 等人(2018)[15]為代表,提出了對抗性遷移學習模型(如圖7 所示)。模型由四個部分組成:分別為嵌入層、特征抽取器、CRF 層、任務鑒別器。
嵌入層將輸入的字符序列轉換為嵌入表示序列,兩個任務各自使用獨立的嵌入層。
特征抽取層使用BLSTM 和注意機制進行信息抽取,由任務特定信息(中文分詞)、任務特定信息(中文NER)、任務共享信息三個部分組成,分別抽取兩個任務的任務特定特征、任務共享的單詞邊界特征。
任務特定CRF 層使用特征抽取層抽取的任務特定信息和任務共享信息進行標簽預測,由任務特定CRF 層(中文分詞)、任務特定CRF 層(中文NER)兩部分組成。兩個任務各自使用獨立的CRF 層。
任務鑒別器使用任務共享信息來判斷句子來自于哪個任務的數據集。當任務鑒別器無法判斷句子的來源時,意味著模型已經將任務特定信息和任務共享信息區分開來。
在針對中文的NER 算法中,研究人員已經提出了各種算法來解決中文的特殊性。本文介紹了,利用中文字符字形信息的嵌入表示方法、利用中文詞匯信息的模型架構和利用其他任務、其他域的標注數據的方法。未來如何進一步提高中文NER 任務的性能,值得研究人員進一步去探索。