中文命名實體識別 (NER) 算法按照輸入的類型,可以大致分為 Character-based (字符) 和 Word-based (單詞) 兩種。這兩種方法都存在一些缺陷,Character-based 不能利用詞彙和詞彙序列信息;Word-based 需要分詞,分詞的錯誤會對 NER 結果產生較大影響。因此新加坡的研究者在 2018 年提出了一種 Lattice LSTM 的算法,可以利用詞彙信息,也可以避免分詞錯誤對模型的影響。
1.前言
如上圖所示,中文命名實體識別 NER 主要有 Character-based (基於字符) 方法和 Word-based (基於單詞) 方法:基於單詞的方法首先會利用分詞模型對句子分詞,然後把分好的單詞序列傳遞到 NER 模型中預測實體。基於字符的方法不對句子分詞,每一個 token 就是一個漢字,直接將 token 序列傳遞到 NER 模型預測實體。但是這兩種方法都存在一些問題:
- 基於字符的方法不能利用詞彙和詞彙序列的信息,而這些信息對於實體識別通常很重要。
- 基於單詞的方法需要經過分詞模型和 NER 模型,分詞中產生的錯誤會傳遞到 NER 模型中。這種分詞邊界的錯誤會導致 NER 模型出錯,這種情況在開放領域的 NER 任務中尤其嚴重。
基於上面的原因,新加坡的研究人員於 2018 年提出了 Lattice LSTM 模型,論文《Chinese NER Using Lattice LSTM》。Lattice LSTM 會利用詞典匹配句子中的單詞,然後構造出字符和單詞的網格 (Lattice)。Lattice LSTM 的神經元會同時接收字符和單詞的信息,自動選擇合適的字符或單詞,實現消除歧義的功能,如下圖所示。
2.Lattice LSTM
上圖展示了 Lattice LSTM 的結構,可以看成是 Char-LSTM 的擴展版。Lattice LSTM 在 Char-LSTM 的基礎上增加了 word-base cell 和額外的門結構,用於控制和選擇信息流。
Lattice LSTM 用到的一些數學符號如下圖所示:
我們首先看一下傳統 Char-LSTM 的計算公式,對於 LSTM 不熟悉的童鞋可以參考之前的文章《循環神經網絡 RNN、LSTM、GRU》。Char-LSTM 輸出主要包括 cell state c 和 hidden state h,計算公式如下:
上面是 Char-LSTM 的計算公式,Lattice LSTM 在這基礎上增加了 word-base cell,用於計算單詞子序列的 cell state c 。下面的圖展示了 word-base cell 的結構:
Word-base cell 計算公式如下,生成一個包含單詞信息的 cell state:
在上式中,word-base cell 是不包括輸出門向量的,因為 Lattice LSTM 只在 Char-LSTM 上輸出。得到 word-base 的 cell state 後,Lattice 需要融合到 Char-LSTM 的 cell state 上,這一過程需要增加一個輸入門向量,並且要對輸入門向量進行歸一化,如下所示:
最終 Lattice LSTM 得到第 j 個字符的 cell state 如下:
Lattice LSTM 的 hidden state h 計算公式和 Char-LSTM 是一樣的,最終把 h 傳遞到 CRF 層即可進行命名實體識別。
3.總結
Lattice LSTM 優點:
- 可以同時利用中文字符和單詞的信息,通過增加 word-base cell 和控制門,對字符和單詞的信息進行選擇,消除歧義。
Lattice LSTM 缺點:
- 因為字符之間增加單詞節點的個數是不同的,因此 Lattice LSTM 不支持 batch 訓練。
- 如果句子中匹配的單詞過多,會導致 Lattice LSTM 效果變差 (可能會退化成為基於單詞的 LSTM),受到分詞錯誤的影響。
4.參考文獻
Chinese NER Using Lattice LSTM