paper notes 《Chinese NER Using Lattice LSTM》

paper title:《Chinese NER Using Lattice LSTM》

摘要

對於中文命名實體識別,我們研究了一種lattice結構的lstm模型(lattice-structured LSTM),這個模型能夠對輸入的字符序列以及序列中能夠與字典相匹配的隱藏的詞信息一同編碼。

相比於基於字粒度的方法,lattice的能夠更好的利用字以及字序列的信息。相比於詞粒度的方法,lattice避免了分詞帶來的錯誤。門控循環單元能夠使得模型選擇最相關的字和詞,得到更好的NER結果。在多種數據的實驗中表明,lattice的性能優於基於字粒度和詞粒度的lstm,能夠得到best結果。

1 引言

近幾年,作爲信息抽取領域中的基本任務,命名實體識別(NER)得到了持續的研究關注。NER一直被看作是一項序列標註問題,他的實體邊緣和類別標記一起被預測出來。英文NER中最好的結果是通過lstm-crf模型將字信息融入到詞表示中得到的。

中文NER與分詞有關,特別是實體的邊界就是詞的邊界。中文NER的一種方式是先分詞,然後對詞序列進行NER標註。這種分詞->NER的pipeline很容易受到傳播錯誤,因爲在分詞中命名實體是OOV(out-of-vocabulary)的重要來源,而且錯誤的分割實體邊緣也會導致NER的錯誤。這種問題在開放領域更爲嚴重,因爲交叉領域中的詞分割還存在很多待解決問題。所以詞粒度的性能要比字粒度的性能要好。

基於字粒度的NER的缺點是忽略了字以及字序列的信息。解決方法是利用lattice結構的lstm將句子中潛在的詞信息融入到字粒度的lstm-crf中。

figure 1

如上圖,通過將句子與自動得到的較大的詞典匹配構建一個字-詞的lattice結構。例子中是得到了「長江大橋」「大橋」「長江」可以消除文中潛在命名實體的歧義,例如與文中的「江大橋」。

因爲一個lattice中的字-詞會有指數級的路徑,所以構建了一個lattice lstm結構自動控制信息流從句子開始流到句子結尾。

figure 2

如上圖,通過門單元動態的將不同路徑得到的詞輸送到相應的字符。在NER數據上訓練,lattice lstm能夠自動的在文中找到更多的詞信息來達到更好的NER性能。與只依賴於字信息和只只依賴於詞信息的NER相比,lsttice lstm 能夠不受分詞錯誤的影響,並將明確的詞信息作用於字序列標註上的優點。

代碼及數據git地址

2 相關工作

神經網絡運用與NER的方法:

  • Hammerton :單向lstm,第一次將神經網絡應用於NER
  • Collobert :CNN-CRF
  • dos Santos:character CNN + cnn-crf
  • 最多的:lstm-crf
  • Lample:character LSTM

基於字序列的標註成爲中文NER的主流方法。在統計上來看,對於字粒度和詞粒度的NER
方法的討論表明字粒度的性能更優,對於神經網絡中的NER方法也是如此。
另外,lattice lstm要優於word LSTM和character LSTM.

本模型不需要分詞也不需要考慮多任務的設置。

NER任務中會經常使用外部信息源,尤其是詞典特徵被廣泛使用。在本論文中是在大量自動分詞的文本中使用預訓練的word embedding 詞典。同時類似與語言模型的半監督方法也可以到lattice lstm中。

lattice 結構的RNN可以看作是樹結構的RNN向DAGs(Directed acyclic graph,有向無環圖)的延伸。本文中的lattice lstm是以字符爲中心的lattice-lstm-crf序列標註模型,對於詞,有循環單元但是沒有隱藏單元。

是第一個將字符與詞混合起來構建lattice的,也是都一個將word-character lattice 應用於不用分詞的中文NER任務中的。

3 模型

使用lstm-crf作爲主要的網絡結構。

一般將輸入序列表示爲 s = c 1 , c 2 . . . c m
其中, c j 代表第j個字符。也可以把輸入表示爲 s = w 1 , w 2 . . . w m ,其中 w j 表示句子分詞後的第j個詞。本文中應用t(i,k)表示索引j,代表第i個單詞的第k個字符。比如「南京市 長江大橋」,索引從1開始,那麼t(1,2) = 2(京),t(2,3) = 6(大)。
運用BIOES(begin intermediate other end single)標註策略進行字粒度和詞粒度的NER標註。

3.1 Character-Based Model

char-leverl

字粒度的ner模型如上圖所示。
運用lstm-crf模型計算字序列 c 1 , c 2 . . . . c m ,每個字符 c j 通過字向量查找表(character embedding lookup table)得到。

X j c = e c ( c j ) ( 1 )

雙向lstm計算字向量 x 1 , x 2 . . . x m 得到隱藏層結果 ( h 1 c ) , ( h 2 c ) . . . ( h m c ) 以及反向的 ( h 1 c ) , ( h 2 c ) . . . ( h m c ) ,最後得到隱藏層結果爲

h c j = [ ( h j c ) ; ( h j c ] ( 2 )

最後應用CRF(公式(17))計算隱藏層結果 h c j .

  • Char + bichar.

    實驗表明Character bigrams對於詞分割有很大用處。通過拼接雙字的embedding和單字的embedding,將字符 bigrams添加到字粒度的模型中。

$$
X_{j}^{c} = [e^{c}(c_{j});e^{b}(c_{j},c_{j+1})] \qquad (3)

$$
* Char + softword
將分詞作爲soft 特徵能夠提升性能,通過將分詞的embedding與字符embedding拼接起來,將分詞信息加到 character representation 中。

X j c = [ e c ( c j ) ; e s ( s e g ( c j ) ) ] ( 4 )

得到的隱藏層狀態如下:
h i w = [ ( h i w ) ; ( h i w ] ( 5 )

3.2 Word-Based Model

word-level

基於詞粒度的NER如上。利用word embedding得到詞的向量表示。

X i w = e w ( w i ) ( 6 )

同樣運用雙向lstm得到雙向隱藏層狀態序列,並拼接得到最終的隱藏層狀態。
h i w = [ ( h i w ) ; ( h i w ]

Integrating character representations:

字符CNN和LSTM中都運用詞來表示字符。對於本文的中文NER,兩者都用上。也就是說詞的表示爲word embedding查找的詞向量和字符序列拼接起來。

X i w = [ e i w ( w i ) ; X i c ] ( 7 )

  • Word + char LSTM

每個輸入字符的embedding表示爲 e c ( c j ) ,對於 w i 的字符 c
bi-lstm計算字向量得到 ( h t ( i , 1 ) c ) , ( h t ( i , 2 ) c ) . . . ( h t ( i , l e n ( i ) ) c ) ,以及反向的 ( h t ( i , 1 ) c ) , ( h t ( i , 2 ) c ) . . . ( h t ( i , l e n ( i ) ) c ) ,最終對於&w_{i}&的字符級的表示爲

X i c = [ ( h t ( i , l e n ( i ) ) c ) ; ( h t ( i , l e n ( i ) ) c ) ]

  • Word + char LSTM′

  • Word + char CNN

對於每個單詞的字符序列應用標準的CNN,得到字符表示 X i c

X i c = m a x t ( i , 1 ) <= j <= t ( i , l e n ( i ) ) ( W C N N T [ e c ( c j k e 1 2 ) . . . e c ( c j + k e 1 2 ) ] + b C N N )

X i c = m a x t ( i , 1 ) <= j <= t ( i , l e n ( i ) ) ( W C N N T [ e c ( c j k e 1 2 ) . . . e c ( c j + k e 1 2 ) ] + b C N N )

W C N N b C N N 是參數,ke代表kenal個數,max表示最大pooling。

3.3 Lattice Model

lattice lstm 的整體結構如上圖figure2 所示,可以看作是char-based,加上了word-based cells和門控單元控制信息流向。

lattice_ner

如上圖所示,輸入數據是字符序列

相關文章
相關標籤/搜索