一种基于多任务学习机制的自然语言关系抽取方法与流程

专利2022-06-30  114


本发明涉及自然语言处理中关系抽取技术,尤其涉及一种基于多任务学习机制的自然语言关系抽取方法。



背景技术:

随着大数据和人工智能时代的来临,互联网上各类信息以爆炸般的速度增长,如何从海量的数据中获取信息成为一个亟待解决的问题。信息抽取作为自然语言理解的一个重要分支,其主要目标是将嵌入在文本中的无结构信息通过自动提取进而转化为结构化数据,与其相关的技术研究逐渐兴起。关系抽取,作为信息抽取的一个重要的子任务,其主要目标是在给定一段文本的情况下,针对一个特定的实体对,抽取出一个实体关系三元组relation(e1,e2)。关系抽取作为自然语言理解领域的一项常见的基础任务,在各个方面都有着广泛的应用:例如创建新的结构化知识库并增强现有知识库;构建垂直领域的知识图谱;支持上层的高级应用如文本摘要、自动问答、机器翻译、语义网标注。

与传统的基于机器学习的方法相比,基于深度学习的方法在关系抽取任务上的表现更为优异,并且逐渐成为主流。目前关于实体关系抽取的研究主要集中在基于卷积神经网络和循环神经网络及其变体的方法上。基于卷积神经网络及其变体的方法能够有效并且自动的提取特征,但却无法准确地对时间序列问题进行刻画;基于循环神经网络及其变体的方法能够自动的捕获序列在时间上的依存关系,却无法有效地处理序列中的长距离依赖问题。此外这些基于深度神经网络的方法往往还需要依赖额外的高阶自然语言处理工具来获取词汇、句法和语义等信息,而这些额外的处理步骤会累计错误。这些问题都为给关系抽取任务效果进一步的提升造成了阻碍,所以目前亟需建立一种更为有效的关系抽取模型。



技术实现要素:

本发明的目的是针对现有技术的不足而提出的一种基于多任务学习机制的自然语言关系抽取方法,该方法结合当前主流的关系抽取任务是基于单个任务模型的特点,提出了一种引入多任务学习和预训练语言表示机制的关系抽取方法。该模型基于预训练语言模型,利用辅助任务来帮助关系抽取模型来获取不同任务之间互相蕴含的知识,并提出使用知识蒸馏来帮助关系抽取任务能够更好的利用辅助任务学习到的表示空间,并使用教师退火算法让多任务模型效果更好,最终提升模型在关系抽取任务上的表现。通过与普通的基于bert的关系抽取模型和基于命名实体识别和关系抽取联合学习的模型进行对比实验,在semeval2010-task8数据集上证明了该模型对关系抽取任务的表现有较为明显的提升。

实现本发明目的的具体技术方案是:

一种基于多任务学习机制的自然语言关系抽取方法,该方法包括以下具体步骤:

步骤1:依据通用nlp模型基准,选取其中与关系抽取任务的训练数据类似的分类任务,即训练数据同时能够用于关系抽取任务训练的任务,作为训练多任务模型的辅助任务;

步骤2:将输入的句子或句子对经过wordpiece分词之后得到子词序列,将每个辅助任务的训练数据根据数据集大小按比例采样并混合之后送入预训练语言模型进行统一训练;

步骤3:使用预训练语言模型编码工具对输入数据进行编码表示;

步骤4:对关系抽取任务及辅助任务分别建立独立的单任务模型;

步骤5:利用建立的单任务模型,基于知识蒸馏进行多任务模型训练和预测

使用关系抽取任务的单任务模型作为初始多任务模型来对辅助任务进行预测输出,最小化该输出与辅助任务对应的单任务模型预测输出的交叉熵,同时使用退火算法,即按比例混合模型输出与任务真实标签来优化模型性能,从而实现模型的训练,最终得到多任务模型用于预测关系抽取。

所述知识蒸馏,具体为:

通过同时将提前训练的单任务模型的输出和单任务模型的真实标签按照一个随着训练流程不断改变的比例作为权重加权平均之后作为多任务模型训练时的目标输出,即单任务模型和真实标签同时用于多任务模型的训练。

本发明的有益效果在于:

为了解决处理过程带来的错误累计传播这一问题,本发明为关系抽取任务引入了预训练语言模型,通过改进预训练语言模型并将其用于关系抽取领域,使得模型能够隐式的学习到一系列语言特征来构建关系抽取任务并有效的刻画两个实体指代之间的长距离依赖,并且不必从头学习一个完整的模型。本发明在同一数据集上对比了基于传统机器学习和深度学习方法的关系抽取模型的效果,实验结果表明基于预训练语言模型的方法在关系抽取任务上的表现优于现有基于深度学习的方法。

其次,为了进一步提升关系抽取模型的准确率,提出利用多任务学习来改进关系抽取任务模型,在关系抽取模型之中将多任务学习整合进入基于预训练语言模型获得任务之间互相蕴含的语义信息。并加入知识蒸馏来获取辅助任务提供的那些关系抽取任务模型自身不易学习到的特征。通过对比实验分析,与传统的单任务关系抽取模型相比,基于多任务学习的关系抽取方法通过引入辅助任务来使得模型在关系抽取中时能够利用额外的辅助任务所学习到的信息,而额外加入的知识蒸馏能够使得模型中知识在不同任务中的迁移效果进一步得到提升,最终表现在关系抽取任务上的效果优于主流基于深度学习的方法。

附图说明

图1为本发明所提出的知识蒸馏和退火算法的原理示意图;

图2为本发明所提出的基于多任务学习的关系抽取方法模型结构图;

图3为本发明所提出的基于多任务学习的关系抽取方法实施流程图。

具体实施方式

结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。

本发明提出一种基于多任务学习机制的自然语言关系抽取方法,具体分为三部分,如图2所示:

输入层:主要用于处理输入数据。输入层和单任务模型的输入层类似,同样是先将句子或句子对经过wordpiece分词之后得到子词序列。但是与单任务模型不同的是,为了避免多任务数据集大小不平衡问题,每个辅助任务的训练样本会按比例采样并混合之后送入模型进行训练,所以需要额外的信息来对不同任务进行区分,因此在单任务模型的三种嵌入的基础上之上,我们会为子词序列增加一个额外的任务嵌入,即用于表示当前序列具体是属于哪种任务,以便最终分入不同的任务层进行预测输出。

预训练模型层:这里以bert为例。bert作为一个预训练模型,提供一个通用的语言表示,可以较为方便的将多种下游任务构建在bert层之上,因此我们基于bert来构建多任务模型。bert层可以为不同的模型之间共享,因此不同任务所带来的额外的语义信息都会被bert层隐式的学习到,进而增强下游任务的表现。

任务层:任务层为关系抽取和其他每一个辅助任务单独构建一个分类网络。

多任务模型的训练过程是通过同时将提前训练的单任务模型的输出和单任务模型的真实标签按照一个随着训练流程不断改变的比例进行加权平均之后作为多任务模型训练时的目标输出,即单任务模型和真实标签同时指导多任务模型来进行训练,这样能使得多任务模型在获得单个辅助任务的所提供的知识的同时,利用每个辅助任务的真实标签来帮助多任务模型中关系抽取任务的表现超越用于提供指导的关系抽取单任务模型。

该方法基于预训练语言模型,利用辅助任务来帮助关系抽取模型来获取不同任务之间互相蕴含的知识,并提出使用知识蒸馏来帮助关系抽取任务能够更好的利用辅助任务学习到的表示空间,并使用教师退火算法让多任务模型效果更好,最终提升模型在关系抽取任务上的表现。其具体操作按下述步骤进行,如图3所示:

(1)选取辅助任务。

多任务模型最终是为了关系抽取这一主要任务来服务的,而关系抽取从实现方式上可以视为一个分类任务,因此在本方法的具体实验中,最终选取了glue基准中的分类任务即cola,sst-2,mrpc,qqp,mnli,qnli,rte,wnli这八种作为辅助任务

(2)输入数据。

将句子或句子对经过wordpiece分词之后得到子词序列,将每个辅助任务的训练样本按比例采样并混合之后送入模型进行训练,在单任务模型的三种嵌入的基础上之上,为子词序列增加一个额外的任务嵌入,即用于表示当前序列具体是属于哪种任务,以便最终分入不同的任务层进行预测输出。

对训练样本的采样策略为:假设所有任务的集合为t,对于t中的每一个任务t,则选取其对应数据集中的训练样本被选中作为训练样本的概率为

其中dt表示任务t对应数据集的大小。之后根据不同数据集的权重将每个数据集扩展至一个合适的倍数,并保证每个数据集至少被重复一遍,将扩展后得到的不同数据集合并后随机打乱作为单个完整的数据集,最后分批送入模型进行训练。

(3)预训练语言模型编码

在基于本方法进行的实验中,将多种辅助任务构建在bert层之上,从而进一步构建多任务模型。bert层可以为不同的模型之间共享,因此不同任务所带来的额外的语义信息都会被bert层隐式的学习到,进而增强下游任务的表现。

(4)单任务模型构建

为关系抽取和其他每一个辅助任务单独构建一个分类网络。为了提高模型的复用效率和加速模型训练任务,同时由于所选取的辅助任务都可以看作分类任务,简单的选取每个句子开头的[cls]标记对应的最顶层transformer编码器的输出作为分类网络的输出c,并在其之上构建一个简单的前馈全连接网络,激活函数为sigmoid函数,并利用softmax函数获得每个类别对应的最终概率p=softmax(wc),其中w为全连接线性网络通过训练得到的参数。

每个辅助任务分别计算其单独的损失函数

此时模型的总损失函数

任务j的损失。

yi:类别i的真实值。

softmax(hwt b):类别i的预测值。

losstotal:多任务模型的总损失。

(5)基于知识蒸馏进行多任务模型训练和预测

基于多任务学习的知识蒸馏使用规范化语言描述如下:

表示任务t的训练集,ft(x,θ)表示用于处理任务t的网络模型在输入为x的情况下的输出,其中网络内部隐藏层参数为θ。对于标准的有监督模型会训练网络的参数θ,来最小化真实标签与单任务模型的输出之间的交叉熵损失函数ce

而基于知识蒸馏的模型则是最小化教师模型与学生模型之间预测输出的交叉熵来帮助知识的迁移:

其中θ′代表教师网络中的模型参数。

将知识蒸馏移植到多任务学习中,则对任务集t中的每一个任务t,训练一个参数为θt的单任务模型,并使用这些模型来学习一个参数为θ的多任务模型,其损失函数可以表示为:

如果只优化教师网络和学生网络预测输出之间的交叉熵,则将使得多任务模型会以单任务模型为原型,一味的模仿单任务模型的行为,性能的上限将会局限于单任务模型的表现。为了时多任务模型能够超越单任务模型的表现,为多任务模型知识蒸馏引入了一个简单的退火算法,如图1所示,具体描述如下:在多任务模型训练的初期,模型会较多的依赖单任务模型,通过将单任务模型学习到的信息迁移到多任务模型之中,来快速提升模型对已有任务的性能表现。随着训练的过程不断深入,多任务模型逐渐趋向于根据真实标签来获取信息,当训练过程趋于结束时,多任务模型的信息几乎全部来源于任务的真实标签。此时多任务模型的损失函数可以由如下的公式表示:

其中λ为单任务输出与真实标签的比例,该参数是随看训练过程线性从0增长到1,表示多任务模型在训练过程的从依赖用于作为指导的单任务模型逐渐过渡到以真实标签为监督信息的过程。加入知识蒸馏的多任务模型训练过程既优化上述损失函数的过程。当多任务模型构建完成后,就可以使用多任务模型来进行关系抽取了。

本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。


技术特征:

1.一种基于多任务学习机制的自然语言关系抽取方法,其特征在于,该方法包括以下具体步骤:

步骤1:依据通用nlp模型基准,选取其中与关系抽取任务的训练数据类似的分类任务,即训练数据同时能够用于关系抽取任务训练的任务,作为训练多任务模型的辅助任务;

步骤2:将输入的句子或句子对经过wordpiece分词之后得到子词序列,将每个辅助任务的训练数据根据数据集大小按比例采样并混合之后送入预训练语言模型进行统一训练;

步骤3:使用预训练语言模型编码工具对输入数据进行编码表示;

步骤4:对关系抽取任务及辅助任务分别建立独立的单任务模型;

步骤5:利用建立的单任务模型,基于知识蒸馏进行多任务模型训练和预测

使用关系抽取任务的单任务模型作为初始多任务模型来对辅助任务进行预测输出,最小化该输出与辅助任务对应的单任务模型预测输出的交叉熵,同时使用退火算法,即按比例混合模型输出与任务真实标签来优化模型性能,从而实现模型的训练,最终得到多任务模型用于预测关系抽取。

2.根据权利要求1所述的基于多任务学习机制的自然语言关系抽取方法,其特征在于,所述知识蒸馏,具体为:

通过同时将提前训练的单任务模型的输出和单任务模型的真实标签按照一个随着训练流程不断改变的比例作为权重加权平均之后作为多任务模型训练时的目标输出,即单任务模型和真实标签同时用于多任务模型的训练。

技术总结
本发明公开了一种基于多任务学习机制的自然语言关系抽取方法,包括如下步骤:利用多个辅助任务来引入不同任务间所互相隐含的信息来提升关系抽取的效果。引入知识蒸馏来增强辅助任务指导训练多任务模型的效果,为基于多任务学习的关系和抽取引入教师退火算法让多任务模型的效果能够超远作为指导任务的单任务模型,最终提升关系抽取的准确度。该方法首先在不同的辅助任务上进行训练得到用于指导训练的多任务模型,然后利用辅助任务学习到的模型和真实标签作为监督信息同时指导多任务模型的学习,最后在SemEval2010 task‑8数据集上进行了测评,该模型的表现优于单独使用改进过的BERT进行关系抽取的模型,也同样优于主流的基于深度学习关系抽取的模型。

技术研发人员:胡文心;王伟杰;杨静
受保护的技术使用者:华东师范大学
技术研发日:2020.01.07
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-57429.html

最新回复(0)