基于RoBERTa和指针网络的中文实体与关系联合抽取方法及系统

未命名 09-03 阅读:73 评论:0

基于roberta和指针网络的中文实体与关系联合抽取方法及系统
技术领域
1.本发明涉及信息抽取技术领域,特别是基于roberta和指针网络的中文实体与关系联合抽取方法。


背景技术:

2.信息抽取(information extraction,ie)是指从非结构化文本中抽取特定的信息并以结构化的形式存储和表示。命名实体识别(named entity recognition,ner)是指从非结构化文本中识别出特定的单词或短语并加以归类。关系抽取(relation extraction,re)是指对非结构化文本中实体之间的关系进行识别,re通常是在ner的基础上进行的。随着多任务学习(multitask learning)的提出,开始将ner与re两个任务进行联合,以三元组(subject,relation,object)的形式同时对句子中的实体和关系进行联合抽取,这类方法能够更好的利用ner和re两个任务间的相关性信息,从而使得对实体和关系的抽取准确性更优。
3.实体与关系的联合抽取模型目标是抽取出自然语言句子中所有可能存在的实体关系三元组,通常存在三种三元组形式:1)normal:无重叠实体关系三组,即不包含任何重叠关系。2)singleentityoverlap(seo):单实体重叠的实体关系三元组,即同一个实体与其他多个实体存在关系。3)entitypairoverlap(epo):实体对重叠的实体关系三元组,即同一实体对之间存在多种不同的关系。可见该三元组抽取存在实体嵌套及三元组重叠问题。


技术实现要素:

4.本发明的发明目的是,针对上述问题,提供一种基于roberta和指针网络的中文实体与关系联合抽取方法,构建实体与关系联合抽取模型(robptr),通过联合建模充分考虑实体识别与关系抽取两个任务间的联系。
5.为达到上述目的,本发明所采用的技术方案是:
6.基于roberta和指针网络的中文实体与关系联合抽取方法,包括以下内容:
7.步骤s1、使用预训练语言模型roberta作为嵌入层学习字符的深度双向表示,使获得的字符嵌入能够充分表征上下文语义信息;
8.步骤s2、进行标注矩阵平坦化,以关系作为条件对齐实体边界,将token-pair标注矩阵平坦化为一个序列,将同一实体对的多种不同关系都标注在同一个矩阵中;其中,使用三种连接标签来标注token-pair,三种连接标签为:1)eh-to-et:表示该token-pair为同一实体的开始和结束位置;2)sh-to-oh:表示该token-pair为subject和object的开始位置;3)st-to-ot:表示该token-pair为subject和object的结束位置;
9.步骤s3、构建token-pair识别模块,将实体的head-token和tail-token视为一个整体进行判别,基于多层指针网络对实体边界进行识别;其中每层指针网络对应识别一种类型的实体;
10.步骤s4、基于指针网络和多头注意力机制构建关系抽取模块,通过引入多头注意力机制为每个实体对之间的不同关系分配独立的概率子空间,使得能够对同一实体对的多个关系进行不互斥的抽取,进而选出适合的实体关系输出;具体流程如下:
11.步骤s41、利用预定义的关系作为条件对齐subject和object实体边界,在关系r条件下对《subject head,object head》和《subject tail,object tail》进行打分;
12.步骤s42、将计算三元组《subject,relation,object》的得分重构为计算五元组(sh,s
t
,r,oh,o
t
)的得分;然后根据训练或预测场景对应执行下述步骤s43或步骤s44;
13.步骤s43、训练时,设定真实五元组的得分大于0,且其余五元组的得分小于0,进行训练;
14.步骤s44、预测时,枚举所有得分大于0的五元组,并进行迭代判别,当且仅当s(sh,s
t
)》0&s(oh,o
t
)》0&s(sh,oh|r)》0&s(s
t
,o
t
|r)》0判为真实五元组,将对应的五元组作为输出。
15.由于采用上述技术方案,本发明具有以下有益效果:
16.1.本发明构建联合抽取模型对句子中的实体和关系以三元组的形式进行联合抽取,缓解了传统流水线方法中无法充分考虑实体识别和关系分类两个子任务之间的联系,导致整体识别性能较差的问题。
17.2.本发明针对实体嵌套问题,采用基于指针网络的实体识别方法,将实体识别任务建模为“token-pair”识别问题,通过识别实体的开始和结束位置来解析出所有可能的实体,解决了实体嵌套问题。
18.3.本发明针对三元组嵌套问题,采用基于指针网络和多头注意力机制的关系抽取模块,将三元组(s,r,o)识别任务建模为五元组(sh,s
t
,r,oh,o
t
)识别问题,对实体识别模块中抽取的所有s,o计算在条件r下token-pair(sh,oh)、(s
t
,o
t
)的得分,然后枚举所有可能的五元组,考虑了所有可能的三元组组合,从而解决了三元组重叠问题。
附图说明
19.图1是本发明的抽取方法的流程图。
20.图2是本发明的duie数据集关系类型分布图。
21.图3是本发明的矩阵平坦化后token-pair标注矩阵示例图。
22.图4是本发明的实体与关系联合抽取模型结构图。
23.图5是本发明的实体识别模块结构图。
24.图6是本发明的关系抽取模块结构图。
25.图7是不同模型f1值曲线图。
26.图8是本发明的联合抽取模型在不同语言模型下的损失曲线对比图。
27.图9是本发明的联合抽取模型在不同语言模型下的f1值曲线对比图。
28.图10是不同模型的包含不同三元组数(n)的句子的f1值对比图。
29.图11是不同模型的从具有不同重叠模式的句子中抽取三元组的f1值对比图。
30.图12是本发明的抽取系统的系统框体。
具体实施方式
31.以下结合附图对发明的具体实施进一步说明。
32.如图1所示,本发明的基于roberta和指针网络的中文实体与关系联合抽取方法,包括以下内容:
33.步骤s1、使用预训练语言模型roberta作为嵌入层学习字符的深度双向表示,使获得的字符嵌入能够充分表征上下文语义信息;
34.步骤s2、进行标注矩阵平坦化,以关系作为条件对齐实体边界,将token-pair标注矩阵平坦化为一个序列,将同一实体对的多种不同关系都标注在同一个矩阵中;
35.步骤s3、构建token-pair识别模块,将实体的head-token和tail-token视为一个整体进行判别,基于多层指针网络对实体边界进行识别;其中每层指针网络对应识别一种类型的实体;
36.步骤s4、基于指针网络和多头注意力机制构建关系抽取模块,通过引入多头注意力机制为每个实体对之间的不同关系分配独立的概率子空间,使得能够对同一实体对的多个关系进行不互斥的抽取,进而选出适合的实体关系输出;具体流程如下:
37.步骤s41、利用预定义的关系作为条件对齐subject和object实体边界,在关系r条件下对《subject head,object head》和《subject tail,object tail》进行打分;
38.步骤s42、将计算三元组《subject,relation,object》的得分重构为计算五元组(sh,s
t
,r,oh,o
t
)的得分;然后根据训练或预测场景对应执行下述步骤s43或步骤s44;
39.步骤s43、训练时,设定真实五元组的得分大于0,且其余五元组的得分小于0,进行训练;
40.步骤s44、预测时,枚举所有得分大于0的五元组,并进行迭代判别,当且仅当s(sh,s
t
)》0&s(oh,o
t
)》0&s(sh,oh|r)》0&s(s
t
,o
t
|r)》0判为真实五元组,将对应的五元组作为输出。下述将对该抽取方法(模型结构)具体展开说明。
41.1、数据集与数据预处理
42.1.1、数据集
43.duie数据集是由百度公司发布的用于信息抽取的公开数据集,是业界规模最大的基于schema的中文信息抽取数据集。该数据集的数据来自百度百科、百度贴吧和百度信息流文本,其中包含50种常见的关系类别,如“主演”、“作者”、“歌手”、“出生日期”和“导演”等。数据集关系类型分布如图2所示。图2中列举了数据集中占比最高的前15种关系类型,其中关系类型“主演”占比最高,约为16.5%。
44.数据集包含214590个中文句子和457886个实例,其中每个实例由原句子(“text”)、关系列表(“spo_list”)、主语(“subject”)、宾语(“object”)、谓语(“predicate”)、主语类型(“subject_type”)和宾语类型(“object_type”)组成。duie数据集数据统计信息如表4-2所示。duie数据示例如下表1所示。
45.表1:duie数据集统计信息表
[0046][0047]
1.2、数据预处理
[0048]
对duie数据集进行数据预处理,根据原始语料将数据预处理为数据结构为文本、三元组列表和实体列表,如下形式:
[0049]
{
[0050]“text”:sentence,
[0051]“relation_list”:[{“subject”:s,“object”:o,“subj_char_span”:[i,j],"obj_char_span":[i,j],"predicate":relation,"subj_tok_span":[i,j],"obj_tok_span":[i,j]}

],
[0052]
"entity_list":[{"text":sentence,"type":t,"char_span":[i,j],"tok_span":[i,j]}

]
[0053]
}
[0054]
同时,将句子中实体的开始和结束位置以token-pair的形式进行标注。数据预处理结果示例如下表2所示。
[0055]
表2:duie数据示例表
[0056]
[0057]
其中关系类型“主演”占比最高,约为16.5%。
[0058]
2、方法与系统模型
[0059]
2.1、方法与系统模型结构
[0060]
实体与关系的联合抽取任务是将自然语言句子中的实体与实体间的关系以三元组(s,r,o)(《subject,relation,object》)的形式进行抽取。三元组抽取任务可以视为五元组(sh,s
t
,r,oh,o
t
)(subject head,subject tail,relation,object head,object tail)抽取任务,其中head表示实体的开头位置,tail表示实体的结尾位置。由此将实体与关系的联合抽取任务建模为“token-pair”的连接问题,即给定一个句子s、两个位置p1、p2和一个关系r,并为每个关系r标注三个token连接矩阵,然后训练模型回答三个伪问题:1)p1和p2是否为同一实体的开始和结束位置。2)p1和p2是否分别是关系为r的两个实体的开始位置。3)p1和p2是否分别是关系为r的两个实体的结束位置。
[0061]
通过使用“连接标签”标注“token-pair”,然后利用连接矩阵解码不同的标注结果,以抽取所有实体及其嵌套关系。由于原始连接矩阵的标注方法无法同时将同一实体对的不同关系标注在同一矩阵中,即无法解决epo问题。因此,以关系作为条件对齐实体边界,将每个关系的连接矩阵平坦化为一个序列,并设计三种类型的“连接标签”来标注token-pair,以实现将所有可能的关系都标注在同一个矩阵中。三种连接标签类型为:1)eh-to-et(entity head to entity tail):表示该token-pair为同一实体的开始和结束位置。2)sh-to-oh(subject head to object head):表示该token-pair为subject(主语)和object(宾语)的开始位置。3)st-to-ot(subject tail to object tail):表示该token-pair为subject和object的结束位置。token-pair标注示例如下表3所示。
[0062]
表3:token-pair标注示例表
[0063][0064]
如图3所示,为矩阵平坦化后token-pair标注示例,为同一实体对标记3个不同的关系仅需要1个连接矩阵,其中有实体的开始和结束token,subject和object的开始token,subject和object的结束token。传统token-pair标注矩阵为同一实体对标注不同的3个关系需要3个连接矩阵。
[0065]
如图4所示,模型框架主要由三部分组成:嵌入层、实体识别模块和关系抽取模块。其中有实体的开始和结束token-pair,subject和object的开始token-pair,subject和object的结束token-pair。
[0066]
首先,使用预训练语言模型roberta作为嵌入层学习字符的深度双向表示,使获得的字符嵌入能够充分表征上下文语义信息。然后,使用基于指针网络的实体抽取模块抽取句子中所有可能的subject和object实体并形成候选实体集,该过程可以理解为包含两种实体类型的ner任务。最后,使用基于指针网络和多头注意力机制的关系抽取模块解码出所
有可能的实体关系三元组。
[0067]
2.2、roberta层
[0068]
roberta(arobustly optimized bert pretraining approach)是对bert的一个扩展和改进,其在bert的基础上,取消了下一句预测任务,将原始的静态遮蔽策略改为动态遮蔽策略,让模型采用不同的遮蔽效果进行训练来学习不同的语义特征以提高模型的适应性。同时采用更大的数据集和批处理大小,更长的预训练时间和输入序列来提高模型能力。使用字词混合的bpe(byte-pair encoding)词汇进行训练,使模型支持自然语言中多种常见词汇。经过以上一系列改进策略,roberta比bert更稳定并且更具鲁棒性。
[0069]
采用roberta作为嵌入层学习字符的深度双向表示。对于输入序列,首先进行分词,再随机抽取分词后的序列中部分词进行全词遮蔽(whole word masking),并在序列开头添加一个特殊标记[cls],句子间用特殊标记[sep]分隔。然后将序列中单词的语义信息与位置信息融入序列向量,再将序列向量输入双向transformer编码器进行特征提取,最后得到具有丰富语义特征的序列向量。roberta层获得的序列向量在下游组件实体抽取模块和关系抽取模型中共享。
[0070]
2.3、实体识别模块
[0071]
通常基于指针网络(pointer net,ptr-net)的实体识别是使用两个独立的模块分别识别序列中实体的head-token和tail-token,这会导致训练和预测不一致的问题。为解决该问题,本发明将head-token和tail-token视为一个整体来判别,即将实体识别任务建模为“token-pair”连接问题,并基于多层指针网络对实体边界进行识别,其中每层指针网络对应识别一种类型的实体。实体识别模块如图5所示。
[0072]
假设输入为长度为n的序列,每个待识别实体均为序列中的一个连续片段,且片段长度不限并可以相互嵌套,因此序列中共包含n(n+1)/2个不同长度的序列片段,即该序列中共有n(n+1)/2个候选实体,此时模型的训练目标为从n(n+1)/2个候选实体中识别出真实实体的边界。若只有一种类型的实体需要识别,则建模为n(n+1)/2中选择k的多标签分类问题。若有m种类型的实体需要识别,则建模为m个n(n+1)/2中选择k的多标签分类问题。实体的得分算法如公式(2-1)~(2-3)所示。
[0073]qi,a
=w
q,a hi+b
q,a
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2-1)
[0074]ki,a
=w
k,a hi+b
k,a
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2-2)
[0075][0076]
式中,hi表示序列[h1,h2,h3,

,hn]中第i个token的表示,w和b分别表示训练过程中可学习的参数权重和偏置向量,q表示query向量,k表示key向量,sa(i,j)表示序列中第i个到第j个token组成的连续片段为a类型实体的得分。
[0077]
2.4、关系抽取模块
[0078]
基于指针网络和多头注意力机制构建关系抽取模块,通过引入多头注意力机制为每个实体对之间的不同关系分配独立的子概率空间,使得能够对同一实体对的多个关系进行不互斥的抽取,从而解决epo问题。关系抽取模块如图6所示。
[0079]
利用预定义的关系作为条件对齐subject和object实体的边界以实现关系抽取,即建模在关系r条件下对《subject head,object head》和《subject tail,object tail》进行打分的任务,其中所有关系共享eh-to-et序列。
[0080]
将计算三元组《subject,relation,object》的得分重构为计算五元组(sh,s
t
,r,oh,o
t
)(subject head,subject tail,relation,object head,object tail)的得分。打分函数算法同公式(2-1)~(2-3),因而(sh,s
t
,r,oh,o
t
)的得分算法如下公式所示。
[0081]qi,a
=w
q,a hi+b
q,a
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0082]ki,a
=w
k,a hi+b
k,a
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0083][0084][0085][0086][0087]
s(sh,s
t
,r,oh,o
t
)=s(sh,s
t
)+s(oh,o
t
)+s(sh,oh|r)+s(s
t
,o
t
|r)
ꢀꢀꢀꢀꢀꢀꢀ
(7)
[0088]
式中,hi表示序列[h1,h2,h3,

,hn]中第i个token的表示,w和b分别表示训练过程中可学习的参数权重和偏置向量,s(sh,s
t
)表示以sh和s
t
作为开始和结束token的subject的得分,s(oh,o
t
)表示以oh和o
t
作为开始和结束token的object的得分,s(sh,oh|r)表示分别以sh和oh作为开头token的subject和object之间的关系为r的得分,s(s
t
,o
t
|r)表示分别以s
t
和o
t
作为结束token的subject和object之间的关系为r的得分,s(sh,s
t
,r,oh,o
t
)表示五元组的得分。
[0089]
训练过程让真实的五元组得分大于0,其余五元组得分小于0。预测过程枚举所有得分大于0的五元组,并迭代判别s(sh,s
t
),s(oh,o
t
),s(sh,oh|r),s(s
t
,o
t
|r),当且仅当s(sh,s
t
)》0&s(oh,o
t
)》0&s(sh,oh|r)》0&s(s
t
,o
t
|r)》0为真时将对应的五元组作为输出。
[0090]
2.5、损失函数
[0091]
通常对于多标签分类问题的损失函数的算法是将多标签分类问题分解为多个二分类问题,然后将多个二分类交叉熵之和作为多标签分类问题的损失。由于多标签分类问题是在n个候选类别中选择k个目标类别,因此当时使用该算法会产生类别分布不均衡的问题。为缓解该问题,需要在训练过程中加入一些调整类别分布的策略来平衡类别分布,如手动调整样本权重或使用focal loss等;最后在训练结束后根据验证集来进一步确定最优阈值。上述方法相对复杂且工作量相对较大,因此本发明采用多标签交叉熵作为损失函数,该函数适用于总类别数目较大,而目标类别数目较小的多标签分类任务,且训练过程中不会产生类别分布不均衡的问题。
[0092]
多标签交叉熵损失函数通过融合softmax和交叉熵,将k视为一个固定阈值,预测时直接将得分最高的前k个类别作为输出。由于该函数将输出数目设置为固定阈值,其能够很好的应用于固定输出数目的多标签分类问题,但多标签分类任务的目标标签数通常是不确定的,因此将设置一个最大阈值k(k≥k)和一个0标签值作为填充标签。预测时输出得分最高的k个类别,且仅允许0标签重复出现,即仅允许重复输出0类别。算法如公式(2-4)所示。
[0093][0094]
式中,p,n分别表示样本集的正类和负类的集合,si表示得分。由于数据集中正类远少于负类,因此计算过程中每次迭代仅传输正类对应的标签,可缩小标签矩阵的大小,从
而减小传输成本。算法如公式(2-5)~(2-8)所示。
[0095][0096][0097][0098][0099]
式中,a=p∪u。该损失函数无需将多标签分类问题分解为多个二分类问题,从而避免了训练过程中产生类别分布不均衡的问题。
[0100]
因此,本发明的实体抽取模块损失函数识别模块损失函数如下,
[0101][0102]
关系抽取模块损失函数如下,
[0103][0104]
总的损失函数如下,
[0105]
l
total
=l
ner
+l
re
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0106]
式中,pa表示所有类型为a的实体首尾集合,na表示所有类型为非a的实体首尾集合或非实体,sa(i,j)表示第i到第j个token组成的片段为类型a的实体的得分,p表示真实五元组的集合,n表示非真实五元组的集合或非五元组,si表示五元组的得分。
[0107]
3、实验与结果分析
[0108]
实验采用中文信息抽取数据集duie,其中训练集和验证集的比例为8:2。使用的robert-large模型,网络层数为24,隐藏层维度为1024,多头注意力机制中自注意力(self attention)头的数量为16。
[0109]
3.1、实验设置
[0110]
相关训练参数如下表4所示。
[0111]
表4:实验参数设置表
[0112][0113][0114]
3.2、评价指标
[0115]
实验采用召回率r、准确率p和f1值来衡量模型的性能,评价指标计算公式如下:
[0116][0117]
[0118][0119]
式中,truepositive为准确识别的三元组数量,actualpositive为数据集中实际存在的三元组总数,predictpositive为识别出的三元组总数。
[0120]
3.3、实验环境
[0121]
实验基于python、tensorflow和keras构建模型基本架构,并在linux服务器上使用tesla v100显卡进行模型训练。实验环境参数如下表5所示。
[0122]
表5:实验环境参数表
[0123][0124]
3.4、对比实验结果与分析
[0125]
(1)比较分析不同模型的性能
[0126]
为验证本发明提出的模型对实体与关系联合抽取的有效性,设置5个当前最具代表性的模型(casrel、tplinker、tplinker_plus、prgc和tdeer)作为基线模型与本发明模型robptr进行对比分析。对比实验结果如下表6所示。
[0127]
casrel是一种基于级联二进制标注框架的实体与关系联合抽取模型,将关系建模为句子中主体映射到宾语的函数,并将其框架实例化为transformer编码器上的一个级联二进制标注模型,该模型将级联二进制标注框架的功能与预训练语言模型中的先验知识相结合,以更好地解决三元组嵌套的问题。
[0128]
tplinker是一种单阶段联合抽取模型,其引入了一种新的握手标注方法handshaking,在每个关系类型下对齐实体间的边界。该模型首先进行不区分类别的实体抽取,然后以subjcet作为条件预测object和relation从而实现三元组抽取。
[0129]
tplinker_plus为tplinker的改进,其间的区别在于:1)tplinker_plus扩充了标签库。2)tplinker_plus为多标签分类任务,tplinker为多分类任务。3)tplinker_plus损失函数为多标签交叉熵,tplinker损失函数为二元交叉熵。
[0130]
prgc为一种基于潜在关系和全局对应的实体与关系联合抽取模型,将实体与关系联合抽取任务分解为三个子任务:关系判别、实体抽取和对齐subject-object实体。该模型首先预测输入句子所有潜在的关系子集,并对于每个潜在关系构建一个特定于关系的句子表示;然后基于序列标注任务抽取句子中的实体;最后枚举所有可能的subject-object pairs,并将全局对应表示作为约束条件抽取三元组。
[0131]
tdeer为一种基于翻译解码模式的三阶段实体与关系联合抽取模型,该模型首先进行实体抽取,然后预测所有相关的关系,最后以subject和relation作为条件预测object以实现三元组抽取。并引入了负样本来减轻模型在不同阶段的错误累积。
[0132]
表6:不同模型对比实验结果表(%)
[0133][0134]
由实验结果可知,本发明提出的robptr模型在duie数据集上的性能相较于所有基线模型均取得了较大改进,模型的精确率为81.04%,召回率为85.82%,f1值为83.36%。不同模型f1值曲线如图7所示。在所有基线模型中,casrel取得了sota的性能,但其本质上仍是一种两阶段的抽取方法,训练过程中依然会遭受信息错误传播和暴露偏差的影响。三阶段模型tdeer尽管引入了负样本来缓解不同阶段的错误累积,但无法完全避免的阶段间的信息错误传播和暴露偏差依然对模型的性能造成了一定的影响。而robptr解决了这一问题,因此其性能优于上述2个模型。同时从表1中可以发现,duie数据集中63%左右的句子存在三元组重叠,57%左右的句子中的三元组数量大于1,这反映了该数据集具有较高的复杂度,是个相对困难的数据集。与基线模型中专门针对三元组重叠和高复杂度句子设计的tplinker、prgc和tdeer模型相比,robptr也取得了具有竞争力的结果,其中模型f1值相较于3个模型分别提高了3.24%,3.25%和2.04%。
[0135]
(2)比较分析不同编码器的性能
[0136]
对比分析4种预训练语言模型(bert、roberta、albert和electra),选取获得最优性能的语言模型作为本发明实体与关系联合抽取模型的编码器,对输入序列进行编码。对比实验结果如下表7所示。
[0137]
bert为基于transformer的深度双向预训练语言模型,其输入为token嵌入、段嵌入和位置嵌入三种特征表示相加。该模型利用transformer编码器抽取单词特征,并通过语言遮蔽模型和下一句预测任务学习字符的深度双向表示和句子间的关系信息,使训练得到的特征向量携带上下文语义信息。
[0138]
roberta为bert的扩展和改进。其在bert的基础上,取消了下一句预测任务,将原始的静态遮蔽策略改为动态遮蔽策略,让模型采用不同的遮蔽效果进行训练来学习不同的语义特征以提高模型的适应性。同时采用更大的数据集和批处理大小,更长的预训练时间和输入序列来提高模型能力。使用字词混合的bpe(byte-pair encoding)词汇进行训练,使模型支持自然语言中多种常见词汇。
[0139]
albert为bert的拓展和改进。其在bert的基础上利用分解式嵌入参数化和跨层参数共享两项技术减少模型的参数量,提高了模型训练速度。同时引入一种自监督的句子顺序预测损失,训练模型关注句子之间的连贯性。
[0140]
electra是一种判别式的预训练语言模型。首先利用小型生成网络随机选择原始文本中的单词进行mask,然后进行预测学习,再使用一个判别器来判别预测是否与原始文本一致。即electra通过判别被生成器损坏的输入中每个token是否为原始token来训练模型学习文本特征。
[0141]
表7:不同预训练语言模型对比实验表(%)
[0142][0143][0144]
由实验结果可知当使用roberta作为编码器时,联合抽取模型获得最优性能,精确率为81.04%,召回率为85.82%,f1值为83.36%。其中roberta、albert和electra均为bert模型的扩展和改进,因此以bert作为基线对4个模型的性能进行对比分析。albert相较于bert大大减少了参数量,使其在提高训练效率的同时牺牲了一部分性能,导致其整体性能相对较弱,f1值为81.79%。electra使用了复杂度更高的rtd(replaced token detection)任务代替bert中的mlm(masked language model)任务,使模型学习到的表示更充分,因此其性能相较于bert与albert有所提升,f1值为82.65%。roberta采用更大的数据集和批处理大小,更长的预训练时间和输入序列,还使用动态遮蔽策略来学习不同的语义特征,使模型的适应性得到提高,因此相较于以上3个模型其性能最好,f1值为83.36%。联合抽取模型在不同语言模型下的性能(损失曲线/f1值曲线)对比如图8及图9所示。
[0145]
(3)比较分析不同复杂度句子下模型的性能
[0146]
为探索模型对复杂句子的处理能力,对包含不同数量三元组的句子进行了实验,比较分析模型从不同复杂度的句子中抽取三元组的能力。通常包含三元组数量越多的句子其复杂度越高。实验结果如下表8所示。
[0147]
表8:不同模型对包含不同三元组数的句子的抽取性能表
[0148][0149]
注:n表示句子中三元组的数量。p精确率,r为召回率,f1为f1值。
[0150]
由实验结果可知,本发明提出的robptr模型在n=1、2、3、5时性能均优于其他基线模型,模型f1值分别为80.41%、86.70%、85.63%和87.12%。robptr与获得最优性能的基线模型在不同情况下(n=1~5)对比,n=1时robptr相较于tplinker
(bilstm)
,f1值提升了0.31个百分点;n=2时robptr相较于casrel,f1值提升了0.78个百分点;n=3时robptr相较于casrel,f1值提升了1.06个百分点;n=4时robptr的性能仅低于基线模型中获得最优性
能的prgc模型;当n=5时robptr相较于prgc,f1值提升了0.35个百分点。同时实验表明robptr在n》1的句子中均获得较高的f1值,并随着n增加呈现上升趋势,如图10所示。证明robptr能够有效处理复杂句子,相较于基线模型更适用于复杂场景下的实体与关系联合抽取。
[0151]
(4)比较分析不同嵌套模式下模型的性能
[0152]
为探索模型处理不同重叠模式的能力,对具有不同重叠模式的句子进行实验,并对比分析了模型在不同重叠模式下的性能。实验结果如下表9所示。
[0153]
表9:从具有不同重叠模式的句子中抽取三元组的性能表
[0154][0155]
注:normal表示无重叠,seo表示单实体重叠,epo表示实体对重叠。
[0156]
其f1值如图所示,由实验结果可知,本发明提出的robptr模型在seo和epo重叠模式下性能均优于其他基线模型,f1值分别为84.44%和83.51%。具体而言,在seo和epo上robptr相较于sota基线模型f1值分别提升了1.15%和2.05%。证明了robptr模型能够有效处理实体与关系联合抽取中广泛存在的三元组重叠问题。
[0157]
如上述,本发明针对中文实体与关系联合抽取任务中存在的实体嵌套和三元组重叠问题提出一种基于roberta和指针网络的实体与关系联合抽取方法。采用基于多层指针网络的实体识别模块,将实体识别任务建模为“token-pair”识别问题,通过识别实体的开始和结束位置来解析出所有可能的实体,解决了实体嵌套问题。采用基于指针网络和多头注意力机制的关系抽取模块,将三元组(s,r,o)识别任务建模为五元组(sh,s
t
,r,oh,o
t
)识别问题,对实体识别模块中抽取的所有s,o计算在条件r下token-pair(sh,oh)、(s
t
,o
t
)的得分,然后枚举所有可能的五元组,考虑了所有可能的三元组组合,从而解决了三元组重叠问题。模型在duie数据集上的性能优于所有基线模型,精确率为81.04%,召回率为85.82%,f1值为83.36%。同时,本发明还对不同复杂度和不同重叠模式的句子进行了对比实验,实验结果表明robptr在高复杂度和重叠模式(seo、epo)的句子中抽取性能均由于其他基线模型,说明robptr能够有效处理复杂度高和具有重叠三元组的句子,适用于复杂场景下的实体和关系联合抽取。
[0158]
如上述,根据该联合抽取方法可组成基于roberta和指针网络的中文实体与关系联合抽取系统,如图12所示,该系统包括:嵌入层:用于使用预训练语言模型roberta作为嵌入层学习字符的深度双向表示,使获得的字符嵌入能够充分表征上下文语义信息;标注模块:用于进行标注矩阵平坦化,以关系作为条件对齐实体边界,将token-pair标注矩阵平坦化为一个序列,将同一实体对的多种不同关系都标注在同一个矩阵中;识别模块:用于构建token-pair识别模块,将实体的head-token和tail-token视为一个整体进行判别,基于多层指针网络对实体边界进行识别;其中每层指针网络对应识别一种类型的实体;以及,抽取
模块:用于基于指针网络和多头注意力机制构建关系抽取模块,通过引入多头注意力机制为每个实体对之间的不同关系分配独立的概率子空间,使得能够对同一实体对的多个关系进行不互斥的抽取,进而选出适合的实体关系输出;具体流程包括步骤s41-步骤s44;未尽说明请参见前述该联合抽取方法说明。
[0159]
需要指出的是,上述实施例的实例可以根据实际需要优选一个或两个以上相互组合,而多个实例采用一套组合技术特征的附图说明,在此就不一一展开说明。
[0160]
上述说明是针对本发明较佳可行实施例的详细说明和例证,但这些描述并非用以限定本发明所要求保护范围,凡本发明所提示的技术教导下所完成的同等变化或修饰变更,均应属于本发明所涵盖专利保护范围。

技术特征:
1.一种基于roberta和指针网络的中文实体与关系联合抽取方法,其特征在于,包括以下内容:步骤s1、使用预训练语言模型roberta作为嵌入层学习字符的深度双向表示,使获得的字符嵌入能够充分表征上下文语义信息;步骤s2、进行标注矩阵平坦化,以关系作为条件对齐实体边界,将token-pair标注矩阵平坦化为一个序列,将同一实体对的多种不同关系都标注在同一个矩阵中;步骤s3、构建token-pair识别模块,将实体的head-token和tail-token视为一个整体进行判别,基于多层指针网络对实体边界进行识别;步骤s4、基于指针网络和多头注意力机制构建关系抽取模块,通过引入多头注意力机制为每个实体对之间的不同关系分配独立的概率子空间,使得能够对同一实体对的多个关系进行不互斥的抽取,进而选出适合的实体关系输出;具体流程如下:步骤s41、利用预定义的关系作为条件对齐subject和object实体边界,在关系r条件下对<subject head,object head>和<subject tail,object tail>进行打分;步骤s42、将计算三元组<subject,relation,object>的得分重构为计算五元组(s
h
,s
t
,r,o
h
,o
t
)的得分;然后根据训练或预测场景对应执行下述步骤s43或步骤s44;步骤s43、训练时,设定真实五元组的得分大于0,且其余五元组的得分小于0,进行训练;步骤s44、预测时,枚举所有得分大于0的五元组,并进行迭代判别,当且仅当s(s
h
,s
t
)>0&s(o
h
,o
t
)>0&s(s
h
,o
h
|r)>0&s(s
t
,o
t
|r)>0判为真实五元组,将对应的五元组作为输出。2.根据权利要求1所述的基于roberta和指针网络的中文实体与关系联合抽取方法,其特征在于:所述步骤s2中,使用三种连接标签来标注token-pair,三种连接标签为:1)eh-to-et:表示该token-pair为同一实体的开始和结束位置;2)sh-to-oh:表示该token-pair为subject和object的开始位置;3)st-to-ot:表示该token-pair为subject和object的结束位置。3.根据权利要求1所述的基于roberta和指针网络的中文实体与关系联合抽取方法,其特征在于:所述步骤s3中,每层指针网络对应识别一种类型的实体。4.根据权利要求1所述的基于roberta和指针网络的中文实体与关系联合抽取方法,其特征在于:所述步骤s4中,(s
h
,s
t
,r,o
h
,o
t
)的得分采用下述公式运算得到,q
i,a
=w
q,a h
i
+b
q,a
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)k
i,a
=w
k,a h
i
+b
k,a
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)(2)(2)(2)s(s
h
,s
t
,r,o
h
,o
t
)=s(s
h
,s
t
)+s(o
h
,o
t
)+s(s
h
,o
h
|r)+s(s
t
,o
t
|r)
ꢀꢀꢀꢀꢀꢀꢀ
(7)式中,h
i
表示序列[h1,h2,h3,

,h
n
]中第i个token的表示,w和b分别表示训练过程中可学习的参数权重和偏置向量,s(s
h
,s
t
)表示以s
h
和s
t
作为开始和结束token的subject的得
分,s(o
h
,o
t
)表示以o
h
和o
t
作为开始和结束token的object的得分,s(s
h
,o
h
|r)表示分别以s
h
和o
h
作为开头token的subject和object之间的关系为r的得分,s(s
t
,o
t
|r)表示分别以s
t
和o
t
作为结束token的subject和object之间的关系为r的得分,s(s
h
,s
t
,r,o
h
,o
t
)表示五元组的得分。5.根据权利要求1所述的基于roberta和指针网络的中文实体与关系联合抽取方法,其特征在于:所述步骤s4中,使用多标签交叉熵损失函数对分类结果进行损失计算,损失函数具体如下,识别模块损失函数如下,关系抽取模块损失函数如下,总的损失函数如下,l
total
=l
ner
+l
re
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)式中,p
a
表示所有类型为a的实体首尾集合,n
a
表示所有类型为非a的实体首尾集合或非实体,s
a
(i,j)表示第i到第j个token组成的片段为类型a的实体的得分,p表示真实五元组的集合,n表示非真实五元组的集合或非五元组,s
i
表示五元组的得分。6.一种基于roberta和指针网络的中文实体与关系联合抽取系统,其特征在于,包括以下内容:嵌入层:用于使用预训练语言模型roberta作为嵌入层学习字符的深度双向表示,使获得的字符嵌入能够充分表征上下文语义信息;标注模块:用于进行标注矩阵平坦化,以关系作为条件对齐实体边界,将token-pair标注矩阵平坦化为一个序列,将同一实体对的多种不同关系都标注在同一个矩阵中;识别模块:用于构建token-pair识别模块,将实体的head-token和tail-token视为一个整体进行判别,基于多层指针网络对实体边界进行识别;抽取模块:用于基于指针网络和多头注意力机制构建关系抽取模块,通过引入多头注意力机制为每个实体对之间的不同关系分配独立的概率子空间,使得能够对同一实体对的多个关系进行不互斥的抽取,进而选出适合的实体关系输出;具体流程如下:步骤s41、利用预定义的关系作为条件对齐subject和object实体边界,在关系r条件下对<subject head,object head>和<subject tail,object tail>进行打分;步骤s42、将计算三元组<subject,relation,object>的得分重构为计算五元组(s
h
,s
t
,r,o
h
,o
t
)的得分;然后根据训练或预测场景对应执行下述步骤s43或步骤s44;步骤s43、训练时,设定真实五元组的得分大于0,且其余五元组的得分小于0,进行训练;步骤s44、预测时,枚举所有得分大于0的五元组,并进行迭代判别,当且仅当s(s
h
,s
t
)>0&s(o
h
,o
t
)>0&s(s
h
,o
h
|r)>0&s(s
t
,o
t
|r)>0判为真实五元组,将对应的五元组作为输出。7.根据权利要求6所述的基于roberta和指针网络的中文实体与关系联合抽取系统,其特征在于:所述标注模块中,使用三种连接标签来标注token-pair,三种连接标签为:1)eh-to-et:表示该token-pair为同一实体的开始和结束位置;2)sh-to-oh:表示该token-pair
为subject和object的开始位置;3)st-to-ot:表示该token-pair为subject和object的结束位置。8.根据权利要求6所述的基于roberta和指针网络的中文实体与关系联合抽取系统,其特征在于:所述识别模块中,每层指针网络对应识别一种类型的实体。9.根据权利要求6所述的基于roberta和指针网络的中文实体与关系联合抽取系统,其特征在于:所述抽取模块中,(s
h
,s
t
,r,o
h
,o
t
)的得分采用下述公式运算得到,q
i,a
=w
q,a
h
i
+b
q,a
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)k
i,a
=w
k,a
h
i
+b
k,a
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)(2)(2)(2)s(s
h
,s
t
,r,o
h
,o
t
)=s(s
h
,s
t
)+s(o
h
,o
t
)+s(s
h
,o
h
|r)+s(s
t
,o
t
|r)
ꢀꢀꢀꢀꢀꢀꢀ
(7)式中,h
i
表示序列[h1,h2,h3,

,h
n
]中第i个token的表示,w和b分别表示训练过程中可学习的参数权重和偏置向量,s(s
h
,s
t
)表示以s
h
和s
t
作为开始和结束token的subject的得分,s(o
h
,o
t
)表示以o
h
和o
t
作为开始和结束token的object的得分,s(s
h
,o
h
|r)表示分别以s
h
和o
h
作为开头token的subject和object之间的关系为r的得分,s(s
t
,o
t
|r)表示分别以s
t
和o
t
作为结束token的subject和object之间的关系为r的得分,s(s
h
,s
t
,r,o
h
,o
t
)表示五元组的得分。10.根据权利要求6所述的基于roberta和指针网络的中文实体与关系联合抽取系统,其特征在于:所述抽取模块中,使用多标签交叉熵损失函数对分类结果进行损失计算,损失函数具体如下,识别模块损失函数如下,关系抽取模块损失函数如下,总的损失函数如下,l
total
=l
ner
+l
re
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)式中,p
a
表示所有类型为a的实体首尾集合,n
a
表示所有类型为非a的实体首尾集合或非实体,s
a
(i,j)表示第i到第j个token组成的片段为类型a的实体的得分,p表示真实五元组的集合,n表示非真实五元组的集合或非五元组,s
i
表示五元组的得分。

技术总结
本发明公开了一种基于RoBERTa和指针网络的中文实体与关系联合抽取方法及系统,属于信息提取技术领域。本发明构建实体与关系联合抽取模型(RoBPtr),通过联合建模充分考虑实体识别与关系抽取两个任务间的联系;而且,采用基于指针网络的实体识别方法,将实体识别任务建模为“token-pair”识别问题,通过识别实体的开始和结束位置来解析出所有可能的实体,解决了实体嵌套问题;枚举所有可能的五元组,考虑了所有可能的三元组组合,从而解决了三元组重叠问题。问题。问题。


技术研发人员:宋玲 韦紫君 陈燕 陈宁江 张锦雄 曹勉 赖宇斌
受保护的技术使用者:广西大学
技术研发日:2023.06.09
技术公布日:2023/8/31
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐