命名实体识别(Named Entity Recognition,简称NER),又称作“专名识别”,任务是识别出待处理文本中三大类(实体类、时间类和数字类)、七小类(人名、机构名、地名、时间、日期、货币和百分比)命名实体。
通常包括两部分:(1)实体边界识别;(2) 确定实体类别(人名、地名、机构名或其他)。
英语中的命名实体具有比较明显的形式标志(即实体中的每个词的第一个字母要大写),所以实体边界识别相对容易,任务的重点是确定实体的类别。和英语相比,汉语命名实体识别任务更加复杂,而且相对于实体类别标注子任务,实体边界的识别更加困难。
本文提出了一系列基于长短期记忆(LSTM) 的序列标注模型,包括LSTM,bidirectional LSTM(BI-LSTM),LSTM-CRF,BI-LSTM-CRF。我们的工作是首次将双向的LSTM CRF(简称BI-LSTM-CRF)模型应用于NLP基准序列标记数据集。与以前的观测相比,该方法具有较强的鲁棒性,对嵌入词的依赖性较小。
序列标注 包括词性标注、分块和命名实体识别(NER),是一项经典的自然语言处理任务。
现有的序列标记模型大多为线性统计模型,包括隐马尔可夫模型(HMM)、最大熵马尔可夫模型(MEMMs) 和条件随机场(CRF)。
基于卷积网络的模型用来解决序列标记问题,将这种模型称为Conv-CRF,因为它由卷积网络和输出的CRF层(原论文使用了句子级loglikelihood (SSL)这个术语)组成。
在语音语言理解领域,提出了基于递归神经网络和卷积网络的语音理解模型。
其他相关工作包括提出了一种用于语音识别的双向递归神经网络。
本文提出了各种基于神经网络的序列标记任务模型,包括LSTM网络、双向LSTM网络(BI-LSTM)、带CRF层的LSTM网络(LSTM-CRF)和带CRF层的双向LSTM网络(BI-LSTM-CRF)。工作总结:
1)系统比较了上述模型在NLP标记数据集上的性能;
2)首次将双向LSTM CRF(简称BI-LSTM-CRF)模型应用于NLP基准序列标记数据集。由于具有双向LSTM组件,该模型可以使用过去和未来的输入特性。此外,由于有CRF层,该模型可以使用句子级标签信息。模型可以在POS、分块和NER数据集上产生最先进(或接近)的精确性;
3)证明了BI-LSTMCRF模型是健壮的,与之前的观察相比,它对单词嵌入的依赖性更小。它不需要依靠嵌入词就可以产生精确的标注性能。
循环神经网络(RNN) 在语言模型和语音识别等方面取得了良好的效果。一个RNN维持了一个基于历史信息的记忆单元,使模型能够根据长距离特征预测当前输出。
如图1,其中输入层为x,隐含层为h,输出层为y。在命名实体标签上下文中,x代表输入特征,y代表标签。一个命名实体识别系统,其中每个单词都被标记为其他(O)或四种实体类型之一:Person (PER)、Location (LOC)、Organization (ORG)和杂类(MISC)。句子:EU rejects German call to boycott British lamb. 标记为B-org O B-misc O O O B-misc O O O,其中B-、I-标记表示实体的起始位置和中间位置。
输入层表示t时刻的特征,可以是对单词特征、密集向量特征或稀疏特征进行一次独热编码one-hot-encoding。输入层的维数与特征维度相同。输出层表示t时刻在标签上的概率分布,它与标签具有相同的维度。
与前馈网络相比,RNN引入了前隐状态与当前隐状态之间的联系(从而引入了递归层权值参数)。这个循环层用于存储历史信息。隐藏层和输出层的值计算如下:
h(t) = f(Ux(t) + Wh(t-1)); (1)
y(t) = g(Vh(t)); (2)
其中U、W、V为训练时需要计算的连接权值,f(z)、g(z)为sigmoid、softmax激活函数,如下所示 :
f ( z ) = 1 1 + e − z g ( z m ) = e z m ∑ k e z k \begin{aligned} f(z) &=\frac{1}{1+e^{-z}} \\ g\left(z_{m}\right) &=\frac{e^{z_{m}}}{\sum_{k} e^{z_{k}}} \end{aligned} f(z)g(zm)=1+e−z1=∑kezkezm
本文应用了 长短期记忆LSTM 到序列标记。除了隐藏层更新被专门构建的记忆单元所替代之外,长期和短期内存网络与RNN是相同的。因此,他们可能更善于发现和利用数据中的长期依赖关系。如图2所示为单个LSTM记忆单元:
LSTM记忆单元 实现如下:
i t = σ ( W x i x t + W h i h t − 1 + W c i c t − 1 + b i ) f t = σ ( W x f x t + W h f h t − 1 + W c f c t − 1 + b f ) c t = f t c t − 1 + i t tanh ( W x c x t + W h c h t − 1 + b c ) o t = σ ( W x o x t + W h o h t − 1 + W c o c t + b o ) h t = o t tanh ( c t ) \begin{aligned} i_{t} &=\sigma\left(W_{x i} x_{t}+W_{h i} h_{t-1}+W_{c i} c_{t-1}+b_{i}\right) \\ f_{t} &=\sigma\left(W_{x f} x_{t}+W_{h f} h_{t-1}+W_{c f} c_{t-1}+b_{f}\right) \\ c_{t} &=f_{t} c_{t-1}+i_{t} \tanh \left(W_{x c} x_{t}+W_{h c} h_{t-1}+b_{c}\right) \\ o_{t} &=\sigma\left(W_{x o} x_{t}+W_{h o} h_{t-1}+W_{c o} c_{t}+b_{o}\right) \\ h_{t} &=o_{t} \tanh \left(c_{t}\right) \end{aligned} itftctotht=σ(Wxixt+Whiht−1+Wcict−1+bi)=σ(Wxfxt+Whfht−1+Wcfct−1+bf)=ftct−1+ittanh(Wxcxt+Whcht−1+bc)=σ(Wxoxt+Whoht−1+Wcoct+bo)=ottanh(ct)
σ是sigmoid函数。i、f、o、c是和隐藏向量h一样大小的输入门,遗忘门,输出门和单元向量。
权重矩阵的下标顾名思义。例如,Whi是隐藏-输入门矩阵,Wxo是输入-输出门矩阵等。从单元到门向量(如Wci)的权矩阵是对角线的,所以每个门向量中的元素m只接收来自单元向量的元素m的输入。
图3为采用了前面提到的LSTM存储单元(带圆角的虚线框)的LSTM序列标记模型。
在序列标记任务中,可以在给定的时间内同时获得过去和未来的输入特征,因此可以利用双向LSTM网络(如图4)。
在此过程中,可以在特定的时间框架内有效地利用过去的特性(通过向前状态)和将来的特性(通过向后状态)。使用时间反向传播来训练双向LSTM网络。随时间推移,对展开网络的向前和向后传递与常规网络的向前和向后传递类似,只需要对所有时间步骤展开隐藏状态。还需要在数据点的开始和结束处进行特殊处理。实现中对整个句子进行前向和反向操作,只需要在每个句子请求时将隐藏状态重置为0。有批处理实现,可以同时处理多个句子。
在预测当前标签时,有两种可以利用相邻标记信息的不同方法:
将LSTM网络与CRF网络相结合,形成LSTM-CRF模型,如图6所示。该网络可以通过LSTM层有效地利用过去的输入特征 ,通过CRF层有效地利用句子级标签信息。CRF层由连接连续输出层的线表示。 CRF层有一个状态转换矩阵作为参数。通过这样的一层,可以有效地使用过去和未来的标签来预测当前的标签,这类似于通过双向LSTM网络使用过去和未来的输入特征。认为分数的矩阵 f θ ( [ x ] 1 T ) f_{\theta}([x]_{1}^{T}) fθ([x]1T)是由网络输出的 。为简化符号去掉输入 [ x ] 1 T [x]_{1}^{T} [x]1T。这个矩阵的元素 [ f θ ] [ i ] t \left[f_{\theta}\right]_{[i]_{t}} [fθ][i]t是句子 [ x ] 1 T [x]_{1}^{T} [x]1T,第i个标签,第t个词通过带参数 θ的网络计算的分数输出。引入一个转换得分[A]i;j来为一对连续时间步骤从第i状态到第j状态的转换建模。 注意这个转换矩阵是位置无关的 。现在,将网络的新参数表示为一个句子 [ x ] 1 T [x]_{1}^{T} [x]1T的沿着标签 [ i ] 1 T [i]_{1}^{T} [i]1T的路径对的分数,这个分数是转移矩阵分数和网络分数之和:
s ( [ x ] 1 T , [ i ] 1 T , θ ~ ) = ∑ t = 1 T ( [ A ] [ i ] t − 1 , [ i ] t + [ f θ ] [ i ] t , t ) s\left([x]_{1}^{T},[i]_{1}^{T}, \tilde{\theta}\right)=\sum_{t=1}^{T}\left([A]_{[i]_{t-1},[i]_{t}}+\left[f_{\theta}\right]_{[i]_{t}, t}\right) s([x]1T,[i]1T,θ~)=∑t=1T([A][i]t−1,[i]t+[fθ][i]t,t)
将双向的LSTM网络与CRF网络相结合,形成一个BI-LSTM-CRF网络(图7)。除了LSTM-CRF模型中使用的过去输入特性和句子级标记信息外,BI-LSTM-CRF模型还可以使用将来输入特性。这些额外的特性可以提高标记的准确性。
本文使用的所有模型都共享一个通用的SGD向前和向后训练过程。选择BI-LSTM-CRF模型来说明训练算法,如算法1所示。
在三个NLP标记任务:Penn TreeBank (PTB) POS tagging词性标记、CoNLL 2000分块chunking和CoNLL 2003命名实体标记上测试LSTM、BI-LSTM、CRF、LSTM-CRF和BI-LSTM-CRF模型。表1分别显示了用于训练、验证和测试集的句子、令牌和标签的大小。
POS为每个单词分配一个惟一的标记,该标记指示其语法角色。在分块中,每个单词都有其短语类型标记。例如,标签B-NP表示一个单词开始于一个名词短语。在NER任务中,每个单词都被标记为其他或四种实体类型之一:Person、Location、Organization或杂类Miscellaneous。我们使用BIO2注释标准 进行分块和NER任务。
为三个数据集提取相同类型的特征。这些特征可以分为拼写特征和上下文特征。因此分别提取了POS、分块和NER数据集的401K、76K和341K特征。这些特征与斯坦福NER工具提取的特征相似。
注意:除了使用Senna内嵌之外,对于POS和分块任务,没有使用额外的数据(参见4.2.3节)。对于NER任务,使用拼写和上下文特征来报告性能,同时也使用Senna嵌入和Gazetteer特征逐步报告性能。
除了小写的单词特征外,还提取给定单词的下列特征:
对于三个数据集中的单词特征,使用单字符特征unigram features和双字符特征bi-grams features。对于CoNLL2000数据集中的POS特征和CoNLL2003数据集中的POS & CHUNK特征,使用单元unigram、双元bi-gram和三元tri-gram特征。
研究表明,词嵌入对提高序列标记性能起着至关重要的作用。我们下载了包含130K词汇量的嵌入,每个单词对应一个50维的嵌入向量。为使用这种嵌入,简单地用对应的50维向量替换一个独热编码one hot encoding词表示。
我们可以将拼写和上下文特征视为单词特征。也就是说,网络的输入包括单词、拼写和上下文特征。
然而,从拼写和上下文特征到输出的直接联系加速了训练,并且它们导致非常相似的标记准确性。图8说明了该网络的特征与网络的输出有直接连接。将报告使用此连接的所有标签的准确性。由于序列标签数据集的输出标签数小于语言模型的输出标签数(通常是数十万),可以负担得起功能和输出之间的完整连接。
CRF模型严重依赖工程特性来获得良好的性能。基于LSTM的模型,特别是BI-LSTM和BI-LSTM-CRF模型更加健壮,并且较少受到工程特性删除的影响。对于所有这三个任务,BI-LSTM-CRF模型的标记准确率最高。
与具有相同特征集的单一CRF模型相比,双向LSTM-CRF模型始终获得更好的标记精度。
介绍了将BI-LSTM-CRF模型应用于NLP基准序列标记数据的第一个工作。模型可以产生最先进(或接近)的精度POS,分块chunking和NER数据集,它对单词嵌入的依赖性更小。该算法不需要嵌入单词,就可以达到准确的标注精度。