一种关系抽取方法、系统及相关组件与流程

文档序号:18885855发布日期:2019-10-15 20:54阅读:187来源:国知局
一种关系抽取方法、系统及相关组件与流程

本发明涉及文本处理技术领域,特别涉及一种关系抽取方法、系统、一种计算机可读存储介质及一种电子设备。



背景技术:

有监督的关系抽取通常需要大量的标注数据用于训练模型,这是非常耗时耗力的。远程监督范式的应用在很大程度上缓解了关系抽取任务对于标注数据的需求。然而,通过远程监督的方式构建的训练数据不可避免地存在着错误标注问题,这会很大程度上影响句子级别的关系抽取性能。为了解决这个问题,研究者们开始利用多实例学习来进行关系抽取,其中训练集由包含给定实体对的所有句子的包(bag)组成。因此,远程监督关系抽取开始转为进行包级别的关系预测。然而,由于错误标注问题依然存在,在多实例学习中的每个包内仍然包含许多提及同一实体对但是属于不同关系类别的句子。这些噪声句子的存在仍然会对包级别的关系抽取模型产生性能影响。

为了减轻噪声数据的影响,需要从含有噪声句子的包里挑选正确表达给定关系的正例句子,相关技术中通常使用基于强化学习的方法判断一个句子是否是正例,基于正例和未标注实例实现实体关系抽取操作。但是,上述相关技术将未标注的实例当作负例,并且同时使用正例和负例来对每个关系类型训练一个二分类模型,从而进行句子级别的关系预测,上述方式无法有效滤除噪声数据,得到的实体关系抽取结果误差较大。

因此,如何提高实体关系抽取结果的质量是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种关系抽取方法、系统、一种计算机可读存储介质及一种电子设备,能够提高实体关系抽取结果的质量。

为解决上述技术问题,本申请提供一种关系抽取方法,该关系抽取方法包括:

确定目标句子包中每一句子的句子分布式向量和查询关系的关系分布式向量;其中,目标句子包中每一句子均包括第一实体和第二实体;

根据所述句子分布式向量和所述关系分布式向量确定策略函数,并利用所述策略函数将所述目标句子包中的所有句子划分为正例和未标注实例;

利用所述正例和未标注实例训练关系抽取模型,得到所述第一实体与所述第二实体的实体关系。

可选的,确定目标句子包中每一句子的句子分布式向量和查询关系的关系分布式向量包括:

利用卷积神经网络或分段卷积神经网络对所述目标句子包中每一句子执行编码操作,得到所述句子分布式向量;

获取查询关系列表,并确定所述查询关系列表中每一查询关系的关系分布式向量。

可选的,在根据所述句子分布式向量和所述关系分布式向量确定策略函数之前,还包括:

对所述关系分布式向量执行随机初始化处理。

可选的,根据所述句子分布式向量和所述关系分布式向量确定策略函数包括:

利用第一公式计算所述策略函数ax,r;

其中,所述第一公式为ax,r=argmaxq(sx,r,a),sx,r=[embx,re,embpos],embx为当前句子的句子分布式向量,embpos为当前句子之前所有被选为正例的句子分布式向量的平均值,re为关系分布式向量,q为状态动作表对应的函数,a为离散的动作集合。

可选的,利用所述策略函数将所述目标句子包中的所有句子划分为正例和未标注实例包括:

基于q-learning算法利用所述策略函数将所述目标句子包中的所有句子划分为正例和未标注实例。

可选的,利用所述正例和未标注实例训练关系抽取模型包括:

对所述正例进行向量表示得到正例向量,对所述未标注实例进行向量表示得到未标注实例向量,对所述正例和所述未标注实例进行向量表示得到结合向量;

分别将所有所述正例向量、所有所述未标注实例向量和所有所述结合向量投影至nr维空间中得到正例包投影向量、未标注实例包投影向量和结合包投影向量;

利用所述正例包投影向量、所述未标注实例包投影向量和所述结合包投影向量确定目标损失函数;

利用小批量梯度下降算法最小化所述目标损失函数,以便训练所述关系抽取模型。

可选的,利用所述正例包投影向量、所述未标注实例包投影向量和所述结合包投影向量确定目标损失函数包括:

计算所述正例包投影向量对应的第一损失函数lpos(d);

计算所述未标注实例包投影向量对应的第二损失函数lunl(d);

计算所述结合包投影向量对应的第三损失函数lbag(d);

根据所述第一损失函数lpos(d)、所述第二损失函数lunl(d)和所述第三损失函数lbag(d)确定所述目标损失函数l(d);

其中,l(d)=lpos(d)+lunl(d)+βlbag(d),β为权重系数。

本申请还提供了一种关系抽取系统,该关系抽取系统包括:

编码器,用于确定目标句子包中每一句子的句子分布式向量和查询关系的关系分布式向量;

句子选择器,用于根据所述句子分布式向量和所述关系分布式向量确定策略函数,并利用所述策略函数将所述目标句子包中的所有句子划分为正例和未标注实例;

关系抽取模块,用于利用所述正例和未标注实例训练关系抽取模型,得到所述第一实体与所述第二实体的实体关系。

本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述关系抽取方法执行的步骤。

本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述关系抽取方法执行的步骤。

本申请提供了一种关系抽取方法,包括确定目标句子包中每一句子的句子分布式向量和查询关系的关系分布式向量;其中,目标句子包中每一句子均包括第一实体和第二实体;根据所述句子分布式向量和所述关系分布式向量确定策略函数,并利用所述策略函数将所述目标句子包中的所有句子划分为正例和未标注实例;利用所述正例和未标注实例训练关系抽取模型,得到所述第一实体与所述第二实体的实体关系。

本申请使用句子分布式向量和关系分布式向量确定策略函数,进而将目标句子包中的所有句子划分为正例和未标注实例,关系分布式向量的引入能够对正例进行准确的识别。进一步的,本申请利用正例和未标注实例共同训练关系抽取模型,可以充分结合并利用正例和未标注实例进行关系抽取,因此本申请提高了实体关系抽取结果的质量。本申请同时还提供了一种关系抽取系统、一种计算机可读存储介质和一种电子设备,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所提供的一种关系抽取方法的流程图;

图2为本申请实施例所提供的一种实体关系抽取模型的框架图;

图3为本申请实施例所提供的一种关系抽取系统的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面请参见图1,图1为本申请实施例所提供的一种关系抽取方法的流程图。

具体步骤可以包括:

s101:确定目标句子包中每一句子的句子分布式向量和查询关系的关系分布式向量;

其中,目标句子包中可以包括多个句子,本实施例可以对目标句子包中的每一句子进行编码操作得到其对应的句子分布式向量,简称句子向量。作为一种可行的实施方式,本实施例中可以利用卷积神经网络cnn或分段卷积神经网络pcnn所述目标句子包中每一句子执行编码操作,得到所述句子分布式向量。

本实施例中的目标句子包中的每一句子均包括第一实体和第二实体,例如当第一实体为“苹果”,第二实体为“手机”时,目标句子包中的每一句子都同时包括“苹果”和“手机”这两个词。

本实施例中可以预先设置查询关系表,查询关系表中存储有实体与实体之间的关系,如“师生”、“父子”、“配偶”、“朋友”等。在本步骤之前,可以为目标句子包设置对应的查询关系,以便在本步骤中获取目标句子包对应的查询关系列表,并确定所述查询关系列表中每一查询关系的关系分布式向量。

作为一种可行的实施方式,本实施例可以在确定关系分布式向量之后,对所述关系分布式向量执行随机初始化处理,并在后续的模型训练过程中进行调整。

s102:根据所述句子分布式向量和所述关系分布式向量确定策略函数,并利用所述策略函数将所述目标句子包中的所有句子划分为正例和未标注实例;

其中,本步骤建立在确定句子分布式向量和关系分布式向量的基础上,可以确定策略函数。需要说明的是,由于目标句子包中可以存在多个句子,因此在s102的相关步骤是对目标句子包中的所有句子逐个处理的过程,进一步的本步骤中根据所述句子分布式向量和所述关系分布式向量确定策略函数的过程可以具体为:根据句子分布式向量、在当前句子之前所有被选为正例的句子分布式向量以及关系分布式向量综合确定策略函数。

作为一种可选的实施方式,本实施例可以利用第一公式计算所述策略函数ax,r;其中,所述第一公式为ax,r=argmaxq(sx,r,a),sx,r=[embx,re,embpos],embx为当前句子的句子分布式向量,embpos为当前句子之前所有被选为正例的句子分布式向量的平均值,re为关系分布式向量,q为状态动作表对应的函数,a为离散的动作集合。本实施例中可以存在对目标句子包中的句子逐个执行s102操作,可以根据已执行s102相关操作并选为正例的句子计算embpos。

本实施例可以基于q-learning算法利用所述策略函数将所述目标句子包中的所有句子划分为正例和未标注实例。

s103:利用所述正例和未标注实例训练关系抽取模型,得到所述第一实体与所述第二实体的实体关系。

其中,本步骤建立在已经确定目标句子包中的句子为正例为未标注实例的基础上,结合正例和未标注实例训练关系抽取模型,以便得到目标句子包中第一实体和第二实体的实体关系,实现实体关系抽取。

在得到第一实体和第二实体的实体关系后,本实施例可以将第一实体和第二实体的实体关系存储于知识库中,以便利用该实体关系执行信息查询操作。例如,在知识库中查询实体关系a,知识库输出的查询结果为具有实体关系a的第一实体a1和第二实体a2;再例如,在知识库中查询第一实体a1,知识库输出的查询结果为第二实体a2,并标记第一实体a1和第二实体a2的实体关系为a。

作为一种可行的实施方式,本步骤中训练关系抽取模型的过程可以包括以下步骤:

步骤1:对所述正例进行向量表示得到正例向量,对所述未标注实例进行向量表示得到未标注实例向量,对所述正例和所述未标注实例进行向量表示得到结合向量;

步骤2:分别将所有所述正例向量、所有所述未标注实例向量和所有所述结合向量投影至nr维空间中得到正例包投影向量、未标注实例包投影向量和结合包投影向量;

步骤3:利用所述正例包投影向量、所述未标注实例包投影向量和所述结合包投影向量确定目标损失函数;

其中,上述确定目标损失函数的具体过程可以包括以下步骤:计算所述正例包投影向量对应的第一损失函数lpos(d);计算所述未标注实例包投影向量对应的第二损失函数lunl(d);计算所述结合包投影向量对应的第三损失函数lbag(d);根据所述第一损失函数lpos(d)、所述第二损失函数lunl(d)和所述第三损失函数lbag(d)确定所述目标损失函数l(d);其中,目标损失函数l(d)=lpos(d)+lunl(d)+βlbag(d),β为权重系数。

步骤4:利用小批量梯度下降算法最小化所述目标损失函数,以便训练所述关系抽取模型。

本实施例使用句子分布式向量和关系分布式向量确定策略函数,进而将目标句子包中的所有句子划分为正例和未标注实例,关系分布式向量的引入能够对正例进行准确的识别。进一步的,本实施例利用正例和未标注实例共同训练关系抽取模型,可以充分结合并利用正例和未标注实例进行关系抽取,因此本申请能够降低噪声数据的影响,提高实体关系抽取结果的准确率。

请参见图2,图2为本申请实施例所提供的一种实体关系抽取模型的框架图。图中bagb为目标句子包,sentenceencoder为编码器,sentenceselector为句子选择器,relationextractor为关系抽取模型。

编码器用来将输入的句子编码为分布式表示。句子选择器可以为基于强化学习智能体的句子选择器,用来判断一个句子对于每个查询的关系类型是否是正例,其中的智能体以句子和关系的分布式表示作为输入。关系抽取模型用于在句子选择器生成的正例包和未标注实例包的基础上进行参数训练。

对于同一个包中的句子x,通过cnn或pcnn将句子进行编码,得到其分布式向量表示embx。查询关系r的分布式向量表示为re,开始时对其进行随机初始化,并在之后的训练过程中进行调整。本实施例可以将embx、embpos和re作为句子选择器的输入。

对于句子选择器,本实施例可以首先定义状态信息,状态信息可以包括三部分:1)句子向量embx,2)关系r的表示向量re,3)当前句子之前所有被选为正例的句子表示embpos,embpos由当前包中到目前为止所有被选为正例的句子的表示向量的平均值来表示。因此,对于查询关系r和句子x的状态表示sx,r可以表示为[embx,re,embpos]。在强化学习过程中,可以使用策略函数ax,r=argmaxq(sx,r,a)来判定要执行的动作,即:决定句子x对于查询关系r来说是否为正例。其中,函数q是状态-动作表,a是一组离散的动作集合。具体实施时,可以采用一个两层的神经网络模型来模拟策略函数。本实施例可以将一个包里所有句子的选择过程视为一个完整的马尔科夫决策过程,并且只有当所有正例的句子被选出来后才会进行奖赏值的计算。因此,在包b的选择过程中,只有延迟奖赏而没有立即奖赏,并将该延迟奖赏作为对强化学习智能体选择过程的反馈。对于奖赏函数的设置,本实施例可以将其等价于所划分的正例组成的包相对于查询关系r的条件概率值。因此,对于查询关系r和包b,其奖赏函数定义为:

其中,条件概率计算如下:

nr是所有关系类型的总数,对应于划分的正例句子包相对于所有关系类型的得分向量,其计算方式为:

其中,w为权重矩阵,b为偏置向量,为包的向量表示。

本实施例可以采用经典的q-learning算法来训练强化学习智能,以此最大化所有句子包的总期望奖赏值。训练过程中的每一个完整马尔科夫决策过程都对应着一个查询关系和一个包含给定关系三元组的所有句子的包,并且智能体会从该包中选择出查询关系的所有正例的句子。

假设q(s,a)是在状态集合s中执行动作a所带来的长期累计奖赏值的估计。本实施例可以将该过程中的所有函数估计参数定义为θq,并通过以下公式来对该参数进行优化以最小化损失函数:

l(θq)=es,a[(vt-q(s,a|θq)2];公式(4)

其中,vt采用贝尔曼方程进行估计:

本实施例中r(s,a)是立即奖赏值,γ是针对未来奖赏值的折扣因子。正如上面所描述的本实施例场景中没有立即奖赏。另外,由于在一个包里面的句子被选择的先后顺序是应该不能影响最终的选择结果的。因此,基于这些考虑,本实施例可以将立即奖赏值r(s,a)设为0,折扣因子γ设为1。对于查询关系r和句子包b,本实施例有:

vt=r(r,b);公式(6)

在训练优化阶段,本实施例可以采用随机梯度下降作为优化算法,并且在训练过程中采用经验回放策略,即通过随机小批量对过去经验进行采样来进行参数优化,从而完成模型训练。

对于包b,本实施例在经过智能体的选择过程之后可以得到一个正例构成的包和未标注实例构成的包之后基于正例和未标注实例的新包构建关系抽取器。为了提高模型在远程监督噪声数据环境下的鲁棒性,本实施例可以将未标注实例也作为关系抽取器训练的重要组成部分。为此,本实施例从不同的视角来定义三种不同的向量表示,然后基于这些表示定义模型的损失函数。最后对句子选择器和关系抽取器进行联合训练。

基于句子选取器对输入句子包的选取结果,可以得到以下三种表示方式:

1)pos-based表示:用来对选为正例的包进行向量表示。

2)unl-based表示:用来对未标注实例的包进行向量表示。

3)pu-combined表示:通过对pos-based表示和unl-based表示进行结合。

对于以上三种表示,可以将其向量投影到nr维空间中,过程如下:

pos-based表示:基于选取的正例构成的包以及关系r,本实施例可以根据在句子选取器中作为奖赏函数的公式3来获得pos-based表示,本实施例定义其为同时在关系抽取器和句子选取器之间对的参数进行共享。unl-based表示:基于选取的未标注实例构成的包以及关系r,unl-based表示可以计算为:

其中,wu为参数矩阵,bu为偏置向量。

pu-combined表示:将上述两种向量表示进行结合,得到pu-combined表示or,其计算方式为:

其中,α∈(0,1)是进行组合的权重参数。

根据以上提出的三种包级别的向量表示可以进一步分别定义三种损失函数。在这里,假设训练数据包含m个句子以及对其对应的通过远程监督赋予的关系标签,并定义其为

对于pos-based表示,本实施例使用公式2来计算条件概率p(r|),并采用交叉熵损失函数作为训练目标:

其中,为句子选取器从包bi中为关系选出的正例句子构成的包。对于unl-based表示,对于每个关系r,其条件概率计算为:

同时,基于unl-based表示的损失函数定义为:

其中为句子选取器从包bi中为关系选出的未标注实例句子构成的包。

对于pu-combined表示,计算关于包b和关系r的条件概率p(r|b)为:

对于每个查询关系ri都可以执行句子选取过程并计算条件概率p(ri|b)。因此,一个查询关系的条件概率相对于其它的关系类型是独立的。为了更好地进行包级别的关系预测,可以在模型优化中使得关于给定的包的关系标签rb的条件概率p(rb|b)最大化。因此,本实施例设计一个损失函数以使得给定的关系标签相对于其他标签拥有更高的包级别的条件概率值:

其中,是所给定的实体对的句子包bi的关系标签,是其他关系标签中拥有最高条件概率的关系类型。

最后,本实施例结合上面三种损失函数作为最终的关系抽取系统目标函数:

l(d)=lpos(d)+lunl(d)+βlbag(d);公式(14)

在模型优化阶段,本实施例可以采用小批量随机梯度下降算法来最小化目标函数。在学习过程中,可以对关系抽取器和强化学习智能体进行联合训练直到收敛。在测试阶段,对于每个输入的句子包,可以首先使用句子选取器进行句子挑选,并为每个关系输出一个正例句子包和一个未标注实例句子包。然后使用公式12基于正例和未标注实例的包进行关系分类预测。

本实施例提出了一种基于自动选取的正例和未标注实例的关系抽取方法,该方法使用一个基于强化学习智能体的句子选择器,其中,状态表示向量融合了句子向量、关系表示向量以及当前包中被选为正例的句子表示三类信息,然后将每一个包中的正例和未标注实例的语义表示结合起来进行联合训练,从而进行包级别上的关系预测,在实验中获得了非常好的效果。这表明对噪声句子进行筛选以及将正例和未标注实例进行联合训练有利于远程监督关系抽取任务,充分利用远程监督生成的数据信息,大大缓解噪声数据的影响。本实施例在基于强化学习的句子选择器中,设计了一种考虑了句子向量、关系向量、被选为正例的句子向量的状态表示结构,相比较相关技术中的模型,本实施例能在包级别上对正例句子有更好的识别能力。本实施例可以对同一个包中的正例和未标注数据分别进行语义表示,然后在结合起来就行包级别的关系预测,真能够很好的利用未标注数据。

下面通过实际应用中的实施例说明上述关系抽取方法的具体过程,

请参见表1,表1为句子选择器的选择结果示例表,表1中展示了一个真实的例子作为案例分析,其中的关系三元组为(liberia,capital,monrovia)。该关系三元组的包内包含4个句子。在这里,“capital”和“contains”都是在freebase中预定义的关系类型。从表中可以看出,对于关系“capital”,强化学习智能体选择了第二个句子作为正例,而对于关系“contains”,智能体则选取了第一个句子作为未标注实例,并且将其他句子选为了正例。

表1句子选择器的选择结果示例表

请参见图3,图3为本申请实施例所提供的一种关系抽取系统的结构示意图;

该系统可以包括:

编码器100,用于确定目标句子包中每一句子的句子分布式向量和查询关系的关系分布式向量;

句子选择器200,用于根据所述句子分布式向量和所述关系分布式向量确定策略函数,并利用所述策略函数将所述目标句子包中的所有句子划分为正例和未标注实例;

关系抽取模块300,用于利用所述正例和未标注实例训练关系抽取模型,得到所述第一实体与所述第二实体的实体关系。

本实施例使用句子分布式向量和关系分布式向量确定策略函数,进而将目标句子包中的所有句子划分为正例和未标注实例,关系分布式向量的引入能够对正例进行准确的识别。进一步的,本实施例利用正例和未标注实例共同训练关系抽取模型,可以充分结合并利用正例和未标注实例进行关系抽取,因此本申请能够提高实体关系抽取结果的质量。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1