用于解决实体重叠与实体嵌套的多任务学习方法及系统与流程

文档序号:33936190发布日期:2023-04-22 15:31阅读:101来源:国知局
用于解决实体重叠与实体嵌套的多任务学习方法及系统与流程

本发明属于命名实体识别,具体涉及用于解决实体重叠与实体嵌套的多任务学习方法及系统。


背景技术:

1、随着现代社会的数字化发展要求,将非结构化数据转化为结构化数据已经成了一个迫切的需求,其中最为关键的技术就是信息抽取。通常来说,信息抽取包含关系抽取,事件抽取,命名实体识别等任务,其目的是将非结构化数据转化为结构化数据。命名实体识别任务可以识别已知文本中含有独特含义的实体,关系抽取得到的是实体之间的关系,而事件抽取是在给定事件类型与事件实体要素的基础上,抽取用户感兴趣的事件。其中,命名实体识别任务是其他信息抽取任务的基石,该任务的效果直接或者间接影响其他信息抽取任务。其应用领域较广,包括军事、法律、医学等。总之,存在非结构化文本信息的领域,就存在使用命名实体识别技术抽取结构化数据的需求。

2、当前,命名实体识别任务的主流方法是编码器-解码器框架,其中,编码器使用主流的cnn、lstm、bert家族等一系列深度学习模型,使用指针网络、crf(conditional randomfields, 条件随机域)等作为解码器结构的主要组成部分。但是,采用上述方法存在如下问题:

3、1.实体重叠问题,如“xxx”既是a标签也是b标签,有两种方法解决该问题,第一种就是使用多标签对单个字进行分类,但是这样的效果会使得计算量成指数级上升,从而导致训练资源占用更高,推理时间更长;第二种就是新增一个标签,加入原有标签体系,这也会带来一个新的问题,即最终通过规则分离新增标签,可能降低模型识别准确率。

4、2.实体嵌套问题,如“xxxyyy”整个为a标签,其中“xxx”为b标签,解决方案通常有两种,第一种方案也是使用多标签对单个字进行分类,这也将导致同样的问题,即训练与推理的时间延长,消耗资源较较高;第二种方案是将嵌套标签分离,即将a,b两个标签置于不同模型中训练,训练过程a,b彼此不可见,推理时将二者合并,当然,这样做也存在问题,举一个比较极端的例子:“xxxyyyzzz”整体为标签a,“xxxyyy”为标签b,“yyyzzz”为标签c,那就必须分离出三个模型,从而导致模型数量增多,训练成本升高,推理时间变长。

5、3.通常大多数实体识别任务需要大量的人工去设计任务,包括实体重叠任务中的标签合并,实体嵌套中的标签分离,都需要人工大量干预,如此,难以批量化处理相似任务,极大耗费了人力、物力、财力资源。

6、4.数据不均衡问题,是实体识别任务中普遍存在的问题,这将使得深度学习模型学习到的结果偏向于数据量更多的标签,通常的解决方案包括:

7、a.数据增强方式如随机增删数据,同音、同义词替换等,保证不同标签数量分布尽量接近。

8、b.使用对数据量不敏感的损失函数,如focal loss 或者 dice loss等。

9、当前,也存在一些采用多任务学习去提升模型推理效果,削减模型占用空间。关键的问题是多个解码器如何有效的向着梯度下降的方向学习,而损失函数作为其中不可或缺的一部分,如何构建一个高效的损失函数来整合不同的子任务也尤为关键。

10、为了解决实体嵌套与实体重叠的问题,当前使用的多个单任务设计框架与多任务学习框架设计通常如图1和图2所示:

11、图1所示的模型结构中,每一个子任务需要单独设计一个模型进行训练、推理,这样的模型设计虽然可以取得较为理想的效果,但显而易见的是,词表示层与网络特征提取层严重冗余导致以上模型参数重复量极大。

12、图2所示的模型框架,解决了上诉参数冗余的问题,但是一个新的问题是,不同任务之间的关联性如何有效利用起来,此外损失函数的设计,以及优化器的选择都成为了限制该框架的主要因素。

13、结合上述内容描述,多任务本质上是将编解码器模型进行改造,使不同的任务得以共享编码器,同时在关联性任务中,可以更加有效更新模型参数,以求得到泛化性能更强的模型。但是当前的多任务学习模型存在如下问题:

14、1.需要大量的人工设计,针对不同的任务及情况,需要对模型,标签进行特殊的处理以及针对性设计,例如“xxxyyyzzz”整体为标签a,“xxxyyy”为标签b,“yyyzzz”为标签c,至少需要设计三个解码器,同时还需要分析除此之外的标签,把具有相似特征的标签进行合并,置于同一解码器中,剩下的标签以此类推,这将极大的消耗人力资源。

15、2.关联性子任务进行更加有效交互,而不是产生“排斥反应”降低模型泛化性能。这也是当前多任务学习的一个问题所在,由于模型在学习过程中,通过计算梯度,确定参数如何更新,如果两个子任务关联性较强,那么其梯度的方向就有可能反向变化,这将造成模型只能找到梯度下降更快子任务的一个局部最优值,而非真正达到了帕累托稳定点。

16、3.损失函数设计困难,由于多个子任务之间可能存在显著差异,每个子任务的损失通常通过如下方法计算得到:

17、a.采用子任务损失加权求和的方式,通常对于相近子任务是可行的,但对差异较大的子任务,损失减小的差异较大,即使采用固定的参数也是不可行的,因为损失的差异会逐渐增大,导致多任务退化为单任务,如下公式所示,其中,为总的损失,表示每个子任务的损失,为每个损失的系数,()为子任务id:

18、

19、b.使用网络调参的方式,调整不同损失系数。但是这样耗费的时间成本也是巨大的,且对于梯度方向不同的子任务上效果极差。

20、在深度学习模型框架中,优化器的选择也是尤为重要的,就是在深度学习反向传播过程中,指引损失函数的各个参数往正确的方向更新合适的大小,使得损失函数值不断逼近全局最小。选择合适的优化器可以有效缓解损失函数设计的困难程度。

21、因此,设计一种模型抽取精度高,效果好,能够降低现有命名实体任务设计难度,提升工作效率的用于解决实体重叠与实体嵌套的多任务学习方法及系统,就显得十分重要。


技术实现思路

1、本发明是为了克服现有技术中,现有解决命名实体识别任务中实体重叠、实体嵌套问题的多任务学习模型,存在人工设计难度大、精度低、效果差,进而导致工作效率低下的问题,提供了一种模型抽取精度高,效果好,能够降低现有命名实体任务设计难度,提升工作效率的用于解决实体重叠与实体嵌套的多任务学习方法及系统。

2、为了达到上述发明目的,本发明采用以下技术方案:

3、用于解决实体重叠与实体嵌套的多任务学习方法,包括如下步骤;

4、s1,构造多任务通用数据集,并对所述多任务通用数据集进行预处理;

5、s2,设计通用型多任务学习模型,并根据预处理后的多任务通用数据集进行训练;

6、s3,引入优化器pcgrad,对具有负影响的梯度进行纠偏,对通用型多任务学习模型进行参数优化;

7、s4,引入损失函数,并用于计算通用型多任务学习模型在整个前向传播过程中总的损失;

8、s5,将优化后的通用型多任务学习模型,用于实际数据预测,最终合并所有预测结果作为最终结果。

9、作为优选,步骤s1中所述预处理过程为将多任务通用数据集处理为单标签数据集,即每条数据只保留互不重复的一类标签,保证不同标签在不同子任务中互不可见。

10、作为优选,步骤s2中所述通用型多任务学习模型采用编码器-解码器网络架构;

11、编码阶段,使用预训练模型roberta对初始特征进行共享编码;再通过卷积层conv分离每个子任务内部参数,区分每个子任务内部的差异性信息;在整个编码阶段,全体参数共享;

12、解码阶段,使用不同的分类器区分每个子任务内部类别,最终得到每个子任务的标注结果;其中,每个分类器均包括全连接层和softmax层。

13、作为优选,步骤s3包括如下步骤:

14、s31,设定两个不同的任务梯度分别为,其中,计算两个不同的任务梯度之间的余弦相似度,计算公式如下所示:

15、;

16、其中,,表示向量模长;

17、s32,若得到的余弦相似度为负,则向两个任务梯度中的另一个任务梯度的法向量方向做投影,将得到的新梯度替换原来的梯度,具体计算公式如下所示:

18、

19、若得到的余弦相似度不为负值,则不做任何操作;

20、s33,循环步骤s31和步骤s32,得到一组新的梯度;

21、s34,最后将新的梯度与普通的优化器结合,更新通用型多任务学习模型参数。

22、作为优选,步骤s4包括如下步骤:

23、s41,将整个通用型多任务学习模型前向传播中,得到的损失计作l,通过如下方式计算得出:

24、

25、

26、其中,l为最终损失,为梯度模长;

27、表示第个子任务的损失,其中,为通用型多任务学习模型最后一层激活函数计算得出的对应标签的概率;为样本的标签,即数据特征化时,对应的id值,范围为[0…n],n为单个任务的标签总数;为平滑系数,用于防止分母为零以及平滑loss与梯度,是一个超参数,设置为1。

28、作为优选,步骤s5包括如下步骤:

29、s51,对待预测数据进行id化,生成数据矩阵,并输入通用型多任务学习模型;

30、s52,所述数据矩阵经过预训练模型层,充分进行数据编码,并进行共性特征抽取,生成一个共性编码特征矩阵;

31、s53,卷积层conv对上一层得到的共性编码特征矩阵进行局部特征抽取,强化每个子任务的个性特征,得到整体编码层的编码矩阵;

32、s54,解码阶段,不同的子任务分类器,使用全连接层将分布式特征表示映射到当前子任务标签集中,再通过softmax层对每个单字进行分类,解码后得到每个分类器的分类结果,最终合并所有预测结果作为最终结果。

33、本发明还提供了用于解决实体重叠与实体嵌套的多任务学习系统,包括;

34、数据构造与预处理模块,用于构造多任务通用数据集,并对所述多任务通用数据集进行预处理;

35、模型构建模块,用于设计通用型多任务学习模型,并根据预处理后的多任务通用数据集进行训练;

36、优化器引入模块,用于引入优化器pcgrad,对具有负影响的梯度进行纠偏,对通用型多任务学习模型进行参数优化;

37、损失函数引入模块,用于引入损失函数,并用于计算通用型多任务学习模型在整个前向传播过程中总的损失;

38、预测模块,用于将优化后的通用型多任务学习模型,用于实际数据预测,最终合并所有预测结果作为最终结果。

39、本发明与现有技术相比,有益效果是:(1)本发明设计了一个通用型多任务学习模型,旨在解决命名实体识别任务中普遍存在的实体重叠与实体嵌套问题,降低人工设计命名实体识别任务的难度,从而提升工作效率,为企业提高经济效益;(2)本发明对模型架构进行了针对性设计,在预训练模型层,通过选择不同预训练模型,可以对不同任务类型进行适应性调整,底层更突出共性特征,编码器的上层使用卷积层,更加强调个性特征的抽取,主要是为其后不同的子任务设计的;不同子任务的分类器,起到了标签隔离的作用,有效解决了实体嵌套与实体重叠的问题,提升了模型抽取精度与速度;(3)本发明为了解决不同子任务梯度方向不一致的问题,应用pcgrad的方式,对具有负影响的梯度进行纠偏,使整个模型参数朝着全局最优化方向更新,每个子任务向着统一方向学习尤为重要;(3)本发明的通用型多任务学习模型中,由于比一般的多任务具有更多的标签,更丰富的解码器,也就意味着有更多的损失需要整合;通过使用梯度模长作为每个损失整合的系数,利用其动态更新的优势,进行总体损失的计算,极大的优化了模型耗时及预测精度;(4)本发明方法有效解决了命名实体识别中普遍存在的实体重叠与实体嵌套问题,既提升了模型预测准确率,同时也提升了预测效率,拥有耗时少同时预测结果对用户极其友好的益处,本发明是一种因素更多样,考虑更全面,设计更合理,效率更高的通用型命名实体识别方案。

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