一、摘要
- 命名实体识别任务通常需要大量的外部知识,如很好的特征提取、字典等等。
- 本文提出了一种新的神经网络架构,这个架构可以通过使用双向LSTM和CNN的混合模型自动提取单词级和字符级的特征,避免了大量特征工程的工作。
- 提出了词汇表部分匹配算法,通过BIOES Annotation 去对词汇表中的单词前缀后缀进行匹配。
- 通过引入使用公共资源构建的词汇表,本文的模型在CONLL-2003数据集上取得91.62的F1值,在OneNotes数据集上取得86.28的F1值。
二、介绍
-
传统的模型,如CRF、SVM、感知机模型等,需要大量的特征工程的工作。
-
Collobert等人在2011年提出的神经网络模型虽然解决了传统模型需要大量特征工程的缺陷,但是依然存在两个比较大的缺陷:(1)、模型使用的是简单的前馈神经网络,上下文的使用仅仅是围绕一个单词的窗口大小。(无法提取长距离单词之间的关系)
(2)、模型仅仅使用了word embeddings,无法提取出更深层次的字符级特征(例如前缀、后缀,在分析不常见词的时候有用)
-
为了处理变长序列,我们可以使用RNN模型,但是为了改变RNN无法提取长距离的依赖,衍生出了LSTM模型。一个双向的LSTM模型能够考虑单词两边的所有有用的信息。
-
卷积神经网络已经被证实可以很好地提取字符级别的特征。
-
本文提出了双向LSTM和CNN的混合模型用于提取单词级和字符级的特征,并且提出了字典部分匹配算法。
三、模型
-
整体模型架构
-
整个模型可以分为三个部分:特征抽取层、双向LSTM层、输出层
-
在特征抽取层中,由三个部分组成。Word Embedding是提取单词级特征,Additional Word Features是提取额外的单词特征,Char Features是使用CNN提取出来的字符级特征。最后再将这三部分concat起来。
-
在双向LSTM层中,将嵌入层得到的结果输入到双向LSTM中,分别传入输出层中。
-
在输出层中,会分别将前向LSTM和反向LSTM输入到线性层中,再分别通过softmax,最后再进行相加得到最终结果。
-
-
使用CNN模型提取字符级特征
- 首先通过Character Embedding提取字符级特征,再提取额外的字符特征,最后再将两者concat起来。
- 然后将第一步提取到的特征进行输入到卷积层中,再通过最大池化层,得到最终的CNN提取的字符级特征。
-
额外的单词级特征
-
因为在Word Embedding层擦去了一些单词级别的信息,所以这里重新写回一些失去的特征。如allCaps、upperInitial、lowercase、mixedCaps、noinfo等。
-
本文还提出了一个词汇部分匹配算法。检查一个词的时候,会检查这个词前缀或后缀对应的tokens是否匹配成功,并超过长度的一半,则为匹配成功。
-
当匹配到多个类别的时候,我们会优先选择全部匹配大于局部匹配、长匹配大于短匹配、先匹配大于后匹配。
-
-
额外的字符级特征
- 额外的字符级特征是一个思维向量,包括upper case,lower case, punctuation,other。
四、训练和推理
- 标识方案选的是BIOES(Begin、Inside、Outside、End、Single)
- 优化器选用SGD
五、结果和讨论
-
BLSTM-CNN+emb+lex模型在CONLL-2003和OntoNotes5.0数据集上都取得了更好的精度。