cys 2018-06-25
EMNLP 2017 Regular Papers
NITE:针对特定领域命名实体识别的神经网络归纳学习框架
NITE: A Neural Inductive Teaching Framework for Domain-Specific NER
浙江大学
Zhejiang University
【摘要】在特定领域命名实体识别(NER)中,由于缺乏足够的标记训练数据,深度模型通常不能正常工作。在本文中,我们提出了一种创新的神经网络归纳学习框架(NITE),将现有的特定领域模型知识转化为一种以教师-学生训练方式进行的任意深度神经网络。NITE是一个基于迁移学习和多实例学习的通用框架,它不仅能协作式地将知识传递给一个深度学生网络,还能减少老师的噪音。它可以帮助深度学习方法有效地利用现有较小的域中的资源(例如:模型,标签和未标记的数据)。在疾病NER上的实验结果表明,在不使用任何标记数据的情况下,在F1-score方面,NITE可以显著地提高双向卷积神经网络LSTM-CRF NER神经网络30%的性能。
1 引言
特定领域的命名实体识别(DNER),其目标是识别领域特定实体及其类别,在领域文档分类、检索和内容分析中扮演着重要的角色。它是深层次复杂信息提取任务的基础,是将数据转换为机器可读知识的知识计算过程的基石(Zhuang et al., 2017)。特定领域NER是一个具有挑战性的问题。例如,在生物医学领域,未知生物医学实体的数量(如疾病名称、化学名称)、它们的缩写或简称,以及同一实体的多个名字,随着生物医学文献和临床记录的迅速增加而快速增长。然而,基于学习的NER系统的性能很大程度上依赖于数据标注,这个非常昂贵。在特定领域的NER系统中情况更糟,因为他们的数据标注需要领域专家的参与。因此,在许多特殊领域中,只有经过训练的模型或API是可用,而它们的训练数据是私有且难以获取。另一方面,由于缺乏足够标记的训练数据,深层模型通常在这类领域表现不佳,而在这些领域中,最先进的方法通常是由基于规则的演绎方法或人为设计的浅层模型所主导。但是,预先定义有用的特定领域人为设计特征或规则对大众而言通常是不可用。
本文提出了一种新的神经网络归纳学习框架(NITE),将现有模型的知识转化为任意的深度神经网络。这个想法主要来自于迁移学习(Pan and Yang, 2010),以前的学习知识可以指导当前情况分析,并通过采用更好的解决方案来解决问题。在NITE中,现有的NER模型表现得像效率低下的教师,训练一个深度神经网络(我们称之为学生网络),通过给它具体的例子来识别命名的实体。从这些模型中传输的知识是它们在未标记数据上的后验分布。这些教师效率低下,因为他们不仅把有用的信息传递给学生,而且还把错误传递给学生。学生网络的输入可以来自两方面,一是来自于人类已标记的真实数据的一小部分(可选的,就像教科书一样),另一个大部分是来自教师,但它总有噪声且不可信。在这种情况下,一个学生被压制了,往往不如老师。因此,在NITE中,我们引入了多实例学习(MIL)技巧(Dietterich et al., 1997; Babenko, 2008)以减少模型训练阶段中的输入噪音。
总之,NITE是一个通用的框架,它可以帮助深度学习方法充分利用现有资源(例如:模型、标签和未标记的数据)。在疾病NER(DNER)上的实验结果表明,不使用任何标记的数据,就能显著提高CNN-bidirectional LSTM-CRF NER神经网络(Ma and Hovy, 2016)的性能,该神经网络在NCBI训练数据集上的F1-score能提升超过30%。它的表现也优于教师模型,这证明了我们假设的正确性。
2 神经网络归纳学习框架
在本节中,我们将一步步地定义我们的框架,并将其应用于疾病NER。
2.1 归纳教学
归纳教学意味着通过例子来教学生,我们的归纳教学方法建立在教师-学生模型(Baand Caruana, 2014)和知识提取 (Hinton et al., 2015)。我们方法的主要思想是将有区别的知识从训练有素的现有模型(教师)迁移到一个新的更有能力的模型(学生)。学生通过模仿教师的行为来学习,教学过程可以被定义如下:
让x = {w1,w2, . . . , w|x|} 是一个|x|个单词长的输入句,wk是x中的第k个单词。如果lk是wk对应的3维one hot IOB(In-Out-Begin)向量,那么x的NER标记序列就可以被定义为y={l1,l2, . . . , l|x|}。
对于一个给定的句子xi,我们进一步定义了一个教师的后验分布为yift = ft(yi|xi),而一个学生网络的后验分布可以被定义为易yist = fs(yi|xi;θ),其中θ是学生网络的参数。在训练过程中,我们使用KL散度KL-divergence测量了yft和yfs之间的相似性,并将它们的差异最小化。因此,对于给定的xi,我们进行如下优化:
其中,
是KL散度。这个等式可以使用随机梯度下降,通过采用Adadelta(Zeiler,2012)更新规则的shuffled mini-batches来优化。
2.2 多实例学习
多实例学习是一种有效的训练方法,可以帮助训练一个有监督的模型来缓解错误标注问题(Riede et al., 2010; Hoffmann et al., 2011;Surdeanu et al., 2012)。MIL的目标不是预测每个训练样本的标签,而是预测看不见的袋子的标签(正或负),其中每个袋子都有固定数量的实例(样本)。标准MIL假定:若袋子里至少有一个实例是正的,那个这个袋子就是正的;若袋子里的所有实例都是负的,那这个袋子就是负的。MIL通常用于训练二元分类器,为了将MIL应用于NITE,我们重新定义袋子的标签作为其包含样本的质量(正确性)。因此,在NITE中,如果一个袋子里至少有一个正确的标记,就会被标记为正。此外,由于句子xi的IOB序列易产生依赖性,它不适合用于评估每个单词(例如wk)的IOB标签的正确性(例如lk)。因此,我们将句子xi作为我们的MIL实例,并且通过正确的BIO标记的所有单词的似然概率来评估xi的正确性。一般来说,我们的MIL可以被正式定义如下:
把最小批次В中的训练样本随机地分配到M个袋子中,即В={B1,B2, . . . , BM},他们的相关标签为{z1, z2, . . . , zM},其中zm∈{−1, 1}。对于袋子Bm,它包括K个实例,即Bm = {x1,x2, . . . , xK},其中xi是一个带有后验评估yifs的句子。
在训练过程中,给定一个袋子Bm,如zm=1,则Bm就是一个正袋子。为了减少噪声,我们的MIL学习器将会选择最正确的实例yi*fs,它是在袋子Bm中的所有其他实例中(即句子)具有最大可能性的那个。这就是说P(zm = 1|Bm)=P(yi∗fs) = arg max{P(yifs|xi)},where 1≤i≤K, xi∈Bm。如zm=-1,则Bm就是一个负袋子。为了更好地检测这样的负袋子,我们的MIL学习器要选择最违反(most violated)的实例进行学习,这也是最有可能的实例。这样实际上集成了袋子标签z(z用于表示该句子是被正确或错误标记过的),因为不管z的值是多少,NITE中的MIL总是会选择概率最大的实例。最终,NITE中的MIL可以总结如下:
总之,在一个学生网络的后分布中,可以将NITE中的MIL看作是后选择的或正则化的一种机制。因此,MIL只会影响模型的训练,它不会影响测试过程。
2.3 教师模型和学生网络
从理论上讲,NITE的教师模型可以是任何现有的训练有素的模型,而学生网络可以是一个任意深度神经网络。在本文中,我们关注的是特定领域的NER,更具体地说是疾病NER,这是一个很小但典型的领域,它受到的标签训练数据不足的困扰。
在众多现有的DNER系统中,最著名的系统是BANNER(Leamanet al., 2008)和DNorm(Leaman et al,2013)。BANNER是一个开源的生物医学NER系统,使用条件随机场(CRFs) (Lafferty et al.,2001)实现。而DNorm使用的是有监督的语义索引,通过成对的学习训练进行排名,来对BANNER返回的实体打分。因此,DNorm可以被看作是BANNER的一个扩展,整个系统依赖于人工设计的特征,例如字的拼写特征和正字法特征。DNorm是一种先进的DNER系统,因此我们采用DNorm作为我们的教师模型。
对于学生网络,我们在常规NER中寻找最先进的解决方案。在常规NER或其他序列标注任务上应用复杂深度学习模型的研究有很多。在没有任何特性工程技巧的情况下,深度模型已经达到了与许多其他传统方法相同或更好的性能。最近,Ma and Hovy (2016)提出了一种串联CNN、双向LSTM和CRF,形成一个端到端深度NER模型的方法(简称CLC)。CLC取得了最先进的性能,因此我们将CLC作为我们的学生网络,图1展示了我们学生网络的整体架构。
图1 学生网络流程图
如图1所示,字符级向量由CNN层生成,然后与预先训练的词向量连接,最后输入到双向LSTM层。双向LSTM可以同时有效地捕获前面和后面的语法和语义信息。它的输出向量被输入到CRFs层,用于IOB序列标注。在最后的CRFs训练过程中,它使用最大条件似然估计来选择参数,并且它的似然值如下:
其中,y(xi)表示xi可能的标签序列集合。等式(3)可以通过Viterbi算法解决。
图2 NITE-NER训练过程
图2展示了整个NITE-NER训练过程。在每次训练迭代中,将一个最小批的训练样本随机地分配到M包中,然后输入到学生网络fs中。对于Bm,学生网络将分别为每一个输入实例xi∈Bm生成后评价yifs。然后,MIL模块将根据等式3和等式2,从所有K实例中选择最好的样本yi*ft。最后,NITE从教师模型取后验评价yi*fs,并以等式1为基础更新θ。
3 实验
在这一节中,我们设计了几个实验来证明我们的归纳教学假设,并评估NITE框架。
3.1 训练语料库
虽然NITE是一个有监督学习框架,但学生网络间接地从教师模型中学习到了判别知识。因此,在没有任何标记数据的情况下,可以对NITE进行训练。
为了评估这一框架的效率,我们在NCBI疾病语料库中训练了两种DNER模型(Dogan et al. , 2014; Islamaj Dogan and Lu, 2012)。一个是著名的DNorm模型,它是疾病NER的最先进的方法。另一个是双向的LSTM-CNN-CRF NER神经网络,即CLC(Ma and Hovy, 2016),在一般的NER任务中是当前性能最优的。CLC体系结构也作为我们的学生网络。
NCBI疾病语料库是一个在生物医学研究领域中广泛使用的,具备疾病名称和相关概念标注的数据语料库。此语料库是AZDC语料库的延伸(Leamanet al., 2009),只标注了疾病名称。NCBI疾病语料库的详细特征以及我们如何对数据进行划分,如表1所示。
表1 用于疾病NER的NCBI语料库训练、验证和测试集描述
3.2 实验设置
实验的设置如下:
我们的NITE-DNER在没有任何标注的数据上训练,我们从PubMed中随机抽取了2000个没有标注的生物医学文献作为我们的训练数据。DNorm模型作为NITE框架中的教师模型。
在学生网络中,我们用
范围内统一的样本对字符的嵌入进行了初始化,这里我们设置d=30。我们在CNN中使用了30个窗口长度为3的过滤器,在双向LSTM中使用了200个隐藏状态。在训练过程中,我们设置初始学习速率为0=0.015,而衰减率=0.05,学习速率被更新为t=0/(1.0+n),其中n是训练次数。我们在CNN使用固定的衰减率0.5,同时也使用双向LSTM的输入和输出向量来缓解过度拟合现象。对于MIL,我们将包大小设为K=5,并将mini-batch大小设为30。我们使用Theano在GeForce GTX 1080上实现了神经网络。
3.3 结果和讨论
我们对NCBI测试集的所有三种DNER方法在准确率、召回率和F1-score方面进行了评估。所有的测量都是基于在给定的测试句子中提取的疾病实体的确切位置。
表2 性能比较
实验结果如表2所示,尽管复杂的CLC网络是通用NER中最先进的方法,但由于没有足够的标注训练数据,它在特定领域NER任务中表现不佳。然而,在我们的框架的帮助下,它的性能得到了显著的提高,达到了标准的水平。这证明了在训练一个特定领域的深层模型时,知识的传递是有效且重要的。
3.4 结论
在本文中,我们提出了一个通用的框架NITE,并证明了其在将DNER知识迁移到一个端到端深度NER模型的有效性。尽管我们只是为DNER提出了一个解决方案,但是它可以很容易地应用于其他领域的特定问题(例如:化学、基因和蛋白质),甚至是除NER以外的应用。实验结果表明,在其他资源可用的情况下,该方法对训练深度模型有很大的帮助。对于未来的工作,可以考虑有多个教师模型的框架。此外,正如在(zhou et al. 2017)中所提到的,群体知识可以用来重塑深度学习的特征。我们的框架也可以很容易地融入群体知识,在这种情况下,教师可以是人群,然后就可以使用主动学习(Olsson, 2009)或终身机器学习(Chenand Liu, 2016),逐步完善学生模型。
论文下载链接:http://www.aclweb.org/anthology/D/D17/D17-1280.pdf