Neural Architectures for Named Entity Recognition【论文笔记】

一、Background

  命名实体识别是一个极具挑战性的任务。首先,在大多数语言和领域中,训练数据非常少;其次,对可以成为实体的单词类型的限制很小,因此很难从小样本数据集训练出一个泛化性强的模型。因此,精心构造的语法特征(orthographic features)和语言特定的知识资源被广泛用于解决此任务。但是,语言特定的知识和特征在其它语言和领域的泛化性可想而知。来自无标注语料的无监督学习提供了一种替代策略,可以从少量监督数据中获得较好的泛化性。然而,即使是那些广泛依赖无监督学习的系统也使用这些系统来增强而不是取代手工设计的特征和专业知识资源。
  命名实体识别的任务是为每个词打标签。其中一种标记方式是IOB格式(Inside,Outside,Beginning),如果一个词是实体的开始词,标为B-label,实体内部的词标为I-label,其它标为O。通常我们使用IOBES标注方法,一种IOB的变种。单个实体词标为S,实体结束词标为E。通过这种方法,如果当前词的标签为I-label,那么下一词的可能标签就缩减为I-label或E-label。而IOB只能确定下一词不是其它label的中间词。

二、Motivation

  训练数据少,之前的工作在模型中加入太多的人工干预,导致模型的泛化性不强。本篇论文中,作者提出了NER的网络架构,它不使用除少量监督训练数据和未标记语料库之外的语言特定资源或特征。模型的设计出于两方面的考虑。首先,实体通常由多个词组成,因此对每个词的标记决策共同推理非常重要,实验过程中比较了两种模型:BiLSTM+CRF;一个新模型,使用一个算法来构造和标记输入句子的块,该算法受到基于转换解析的启发, 用堆叠的LSTM来表示状态。其次,作为实体的形态特征包括orthographic evidence(被标记为实体的单词长啥样?)和分布式特征(被标记的词往往出现在语料的哪个位置?)。为了捕捉orthographic sensitivity,作者使用了基于字符的词表示模型。

三、Model

3.1 LSTM-CRF模型

  整个双向LSTM-CRF模型的结构如下,句子的词向量作为输入,经过双向LSTM获得整个句子的表示,然后经过全连接层将输出维度控制为标签大小,最终经过CRF层输出每个词的标签。
在这里插入图片描述

  • LSTM: 首先介绍RNN,RNN接受序列数据 ( x 1 , x 2 , . . . , x n ) (x_1,x_2,...,x_n) (x1,x2,...,xn)作为输入,返回另一个序列 ( h 1 , h 2 , . . . , h n ) (h_1,h_2,...,h_n) (h1,h2,...,hn),表示输入中每个步骤的序列信息。但是RNN无法捕捉长距离的依赖关系,LSTM的提出就是为了解决这个问题。LSTM结合存储器单元已被证明可以捕获长距离的依赖关系。他们使用几个门来控制输入到存储器单元的比例,以及从先前状态到忘记的比例。
  • 在这里插入图片描述
  • CRF: 通过上述的双向LSTM获得整个句子的表示后,一个简单有效的标记方法就是独立地为每个单词输出标签。尽管这种方法在简单任务如POS上很成功,但是它在输出标签有强相关性时有很大的局限性。NER就是这样,输出标签是有强相关性的,比如I-PER后不能接B-LOC。因此,使用条件随机场CRF来解决这个问题。
    对输入序列 X = ( x 1 , x 2 , . . . , x n ) X=(x_1,x_2,...,x_n) X=(x1,x2,...,xn),P是双向LSTM的评分矩阵, P i , j P_{i,j} Pi,j表示第i个词的第j的标签的得分。对于输出的最终序列 y = ( y 1 , y 2 , . . . , y n ) y=(y_1,y_2,...,y_n) y=(y1,y2,...,yn),定义它的分数为 s ( X , y ) = ∑ i = 0 n A y i , y i + 1 + ∑ i = 1 n P i , y i s(X,y)=\sum_{i=0}^nA_{y_i,y_{i+1}}+\sum_{i=1}^nP_{i,y_i} s(X,y)=i=0nAyi,yi+1+i=1nPi,yi,A是CRF的转换矩阵, A i , j A_{i,j} Ai,j表示从标签i转移到标签j的得分。通过softmax就可以获得所有输出序列的概率:
    在这里插入图片描述
    等式两边取log,最大化正确标签序列的概率:
    在这里插入图片描述

3.2 Transition-Based Chunking模型

  上节讨论了LSTM-CRF模型,接下来讨论一种新的网络架构,使用基于转换的依赖性解析的算法来对输入序列进行分块和标记。该模型直接构造多个单词的表示,比如实体“Mark Watney”被组成单个表示。
  该模型依赖于堆栈数据结构来递增地构造输入的块。使用堆叠的LSTM来表示这个堆栈。传统的LSTM从左到右建模句子,堆叠的LSTM允许嵌入一堆对象,可以进行添加和移除操作。这允许Stack-LSTM像堆栈一样工作,保存了输入内容总结的信息。

  • Chunking算法: 作者设计了一个转换表,如图2所示 。左边是堆栈的上一状态,经过相应的Action,变成堆栈的下一状态。作者使用了两个Stack(指定的输出和堆栈分别表示已完成的块和暂存空间)和一个包含尚未处理的单词的缓冲区。SHIFT动作将缓冲区的单词移入Stacking中,OUT动作直接将缓冲区的单词移入到输出栈中,REDUCE动作将栈顶层的所有项弄成一整块并打标签输入进输出栈中。图3是个具体的例子:
    在这里插入图片描述
    在这里插入图片描述

3.3 Input Word Embedding

  两个模型的输入层都是词向量层,从有限的NER训练数据中学习单词类型的独立表示是一个难题:训练的参数太多。由于许多语言都有正字形或形态学证据表明某些东西是实体(或不是实体),因此我们需要得到单词拼写敏感的表示信息。作者使用一个模型从组成单词的字母表示中来构造词表示。在大型语料库中,实体可能会出现各种各样的变化。因此,我们从大型语料库中训练得到的词向量对词序敏感。最后,为了防止模型过于依赖一种表示或另一种表示,在模型中加入Dropout,发现这对于良好的泛化性能至关重要。
  作者的工作与大多数以前的方法的一个重要区别是,在训练时学习字符级特征,而不是手工加入单词的前缀和后缀信息。图4描述了从单词的字符中学习词向量的过程。最终的词表示由词向量和单词中的字符经过双向LSTM的表示拼接而成。
  像RNN和LSTM这样的循环神经网络可以编码很长的序列,然而,他们更倾向于记住更多最近输入的信息。因此,作者期望前向LSTM的最终表示能够准确的表示单词的后缀,后向LSTM的最终表示能够准确的表示单词的前缀。一种替代方法——卷积神经网络,从字符的角度学习词表示。但是,卷积神经网络旨在发现其输入的位置不变特征。虽然这适用于很多任务,像图片识别,但是作者觉得重要信息取决于位置,使得LSTM更适合建模词和词的字母之间的关系。
在这里插入图片描述

四、Experiment

  
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、Conclusion

  本文的亮点是在词向量的基础上结合了字符表示的信息,提升了模型性能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值