論文地址:《A Local Detection Approach for Named Entity Recognition and Mention Detection》。

Gayhub地址:xmb-cipher/fofe-ner

摘要

通常大家會把命名實體識別當做序列標註問題去解決,本文提出一種局部探測的方法,通過固定長度句子片段及其前後文來對命名實體進行識別。在CoNLL 2003 NER、TAC-KBP2015和TAC-KBP2016任務上表現很好。

1 簡介

  • 命名實體識別(Named Entity Recognition, NER) :識別出句子中的命名實體。
  • 指代探測(Mention Detection, MD):識別出句子中的人名指代。

序列標註問題是把整個句子進行訓練與測試,進而識別出句子中的實體。而局部探測方法的對象是句子中的每個片段,達成精準的局部探測的要點是把句子片段以及其充足的上下文信息識別出來。

許多特徵工程技術都難免會造成上下文信息的丟失,這裡選擇了一種定長編碼技術:fixed-size ordinally forgetting encoding(FOFE)

整個模型的基本流程是這樣的:

  1. 用FOFE把變長文本編碼成定長文本
  2. 用普通的前饋神經網路(FFNN)進行NERMD

3 基本知識

前饋神經網路就是最常見的多層感知機,基於單詞和基於字母的模型根據字面意思也都容易理解,這裡簡要講下FOFE

NLP中文本都是變長的,RNNs/LSTMs模型擅長處理這類數據,而FFNN並不擅長。但是,FOFE可以把變長數據編碼為定長數據,這就很好克服了FFNN自身的限制,畢竟FFNN這種簡單模型的訓練和預測效率非常高。

FOFE的編碼思想類似於詞帶模型(BoW)+遺忘因子

  1. 首先把定義集合 S = w_1, w_2, w_3, ··· w_T ,其中 w 代表一個單詞。起初的時候,每個單詞用one-hot向量編碼表示,例如對於 S= A, B ,C ,可以用 [1,0,0], [0,1,0], [0,0,1] 表示。

2. 設定一個遺忘因子 alphain(0,1) ,使用以下公式計算出每個單詞的最終編碼 z_t

3. 例如對於序列 ABC ,其結果為 [α^2,α,1] ;對於序列 ABCBC ,其結果為 [α^4,α+α^3,1+ α^2 ] 。這就把任意變長序列編碼為長度為 T定長編碼

4 基於FOFE的局部探測模型

FOFE-NER最主要的特徵如上圖,每個序列被拆分為三部分(left+segment+right),這三部分先經過FOFE演算法進行一輪編碼,然後進入FFNN中進行NER

此外,還可以引入其他基於單詞的特徵和基於字母的特徵,文章中講的比較清楚。

5 訓練和解碼演算法

在訓練過程中,實體主要有以下情況:

  1. segment正好是實體
  2. segment中部分word構成實體
  3. segment完全不參與實體構成

對於上述情況,在分類上採取這樣的措施:

  1. 如果是上述情況1,則對實體進行分類,如PER、ORG
  2. 如果是上述情況2、3,則將實體分類為NONE

對於預測結果,如果存在冗餘結果,可以根據以下策略進行剔除:

6 兩層增強

通過借鑒CRF的思想,我們構造兩輪FOFE-NER模型,在第一輪中目標是把

Google has also recruited Fei-Fei Li, director of the AI lab at Stanford University

預測為

<ORG> has also recruited Fei-Fei Li, director of the AI lab at <ORG>.

用實體類型替代實體後,進一步尋找實體Fei-Fei Li

7 實驗結果

我們用CoNLL2003 NER數據集測試結果來理解特徵選取模型對比

個人疑問

  1. FOFE編碼的合理性?這個問題應該要深入閱讀FOFE的論文和其相關的應用論文去尋找答案。
  2. 文中提出的用序列標註解決NBR存在的問題(訓練數據實體標註殘缺實體嵌套時效果差)是否客觀?多閱讀一些NER的論文後可以進行深入比較。

總結

NER問題目前比較常規的解決方法是圍繞LSTM和CRF展開的,相比於直接把整個序列作為輸入的序列標註模型,本論文提出的局部探測法更加強調了局部上下文信息在NER問題中的重要性。而且,本論文提出的模型結構簡單,性能上應該更優(待進一步驗證)。


推薦閱讀:
相关文章