相关标签

基于远程监督数据的关系抽取系统构建

发布时间:2019-12-04 17:43

  摘 要

  目前,监督学习是数据关系抽取最具代表性的方法。在构建数据的关系抽取系统时,需要大量的标记数据用于训练模型。为此,提出了远程监督的方法用于生成训练数据。以往的关系抽取方法大多使用特定的特征,系统的性能很大程度上取决于这些特征的质量。而这些特征通常由现有的自然语言处理工具生成,因此会或多或少的出现错误,从而影响系统的性能。

  因此,为了减少因使用自然语言处理工具生成的特征产生的错误,我们使用卷积结构自动学习这些特征。然而,我们在使用远程监督的方法产生训练数据,会产生错误标记的问题,这些噪音数据会对影响之后训练的系统的性能。为此,我们把远程监督的关系抽取当作一个多实例学习的问题。进一步的,为了充分利用所有的句子信息, 我们引入了注意力机制。

  在本文中,我们主要做了以下工作:

  1. 我们查阅了相关资料,了解了关系抽取系统的相关方法和前沿技术,从而对关系抽取有了一个清晰的认识。

  2. 我们对比了当前用于关系抽取的各类方法,分析优缺点,归结得出有监督学习的方法是当前关系抽取方法的主流。

  3. 为了训练模型,我们详细了解了远程监督生成训练集的原理,以及分析其中存在的问题。

  4. 我们对卷积结构的深度学习模型进行了深入的了解,分析其存在问题,并认识到,使用多实例学习方法和选择性注意机制可以很好地解决这些问题。

  5. 为了更好的理解基于远程监督的 数据关系抽取,我们设计并实现了基于 卷积神经网络的关系抽取系统,并使用了多实例学习的方法进行训练和测试, 实验取得了很好的效果。

  关键词:远程监督;关系抽取;卷积神经网络;注意力机制

  前 言

  关系抽取是目前自然语言处理领域的一大研究热点,也是很多自然语言处理任务的重要环节。在许多自然语言处理任务中,大型知识库能提供非常多的有效信息。尽管这些知识库中已经包含了大量的有效信息,但相比较于庞大的数据世界,这些信息是不足以来描述它们的。因此,为了增加这些知识库的有效信息,我们可以通过关系抽取来自动生成有效信息,从而丰富这些已经存在的知识库。

  目前,监督学习的方法是应用于关系抽取的一种最有效的方法,但监督学习的方法需要大量的训练数据。显然,使用人工标注大量数据的方法是不明智的。Mintz 等人在 2009 年提出使用远程监督的方法去生成训练数据[1],该方法通过对齐知识库和文本语料的方式可方便地获得大量标记数据。

  传统的监督的关系抽取系统通常通过已经存在的自然语言处理工具生成需要的特征,再将这些特征应用于远程监督获得标记数据的训练中。这类系统的性能在很大程度上取决于自然语言处理工具生成的特征的质量。由于自然语言工具在产生这些特征时不可避免地存在着些错误,并且这些错误在后续处理中会不断传播和积累,系统的性能会因此受到很大的影响[2]。

  为了避免由自然语言处理工具产生的错误的影响,我们不再设计特定的特征,而采用一个卷积结构自动学习特征,这也舍去了很多复杂的预处理工作。在卷积神经网络中(CNN,convolutional neural network)中,我们通过最大池操作选取最有意义的特征,这种方法虽然很有效[3],但因为这种方法降维太快了,不能捕获待识别实体对间的结构信息[4]。为此,我们可以使用 Zeng 等人 2015 年[5]使用过的分段卷积结构的神经网络(PCNN, piecewise convolutional neural networks),在这种网络中,我们通过实体对将句子分成三部分,每部分分别进行最大池操作,从而捕获更多的特征用于实体对的关系识别。

  在卷积神经网络在使用远程监督进行关系抽取时,会出现错误标记问题,这是由于远程监督的假设限制太过于宽泛导致的。因此,我们在进行关系抽取时要考虑样本标签不确定的问题,为此我们把关系抽取当作一个多实例学习的问题[6]。只考虑每个包的标签,而不考虑包中实例的标签。为了充分的利用各个标记样本的信息,我们引入了选择性注意力机制[7]。

  本文主要以基于远程监督的关系抽取系统为研究对象,分析以往的监督学习方法

  的不足,提出使用卷积结构自动学习特征来实现关系抽取。并使用多实例学习和选择性注意机制来缓解错误标记的问题。最后我们将多实例方法运用到 CNN 中,构建基于远程监督的数据的关系抽取模型,获得了很好的实验效果。

  第一章 绪 论

  本章首先介绍基于远程监督的数据关系抽取的研究背景和意义,其次简单介绍远程监督的原理,再概括介绍本文的任务和所做的工作,最后介绍本文的组织结构。

  1.1 研究的背景及意义

  在自然语言处理过程中,关系抽取是一项非常重要的任务,也是很多自然语言处理任务的中间环节。例如,关系抽取的结果可以用于网络搜索、知识库问答系统等, 这些应用需要巨大的知识库提供支持。虽然现在已经存在许多知识库如 YAGO[8]、Freebase[9]、DBpedia[10]等,但相比较于庞大的数据世界,这些知识库所存储的有用信息远远不够描述世界万物。因此,需要利用关系抽取更多有用的信息去丰富这些知识库内容。

  在众多关系抽取的方法中,有监督学习的方法被证明最有效,也最具代表性。在有监督学习的方法中,我们把数据的关系抽取问题当作一个多分类问题来处理,即关系抽取就是给每个句子中未标记的实体对分配一个关系标签。这种方法通过训练部分已标记的数据,可以有效的对未标记数据进行分类。为了获得足够的已标记的训练数据,Mintz 等人在 2009 年提出对齐知识库和文本从而获得大量标记数据的远程监督方法[1],该方法一经提出就在有监督的关系抽取方法中得到广泛的应用。

  1.2 远程监督

  在 1954 年,Harris 提出了分布假设理论。该理论认为,如果两个单词经常出现在上下文相似的语境材料中,那么可以认为这两个单词具有相似的含义[11]。类似的, 远程监督认为,如果两个实体之间存在某种关系,这种关系已存在知识库中,那么, 同时出现包含这两个实体的句子将表达它们的这种关系。如图 1.1 所示,知识库中的一个三元组(Tom,nationality,China)表达出了实体Tom 和China 之间关系为nationality,那么我就可以认为所有包含 Tom 和 China 的句子,如“Tom comes from China.”,能 够表达这两个实体间的这种 nationality 关系。因此,我们可以利用 Freebase 这样的知识库,对齐海量的文本语料,快速地获得大量的标记数据。事实证明,这是一种非常 有效的生成大量训练数据的方法。

  然而,我们不难发现,远程监督的假设限制太过于宽松,这导致了通过远程监督的方法生成的标记数据中存在错误标记的问题。例如,在知识库和文本对齐的过程中, 句子“Tom wants to travel to China and climb the Great Wall”因为同时出现了实体 Tom 和 China,就会被认为表达了这两个实体间 nationality 的关系,但事实上这句话并没有表达这层关系。远程监督方法中存在的错误标记问题会对监督模型的训练造成严重的负面影响。

  1.3 本文的任务和主要工作

  数据关系抽取的主要目的是为了抽取文本中的实体关系,以结构化的形式存储, 以便机器和程序能理解和使用[12]。因此,如图 1.2 所示,我们的任务主要是尽可能正确的识别文本中给定实体的关系,并以结构化的形式如三元组的形式存入数据库中。而为了达到这个数据关系抽取的目的,我们建立了一个有监督学习的模型。我们通过 远程监督的学习方法生成了大量训练集,通过神经网络进行训练,建立了一个区分特 定关系的关系分类器,从而对文本中大量已指定实体对进行关系识别,并将结果组织 成结构化数据存储起来。

  本文主要以基于远程监督的关系抽取系统为研究对象,分析以往的监督学习方法的不足,提出使用卷积结构自动学习特征来实现关系抽取。并使用多实例学习和选择性注意机制来缓解错误标记的问题。本文完成主要工作如下:

  (1) 去除复杂的预处理操作,不再人工的设计特征,而利用卷积结构,使用多

  个过滤器去自动学习特征,且在不断的训练中不断调整,获得最佳的最适应特征。

  (2) 从远程监督的假设出发,指出远程监督中存在的错误标记的问题。考虑到实例标签的不确定性问题,我们采用多实例学习的方法,把实例按实体对和其关系分成一个个的包,仅考虑包的标签而不去考虑包内实例的标签。这样,包内实例标签的不确定性就考虑到了,我们的重点就是区分这些包。

  (3) 多实例学习相对普通的监督模型有着很好的效果,但是,在实际操作过程中,我们每个包中只选择最能表现实体对关系的实例进行模型训练,这就舍弃了大量的训练实例,其中包含了丰富的可以用来预测实体对关系的信息。为此,我们引入了选择性注意机制,充分考虑每个实例对实体对关系预测的贡献,从而更好的训练模型。

  (4) 使用 C++编程实现使用了多实例学习方法的卷积神经网络的关系抽取模型,将训练好的参数导入到文本文件中保存,并编写测试函数测试不同训练集规模训练下模型的性能。

  1.4 本文的组织结构

  本文一共分为六章:

  第一章:绪论。主要介绍了关系抽取的意义以及远程监督提出的背景,再详细介

  绍了什么是远程监督,最后介绍了本文的主要工作和文章组织结构。

  第二章:关系抽取。详细阐述了什么是关系抽取,并对关系抽取的各类方法进行了介绍和对比。

  第三章:基于 PCNN 的系统实现。详细地介绍了基于 PCNN 实验的关系抽取系统处理单个实例的过程。

  第四章:基于 PCNN 的系统的改进。具体的介绍针对 PCNN 实现的系统存在的问题而提出的多实例学习方法和选择性注意机制。

  第五章:实验。首先介绍了本次实验所用的数据集以及实验中各参数的设置情况, 然后介绍系统实现的过程,最后对实验结果进行介绍和分析。

  第六章:总结与展望。总结全文,并对本文所做的工作提出展望。

  第二章 关系抽取

  关系抽取是当前自然语言处理领域的一大热点研究课题,其本身对自然语言处理的整个相关环节都有着极其重要的作用。关系抽取旨在判断给定文本中给定实体对的语义关系[13],整理成结构化信息,以便程序和机器理解。

  2.1 关系抽取的方法

  现在主流的关系抽取方法主要分为三种:无监督学习方法、半监督学习方法和有监督学习方法。

  2.1.1 无监督学习方法

  无监督学习的方法有个前提假设,该方法认为,具有相似语义关系的实体对的上下文语境有一定的一致性,也就是说,出现在语境相似文本中的相同实体对,两者之间的语义关系很接近。那么,自然就可以利用实体对的上下文语境关系来代替实体对之间的关系[14],并通过聚类的方法进行处理,选择文本中频度最高的单词作为实体对之间的关系[15]。

  2.1.2 半监督学习方法

  半监督学习目前主要使用 Bootstrapping 进行关系抽取[16],在关系抽取之前,我们先选定要抽取的关系,人为地设置一些关系实例,然后通过迭代的方式不断地从数据中获取要抽取关系对应的模板和更多的实例,最终来达到数据关系抽取的目的。

  2.1.3 有监督的学习方法

  有监督的学习方法把数据的关系抽取问题当成一个多分类问题来处理,我们所要做的就是给每个实体对分配一个标签。我们需要设计一些特征来帮助实例进行关系分类,为此我们需要训练一个分类模型,当模型训练完成后,我们可以借助模型来实现实例的关系抽取。有监督的学习方法在训练模型时需要大量的训练数据,这些需要标记的数据会花费大量的精力和时间。

  2.2 传统的有监督学习方法

  在有监督学习的方法中,关系抽取被当作一个多分类问题来处理[17]。与无监督的学习方法和半监督的学习方法相比,有监督的学习方法能够获得更准确的特征,通过其构建的关系抽取系统也有较高的准确率和召回率,表现出相当好的性能。传统的有监督学习方法大致可分为两类:基于核的方法和基于特征的方法。

  2.2.1 基于核的方法

  基于核的方法主要通过现有的自然语言处理工具将输入的数据转换成分析树的形式,例如我们可以把一句话转化成一个依存语法树或者语法分析树。基于核的方法不需要显示地去提取特征,因为这些句子的分析树结构中就已经隐含了丰富的句子信息。目前,已经有多个不同的基于核的方法被用于处理关系抽取的问题,例如子序列核[18]、依存分析树核[19]、卷积树核[20]等。

  2.2.2 基于特征的方法

  在基于特征的方法中,我们通过大量的文本分析,选择一个特征集,每个特征都有一个数字 ID 来表示。在处理过程中,通过不同的转化策略,将句子体现的信息, 如分析树、句子分词序列等,转化成特征向量[21][22]。

  2.3 基于深度学习的方法

  就目前情况来说,有监督的学习方法用于关系抽取被证明是最有效的,在实际应用中也表现出很好的性能。但是,正如前面所提到过的那样,传统的有监督学习方法中应用了已经存在的自然语言处理工具去预处理数据,而在自然语言处理工具处理数据时,不可避免地会产生一些错误。不管是基于核的方法还是基于特征的方法,都或多或少利用自然语言处理工具预处理后的数据去设计特征。这些方法构建的关系抽取系统的性能很大程度上取决于精心设计的特征的质量,因此,传统的有监督方法在特征的选择方面有着致命的缺陷。

  为了处理上述的问题,我们提出了利用卷积结构去自动学习相关特征[23],这就省去了复杂的数据的预处理,从而避免了自然语言处理工具处理数据过程中产生的错

  误,因此使用深度学习的方法构建的关系抽取系统相比较于传统的方法,会有明显的性能提升。

  然而,由于我们训练数据是由远程监督的方法产生的,在使用深度学习的模型进行数据的关系抽取时,由于远程监督标记数据存在错误标记问题,系统的性能不如想象的那么优异。为此,可以使用多实例学习的方法去处理错误标记问题[24]。我们把训练集分成一个个的包,只知道包的标签,而不必知道包内实例的标签,这就考虑到了实例标签不确定的问题。进一步地,注意到多实例学习过程中会舍弃许多训练数据, 我们引入选择性注意力机制[25],充分考虑了各个训练实例提供的有用信息,从而获得更好的效果。

  2.4 本章小结

  关系抽取的目的是抽取目标实体间语义关系,是目前自然语言处理领域的一大研究热点。围绕数据的关系抽取,提出了无监督的学习方法、半监督的学习方法和有监督的学习方法。其中,目前最流行也最有效的方法是有监督的学习方法。以往的有监督方法可大致分为基于核的方法和基于特征的方法,但这类方法构建的关系抽取系统的性能极大地依赖于实现选定的特征。而这些特征往往由现有的自然语言处理工具处理得到,由于这些自然语言处理工具在处理数据时存在着或多或少的错误,所以为了避免这些错误,我们提出使用卷积结构去自动学习特征。又由于通过远程监督方法生成的训练数据存在错误标记的问题,我们进一步提出使用多实例学习和选择性注意机制进行处理,从而获得了更好的效果。

  第三章 基于 PCNN 的系统框架设计

  分段卷积结构的神经网络(PCNN, piecewise convolutional neural network),是普通的卷积神经网络(CNN,convolutional neural networks)的一个变种,其本质上仍是一种分类模型,只是在池化部分进行了分段池化。

  在这一部分,我们将以 PCNN 的系统实现为例,详细地介绍使用卷积结构自动学习特征、进行关系识别的过程。如图 3.1 所示,形象的展示了单个句子实例在 PCNN 中处理的流程,这些步骤包括:向量表示、卷积、池化、全连接输出、BP 训练部分。

  3.1 向量表示

  原始的句子语料显示是无法直接投入神经网络中去训练的,为此,我们需要通过 一定的转化方法将输入网络的每个实例转化成一个数值向量,以方便我们后续的处理。

  3.1.1 词嵌入

  词嵌入是单词的一种数值化技术,我们事先定义一个??维的数值空间,然后通过某种映射技术,把每个单词映射到该数值空间上,于是,对于每个单词,我们都有

  一个独一无二的??维向量与之对应[26]。

  为了获得每个单词的词向量,我们最常用的一种方法就会随机初始化各个向量参数,然后通过某种优化机制去优化这些参数。事实上,初始的词向量对系统的性能有着举足轻重的影响。Collobert 等人在 2011 年的研究[17]表明,通过某种学习策略从大量的无标记数据中学习得到的词嵌入比随机初始化的词嵌入更容易获得好的系统性能。虽然目前已经提出了多种训练词嵌入的方法,但训练一个好的词嵌入是不容易的,且花费的时间非常长。因此,我们直接使 Riedel 等人在 2010 年开发的一个已经训练好的、可以免费使用的词嵌入。

  3.1.2 位置嵌入

  因为我们关系抽取的任务是为了鉴别给定句子中指定的两个实体间的关系,而不是整个句子的含义。所以,为了达到这个目的,我们引入了位置嵌入。句子中的每个单词距离头实体和尾实体都有两个相对距离?1、?2,只要知道了每个句子的头实体和尾实体在句中的位置,根据?1、?2的值就可以推出当前实体在句中的位置。例如,在图 3.2 中,中,当前实体“is”距离头实体(Tom)和尾实体(China)的相对距离?1、?2分别

  和词嵌入一样,我们事先分别定义了两个??维空间,然后分别把?1、?2映射到这两个数值空间上。对于每一个相对距离?1或?2,都有唯一的一个??维位置向量与之一一对应。考虑到距离头实体或尾实体越近的单词,对实体对关系的影响越大。所以, 为了减少无意义的数字表示,我们给相对距离设置了一个阈值?,当?1 ≥ ?时,?1 = ?,当?1 ≤ ??时,?1 = ??;同理,当?2 ≥ ?时,?2 = ?,当?2 ≤ ??时,?2 = ??。两个位置嵌入矩阵都是随机初始化的,相对距离?1、?2分别对应位置嵌入矩阵的第?1和

  ?2个行向量。

  对于句中的每个单词,我们都把它的词嵌入和两个位置嵌入拼接起来。这样,通过词嵌入和位置嵌入,我们可以把一个句子表示成一个矩阵? ∈ ??×?,其中s是句子的长度,? = ?? + ?? ? 2。在图 3.1 中,?? =5,?? = 1,于是? = 7.

  3.2 卷积

  关系抽取的任务是识别给定实体之间的语义关系,所以,我们使通过一个包含给定实体的句子,从整句话的角度来预测给定实体的关系。因此,我们需要充分利用句子的各个局部特征,来从宏观上推断给定实体的关系。在深度学习的方法中,卷积神经网络能很好的合并这些局部特征,自然而然,我们在此建立一个卷积层去处理。

  3.3 池化

  对于卷积输出的结果? ∈ ??×(?+??1),我们不难看出,矩阵 C 的大小和一开始输入神经网络的句子长度 s 有关,为了方便在后续层的处理,我们需要把输出的结果处理成和句子长度 s 无关。另一方面,经过卷积层,输出的结果仍具有相当多的参数。为了降维,我们需要对卷积结果进行进一步的处理。此处,我们选择最大池操作来进行池化,以捕获卷积结果中最具有价值的特征[4]。

  在单一最大池的处理中,我们仅需要对每个过滤器的结果进行取最大值操作,即取出每个??中的最大值即可。事实证明,这是一种有效的池化方法,也已经有许多人证明过。但是,正如前面所说的那样,这种方法降维的速度太快了,以至于在降维过程中会丢失很多有用的信息,这是我们不愿意看到的。为了合理的进行降维,尽可能保留有用的信息,我们采用分段最大池的方法,就是说,我们用过某种合理的规则对

  ??分段,每段取最大值。在数据的关系抽取这个问题时,理所当然的,我们根据给定实体对在句中的位置,合理地将句子分成三段,分段取最大值,正如图 3.1 所示。在图 3.2 的例子中,“ Tom ” 和“ China ” 将句子分成三部分, 句子卷积的结果

  这样,对于每个过滤器卷积的结果,在经过分段最大池之后,可以获得一个新的3 维向量??。我们再次将这些新的 3 维向量拼接,形成最终池化后的向量?,? ∈ ???3。经过这样的处理后,我们可以发现,现在的输出结果已经和句子长度 s 无关了,这对后续的处理很重要。

  迄今为止,我们所做的都是线性运算,为了能学习更复杂的特征,我们再次引入一个非线性的激活函数去处理池化的结果?。在这里,我们使用的是双曲正切函数3.4 全连接输出

  经过池化之后,为了判断关系,我们需要输入实例相对于每种关系的置信度。为此,我们需要把池化的结果向量 g 通过某种方式映射成向量 o,其中? ∈ ??1 ,其中?1是可能的关系类型的数量,向量 o 的每 i 维对应第 i 种关系置信度。为达到这种转换目的,我们使用一个权重矩阵?1和偏执向量 b,其中?1 ∈ ??1×(??3),? ∈ ??1 。具体的计算方式如下:

  众所周知,在运用网络深度学习时,过拟合一直是个令人头痛的问题。所谓过拟合,就是指通过训练集训练的模型在训练集上有很好的预测效果,但用于实际预测时, 效果非常差。为了尽可能避免过拟合的出现,我们可以使用一种称之为 dropout 的方法[27]。dropout 是指我们在训练神经网络时,按照某种策略,把网络上的一部分节点隐藏掉,暂时不去考虑它们的影响[28],也就是说,神经网络上的每个节点都有一定的概率?(0 < ? < 1)暂时舍弃掉。这样的话,我们在利用梯度进行更新时每次都在更

  新不同的网络,这些网络结构上都是原先网络的子网络,这就有效的处理了神经网络训练过程中存在的过拟合问题。

  具体怎么操作呢?我们在进行全连接时,设置一个向量 h,? ∈ ??1 ,r 中 n1 个元素以 p 的概率赋值为 0,其余元素赋值为 1。为了应用 dropout,全连接部分的操作变成:

  这就确保了每次训练是都有占神经网络结点总数 p 比例的结点隐藏掉。

  3.5 代价函数

  在全连接层输出后,我们得到的记录实例在各个关系上的置信度的向量 o,但是, 不难看出,o 的每一维元素都有可能是负数,显然,这并不方便我们去判断实例的关系类型。为处理这个问题,我们使用 softmax 函数去处理向量 o,则有:∑ ?(?|?; ?) = 1。因此,?(?|?; ?)就表示输入的实例 x 在神经网络参数为?的情况下计算的指定实体对之间的关系为 r 的概率。事实上,我们已知训练集中各个实例的关系类型。由于神经网络还没训练完成,训练时为了表达出预测值和实际值的差距,我们采用交叉熵来计算这个误差:

  假设共有训练集共有 T 个训练实例,算式(9)计算的是这 T 个实例的交叉熵之和,其中??表示第 i 个训练实例,??表示第 i 个实例标记的关系。用交叉熵来计算预测值和实际值之间的误差是十分合理的。试想一下,如果神经网络已经训练好,预测实体对的性能非常好, 对于每个输入的实体对都能 100% 正确的预测其关系, 那么

  ?(??|??; ?) = 1,从而??? ?(??|??; ?) = 0,T 个训练实例的交叉熵和就为 0,这恰好说

  明关系??是该实例中指定实体对的关系;对于任意不是??的关系 y,?(?|??; ?) = 0, 从而? ??? ?(?|??; ?) → +∞,表明预测的关系 y 和实际的关系??误差非常大,不是实例??中指定实体对的正确关系。

  3.6 BP 训练

  到目前为止,我们知道了 PCNN 处理一个实例的步骤,并求出了代价函数?(?)的值。为了获得一个性能优异的系统,我们需要通过调整参数的方式优化系统。最直截了当的方法就是通过暴力测试,把训练集在具有不同参数?的 PCNN 上运行一片,交叉熵最小的 PCNN 就是我们要找的目标系统。然而,这种方法的代太大了,实际上不太可能实现。

  如图 3.4 所示,由于代价函数的优化是一个凸优化问题,我们可以使用随机梯度下降算法求局部最优解的方式去进行优化,进而求得全局最优解。我们可以利用链式求导法则,求出?(?, ??1, ??2, ?, ?1, ?)的每个偏导数,然后每次朝着梯度的反方向更新参数。参数更新的公式如下:

  其中?表示学习速率。每次更新参数后,再进行训练,直至达到最大的迭代次数或达到收敛。这样,我们可以认为最终得到的模型是该问题的最优模型。

  3.7 本章小结

  本章主要介绍了在 PCNN 中处理单个实例的步骤:对句子如何合理的表示成向量、如何利用卷积结构自动学习特征、如何更好的进行池化、怎样进行全连接避免过拟合以及如何利用代价函数进行梯度更新进而求得最优解做了十分详细的介绍,通过纯粹的数学算式和理论推导,证明了利用卷积结构自动学习特征、进行关系抽取的可行性。

  第四章 基于 PCNN 的系统的改进

  正如前面所提到的那样,利用 PCNN 实现的关系抽取系统固然很好的解决了传统监督学习模型中人工设计的特征不高的问题。但是,利用远程监督的方法生成的训练数据训练生成的关系抽取模型在性能上仍可以有所改进提升。远程监督的方法生成训练数据存在的错误标记问题成为制约这类系统性能的瓶颈。为此,我们采用了多实例学习的方法和选择性注意的机制来缓解错误标记带来的负面影响。

  4.1 多实例学习

  多实例学习的方法最初由 T. G. Dietterich 等人在 1997 年研究药物活性[29]时提出,随后在文本分类、图像检索等诸多方面获得广泛的应用。在多实例学习中,我们把训练集分成一个个的包。如果包中存在至少一个正实例,那么就把这个包当作正包; 如果包中全是负实例,那么这个包就是负包。在实际操作中,我们只知道包的标签, 而不知道包内实例的标签。因此,在多实例学习中,我们只需要去区分不同的包。在模型训练过程中,使用多实例学习的方法,就很好的考虑到了包内实例标签的不确定性,从而缓解了错误标记的问题。

  4.2 选择性注意机制

  由于远程监督产生的训练集存在着错误标记问题,为了缓解这个问题,我们采用多实例学习的方法去处理,这很好的考虑到了实例标签不确定的问题。然而,我们也发现,在多实例学习中,我们把训练集分成一个个的包,每个包只中只选择最有可能可能性体现实现对关系的实例来进行训练和预测,这会忽略很多的训练实例,其中, 可能存在着许多有助于预测关系的信息。为此,我们引入了选择性注意力机制。

  4.3 本章小结

  本章我们通过分析使用远程监督生成训练数据时会产生错误标记的问题,分别提

  出采用对多实例学习的方法和选择性注意机制来处理这个问题。‘

  多实例学习主要的思想是把实例按实体对和其关系按分类成包,以包为单位进行模型的训练和预测,把区别实例的关系的任务转换成了区别包的标签的任务。只要是正包,其中至少有一个正实例;负包中的实例全是负实例。这就考虑到了包内实例标签的不确定性,从而有效地缓解了远程监督生成训练模型时存在的错误标记问题。

  引入选择性注意机制主要是认识到多实例学习过程中存在的一个重要问题,即每 次只选择包中最有可能表达包关系的实例进行训练和预测而忽略其他众多实例。那么, 就考虑使用某种方式定量的计算包中每个实例对表达包关系的影响,这就是所谓的选 择性注意机制。事实证明,引入选择性注意机制的关系抽取模型在性能上会比使用多 实例学习方法构建的模型有较好的的提升。实质上,我们可以把多实例学习的方法当 作选择性注意机制的一个特例,即把最可能表达包关系的实例的贡献当作 100%,而其它实例的贡献当作是 0%,这样,就能很好看出多实例学习和选择性注意机制之间的关系,后者构建的系统的性能更好也能很好的理解了。

  第五章 实 验

  为了较好的理解基于远程监督的数据关系抽取过程,我们使用多实例学习的方法, 利用 CNN 训练数据、建立了关系抽取模型。在这一部分,我们首先介绍使用的数据集和实验中各个参数的设置情况,然后讲解实验中系统的构建,最后对实验的结果进 行分析。

  5.1 数据集

  训练集和测试集我们直接使用了 Riedel 等人在 2010 年开发 NYT 语料数据集, 这是目前在使用有监督学习方法构建关系抽取系统时最常用的一个数据集。这个数据集由训练集和测试集两部分组成,该数据集通过对齐 Freebase 知识库中的实体对、关系和纽约时报中的语料信息生成。通过对齐 2005 至 2006 年的纽约时报语料,生成训

  练集;通过对齐 2007 年的纽约时报语料,生成测试集。训练集中共有 570088 个句子,

  测试集中共有 172448 个句子。有 52 种可以识别的关系,其中,如果实体对的关系不满足 52 种关系中的一种,则均记为 NA 关系,表示指定的实体对之间不存在任何关系事实。所以,共 53 种关系(即?1 = 53)。数据集具体情况如表 5.1 所示:

  5.2 参数设置

  本部分,如表 5.2 所示,我们给出了我们实验过程中所需要的各个参数。这些参数的优化,对于整个模型的性能有很大的影响。由于大都是超参,我们可以使用网格搜索、交叉验证的方法来确定最优参数。我们这里的部分参数直接借鉴 Zeng 等人 2015 年在提出结合了多实例学习方法的 PCNN 结构的关系抽取模型时所用的参数,剩下的参数我们启发性地做出了适当的选择。

  5.3 系统实现

  我们使用 C++在 Visual Studio 2012 上进行实验。如图 5.1 所示,实验主要分为三大部分:初始化数据、训练模型和测试模型,其中训练模型部分是整个系统的关系所在,对整个系统的最终性能有着决定作用。

  5.3.1 初始化部分

  初始化部分主要是实验中所用的参数进行初始化。在这个实验中,我们所需要的参数? = (?, ??1, ??2, ?, ?1, ?)。E 是词嵌入,正如前面提到的那样,我们直接利用Riedel 等人在 2010 年开发的的一个词嵌入。由于词嵌入中只有 114043 个词的词向量, 在训练和测试过程中,对于在词表中查不到的词,我们都归为“NotFound”,这是个特殊的词,正如关系表中的 NA 关系一样。我们随机给“NotFound”初始化 50 个浮点型小数作为词向量。为了使每个词的词向量的值分布都在同一范围内,我们求出每个词的词向量的 L2 范数,每一维元素分别处以对应词向量的 L2 范数。

  对于??1, ??2, ?, ?1, ?这些矩阵、向量,我们都进行随机初始化。另外,为了数据分布均匀,加快收敛,我们可以使用 Xavier 方法初始化参数的值。

  除了初始化参数,我们在这部分还要把训练集、测试集、关系表等数据文件读入内存中,分别构建合适的数据结构,以便存储和后续操作。

  5.3.2 训练模型

  作为整个系统的最关键部分,如何正确的训练模型至关重要。在这里,我们使用多实例学习的方法训练 CNN 模型。

  我们把训练集按实体对和其关系分成一个个的包,每次随机选取 50 个包进行训练,找到每个包中最能体现该包关系的实例,即找到 ?(?|?; ?)最大的实例,其中 r 是该包的关系。我们根据最能体现包关系的实例求交叉熵?????。然后,累加这个 50 个包?????得到????。接着,使用随机梯度下降的方法,反向传播更新参数,最小化????。在本实验中,各层的梯度可求得如下:5.3.3 测试模型

  在训练模型时,我们是用来多实例学习的方法,只考虑包的标签而不去在意包内实例的标签,我们所训练的模型是用来区分包的标签的。因此,在测试阶段,我们需要判断包内是否有和包标签一样的关系事实,有则表示区分正确,反之则表示区分错误。

  具体地,我们把测试集中的包一个个投入到已经训练好的模型中,每个包的每个实例测试后悔得到一个向量? ∈ ?53的向量,每一维表示对应关系上的得分,我们找

  到除 NA 关系(第一维)外最大的得分,然后与包内的其它实例的最大得分相比较, 最大的得分所在的实例测试的结果?作为该包的预测结果。我们把所有的包的?(除NA 关系外)从大到小排序,依次判断该得分所对应的包中是否有含有该对应关系的实例,若有,则预测正确,反之则预测错误。我们通过正确数量可以计算系统的准确率和召回率,从而判断系统的性能。本次实验中,测试结果如图 5.2 所示。

  图 5.2 准确率/召回率曲线图

  5.4 结果分析

  由图 5.2 可知,随着召回率的提升,准确率比较快速的下降。我们可以发现,在整个准确率范围内,召回率的一直不高,且提升的速度很缓慢,这就说明,在预测过程中,我们把许多正确的关系都当作错误的关系或无关系处理了。另外,在召回率很低时,我们可以发现准确率有个突然下降和回升,这也在说明,有部分正确的关系事实我们没有预测出来,且把它们当作 NA 关系去处理了,这也是召回率一直缓慢的一大原因。

  5.5 本章小结

  本章我们通过实验所使用的数据集、实验参数设置、实验流程说明以及细节的讲解,充分地说明了利用卷积结构学习特征进而进行关系抽取的可行性,另外,多实例的学习的方法也使得系统的性能有很大的提升。

  第六章 总结与展望

  6.1 本文总结

  有监督学习的方法是目前主流的用于构建数据关系抽取的方法。为了生成大量的标记数据用于训练模型,通常使用远程监督对齐知识库和文本的方法生成训练集。有监督学习的模型的性能很大程度上取决于提取的特征的质量,但由于传统的有监督学习的方法是利用已有的自然语言处理工具生成的特征,其质量会受到预处理工具的影响。因此,提出一个生成高质量特征的方法就迫在眉睫。

  本文针对上述问题,采用卷积结构去自动学习相关特征,然后进行关系抽取的方法。并经过分析远程监督生成训练集上出现的问题,对基于 PCNN 实现的系统进行改进。经分析,使用多实例学习的方法和选择性注意机制能很好地解决远程监督方法生的训练集上存在的错误标记的问题。

  本文的主要工作如下:

  (1) 舍弃传统的有监督学习方法中使用自然语言处理工具生成特征的方法,尝试利用卷积结构去自动学习特征。

  (2) 针对使用远程监督方法生成训练数据时存在的远程监督方法,为考虑训练实例标签的不确定性,巧妙地采用多实例学习的方法解决。

  (3) 在使用多实例学习的方法解决错误标记的问题时,细致的发现在使用多实例学习方法时,会舍弃许多训练数据,其中包含大量的有用信息。因此,为了充分利用所有的句子信息,提出采用选择性注意机制解决。多实例学习可以理解是选择性注意的一个特例。

  (4) 通过 C++编程实现基于远程监督的 CNN 关系抽取系统,并在测试集上进行系统性能的测试。

  6.2 后续工作展望

  在本次毕业设计中,虽然针对基于远程监督数据关系抽取提出了多种方法和改进, 但在工作方面仍存在许多不足之处:

  (1) 对于基于远程监督的关系抽取,我们虽然充分利用了所有句子的信息,但却仍有不足。为了更有效地进行实体对的关系抽取,我们可以考虑增加实体对的背景

  信息,这对实体对的关系识别有着重要的意义。

  (2) 在利用卷积结构自动学习特征时,我们利用分段最大池以期望捕获实体对间的结构信息,实验效果证明,性能虽有提升,但仍有改进空间,可以考虑采用其他方法更好的捕获实体对之间的结构信息。

  (3) 实验部分主要利用 C++编程实现了使用多实例学习方法的 CNN 结构的关系抽取系统,以后可以继续在此基础上继续实现本文所提出的各类方法,比对实验结果,进一步探究、发现。

  (4) 在实验设置部分,部分参数参考了 Zeng 等人类似实验的超参设置,以后可以进一步调参,研究超参对实验的影响

毕业论文:http://www.3lunwen.com/jsj/dzjs/5423.html

上一篇:基于用户黏性视角的档案信息资源开发路径探索

下一篇:没有了

     移动版:基于远程监督数据的关系抽取系统构建

本文标签:
最新论文