命名实体识别_2016命名实体识别的神经网络结构

564942077b1150e62c0f0c2a18024014.png

Abstract

最先进的命名实体识别系统在很大程度上依赖于手工制作的特征和特定领域的知识,以便有效地从现有的小型、有监督的训练语料库中学习。本文介绍了两种新的神经网络结构,一种是基于双向LSTMs和条件随机场的,另一种是基于移位-归约解析器的基于转换的方法构造和标记片段。我们的模型依赖于两个单词信息源:从有监督语料库中学习的基于字符的单词表示和从未注释语料库中学习的无监督单词表示。我们的模型不需要借助任何特定语言的知识或资源(如地名录),就可以在四种语言中获得最先进的表现。

1 Introduction

命名实体识别(NER)是一个具有挑战性的学习问题。一方面,在大多数语言和领域中,只有很少量的监督训练数据可用。另一方面,可以作为名称的单词种类几乎没有限制,因此很难从这一小样本数据中进行泛化。结果,精心构造的正交特征和特定于语言的知识资源(例如地名词典)被广泛用于解决此任务。不幸的是,在新的语言和新的领域中开发特定于语言的资源和功能的成本很高,这使NER成为适应挑战。从无注释的语料库中进行无监督学习为从少量监督中获得更好的泛化提供了另一种策略。但是,即使是广泛依赖于无监督功能的系统(Collobert et al ., 2011; Turian et al., 2010; Lin and Wu, 2009; Ando and Zhang, 2005b, inter alia) ,也使用这些特征来增加手工设计的特征(例如,关于特定语言中大写模式和字符类的知识)和专门知识资源(例如地名录)。

在这篇文章中,我们提出了一个神经网络架构,除了少量有监督的训练数据和未标记的语料库外,不使用特定语言资源或特征。我们的模型设计用来捕捉两种直觉。首先,由于名称通常由多个标记组成,因此对每个标记的决策进行联合推理非常重要。我们在这里比较了两个模型:(i)一个双向LSTM,其上有一个顺序条件随机层(LSTM-CRF;§2);和(ii)一个新的模型,它使用基于转换的解析算法构造并标记输入句子块,状态由堆栈LSTM表示(S-LSTM;§3)。其次,“成为名字”的标记级证据包括正字法证据以及分布证据

在英语、荷兰语、德语和西班牙语中的实验表明,我们能够用荷兰语、德语和西班牙语的LSTM-CRF模型获得最先进的NER性能,并且非常接近英语的最新水平,而不需要任何手工设计的特征或地名录(§5)。基于转换的算法同样优于以前在几种语言中发布的最佳结果,尽管它的性能不如LSTM-CRF模型

2 LSTM-CRF Model

我们简要介绍了LSTMs和crf,并提出了一种混合标记体系结构。这种架构与Collobert等人(2011)和Huang等人(2015年)提出的架构类似。

2.1 LSTM

循环神经网络(RNN)是对顺序数据进行操作的一系列神经网络。它们将向量序列(x1,x2,...,xn)作为输入,并返回另一个序列(h1,h2,...,hn),该序列表示有关输入中每个步骤的一些信息。尽管从理论上讲,RNN可以学习长时间的依赖关系,但实际上它们无法做到这一点,并且倾向于偏向于序列中的最新输入(Bengio等,1994)。长期短期记忆网络(LSTMs)被设计成通过加入一个存储单元来解决这个问题,并且已经被证明能够捕获长程依赖关系。他们使用几个门来控制输入到存储单元的比例,以及从先前状态到遗忘的比例(Hochreiter和Schmidhuber,1997)。我们使用以下实现:

a8a92546c458e08b2ca078df5bcf695c.png

其中σ是按元素的Sigmoid函数,8fa7a3a960244d13984c93409e093fa9.png是element-wise product。

对于给定的句子 (x1, x2, . . . , xn) 包含n个单词,每个单词表示为一个d维向量,LSTM在每个单词t处计算句子左上下文的表示7810d7ab973e8bde6b5d14e6835460f3.png。当然,生成右上下文的表示e5ba58e62963b7819eae68f680f0f3b7.png也应该添加有用的信息。这可以通过使用第二个LSTM来实现,后者可以反向读取相同的序列。我们将前者称为正向LSTM,后者称为后向LSTM。这是两个具有不同参数的不同网络。这种向前和向后的LSTM对被称为双向LSTM(Graves和Schmidhuber,2005)。使用此模型的单词表示是通过连接其左右上下文表示来获得的8ae9d375bbe6e5d4681f05a34d2cdfb8.png这些表示有效地包含了一个单词在上下文中的表示,这对于许多标记应用程序是有用的。

2.2 CRF Tagging Models

一个非常简单但出人意料的有效标记模型是将ht作为特征,为每个输出yt做出独立的标记决策(Ling等人,2015b)。尽管此模型成功解决了诸如POS标记之类的简单问题,但当各个输出标签之间存在很强的依赖性时,其独立的分类决策仍会受到限制

因此,与其使用独立的标签决策模型,不如使用条件随机场对它们进行联合建模(Lafferty等,2001)。对于输入句子

bae65f926b265bb18d96fbfc967b6714.png

P是双向LSTM网络输出的分数矩阵。 P的大小为n×k,其中k为不同标签的数量,Pi,j对应于句子中第i个单词的第j个标签的分数。对于一系列预测

3a1f90b86ceda83bb0901f3bccabd587.png

我们将其得分定义为

743775f6a16ef459b253ba02ce99ea2a.png

其中A是转移分数的矩阵,因此Ai,j表示从标签i到标签j的转移分数。 y0和yn是句子的开始和结束标记,我们将其添加到可能的标记集中。 因此,A是大小为k + 2的方阵。所有可能的标签序列上的softmax产生序列y的概率:

aee3984e87b978a88fa72de5e356dd01.png

在训练期间,我们将正确标签序列的对数概率最大化:

a0cc0c57277711be7fd9dd51c0ae0c9c.png

其中YX代表句子X的所有可能的标记序列(甚至是那些不验证IOB格式的标记序列)。从上面的表述中,很明显,我们鼓励我们的网络生成有效的输出标签序列。在解码时,我们预测输出序列,该序列将获得以下最大分数:

4ab6cbe4bc5289998dac22a38ac5a4be.png

由于我们只对输出之间的二元相互作用进行建模,因此等式1中的求和和式2中的最大后验序列y*都可以使用动态规划进行计算。

2.3 Parameterization and Training

由于我们仅对两个标记之间的双链交互进行建模,因此将与每个标记(即Pi,y)的每个标记决策相关联的分数定义为嵌入双向LSTM计算的词法上下文之间的点积-与 Ling等人(2015b)的POS标记模型,并将其与bigram兼容性评分结合在一起。 输出可以使用动态编程来计算等式1中的求和和等式2中的最大后验序列y

8d1b3e73a73d6a187fdd7073fa2c03c3.png

图1:网络的主要架构。单词嵌入被赋予双向LSTM。li代表单词i及其左侧上下文,ri代表单词i及其右侧上下文。将这两个向量连接起来可得到单词i在其上下文ci中的表示。

因此,该模型的参数是双字母组兼容性分数A的矩阵,以及产生矩阵P的参数,即双向LSTM的参数,线性特征权重和词嵌入。与第2.2部分一样,让xi表示句子中每个单词的单词嵌入顺序,yi是它们的关联标签。 我们将在第4节中讨论如何对嵌入xi进行建模。将单词嵌入的序列作为双向LSTM的输入,该LSTM返回每个单词的左右上下文的表示形式,如2.1中所述。

这些表示被级联(ci)并线性投影到大小等于不同标签数量的图层上。 代替使用该层的softmax输出,我们使用前面所述的CRF来考虑相邻标签,从而得出每个单词yi的最终预测。 此外,我们观察到在ci和CRF层之间添加隐藏层可以稍微改善我们的结果。 此模型报告的所有结果均包含该额外层。 给定观察到的单词,对参数进行训练以使带注释的语料库中的NER标签的观察序列的等式1最大化。

2.4 Tagging Schemes

命名实体识别的任务是给句子中的每个单词指定一个命名实体标签。一个命名实体可以跨越一个句子中的几个标记。句子通常以IOB格式(Inside,Outside,beging)表示,如果令牌是命名实体的开头,则每个标记都标记为B-label;如果标记位于命名实体内部,但不是命名实体中的第一个标记,则标记为I-label,否则为O。然而,我们决定使用IOBES标记方案,IOB的一个变体,通常用于命名实体识别,它编码关于单个实体的信息,并显式地标记命名实体(E)的结尾。使用该方案,以高置信度将一个单词标记为I-label或E-label缩小了后续单词的选择范围,但是IOB方案只能确定后续单词不能是另一个标签的内部。Ratinov和Roth(2009)和Dai等人(2015)表明,使用更具表现力的标记方案(如IOBES)可以略微提高模型性能。然而,我们并没有观察到IOB标记方案有明显的改善。

3 Transition-Based Chunking Model

作为上一节中讨论的LSTM-CRF的替代方案,我们探索了一种新的体系结构,它使用类似于基于转换的依赖解析的算法对输入序列进行分块和标记。该模型直接构造多令牌名称的表示(例如,将Mark Watney的名称组合成一个表示)。

此模型依赖于堆栈数据结构来增量地构造输入块。为了获得用于预测后续动作的堆栈表示,我们使用Dyer等人(2015)提出的Stack-LSTM,其中LSTM通过“堆栈指针”进行扩充。虽然顺序LSTM从左到右建模序列,但Stack-LSTM允许嵌入同时添加到(使用推送操作)的对象堆栈并从中删除(使用弹出操作)。这使得Stack-LSTM的工作方式与维护其内容的“摘要嵌入”的堆栈类似。为了简单起见,我们将此模型称为Stack LSTM或S-LSTM模型。

最后,我们请感兴趣的读者参考原始论文(Dyer等人,2015年)了解StackLSTM模型的详细信息,因为在本文中,我们只是通过下一节介绍的基于转换的新算法使用相同的架构。

3.1 Chunking Algorithm

我们设计了一个转换清单,如图2所示,其灵感来自基于转换的解析器,特别是Nivre(2004)的arc标准解析器。在该算法中,我们使用两个堆栈(指定的输出和分别表示已完成的块和暂存空间的堆栈)和一个包含尚未处理的单词的缓冲区。转换清单包含以下转换:SHIFT转换将一个字从缓冲区移动到堆栈,OUT转换将一个字从缓冲区直接移动到输出堆栈,而REDUCE(y)转换从堆栈顶部弹出所有项目,创建一个“块”,用标签y标记它,并将此块的表示形式推送到输出堆栈。当堆栈和缓冲区都为空时,算法完成。该算法如图2所示,其中显示了处理Mark Watney visited Mars语句所需的操作序列。

70bcc8bb0a1def0459b90528eb89f131.png

该模型通过定义每个时间步上操作的概率分布来参数化,给定堆栈、缓冲区和输出的当前内容,以及所采取操作的历史记录。在Dyer等人(2015)之后,我们使用stack LSTM来计算每种算法的固定维嵌入,并将其串联以获得完整的算法状态。此表示法用于定义每个时间步可能采取的操作的分布。在给定输入句子的情况下,训练模型使参考动作序列(从标记训练语料库中提取)的条件概率最大化。为了在测试时标记一个新的输入序列,贪婪地选择最大概率动作直到算法到达终止状态。虽然这不能保证找到全局最优,但它在实践中是有效的。由于每个标记要么直接移动到输出(1个操作),要么首先移动到堆栈,然后移动到输出(2个操作),长度为n的序列的操作总数最大为2n。

3.2 Representing Labeled Chunks

当执行REDUCE(y)操作时,该算法将一系列标记(连同其向量嵌入)从堆栈移至输出缓冲区,作为一个完整的块。为了计算此序列的嵌入,我们在其组成标记的嵌入以及代表所识别块类型(即y)的标记上运行了双向LSTM。该函数以g(u,...,v,ry)形式给出,其中ry是学习的标签类型嵌入。 因此,对于每个生成的带标签的块,无论其长度如何,输出缓冲区都包含单个矢量表示。

4 Input Word Embeddings

我们两个模型的输入层都是单个单词的向量表示。从有限的NER训练数据中学习单词类型的独立表示是一个困难的问题:有太多的参数无法可靠地估计。由于许多语言都有正字法或形态学的证据证明某事物是一个名字(或不是一个名字),我们需要对单词拼写敏感的表示法。因此,我们使用一个模型,从单词组成的字符的表示中构造单词的表示(4.1)。我们的第二个直觉是,在大型语料库中,名字可能会出现在规则的上下文中,每个人的名字可能都是千差万别的。因此,我们使用从对词序敏感的大型语料库中学习的嵌入(4.2)。最后,为了防止模型过于依赖一种表示或另一种表示,我们使用了dropout训练,发现这对于良好的泛化性能至关重要(4.3)。

4.1 Character-based models of words

我们的工作与以前大多数方法的一个重要区别是,我们在训练时学习字符级的特征,而不是手工设计单词的前缀和后缀信息。学习字符级嵌入具有学习特定于当前任务和领域的表示的优点。研究发现,它们对于形态丰富的语言和处理词性标注和语言建模(Ling等人,2015b)或依赖性分析(Ballesteros等人,2015)等任务的词汇表外问题非常有用。

f41bd650f9aa07e5743c07de6d6ee730.png

图4:单词“Mars”的字符嵌入被赋予一个双向LSTMs。我们将它们最后的输出连接到一个来自查找表的嵌入,以获得这个单词的表示

图4描述了我们的体系结构,它从单词的字符中为单词生成一个单词嵌入。随机初始化的字符查找表包含每个字符的嵌入。与单词中每个字符对应的字符嵌入按正向和反向顺序给出。从字符派生的单词的嵌入是双向LSTM的前向和后向表示的级联。然后,这个字符级表示与单词查找表中的单词级表示相连接。在测试期间,在查找表中没有嵌入的单词被映射到一个UNK嵌入。为了训练UNK嵌入,我们将singleton替换为概率为0.5的UNK嵌入。在我们所有的实验中,前向和后向字符LSTMs的隐藏维数分别为25,这使得我们基于字符的单词表示的维数为50。

循环模型如RNNs和LSTMs能够编码非常长的序列,但是它们的表示偏向于最近的输入。因此,我们期望前向LSTM的最终表示是单词后缀的精确表示,而后向LSTM的最终状态是其前缀的更好表示。另一种方法——尤其是像卷积网络这样的方法,已经被提出从字符中学习单词的表示(Zhang et al.,2015;Kim et al.,2015)。然而,convnets被设计用来发现其输入的位置不变特征。虽然这适用于许多问题,例如图像识别(猫可以出现在图片中的任何地方),但我们认为重要信息是位置相关的(例如,前缀和后缀编码的信息与茎不同),使LSTMs成为一个先验的更好的函数类,用于描述词与字之间的关系。

4.2 Pretrained embeddings

与Collobert等人(2011)一样,我们使用预训练词嵌入来初始化查找表。我们观察到使用预训练的单词嵌入比随机初始化的单词嵌入有显著的改进。嵌入使用skip-n-gram(Ling等人,2015a)进行预训练,skip-n-gram是word2vec(Mikolov et al.,2013a)的变体,用于解释词序。这些嵌入件在训练期间进行了微调。

西班牙语、荷兰语、德语和英语的单词嵌入分别使用西班牙语Gigaword版本3、莱比锡语料库集合、来自2010年机器翻译研讨会的德语单语培训数据和英语Gigaword版本4(去掉洛杉矶时报和纽约时报部分)进行训练。我们对英语使用100的嵌入维度,对其他语言使用64个嵌入维度,最小词频截止为4,窗口大小为8

4.3 Dropout training

最初的实验表明,当与预训练的单词表示结合使用时,字符级嵌入并没有提高我们的整体性能。为了鼓励模型依赖于这两种表示,我们使用了dropout training(Hinton et al.,2012),将一个dropout mask应用于图1中双向LSTM输入之前的最终嵌入层。我们观察到使用dropout后模型的性能有了显著的改善(见表5)。

5 Experiments

本节介绍了我们用于训练模型的方法、我们在各种任务中获得的结果以及我们的网络配置对模型性能的影响。

5.1 Training

对于这两个模型,我们使用反向传播算法来训练我们的网络,在每个训练例子中更新我们的参数,一次一个,使用随机梯度下降(SGD),学习率为0.01,梯度剪辑为5.0。已经提出了几种方法来提高SGD的性能,如Adadelta(Zeiler,2012)或Adam(Kingma和Ba,2014)。虽然我们观察到这些方法的收敛速度更快,但没有一种方法的性能能像gradient clipping的SGD那样好。

我们的LSTM-CRF模型为正向和反向LSTM使用单层,其维度设置为100。调整这个维度并没有显著影响模型性能。我们把dropout率设为0.5。使用更高的比例对我们的性能产生了负面影响,尽管会增加训练时间;

stack LSTM模型使用两个层,每个层的维数为100。组合函数中使用的动作的嵌入各有16个维度,输出嵌入的维数为20。我们对不同的dropout率进行了实验,并用每种语言的最佳dropout率报告了成绩。这是一个贪婪的模型,在整个句子被处理之前应用局部最优操作,可以通过波束搜索(Zhang and Clark,2011)或探索训练(Ballesteros et al.,2016)获得进一步的改进。

5.2 Data Sets

我们在不同的数据集上测试我们的模型以进行命名实体识别。为了证明我们的模型能够推广到不同的语言,我们给出了CoNLL-2002和CoNLL2003数据集(Tjong Kim Sang,2002;Tjong Kim Sang和De Meulder,2003)的结果,这些数据集包含英语、西班牙语、德语和荷兰语的独立命名实体标签。所有数据集都包含四种不同类型的命名实体:位置、人员、组织和不属于前面三个类别中任何一个的杂项实体。虽然POS标签可用于所有数据集,但我们没有将它们包括在我们的模型中。我们没有执行任何数据集预处理,除了用0替换英语NER数据集中的每个数字。

5.3 Results

表1展示了我们与其他英文命名实体识别模型的比较。为了使我们的模型与其他模型的比较更加公平,我们报告了其他模型在使用和不使用外部标记数据(例如地名索引和知识库)的情况下的得分。我们的模型不使用地名录或任何外部标记资源。关于这项任务的最佳成绩由Luo等人(2015年)得出。他们通过联合建模NER和实体链接任务获得了91.2的F1(Hoffart等人,2011)。他们的模型使用了很多手工设计的功能,包括拼写功能、WordNet集群、Brown集群、POS标记、chunks标记,以及词干分析和外部知识库,如Freebase和Wikipedia。我们的LSTM-CRF模型优于所有其他系统,包括使用外部标记数据(如地名录)的系统。除了Chiu和Nichols(2015)提出的模型外,我们的StackLSTM模型也优于所有不包含外部特征的模型。

97324259bdbf354ff86e3d0749d1fbed.png

表2、表3和表4分别给出了德语、荷兰语和西班牙语的NER结果,并与其他模型进行了比较。在这三种语言中,LSTM-CRF模型明显优于所有以前的方法,包括使用外部标记数据的方法。唯一的例外是荷兰语,Gillick et al(2015)的模型可以通过利用其他NER数据集的信息来表现更好。与不使用外部数据的系统相比,Stack LSTM还始终呈现出最先进(或接近)的结果。

2a84318a77fde2f96e0e9a9525b657d8.png

844b94ca942279265fcda51b8f7a895d.png

af0e0737ceb7051a853da7586663c5af.png

正如我们在表格中看到的,堆栈LSTM模型更依赖于基于字符的表示来实现竞争性能;我们假设LSTM-CRF模型需要较少的正交信息,因为它从双向LSTM中获得了更多的上下文信息;但是,Stack-LSTM模型是一个接一个地消耗单词,它在分块时只依赖于单词表示。

5.4 Network architectures

我们的模型有几个组件,我们可以对它们进行调整,以了解它们对整体性能的影响。我们探讨了CRF、字符级表征、单词嵌入和退出的预训练对LSTM-CRF模型的影响。我们观察到,单词嵌入的预训练使我们在F1中的整体性能提高了7.31倍。CRF层给我们增加了+1.79,而使用dropout导致了+1.17的差异,最后学习字符级单词嵌入导致了大约+0.74的增长。对于堆栈LSTM,我们进行了一组类似的实验。不同体系结构的结果如表5所示。

c6d3d2f40dd212b62dbe2f66f874369d.png

Conclusion

本文提出了两种用于序列标记的神经结构,它们在标准评估环境中提供了有史以来最好的NER结果,甚至与使用外部资源的模型(如地名索引)相比。

我们的模型的一个关键方面是,它们通过一个简单的CRF体系结构,或者使用基于转换的算法显式地构造和标记输入块,从而对输出标签依赖性进行建模单词表示对于成功也非常重要:我们使用预先训练过的单词表示法和“基于字符的”表示法来捕获词法和正字法信息。为了防止学习者过于依赖一个表现类,使用了dropout。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值