一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种因果关系事件对提取方法及系统与流程

2022-04-02 07:30:40 来源:中国专利 TAG:


1.本发明涉及语言处理领域,特别是涉及一种因果关系事件对提取方法及系统。


背景技术:

2.因果关系抽取任务是构建因果知识图谱的一个基本任务,其目的是从原始文本中识别出具有因果的事件对,如”由于地震,有300多人受伤,28人死亡”,在这句话中,“地震”与“受伤”和“死亡”分别是两对因果事件对,构建这种基于事件的因果知识图谱可以应用于多种领域,如金融、医学的推理分析中。而目前可用的具有因果事件标注的语料较少,如何有效利用这些语料,更加准确的识别因果事件是一个值得研究的问题。
3.自从bert出现以来,使用在大量无结构文本上预训练的模型在许多自然语言处理任务上都取得了最优的效果,这些模型首先在原始语料上使用自监督训练方法,训练出一组在高维空间上具有语义信息的参数,然后再在下游任务上添加分类层做各种任务,这种利用了大量文本信息的方法是目前最流行的方法。然而,这种方法由于需要捕获大量的无结构文本信息,通常设计的较为复杂,如最常用的bert,其参数量为110m。而相对的,许多自然语言处理任务的常用数据集仅有几千或几万个句子(如关系抽取数据集semeval 2010task8,仅有10717个句子),在一些任务场景下可能更少,如因果关系抽取仅有1000个具有因果关系的句子。如何利用有限的数据在这种大型模型上使用,比较常用的方法是进行数据增强。
4.目前的文本数据增强方法一般是基于规则的方法,主要分为三类:1)对句子结构进行更改,随机将非停用词替换为同义词或上位词,利用一些如缩写/动词变位等规则,对句子成分进行改写;2)保证标签不变的情况下,增加噪声,如交换词,根据tf-idf等词的重要程度进行删除,把一些词随机替换成其他词,模拟拼错的场景;3)获取新数据,主要是使用模型预测当前数据分布,之后生成新数据,包括给无结构文本打标签或直接使用文本生成任务生成句子。
5.在以上的方法中,都是根据一些先验知识进行规则的设计,其没有考虑各任务间的独立性。而在实际场景中,各种任务之间差别很大,如在序列标注任务中,需要对每个词进行多分类,其考虑的是词与上下文之间的关系,而在文本分类任务中,只需对整个句子进行分类,考虑的更多的是整个句子的结构问题.在这两种情况下,对于删除词任务来说,前者更关注于与当前标注的词关联更深的一些词,而后者需要考虑该词对整体句子语义的重要性,这导致了两种不同的删除词策略。所以,设计一种能够针对特定任务进行自适应增强的方法十分必要。


技术实现要素:

6.本发明的目的是提供一种因果关系事件对提取方法及系统,对句子中的词进行合理的删除以构造出提升模型表现的数据,利用大型预训练的语料以及对抗攻击的数据增强,小规模语料上获得更好的因果事件抽取效果。
7.为实现上述目的,本发明提供了如下方案:
8.一种因果关系事件对提取方法,所述方法包括:
9.获取训练集d;
10.构建语言模型;
11.采用所述训练集对所述语言模型进行训练,得到环境模型;
12.构建对抗模型;
13.采用所述对抗模型对所述训练集中的数据进行数据增强;
14.利用增强后的数据同时对所述环境模型进行训练,得到训练后的环境模型;
15.将待提取的数据输入到所述训练后的环境模型中,得到因果关系事件对;所述因果事件对包括:原因事件和结果事件。
16.可选的,所述提取方法在步骤“利用增强后的数据同时对所述环境模型进行训练,得到训练后的环境模型”之后和步骤“将待提取的数据输入到所述训练后的环境模型中,得到因果关系事件对”之前还包括:对待提取的数据进行数据清洗。
17.可选的,所述对待提取的数据进行数据清洗包括以下步骤:
18.对待提取的数据进行标准化:将所有词转化为小写;
19.对标准化处理后的数据进行去停用词处理;
20.对所述去停用词处理的数据进行句子划分;
21.对所述句子划分后的数据进行裁剪。
22.可选的,所述采用所述对抗模型对所述训练集中的数据进行数据增强具体包括以下步骤:
23.从所述训练集d中抽取d个数据,并生成随机数γ,γ∈[0,1];
[0024]
当所述γ大于预设阈值时,采用所述训练集d对语言模型进行训练;
[0025]
当所述γ小于等于预设阈值时,将d个数据输入至所述对抗模型获得增强后的数据d
new

[0026]
基于本发明中的上述方法,本发明另外提供一种因果关系事件对提取系统,所述系统包括:
[0027]
训练集获取模块,用于获取训练集d;
[0028]
语言模型构建模块,用于构建语言模型;
[0029]
第一训练模块,用于采用所述训练集对所述语言模型进行训练,得到环境模型;
[0030]
对抗模型构建模块,用于构建对抗模型;
[0031]
数据增强模块,用于采用所述对抗模型对所述训练集中的数据进行数据增强;
[0032]
第二训练模块,用于利用增强后的数据同时对所述环境模型进行训练,得到训练后的环境模型;
[0033]
因果关系事件对提取模块,用于将待提取的数据输入到所述训练后的环境模型中,得到因果关系事件对;所述因果事件对包括:原因事件和结果事件。
[0034]
可选的,所述系统还包括:数据清洗模块,用于对待提取的数据进行数据清洗。
[0035]
可选的,所述数据清洗模块包括:
[0036]
标准化单元,用于对待提取的数据进行标准化:将所有词转化为小写;
[0037]
停用词处理单元,用于对标准化处理后的数据进行去停用词处理;
[0038]
句子划分单元,用于对所述去停用词处理的数据进行句子划分;
[0039]
裁剪单元,用于对所述句子划分后的数据进行裁剪
[0040]
可选的,所述数据增强模块模块包括:
[0041]
数据抽取单元,用于从所述训练集d中抽取d个数据,并生成随机数γ,γ∈[0,1];
[0042]
训练单元,用于当所述γ大于预设阈值时,采用所述训练集d对语言模型进行训练;
[0043]
增强后的数据获取单元,用于当所述γ小于等于预设阈值时,将d个数据输入至所述对抗模型获得增强后的数据d
new

[0044]
根据本发明提供的具体实施例,本发明公开了以下技术效果:
[0045]
本发明中的上述方法及系统相对于现有的深度学习模型,本发明使用的强化学习模型可以作为传统深度学习模型的附加模块,即不会增加模型原有的复杂度而对原模型针对特定任务进行提升,基于此,本发明中的模型具有较高的灵活性,可加在任意以bert或变种模型作为基础模型的模型上,在不增加数据的情况下提升模型效果,提高预测精度。
附图说明
[0046]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0047]
图1为本发明实施例一种因果关系事件对提取方法流程图;
[0048]
图2为本发明实施例对抗模型框架示意图;
[0049]
图3为本发明实施例一种因果关系事件对提取方法整体应用流程图;
[0050]
图4为本发明实施例一种因果关系事件对提取系统结构示意图。
具体实施方式
[0051]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]
本发明的目的是提供一种因果关系事件对提取方法及系统,对句子中的词进行合理的删除以构造出提升模型表现的数据,利用大型预训练的语料以及对抗攻击的数据增强,小规模语料上获得更好的因果事件抽取效果。
[0053]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0054]
本发明提出了一种结合深度学习和强化学习的对抗模型acmm,主要功能为针对因果关系抽取任务,通过在训练时与语言模型一同训练,能够根据任务自适应的删除句子中的相关词,构造出更适合因果关系抽取任务的数据,达到优于基于规则的数据增强方法的效果,我们的模型可以与任何基于bert的语言模型结合,利用bert的大量语料知识,同时避免了由于模型过大,在因果关系数据上的过拟合问题,通过删除语料中的无关词和具有反
效果的词,使得模型能够更加关注于因果关系实体对,能够更准确的从原始语料中抽取出具有因果关系的事件对,最终可用于因果知识图谱的构建。
[0055]
模型主要框架如图2所示,本发明的模型主要分为语言模型和对抗模型两部分,语言模型主要负责对输入的句子进行因果关系抽取任务,从句子中抽取出具有因果关系的事件对,同时,语言模型对于输入句子计算出的损失作为对抗模型决定删除词策略的分数。对抗模型的输入主要是语言模型对当前句子的损失,通过计算采取当前删词策略的损失变化,通过强化学习的策略梯度更新,获得更好的删词策略。两个模型共同训练,环境模型逐渐提升预测准确度,对抗模型逐渐获得更好的删词策略。通过这种对抗方式。使得语言模型能够更加有效的利用现有的数据,获得更好的泛化性。以下对该方案做详细介绍,图1为本发明实施例一种因果关系事件对提取方法流程图,图3为本发明实施例一种因果关系事件对提取方法整体应用流程图,如图1和图3所示,所述方法包括:
[0056]
步骤101:获取训练集d。
[0057]
步骤102:构建语言模型。
[0058]
步骤103:采用所述训练集对所述语言模型进行训练,得到环境模型。
[0059]
步骤104:构建对抗模型。
[0060]
步骤105:采用所述对抗模型对所述训练集中的数据进行数据增强。
[0061]
具体包括以下步骤:
[0062]
从所述训练集d中抽取d个数据,并生成随机数γ,γ∈[0,1];
[0063]
当所述γ大于预设阈值时,采用所述训练集d对语言模型进行训练;
[0064]
当所述γ小于等于预设阈值时,将d个数据输入至所述对抗模型获得增强后的数据d
new

[0065]
步骤106:利用增强后的数据同时对所述环境模型进行训练,得到训练后的环境模型。
[0066]
步骤107:将待提取的数据输入到所述训练后的环境模型中,得到因果关系事件对;所述因果事件对包括:原因事件和结果事件。
[0067]
在步骤106之后和步骤“107之前还包括:对待提取的数据进行数据清洗。
[0068]
待提取的数据进行数据清洗包括以下步骤:
[0069]
对待提取的数据进行标准化:将所有词转化为小写;
[0070]
对标准化处理后的数据进行去停用词处理;
[0071]
对所述去停用词处理的数据进行句子划分;
[0072]
对所述句子划分后的数据进行裁剪。
[0073]
具体的,本发明使用预训练的bert模型作为主要语言模型来获得词语的高维表示,在热启动部分,我们采用数据的原始输入来进行训练。首先,通过bert模型获得输入x=(x1,x2,......,xn)的高维表示,其中xi表示句子中的第i个词.模型的输出为e=(e1,e2,......,en),为句子的高维表示,ei为对应词的高维向量,之后通过一个全连接层将e的维度处理为待分类的大小,最后使用交叉熵函数计算损失。在热启动阶段,我们一般使用10个epoch进行训练,该步骤对应的公式如下:
[0074][0075]
其中,θ
encoder
,θ
cls
分别为bert和全连接层的参数,为指示函数,仅当真实标签和预测标签相等时为1。
[0076]
因为bert模型输出的高维向量通常具有很高的维度,如bert-base版本为768维,bert-large为1024维,作为对抗模型的输入,为了节省资源,我们没有直接使用原始维度的数据作为state,而是通过线性变换将其转化为较低维度的向量(一般为48)。
[0077]
s=encoder(x;θ
encoder
)w
env
b
env
#(3)
[0078]
其中,encoder为bert模型,w
env
和b
env
表示全连接层的参数。
[0079]
下面,对对抗模型进行详细介绍:
[0080]
acmm模型(对抗模型)概述:对于该模块,我们使用advantage-actor-critic框架,因为该任务很难被建模成一个分幕的马尔可夫过程,本发明将该任务视为一个td(0)的任务。具体的,我们使用一个actor模型对当前状态state生成一个动作分布pa为了获得更大的探索空间,我们从分布pa中进行c次采样产生了多个状态statei,i∈[1,c],通过环境模型,我们获得了当前状态的分数,然后奖励计算如下:
[0081]ri
=relu(score(statei)/score(state)-1)#(5)
[0082]
随着环境模型的训练,其分数将会变得越来越小,为了避免逐渐减小的分数的影响,我们采用比例的方式来建模奖励,表示采取当前动作后有多少损失的变化。同时我们使用relu函数截断了奖励为负数的情况。同时,我们限制了删除词的个数,这是一个超参数,其限制了删除的词的个数要在句子词个数的一定比例之内,本发明中的比例为句子长度的20%最终我们能够根据该模块自适应的得到遮盖词的分布pa,该分布基于任务的不同将会不同。接下来将详细讲解该模型的actor部分和critic部分。
[0083]
critic模型:
[0084]
critic模型主要用来计算对当前状态的值估计,其和actor模型共享使用从bert模型获得的隐藏状态e.critic模型使用一个简单的线性层计算当前值估计,之后使用mse计算奖励和估计之间的损失。
[0085]vπ
(s)=p(θ
critic
|state)#(6)
[0086][0087]
actor模型:
[0088]
我们使用策略梯度方法对actor模型进行更新。同时使用adavantage函数使模型能够更平滑的训练,adavantage函数如下:
[0089]aπ
(s
t
,a
t
)=r(s
t
,a
t
) v
π
(s
t 1
)-v
π
(s
t
)#(8)
[0090]
因此,通过策略梯度方法进行的梯度更新过程:
[0091][0092]
参数更新:
[0093]
[0094]
随着bert模型的训练,同一个state对应的分数也会随之改变。因此,在热启动过后,我们需要同时训练acmm模型和环境模型,如图3所示,我们采取了一种类似对抗训练的方法。
[0095]
在实际应用过程中我们分为三个阶段对本发明的技术方案做详细介绍:
[0096]
1、数据集的获取和预处理:
[0097]
本发明将本因果事件对抽取问题建模为一个序列标注问题,即对于一个句子中的所有词,我们对其进行多分类,如“由于地震,有300多人受伤,28人死亡”这样的句子,我们以“b-cause”“i-cause”标注原因的开始和后续部分,同理“b-effect”“i-effect”用于标注结果。用“o”标签来表示其他词,因此,该问题转化为了一个对于句子中每个词的分类问题。
[0098]
在本发明中,我们以semeval 2010task 8作为有监督数据集。由于该数据集是一个关系抽取的数据集,首先,我们使用一些规则(例如:原数据集中句子的标注形式为“由于《e1》地震《/e1》,有300多人《e2》受伤《/e2》,28人死亡.cause-effect(e1,e2)”表示实体e1导致e2。我们模型需要的输入为“由于地震,有300多人受伤,28人死亡”对应的标注为”o o b-cause i-cause,o o o o b-effect i-effect,o o b-effect i-effect”)将原数据集预处理为一个序列标注数据集,并且只含有因果关系,其他关系视为无关数据作为噪声。具体的,原数据集中句子的标注形式为“由于《e1》地震《/e1》,有300多人《e2》受伤《/e2》,28人死亡,cause-effect(e1,e2)”表示实体e1导致e2。我们模型需要的输入为“由于地震,有300多人受伤,28人死亡”,对应的标注为“o o b-cause i-cause,o o o o b-effect i-effect,o o b-effect i-effect”。处理好数据集后,我们使用该数据集训练本模型,最终得到的语言模型即为最后使用的分类模型,它的作用为对于一个原始句子,对其中每个词进行多标签分类,其中标注为因果的事件即为因果事件对,而对抗模型的作用是在对抗训练过程中提高语言模型的泛化能力。
[0099]
2、训练阶段:
[0100]
我们以bert模型为例来描述我们模型的主要使用过程,流程的主要步骤分为两部分:语言模型的热启动和对抗模型和语言模型的对抗训练。
[0101]
在第一部分,模型的输入为经过预处理的semeval 2010task 8数据集,我们使用传统的基于微调的方法使用bert模型加上一层分类层进行微调训练,在得到一个较好的模型后(该超参数在本发明中设为10个epoch),bert模型将作为强化学习的环境,用于获得状态分数(state)。
[0102]
在第二部分的对抗训练阶段,对于数据集中的每个句子,我们采取epsilon-贪婪的方法,即每次以epsilon的概率决定该句子是否要使用对抗模型处理。
[0103]
这样会产生两种情况,1)当epsilon大于设定的阈值时,使用原始文本作为输入,通过语言模型进行预测,这与第一部分的方法一样;2)当epsilon小于等于设定的阈值时,原始句子将使用acmm进行处理,acmm模型使用句子对应的高维向量作为输入,这是从bert的模型中获得。同时,在传入acmm模型之后,我们截断了该高维向量的反向传播,即acmm模型的更新不会导致语言模型的参数变化,这是为了保持语言模型的稳定,该高维向量作为初始状态,传入acmm模型中获取下一个状态的句子作为语言模型bert的新的输入,获得的loss值的变化作为采取当前动作的奖励(reward).而在acmm模型中计算的中间值statevalue和采取动作(action)的梯度将被保存起来,和reward一起用于更新acmm模型。
[0104]
通过这种联合训练,语言模型和acmm模型将会共同进步,acmm模型将会学习到如何处理数据使得语言模型更加难以分辨,而语言模型在这种对抗中对因果事件的识别会变得更加准确.通过对抗训练,即使是使用semeval这种小批量的数据,语言模型也能够更好的学习到句子中事件间的因果关系。本发明相比于其他模型,如未加入对抗训练的bert模型,对于小数据集能够更加有效的利用,从而能更准确的从原始语料中抽取因果事件对,这较为有效的解决了当前数据量小的情况下,大规模预训练模型的利用问题。
[0105]
3、应用阶段:
[0106]
经过训练后,我们认为此时语言模型已经具有了更好的泛化能力,这个结果也与未加入对抗训练的模型进行了对比,见表1。
[0107]
表1基础模型和添加了本发明的对抗攻击模块后的模型在semeval 2010 task 8和causaltime bank数据集上的表现
[0108][0109]
最终,通过在有监督数据集上的监督训练,我们获得了一个具有因果标注能力的模型,该模型对于一个输入句子,能够对其每个词进行多分类,从而提取出因果关系事件对。将该模型应用于大量文本中的因果事件对抽取任务中时,主要分为以下几步:
[0110]
获得原始数据d,经过训练后的模型m;
[0111]
清洗原始数据d,具体步骤如下:
[0112]
标准化:将所有的词转化为小写;
[0113]
去停用词:去除一些无意义的词,如定冠词,代词等;
[0114]
句子切分:使用nltk工具包对句子进行切分;
[0115]
裁剪句子:裁剪过长的句子,句子长度不超过512;
[0116]
通过迭代将数据d中的每个句子输入到模型m中,获得分类标注
[0117]
通过规则将分类标注转化为提取后的因果事件,即被标注为cause或effect分别表示原因事件和结果事件。
[0118]
图4为本发明实施例一种因果关系事件对提取系统结构示意图,如图4所示,所述系统包括:
[0119]
训练集获取模块201,用于获取训练集d;
[0120]
语言模型构建模块202,用于构建语言模型;
[0121]
第一训练模块203,用于采用所述训练集对所述语言模型进行训练,得到环境模型;
[0122]
对抗模型构建模块204,用于构建对抗模型;
[0123]
数据增强模块205,用于采用所述对抗模型对所述训练集中的数据进行数据增强;
[0124]
第二训练模块206,用于利用增强后的数据同时对所述环境模型进行训练,得到训练后的环境模型;
[0125]
因果关系事件对提取模块207,用于将待提取的数据输入到所述训练后的环境模型中,得到因果关系事件对;所述因果事件对包括:原因事件和结果事件。
[0126]
本发明中的上述方法及系统具有以下有益效果:
[0127]
相对于现有的深度学习模型,我们使用的强化学习模型可以作为传统深度学习模型的附加模块,即不会增加模型原有的复杂度而对原模型针对特定任务进行提升。基于此,我们的模型具有较高的灵活性,可加在任意以bert或变种模型作为基础模型的模型上,在不增加数据的情况下提升模型效;
[0128]
我们在表1中列出了原模型的指标和加上本发明的对抗模型后的指标,其中数据集使用的是因果关系抽取数据集semeval 2010task 8和causal time bank.其中第一部分是未使用大型预训练模型的深度学习模型。可以看到使用大型预训练模型后(bert,bert-crf,bert-bilstm-crf),在两个数据集上的表现均有了明显提升。在每个模型后面加上我们的对抗模型模块后,所有模型的表现较于其基础版本都有所提升,这证明了我们附加模块的有效性,对于综合precision和recall的指标f1,在加上我们的对抗训练模块后,在semeval数据集上提升范围为0.51

0.95,在causal time bank上提升范围为1.98

3.63,同时因为causal time bank是一个较小的数据集,我们的方法是一种对抗性的数据增强,因此具有更好的效果。
[0129]
同时我们也对比了传统的基于规则的方法,在表2中也可以显示出我们的模型要优于其他基于规则的方法。这是因为我们的模型是与语言模型共同训练并随时改变掩码策略,这种对抗策略优于其他方法。在两个数据集上都有一个点以上的提升,证明了本发明具有可随时增减的灵活性,同时也能够提升基础模型的性能。
[0130]
表2在semeval和causal time bank数据集上,本发明的模型产生的策略与基于规则的策略方法的表现对比
[0131][0132]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统
而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0133]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献