有效
一种基于多任务学习的事件抽取方法
黄震、陈一凡、刘攀、王博阳、陈易欣、周文博、李东升
中国人民解放军国防科技大学
摘要
本发明公开了一种基于多任务学习的事件抽取方法,目的是实现当文本数量庞大时快速高效进行事件抽取。技术方案是先构建由客户端、负样本数据库、事件筛选模块、特征提取模块、事件分类模块、事件触发词和论元抽取模块和事件信息整合器构成的事件抽取系统。然后选择训练集,利用训练集对事件抽取系统进行训练,得到网络权重参数;采用训练后的事件抽取系统对事件进行事件筛选,判断是否是预定义类别的事件,如果是则进行特征提取、事件分类、事件触发词与论元抽取以及事件信息整合,得到事件抽取结果;如果不是则丢弃当前事件。采用本发明可以充分挖掘数据隐含的信息并快速获得文本多领域的分类属性,提升事件抽取的准确率和效率。
1.一种基于多任务学习的事件抽取方法,其特征在于包括以下步骤:第一步:构建事件抽取系统,事件抽取系统由客户端、负样本数据库、事件筛选模块、特征提取模块、事件分类模块、事件触发词与论元抽取模块和事件信息整合器组成;客户端与事件筛选模块和事件信息整合器相连,将用户输入的事件文本X送入事件筛选模块和事件信息整合器;负样本数据库存储由互联网等渠道获取的文本集合,包含P条文本,P为正整数,与事件筛选模块相连;负样本数据库供事件筛选模块读取;负样本数据库中的文本集合D={D 1 ,D 2 ,...,D p ,...,D P },D p 表示D中第p个文本; N为正整数,D p 表示长度为N的文本;事件筛选模块是基于卷积神经网络CNN的二分类器,由字符嵌入模块、CNN编码器和二分类器组成;字符嵌入模块选择中文字符向量对事件文本X进行字符嵌入,得到字符嵌入结果Em(X);CNN编码器对字符嵌入结果Em(X)进行编码,得到编码结果En(X);二分类器对En(X)进行全连接和归一化,进而得到事件文本的价值判断u;事件筛选模块与客户端和特征提取模块相连,事件筛选模块从客户端接收用户输入的事件文本X,X={x 1 ,x 2 ,...,x n ,...,x N },其中1≤n≤N,N为正整数,X表示长度为N的文本,x n 为X中的第n个字符,对X进行筛选,得到事件文本的价值判断u;特征提取模块与事件筛选模块、事件分类模块、事件触发词与论元抽取模块相连,当从事件筛选模块接收到事件文本X时,特征提取模块使用RoBERTa预训练语言模型对事件文本X中的知识进行特征提取,得到X中N个字符的特征表示F(X)={F(x cls ),F(x 1 ),F(x 2 ),...,F(x n ),...,F(x N ),F(x sep )},其中[CLS]和[SEP]为预训练语言模型特有的标识符,F(x cls )和F(x sep )分别表示[CLS]和[SEP]在X中的特征向量,F(X)包含N+2个特征向量;使用F(x cls )和F(x sep )这两个标识符的特征向量表示X的整体特征信息F f (X), 表示向量拼接操作;将F f (X)送入事件分类模块,将F(X)送入事件触发词与论元抽取模块;事件分类模块与特征提取模块、事件触发词与论元抽取模块和事件信息整合器相连;令事件的分类方式集合为C,C={C 1 ,C 2 ,...,C r ,...,C R },其中1≤r≤R,R为正整数,表示共有R种事件分类方式,C r 表示第r种事件分类方式, 其中1≤a≤A,A为正整数,表示第r种事件分类方式中共有A个类别, 表示第r种事件分类方式的第a个类别;事件分类模块包含R个分类模型,分别对应R个事件分类方式,R个分类模型表示为net 1 ,net 2 ,...,net r ,...,net R ,第r个分类模型net r 对X的整体特征信息F f (X)进行全连接和归一化,进而得到X在第r种事件分类方式下的类别vr;当从特征提取模块接收到F f (X)时,事件分类模块对R个事件分类方式同时进行分类,得到事件分类结果V=(v 1 ,v 2 ,...,v r ,...,v R ),将V送入事件信息整合器中;事件触发词与论元抽取模块与特征提取模块和事件信息整合器相连;将事件触发词与论元抽取模块需要抽取的事件要素的抽取建模为序列标注任务,每种要素作为一个要素类别进行抽取,使用事件触发词与论元抽取模块一次性抽取所有的事件要素;事件触发词与论元抽取模块由下游编码器BiLSTM网络和解码器CRF网络构成;事件触发词与论元抽取模块从特征提取模块接收F(X),对F(X)进行下游编码和解码操作,得到X的预测序列标签Y(X),Y(X)={y cls ,y 1 ,y 2 ,...,y n ,...,y N ,y sep },y n 表示X中第n个字符x n 的预测标签,将Y(X)送入事件信息整合器,y cls 表示“[CLS]”的预测标签,y sep 表示“[SEP]”的预测标签;事件信息整合器与客户端、事件分类模块和事件触发词与论元抽取模块相连,从客户端接收用户输入的事件文本X,从事件分类模块获得V,从事件触发词与论元抽取模块获得Y(X),将Y(X)中各元素与X中的字符对应起来,获得事件要素五元组E;结合V和E得到事件文本X的结构化信息,即对X事件抽取的结果S;第二步:准备训练事件抽取系统的数据集;数据集包括三部分,一是用来训练事件筛选模块的数据集,二是用来训练事件分类模块的数据集,三是用来训练事件触发词与论元抽取模块的数据集,方法是:2.1;选择来自同一领域的数据集为原始训练集;每条标注样本包含一条文本X和其对应的实际标签T,每个实际标签T包含真实事件类别标签VV,以及真实事件要素标签EE,原始训练集中标注样本条数L为正整数;2.2初始化负样本数据库;在互联网上爬取与数据集不相关领域的事件文本共P条,构成负样本数据库的文本集合D,其中P≥L;2.3构建事件筛选模块训练集;将原始训练集里的L条标注样本的每条事件文本添加标签“1”,得到事件筛选模块的正样本集合;将负样本数据库中的P条事件文本添加标签“0”,得到事件筛选模块的负样本集合;混合正样本集合和负样本集合,作为事件筛选模块的训练集;训练集包括事件文本集合 以及对应事件文本的标签集合 O为正整数,表示训练集样本共O个,O=L+P, 若 为0,则表示 不需要进一步抽取,若 为1,则表示 需要进一步抽取;2.4构建事件分类模块训练集;将原始训练集的L条标注样本作为初始训练集;事件分类模块训练集包括来自事件标注数据的事件文本集合X 1 ,X 2 ,...,X l ,...,X L 以及对应的真实事件类别标签VV 1 ,VV 2 ,...,VV l ,...,VV L ,1≤l≤L,表示事件分类模块训练集样本共L个, 表示第l个样本在第r种事件分类方式下的类别标签;2.5构建事件触发词与论元抽取模块训练集,事件触发词与论元抽取模块训练集包括事件文本X 1 ,X 2 ,...,X l ,...,X L 以及对应的真实事件要素标签EE 1 ,EE 2 ,...,EE l ,...,EE L ,将EE l 转化为序列标签Y(X l ),转化EE 1 ,EE 2 ,...,EE l ,...,EE L 得到L个真实事件要素的序列标签集合Y(X 1 ),Y(X 2 ),…,Y(X l ),…,Y(X L );第三步:使用事件筛选模块训练集对事件筛选模块进行训练,得到事件筛选模块的网络权重参数,方法如下:3.1初始化事件筛选模块的网络权重参数;将CNN编码器的网络权重参数集合W CNN 中所有元素值都初始化为[0,1]之间的随机数;将二分类器的网络权重参数集合W D 中所有元素值都初始化为[0,1]之间的随机数;3.2设置网络训练超参数,包括:网络模型学习率learningRate、批处理尺寸batchsize、文本最大长度maxlen、随机种子Seed;3.3迭代计算二分类器的输出分布与真实筛选模块标签分布的差距,得到损失值,最小化损失值并更新网络参数,直到满足迭代阈值要求,得到权重参数;具体方法如下:3.3.1初始化训练迭代参数itretation1=1;初始化迭代阈值Epoch1为[1,30]内的整数;3.3.2事件筛选模块的字符嵌入模块使用中文字符向量对事件筛选模块训练集中的事件文本集合 进行字符嵌入,得到事件文本集合的字符嵌入集合 其中事件文本集合 的字符嵌入集合 表示 中第n个字符的字符嵌入;CNN编码器对字符嵌入集合进行编码,得到事件编码集合 其中 表示事件文本集合 的编码;二分类器对事件编码集合 进行分类,得到当前参数下网络模型对于标签预测的输出分布,使用分类模型常用的交叉熵损失函数计算预测的输出分布与真实标签集合 的差距,得到损失值loss f ,并使用Adam优化算法对loss f 最小化以更新一次W CNN 和W D ;3.3.3令itretation1=itretation1+1,如果itretationl≤迭代阈值Epoch1,转3.3.2;否则说明训练满足迭代次数要求,训练结束,将训练后的W CNN 作为CNN编码器的权重参数集合,将训练后的W D 作为二分类器的权重参数集合,得到训练好的事件筛选模块,转第四步;第四步:使用事件分类模块训练集和事件触发词与论元抽取模块训练集基于多任务学习对特征提取模块、事件分类模块和事件触发词与论元抽取模块进行联合训练,得到特征提取模块、事件分类模块和事件触发词与论元抽取模块的网络权重参数,方法如下:4.1初始化权重参数,使用预训练模型参数初始化特征提取模块的RoBERTa预训练语言模型权重参数集合W R 中的所有元素值;将事件分类模块的net 1 ,net 2 ,...,net r ,...,net R 的网络权重参数集合W net 中所有元素都初始化为[0,1]之间的随机数;将事件触发词与论元抽取模块中的下游编码器BiLSTM网络权重参数集合W B 中所有元素值都初始化为[0,1]之间的随机数;将事件触发词与论元抽取模块中的解码器CRF网络权重参数集合W CRF 中所有元素值都初始化为[0,1]之间的随机数;4.2设置网络训练超参数,包括:RoBERTa预训练语言模型学习率learningRate-RoBERTa、其他网络模型学习率learningRate-Other,批处理尺寸batchsize、文本最大长度maxlen、损失平衡参数α、随机种子,要求0<α<1;4.3事件分类模块迭代计算R个分类模型即net 1 ,net 2 ,...,net r ,...,net R 的输出分布与R个真实事件类别标签集合VV 1 ,VV 2 ,...,VV l ,...,VV L 的差距,得到损失值loss 1 ,loss 2 ,…,loss r ,…,loss R , 事件触发词与论元抽取模块计算事件触发词与论元抽取模块的输出分布与真实事件要素的序列标签集合Y(X 1 ),Y(X 2 ),...,Y(X l ),...,Y(X L )的差距,得到损失值loss e ;总损失计算方式为loss=α(loss 1 +loss 2 +…+loss r +…+loss R )+(1-α)loss e ;最小化总损失值loss并更新网络参数,直到满足迭代次数要求,得到权重参数;具体方法如下:4.3.1初始化训练迭代参数itretation2=1;初始化迭代阈值Epoch2为[1,30]内的整数;4.3.2特征提取模块从事件分类模块训练集读取接收事件文本集合X 1 ,X 2 ,...,X l ,...,X L ,使用RoBERTa预训练语言模型对事件文本集合进行特征提取,得到事件文本每个字符的特征表示集合F(X 1 ),F(X 2 ),...,F(X l ),...,F(X L )以及事件文本整体的特征表示集合F f (X 1 ),F f (X 2 ),...,F f (X l ),...,F f (X L ),其中F(X l )表示第l个事件文本X l 中每个字符的特征表示, 表示第l个事件文本X l 中的第n个字符 的特征表示, 表示第l个事件文本集合X l 的第一个特征表示, 第l个事件文本集合X l 的第二个特征表示; 表示第l个事件文本X l 整体的特征表示, 表示向量拼接操作;4.3.3事件分类模块接收特征提取模块的整体特征表示集合F f (X 1 ),F f (X 2 ),...,F f (X l ),...,F f (X L ),采用多分类的交叉熵损失函数计算net 1 ,net 2 ,...,net r ,...,net R 的输出分布与R个真实事件类别标签集合VV 1 ,VV 2 ,...,VV l ,...,VV L 的差距,得到损失值loss 1 ,loss 2 ,...,lossr,...,loss R ,其中第r种分类方式下的损失值 表示第l个事件文本X l 的整体特征表示F f (X l )经过net r 后得到的输出分布与第l个事件文本X l 在第r种分类方式下的标签 的损失;事件触发词与论元抽取模块从特征提取模块接收每个字符的特征表示集合,下游编码器BiLSTM进行编码,得到每个字符的下游编码集合,解码器CRF对下游编码集合进行解码,得到当前参数下网络模型对于标签的输出分布,CRF计算事件触发词与论元抽取模块的输出分布与真实事件要素标签集合Y(X 1 ),Y(X 2 ),...,Y(X l ),...,Y(X L )的差距,得到损失值loss e ;4.3.4对事件分类模块得到的损失值loss 1 ,loss 2 ,...,loss r ,...,loss R 和事件触发词与论元抽取模块得到的损失值loss e 进行加权平均,得到特征提取模块、事件分类模块和事件触发词与论元抽取模块整体的损失loss=α(loss 1 +loss 2 +…+loss r +…+loss R )+loss e ,使用Adam优化算法对整体损失loss最小化以更新一次W R 、W net 、W B 和W CRF ;4.3.5令itretation2=itretation2+1,如果itretation2≤迭代阈值Epoch2,转4.3.2;否则说明训练满足迭代次数要求,训练结束,将训练后的W R 作为特征提取模块的RoBERTa预训练语言模型的权重参数集合,将训练后的W net 作为事件分类模块的net 1 ,net 2 ,...,net r ,...,net R 的权重参数集合,将训练后的W B 作为事件触发词与论元抽取模块的BiLSTM网络的权重参数集合,将训练后的W CRF 作为事件触发词与论元抽取模块的CRF的权重参数集合,得到训练好的特征提取模块、事件分类模块和事件触发词与论元抽取模块,转第五步;第五步,使用训练后的事件抽取系统对用户从客户端输入的文本X进行事件抽取,X表示长度为N的文本,X={x 1 ,x 2 ,...,x n ,...,x N },x n 表示文本X的第n个字符,方法为:5.1事件筛选模块对事件文本X进行筛选:事件筛选模块的字符嵌入模块使用中文字符向量对X进行字符嵌入,得到X的字符嵌入Em(X);CNN编码器对字符嵌入Em(X)进行编码,得到X的编码表示En(X);二分类器对编码表示En(X)进行分类,得到X的价值判断u;若u=1,说明X是用户关心的事件,需要对X进一步抽取信息,将X发送给特征提取模块,转5.2;若u=0,说明X不是用户关心的事件,丢弃X,转第六步;5.2特征提取模块对文本X进行特征提取:训练后的RoBERTa网络对X进行编码,得到X中每个字符的表示F(X)={F(x cls ),F(x 1 ),F(x 2 ),…,F(x n ),…,F(x N ),F(x sep )}和X的整体特征信息F f (X), 表示向量拼接操作;将F f (X)送入事件分类模块,将F(X)送入事件触发词与论元抽取模块;5.3事件分类模块从特征提取模块接收F f (X),使用训练后的net 1 ,net 2 ,...,net r ,...,net R 按R个事件分类方式同时对F f (X)进行分类,得到R个事件分类结果V=(v 1 ,v 2 ,...,v r ,...,v R ),v r 表示X在第r种事件分类方式下的类别,将V送入事件信息整合器;同时事件触发词与论元抽取模块从特征提取模块接收F(X),使用训练后的BiLSTM网络对F(X)进行下游编码并使用训练后的CRF网络对下游编码的结果进行解码,得到X的事件要素预测序列标签Y(X), 表示X中第n个字符x n 的预测标签,将Y(X)送入事件信息整合器;5.4事件信息整合器对X的V和Y(X)进行整合,得到对X进行事件抽取的抽取结果S,方法如下:5.4.1将Y(X)中X的首字符“[CLS]”和尾字符“[SEP]”的预测标签结果去除,保留长度为N的预测序列标签;5.4.2将Y(X)与X对应,得到每个事件要素类别的事件要素列表,方法如下:5.4.2.1初始化5个空列表集合,用{list 1 ,...,list b ,...,list 5 }表示,1≤b≤5,分别对应5个事件要素类别{tr,s,o,ti,l},其中tr表示触发词trigger、s表示事件主体subject、o表示事件客体object、ti表示事件时间time以及1表示事件地点location,初始化变量n=1,初始化预测要素字符序列entity为空字符,entity用来暂时存储预测的要素字符序列;5.4.2.2如果n≤N,令n=n+1,转5.4.2.3;如果n>N,说明已经对全部标签进行了判别,得到了5个事件要素类别对应的事件要素列表,即对X中事件要素的识别结果,每个事件要素列表对应一个事件要素类别,一个事件要素列表中的所有要素为同一类别的要素,转5.4.3;5.4.2.3根据Y(X)的第n个预测标签 执行不同的操作;如果 则表示 为非要素标签,转5.4.2.2;如果 是“B-tag”或“I-tag”的形式,其中tag∈{tr,s,o,ti,l},表示 为tag类事件要素的要素头部标签或tag类事件要素的要素中部标签,将 对应的X中字符x n 插入到entity尾部,转5.4.2.2;如果 是“E-tag”或“S-tag”的形式,表示 为tag类事件要素的要素尾部标签或tag类事件要素的单要素标签,将 对应的X中字符x n 插入到entity尾部,并将entity加入tag类事件要素对应的事件要素列表list b 中,之后令entity为空字符,转5.4.2.2;5.4.3将事件文本X的事件要素列表集合{list 1 ,...,list b ,...,list 5 }与事件分类结果V进行结构化整合,得到事件文本X的事件抽取结果,使用一个词典S来表示,即 其中list 1 表示X中触发词(trigger)要素的结果列表,list 2 表示X中主体(subject)要素的结果列表,list 3 表示X中客体(object)要素的结果列表,list 4 表示X中时间(time)要素的结果列表,list 5 表示X中地点(location)要素的结果列表,Dec(r)表示第r种事件分类方式的描述,v r 表示按照第r种事件分类方式进行分类时事件文本X的类别;第六步,结束。
2.如权利要求1所述的一种基于多任务学习的事件抽取方法,其特征在于所述负样本数据库中存储文本条数P>3000;所述负样本数据库中的文本集合D中的D p 以字符为单位,D p 长度为N指D p 包含N个字符;所述原始训练集中标注样本条数L>3000。
3.如权利要求1所述的一种基于多任务学习的事件抽取方法,其特征在于所述事件筛选模块中的CNN编码器共包含3个卷积层,1个池化层,卷积层为前3层,池化层为第4层;二分类器为1个全连接层加1个归一化层,二分类器对编码结果En(X)进行全连接和归一化后得到一个2维向量,2维向量的和为1,将2维向量中较大值的索引作为事件文本的价值判断u,u∈{0,1};所述事件分类模块中的第r个分类模型net r 包含一个全连接层和一个归一化层,第r个分类模型net r 对X的整体特征信息F f (X)进行全连接和归一化后得到一个A维向量,A维向量的和为1,得到A维向量中最大值的索引作为事件文本X在第r种事件分类方式下的类别v r ,v r ∈[0,A-1]。
4.如权利要求1所述的一种基于多任务学习的事件抽取方法,其特征在于所述事件触发词与论元抽取模块需要抽取的事件要素有事件主体subject、事件客体object、事件触发词trigger、事件时间time和事件地点location;所述事件信息整合器生成的事件要素五元组E=(trigger,subject,object,time,location)。
5.如权利要求1所述的一种基于多任务学习的事件抽取方法,其特征在于2.1步所述同一领域的数据集指来自“2020科大讯飞事件抽取挑战赛”的事件抽取数据集,包含4000条标注样本。
6.如权利要求1所述的一种基于多任务学习的事件抽取方法,其特征在于2.5步所述真实事件要素标签EE l =(trigger l ,subject l ,object l ,time l ,location l ),所述序列标签Y(X l )采用BIOES标注方式,B表示要素头部标签,I表示要素中部标签,O表示非要素标签,E表示要素尾部标签,S表示单要素标签,每个标签还包含要素类型信息,分别以tr,s,o,ti,l表示事件触发词trigger、事件主体subject、事件客体object、事件时间time以及事件地点location。
7.如权利要求1所述的一种基于多任务学习的事件抽取方法,其特征在于3.2步所述设置网络训练超参数的方法是:令learningRate=0.0005,batchsize=32,maxlen=512,令Seed为2022;4.2步所述设置网络训练超参数的方法是:令learningRate-RoBERTa=0.00001,learningRate-Other=0.0002,batchsize=32,maxlen=512,α=0.3,令Seed为2022。
8.如权利要求1所述的一种基于多任务学习的事件抽取方法,其特征在于3.3.1步所述Epoch1设置为10;4.3.1步所述Epoch2设置为15。



