基于动态正则化的高效终身关系提取方法及系统与流程

文档序号:22614140发布日期:2020-10-23 19:12阅读:119来源:国知局
基于动态正则化的高效终身关系提取方法及系统与流程

本发明属于计算机自然语言处理领域,具体涉及一种基于动态正则化的高效终身关系提取方法及系统。



背景技术:

关系抽取旨在识别文本中的成对实体的关系事实,可应用于众多自然语言处理领域,例如知识库构建和问答系统,与专注于手动设计特征的传统方法相比,现今基于cnn(卷积神经网络)或rnn(循环神经网络)的神经网络方法在关系抽取中获得了令人瞩目的进步,但大部分的神经模型使用假定了一组预先确定的关系的方法,但这种假设并不总是适用于实际的关系抽取场景中。

现有的终身学习研究致力于克服灾难性遗忘现象,处理神经网络模型的终身学习(也称为连续学习)因为现实的需求通常是动态的并且在不断发展,需要预测的关系集合可能会随着时间的推移而改变或扩大,解决这个问题的直接方案是重新训练,然而,这种启发式方法需要存储以前所有的训练数据以及新数据,来训练一个全新的模型,过程昂贵又费时。

因此,在关系抽取中的终身学习的目标是使模型在一系列的任务上全都表现良好,从而避免在每个阶段重新访问所有以前的数据,但大多数现有方法都是为固定关系集而设计的,他们无法使训练过的模型适应新加入的关系而又不会灾难性地忘记先前学习的知识,灾难性遗忘现象,就是指模型从旧任务切换到新任务时性能显著下降。为了减轻遗忘问题,目前有人提出使用正则化项来防止参数值急剧变化,同时仍能够为新任务找到好的解决方案,或者使用情景记忆模块来增强模型,这些方法已经在简单的图像分类数据集上获得了可观的性能提升,但是事实证明,它们在自然语言处理的场景下表现不佳。实际上,只有有限的文献讨论了关于自然语言处理任务(如关系抽取)的终身学习;为了弥补这一领域的不足,wang,h.在2019年提出了一种克服关系抽取模型遗忘问题的方法,他们引入了显式的对齐模型,以减轻模型在学习新数据时句子嵌入空间的扭曲,并获得了最佳的性能,但尽管这种方法可以有效工作,但是它十分依赖于对齐模型的使用,这在已经过度参数化的关系抽取模型中引入了更多参数,这会导致训练所需的监督信号,内存和计算资源数量增加。



技术实现要素:

有鉴于此,本发明的目的之一在于提供一种基于动态正则化的高效终身关系提取方法,该方法能提高终身关系提取时的准确率。

为实现上述目的,本发明的技术方案为:

一种基于动态正则化的高效终身关系提取方法,包括以下步骤:

接收多个数据集,使用神经模型依次对数据集中的训练样本进行训练,每个数据集对应一个任务;所述训练样本包括实体对句子和候选关系集、真实关系标签;

为已接受训练的数据集建立内存块存储记忆数据,并在新的数据集训练时访问所有内存块的记忆数据,定义内存数据损失函数;

在训练新数据集前冻结神经模型的权重,并对新的数据集输入编码器,得到输出向量,定义特征损失函数;

使用ewc计算当前任务的费雪信息矩阵,利用所述费雪信息矩阵在下一次任务训练时对神经模型的参数进行正则化,定义ewc损失函数;

建立连续训练任务期间的训练损失之差模型分别计算特征损失函数、内存数据损失函数、ewc损失函数的正则化因子;

根据特征损失函数及其正则化因子、内存数据损失函数及其正则化因子、ewc损失函数及其正则化因子得到最优关系提取参数。

进一步地,所述内存数据损失函数为:

其中,k为第k个任务,b为每个旧任务保留在内存中的样本数,i、t为求和下标,θnew是使用来自内存的记忆数据和当前数据集的新数据训练的深度学习模型的参数;θold是使用之前任务训练的模型的参数,为第t个任务第i个训练样本中的句子经编码器的输出向量,为第t个任务第i个训练样本中的真实关系标签经编码器的输出向量。

进一步地,所述特征损失函数为:

其中,dk为第k个数据集的样本总数;为第k个任务第i个训练样本中的句子经编码器的输出向量;为第k个任务第i个训练样本中的真实关系标签经编码器的输出向量。

进一步地,所述ewc损失函数为:

其中,fold,i为根据第i个任务之前所有任务计算得到的费雪信息矩阵,θnew,i为使用第i个任务前的内存的记忆数据和第i个任务的新数据训练的深度学习模型的参数;θold,i是使用第i个任务前训练的模型的参数。

进一步地,所述正则化因子的计算方法为:

定义连续两个任务迭代的当前损失后向差;

计算一个用于记录向量数据集迭代的幅度和方向;

引入迭代变量,将所述迭代变量与上一次任务的正则化因子相加,得到当前任务的正则化因子。

进一步地,所述根据特征损失函数及其正则化因子、内存数据损失函数及其正则化因子、ewc损失函数及其正则化因子得到最优关系提取参数的步骤具体包括:

计算总损失函数:

loss=lk+lm+λfmlfm+λfnlfn+λewclewc;

lk为当前损失,lm为内存损失,λfm为内存数据损失函数的正则化因子,λfn为内存数据损失函数的正则化因子,λewc为内存数据损失函数的正则化因子;

定义与关系提取参数相关的损失模型:

l(,)为实施函数,n为数据集的总数,fθ为神经网络,为实体对句子和候选关系集,为真实关系标签,θ为关系提取参数;

训练所有数据集得到最优关系提取参数。

本发明的目的之二在于提供一种基于动态正则化的高效终身关系提取系统,该系统能用于终身关系提取且不引入新的参数。

为实现上述目的,本发明的技术方案为:一种基于动态正则化的高效终身关系提取系统,包括:

训练模块,用于接收多个数据集,并通过神经模型依次对数据集中的训练样本进行训练,每个数据集对应一个任务;所述训练样本包括实体对句子和候选关系集、真实关系标签;

正则化模块,为已接受训练的数据集建立内存块存储记忆数据,并在新的数据集训练时访问所有内存块的记忆数据,同时定义多种损失函数,并计算各损失函数在不同任务间的正则化因子;

损失训练模块,根据所述正则化模块的损失函数和正则化因子,并连同所述训练模块训练得到的数据计算最优关系提取参数。

进一步地,所述正则化模块包括特征正则化单元,内存数据正则化单元,ewc正则化单元;其中,

内存数据正则化单元用于为已接受训练的数据集建立内存块存储记忆数据,并在新的数据集训练时访问所有内存块的记忆数据,定义内存数据损失函数

特征正则化单元用于在训练新数据集前冻结神经模型的权重,并对新的数据集输入编码器,得到输出向量,定义特征损失函数;

ewc正则化单元用于使用ewc计算当前任务的费雪信息矩阵,利用所述费雪信息矩阵在下一次任务训练时对神经模型的参数进行正则化,定义ewc损失函数。

进一步地,所述特征损失函数为:

其中,dk为第k个数据集的样本总数;为第k个任务第i个训练样本中的句子经编码器的输出向量;为第k个任务第i个训练样本中的真实关系标签经编码器的输出向量。

进一步地,所述ewc损失函数为:

其中,fold,i为根据第i个任务之前所有任务计算得到的费雪信息矩阵,θnew,i为使用第i个任务前的内存的记忆数据和第i个任务的新数据训练的深度学习模型的参数;θold,i是使用第i个任务前训练的模型的参数。

有益效果

本发明提供一种基于动态正则化的高效终身关系提取方法及系统,其有益效果在于:本发明的方法为每一个旧任务维护一个内存块,该内存块比原始数据集要小得多,并在每次有新任务出现时将记忆数据显示给神经模型,因此,模型可以在学习新知识的同时查看旧任务的信息,减少灾难性遗忘,为了进一步保留旧知识,本发明还利用两种类型的正则化项(ewc正则化项和特征正则化项)来减慢重要权重的更新并约束模型产生固定的句子表示向量,同时方法中还给出了正则化因子不断更新以遵循训练损失的动态变化,而不是使用固定的超参数,使得利用该方法进行终身关系提取时的准确率更高,且不引入额外的参数。

附图说明

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

图1为本发明一种基于动态正则化的高效终身关系提取系统的一实施例结构示意图;

图2为本发明一种基于动态正则化的高效终身关系提取方法的流程示意图。

具体实施方式

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

所举实施例是为了更好地对本发明进行说明,但并不是本发明的内容仅局限于所举实施例。所以熟悉本领域的技术人员根据上述发明内容对实施方案进行非本质的改进和调整,仍属于本发明的保护范围。

实施例1

参考图1,为本发明一种基于动态正则化的高效终身关系提取系统的结构示意图,具体地,一种基于动态正则化的高效终身关系提取系统,包括:

训练模块1,用于接收多个数据集,并通过神经模型依次对数据集中的训练样本进行训练,每个数据集对应一个任务;训练样本包括实体对句子和候选关系集、真实关系标签;

正则化模块2,为已接受训练的数据集建立内存块存储记忆数据,并在新的数据集训练时访问所有内存块的记忆数据,同时定义多种损失函数,并计算各损失函数在不同任务间的正则化因子;

本实施例中,正则化模块2包括特征正则化单元22,内存数据正则化单元21,ewc正则化单元23;其中,

内存数据正则化单元21用于为已接受训练的数据集建立内存块存储记忆数据,并在新的数据集训练时访问所有内存块的记忆数据,定义内存数据损失函数;

内存数据损失函数为:

其中,k为第k个任务,b为每个旧任务保留在内存中的样本数,i、t为求和下标,θnew是使用来自内存的记忆数据和当前数据集的新数据训练的深度学习模型的参数;θold是使用之前任务训练的模型的参数,为第t个任务第i个训练样本中的句子经编码器的输出向量,为第t个任务第i个训练样本中的真实关系标签经编码器的输出向量。

特征正则化单元22用于在训练新数据集前冻结神经模型的权重,并对新的数据集输入编码器,得到输出向量,定义特征损失函数;

特征损失函数为:

其中,dk为第k个数据集的样本总数;为第k个任务第i个训练样本中的句子经编码器的输出向量;为第k个任务第i个训练样本中的真实关系标签经编码器的输出向量。

ewc正则化单元23用于使用ewc计算当前任务的费雪信息矩阵,利用费雪信息矩阵在下一次任务训练时对神经模型的参数进行正则化,定义ewc损失函数;ewc损失函数为:

其中,fold,i为根据第i个任务之前所有任务计算得到的费雪信息矩阵,θnew,i为使用第i个任务前的内存的记忆数据和第i个任务的新数据训练的深度学习模型的参数;θold,i是使用第i个任务前训练的模型的参数。

优选地,本实施例中的正则化模块2还为每个单元的损失函数计算在不同任务间的正则化因子,具体步骤如下:

定义连续两个任务迭代的当前损失后向差;

计算一个用于记录向量数据集迭代的幅度和方向;

引入迭代变量,将迭代变量与上一次任务的正则化因子相加,得到当前任务的正则化因子。

损失训练模块3,根据正则化模块的损失函数和正则化因子,并连同训练模块训练得到的数据计算最优关系提取参数。

本实施例,能根据特征损失函数及其正则化因子、内存数据损失函数及其正则化因子、ewc损失函数及其正则化因子计算总损失函数,再建立与关系提取参数相关的损失函数模型,在单个神经网络fθ对输入的任务进行训练,学习目标是找到在所有训练数据集上使经验风险最小的参数θ,即最优关系提取参数。

实施例2

参考图2,为本发明一种基于动态正则化的高效终身关系提取方法的流程,具体地,一种基于动态正则化的高效终身关系提取方法,包括以下步骤:

s400:接收多个数据集,使用神经模型依次对数据集中的训练样本进行训练,每个数据集对应一个任务;然后执行步骤s500;

本实施例中,从一系列数据集{d1,d2,...,dn}中学习,其中每个数据集都对应一个任务。任务k的数据包括观察值和标记对在理想情况下,如果所有任务数据都能同时使用,那么模型可以同时使用它们进行联合训练,但是,根据标准的终身学习设定,数据集会依次到达,因此一次只能访问其中一个数据集。

本实施例中的第k个任务(即第k个数据集dk)训练样本表示为包括实体对的句子候选关系集为真实关系标签;训练样本会经过编码器得到输出向量:对应于对应于对应于

s500:为已接受训练的数据集建立内存块存储记忆数据,并在新的数据集训练时访问所有内存块的记忆数据,定义内存数据损失函数;然后执行步骤s600;

本实施例中,为了克服灾难性遗忘问题,采用了基于内存的方法,该方法可以使用内存模块来保存先前任务的数据,并在新任务训练中执行经验回放。显然,我们无法将每个示例存储在内存中。在实践中,我们考虑为每个旧任务存储相等数量的b个示例的情景记忆。在训练任务k时,我们保留一个内存模块其中是指从任务t中选出的示例集合,因此有t≤k-1。在经验回放中,我们遵循情景经验回放(emr),使用从内存中的示例与当前示例一起进行训练。学习任务k时的损失函数可写为:

其中表示排序损失函数。我们将第一项lk称为“当前损失”,将第二项lm称为“内存损失”。

本步骤中,在使用当前模型训练了新数据集之后,将选择一部分具有代表性的训练数据,并将其存储在内存中,设定内存数据损失函数为:

其中,k为第k个任务,b为每个旧任务保留在内存中的样本数,i、t为求和下标,θnew是使用来自内存的记忆数据和当前数据集的新数据训练的深度学习模型的参数;θold是使用之前任务训练的模型的参数,为第t个任务第i个训练样本中的句子经编码器的输出向量,为第t个任务第i个训练样本中的真实关系标签经编码器的输出向量。

s600:在训练新数据集前冻结神经模型的权重,并对新的数据集输入编码器,得到输出向量,定义特征损失函数;然后执行步骤s700;

本实施例中,为了进一步减少遗忘,我们还对当前新数据应用了特征正则化项。首先,我们在训练前冻结整个模型的权重。然后,我们将当前训练数据作为输入送入编码器,获得输出向量当前任务中的特征损失函数为:

其中,dk为第k个数据集的样本总数;为第k个任务第i个训练样本中的句子经编码器的输出向量;为第k个任务第i个训练样本中的真实关系标签经编码器的输出向量。

通过步骤s600,强制新的训练模型保持旧的行为,保留对旧任务的记忆,减少灾难性遗忘。

s700:使用ewc计算当前任务的费雪信息矩阵,利用费雪信息矩阵在下一次任务训练时对神经模型的参数进行正则化,定义ewc损失函数;然后执行步骤s800;

本步骤中,引入ewc正则化项,当模型按任务到达的顺序增量地进行训练时,对于旧任务很重要的参数的学习速度会变慢,从而可以减少遗忘,具体地,正则化项的核心思想是防止对旧任务做出很大贡献的参数急剧更改,但允许其他参数更自由地更改。具体来说,ewc计算当前任务的费雪信息矩阵,利用该矩阵在下一迭代期对模型参数进行正则化,这使模型能够找到对所有任务都友好的解决方案,将根据之前任务计算的费雪信息矩阵表示为fold,ewc损失函数为:

其中,fold,i为根据第i个任务之前所有任务计算得到的费雪信息矩阵,θnew,i为使用第i个任务前的内存的记忆数据和第i个任务的新数据训练的深度学习模型的参数;θold,i是使用第i个任务前训练的模型的参数。

s800:建立连续训练任务期间的训练损失之差模型分别计算特征损失函数、内存数据损失函数、ewc损失函数的正则化因子;然后执行步骤s900。

在训练初始时,学习者尚未从当前任务中获取新知识,这意味着模型应具有较小的正则化强度以促进当前任务学习。但是,通过一定数量的迭代后,模型可能会过分强调当前任务学习,从而导致正则化损失的迅速增加,如果当前损失在迭代中下降,则正则化强度应该增加,以防止由于对当前任务的偏向而在下一次迭代中忽略保留旧知识;否则,正则化强度应降低,以防止对当前任务学习的不足;如果正则化损失在迭代中增加,则相应的正则化强度应增加以巩固旧知识。否则,保持正则化强度不变。针对以上问题,本步骤能动态性自适应地调整参数,具体方法如下,

定义连续两个任务迭代的当前损失后向差;

lk为当前损失,它驱动模型进行当前任务学习,则后向差可定义为:

为第i次迭代时的平滑过的当前损失,为第i-1次迭代时的平滑过的当前损失;

本实施例中,用ewc损失函数的正则化项为例来具体描述动态性获得参数:

计算一个用于记录向量数据集迭代的幅度和方向;

为了获得第i+1迭代期的λewc,我们首先计算一个向量来记录应更新的幅度和方向,这类似于梯度的概念。的值是通过当前损失和ewc损失的后向差获得的,通过以下两个步骤计算:

其中δλewc是用于改变正则化幅度的一个小的恒定步长,指示λewc将更新的方向和幅度的向量,γ用于权衡当前损失和ewc损失的影响;

接着引入迭代变量vewc,将迭代变量与上一次任务的正则化因子相加,得到当前任务的正则化因子;

本实施例中,迭代变量vewc同时考虑了当前和早期更新的方向和幅度,可通过以下公式获得:

其中β∈[0,1]是一个衰减系数,它允许较早的更新对当前更新有较小的影响。若没有衰减系数正则化强度的更新会趋于振荡甚至发散;

最后通过迭代变量与前一次迭代得到的正则化因子相加,得出:

其中是第(i+1)次迭代期的最终动态因子;动态因子的更新结合了历史和当前更新,并且在训练过程的每次迭代中都遵循训练损失的动态变化。

s900:根据特征损失函数及其正则化因子、内存数据损失函数及其正则化因子、ewc损失函数及其正则化因子得到最优关系提取参数。

计算总损失函数:

loss=lk+lm+λfmlfm+λfnlfn+λewclewc;

lk为当前损失,lm为内存损失,λfm为内存数据损失函数的正则化因子,λfn为内存数据损失函数的正则化因子,λewc为内存数据损失函数的正则化因子;

定义与关系提取参数相关的损失模型:

l(,)为实施函数,n为数据集的总数,fθ为神经网络,为实体对句子和候选关系集,为真实关系标签,θ为关系提取参数;

训练所有数据集得到最优关系提取参数。

优选地,还可将关系抽取建模为匹配问题;来自数据集dk的训练样本表示为其中包括含实体对的句子候选关系集以及表示真实关系标签的编码器的输出向量(高级表示)表示为对应于的输出向量,对应于的输出向量,对应于的输出向量,则在模型中,给定输入预测关系为:

其中nc是候选集的大小,cos(·,·)是余弦相似距离。

实施例3

本实施例中,通过实验对实施例1的系统和实施例2的方法的有效性进行验证,具体地,采用lifelongfewrel数据集和lifelongsimplequestions数据集进行评估,lifelongfewrel数据集由10个任务组成,这些任务是通过将fewrel数据集划分为10个不相交的簇而获得的,fewrel共有80个关系,因此每个簇包含8个关系,并且簇中的每个样本都包括一个含目标关系的句子和一个通过随机采样选择出来的候选集;lifelongsimplequestions的构建与其类似,由simplequestions数据集生成的20个任务组成。

优选地,本实施例中采用accavg和accwhole在内的两个指标来评估我们的模型。accavg评估已观察到的任务的平均测试准确率;accwhole评估模型在观察和未观察到的任务上的整体性能。

同时,选用以下几种模型作为基线模型:origin,简单地基于先前模型来训练新数据;ewc,kirkpatrick2017年提出的能减慢了对先前任务重要的参数的学习的模型;gem,lopez-paz2016年提出的可以通过情景记忆帮助巩固先前任务学到的知识模型;agem,chaudhry2018年提出的gem的改进版本,它使gem在训练时加快了几个数量级,同时保持了相似的性能;ea-emr,wang2019年提出的通过约束嵌入空间来进行终身学习模型,这也是是当前最先进的方法。除此之外,为了更好的评估本系统,还给出了实施例1中系统的变形,分别为变形1:仅使用动态特征正则化项;变形2:仅使用动态ewc正则化项。

表格1各模型在不同数据集上的准确率

表1为多个模型在两个数据集上的实验得到的准确率数据表,从结果中我们可以看到,与其他基线模型相比,本发明的系统在两个数据集上的准确率均要高于其他模型,取得了更好的效果;原因是我们的模型使用了三个有效的正则化项,并且可以根据终身学习过程中的训练损失来动态地控制正则化强度,以平衡当前任务学习和旧知识保存,而其他基线模型仅考虑了使用固定超参数的平衡策略。

配备内存模块可以显著缓解灾难性遗忘问题,但是它需要保存旧任务数据,这可能会导致过高的内存开销,另外,在某些情况下(如数据流)中,模型可能根本不能够访问旧任务的数据。因此,我们还测试了没有内存支持的情况下模型的准确性:从表1可以看出,变形1的准确率比emr模型高得多,并且与ea-emr模型性能相当;变形2在simplequestions数据集上与ea-emr模型性能相似,在fewrel数据集上与ea-emr模型相比,其acc_whole增量约为3%,acc_whole增量为5%,即在没有内存帮助的情况下,本发明中的系统变形1与变形2也可以很好地工作。

从变形2与ewc模型得到的数据来比较,变形2模型的准确率大大提高,这证明本发明的动态正则化方法更有效地平衡了学习与遗忘之间的关系。

从模型中使用的参数量来看,ea-emr的对齐模型将使用36%的参数来对齐句子嵌入空间,而本发明中的系统不需要使用其他的对齐层,而是使用正则化项动态地防止嵌入空间变形;如果我们将d,h,n分别表示为词嵌入维度,lstm的隐藏层大小和对齐层大小(n=2h),本实施例中,设d=300,h=200,n=400,则可计算ea-emr和本文方法的参数总数为:

ea-emr:2×d×h+4×h2+4×h+2×h×n+n=441,200

本发明模型:2×d×h+4×h2+4×h=280,800

由此可见,本发明中的系统总参数空间是中的64%,对齐模型需要更多的2hn+n=160,400个参数,在不引入更多参数的情况下,本发明的系统参数量远小于ea-emr模型,即本发明的系统能实现在提高抽取关系的准确率与性能时,减少系统参数量的增加。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

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