专利名称:一种基于翻译机制的实体和关系联合抽取系统和使用方法
专利类型:发明专利
专利申请号:CN202111303044.8
专利申请(专利权)人:北京理工大学
权利人地址:北京市海淀区中关村南大街5号
专利发明(设计)人:黄河燕,尚煜茗
专利摘要:本发明提出一种基于翻译机制的实体和关系联合抽取系统及其使用方法,该系统利用翻译机制的思想,又规避掉传统翻译机制对对称关系的处理问题;提出利用NA(无关系)关系来作为动态阈值对关系预测的正确和错误结果进行分界。实体标注部分使用四个0/1标注器,对头实体和尾实体独立标注,能够解决单实体重合的问题。对于每一组头尾实体,使用翻译机制的思想利用h+r≈t,用尾实体减去头实体得到关系的向量表示,进而与关系集合中所有关系的向量做相似度计算,利用“与NA关系的相似度”作为动态阈值,取相似度大于该关系的所有关系作为预测结果,这样解决了实体对重叠的问题。在公开数据集上的实验表明,该系统的方法能够达到良好的水平。
主权利要求:
1.一种基于翻译机制的实体和关系联合抽取系统,其特征在于,所述系统包括:编码模块,用于将接收的语句编码为向量序列,并将所述向量序列传送给实体标注模块;
实体标注模块,用于对所述向量序列进行实体标注,获得语句中包含的所有头实体向量集合和尾实体向量集合;然后将所述头实体向量集合和尾实体向量集合传送给关系预测模块;
关系预测模块,对头实体向量和尾实体向量两两之间蕴含的关系进行预测,从而求得每一对头尾实体之间的关系;
所述编码模块中,编码的方法包括:
S11、使用字节对编码,将输入的语句进行分词,切分成为词表内所包含的词序列;
S12、将所述词序列进行符号嵌入和位置嵌入,相加作为所述词序列的总体嵌入:ti=wi+pi
其中的wi和pi分别代表第i个词的符号嵌入和位置嵌入,最终的句子嵌入表示为:[t1,t2,t3,…,tl],l代表句子长度,S13、将所述句子嵌入输入到预训练好的BERT模型中,得到句子的向量序列:s=[e1,e2,e3,…,el]
其中l代表该句子的长度;
所述关系预测模块中,预测的方法包括:
S31、将头实体集合中的每一个头实体hi,分别与尾实体集合中的每一个尾实体tj,做向量减法,得到它们的关系向量r,即:其中,Wt和Wh为映射矩阵;
S32、对关系向量 和关系集合中所有关系的关系表示向量做相似度计算,并得到相似度的分级序列,Rank=[x1,x2,x3,…,xN,xNA]其中的ri代表所有关系的集合中第i个关系的关系表示向量,rNA为无关系的向量表示,N表示关系集合内关系的数量;所有的关系表示向量都由随机初始化之后通过训练模块获得,包括NA关系;xi表示与第i个关系的相似度,xNA表示与无关系的相似度;
S33、取相似度比无关系的相似度高的关系作为关系预测结果;如果与无关系的相似度最大,那么取无关系作为预测结果。
2.根据权利要求1所述的抽取系统,其特征在于,所述实体标注模块中,标注的方法包括:S21、使用0/1标注器,为词向量序列标注头实体或尾实体的开头或结尾;
S22、根据标注,得到头实体、尾实体对应的向量;
S23、对于向量个数大于1个的实体,使用平均池化,将向量序列压缩成为单个向量作为该实体的向量表示。
3.根据权利要求2所述的抽取系统,其特征在于,系统还包括训练模块,用反向传播算法对实体标注模块和关系预测模块进行训练,目标是使得实体标注模块和关系预测模块的损失函数之和最小。
4.根据权利要求3所述的抽取系统,其特征在于,所述标注器包括两个全连接网络,实体标注模块的损失函数包括头实体预测损失 和尾实体预测损失 计算公式如下:其中,sj表示第j个句子,|D|代表训练集的大小,Hj和Tj分别代表第j个句子中被标注出来的头实体和尾实体的集合,其中p(h|sj)、p(t|sj)为似然函数。
5.根据权利要求4所述的抽取系统,其特征在于,所述似然函数的计算方法为:其中的l代表句子的长度, 和 是句子中第i个词真实的0/1标签,就代表句子中第i个词的位置为start; 就代表句子中第i个词的位置为end; 代表序列标注结果中第i个词的位置为start的概率; 代表序列标注结果中第i个词的位置为end的概率;q∈{start,end}代表着分别将q取start和end,I(x)函数定义如下:
6.根据权利要求3所述的抽取系统,其特征在于,关系预测模块的损失函数包括正确关系三元组预测损失函数 和无关系预测损失函数其中,正确关系三元组预测损失函数被定义为:其中的Cj代表的是第j个句子中正确关系三元组的集合,r代表的是Cj中某个关系的向t h量表示;|D|代表训练集的大小;v和v为公式 中的tj和hi;
定义与上式类似,Nj为负样例集合;所述负样例为将正确关系三元组的头实体或尾实体替换为不正确的头实体或尾实体,将关系替换为NA关系:最终的关系预测部分的损失函数 定义如下:
其中λ为调和因子,满足λ<<1,目的是降低无关系的重要性。
7.根据权利要求3所述的抽取系统,其特征在于,在训练模块中,对所述抽取系统的参数使用Adam算法进行优化。
8.基于权利要求3‑7任一所述的抽取系统的使用方法,包括:对所述抽取系统进行训练;
向所述抽取系统输入语句,所述抽取系统输出正确关系三元组;
其中,所述训练的步骤包括:
S1、将语句输入训练模块;
S2、训练模块将数据集中的语句输入编码模块,获得每条语句的向量表示;
S3、编码模块将语句的向量表示输入到实体标注模块,在实体标注模块进行头实体和尾实体的0、1标注,从而获得每一语句的头实体集合和尾实体集合;
S4、将头实体集合和尾实体集合传送到关系预测模块,在关系预测模块中预测输出头尾实体的关系;
S5、在训练模块中计算实体标注模块的损失函数、关系预测模块的损失函数,相加得到总损失函数;
S6、将总损失函数对所有训练参数求导,使用反向传播的方式更新和优化所述训练参数;
S7、按照步骤S1‑S6进行迭代,直到总损失函数的值小于设定阈值,或者训练轮数达到最大。 说明书 : 一种基于翻译机制的实体和关系联合抽取系统和使用方法技术领域[0001] 本发明涉及自然语言处理和深度学习技术领域,特别涉及一种基于翻译机制的实体和关系联合抽取系统和使用方法。背景技术[0002] 实体和关系联合抽取被定义为一种从非结构化文本中提取三元组形式(head,relation,tail)的结构化知识的任务,它在自然语言处理和知识图谱自动构建中十分重要。比如语句“颐和园在中国的首都北京”,可以形成的三元组有(颐和园,位于,北京)、(北京,位于,中国)、(北京,是……的首都,中国),(颐和园,位于,中国)。[0003] 传统的流水线方法将实体识别和关系提取视为两个独立的任务,而忽略了它们之间的关联,因此存在错误传播问题。近年来,许多研究者专注于构建联合模型,尽管已经取得了巨大的成功,但目前还没有工作能在一个统一的系统内良好应对三个关键问题:[0004] 第一个问题是冗余预测。许多联合抽取方法采用了先提取后分类的方式来进行三元组的提取:首先检测句子中所有可能的实体,然后对每个实体对之间的关系类型进行分类。这种逻辑上分离的范式使得任务易于处理,让每个组件都更加灵活,但是其中的关系分2类器可能会被一些没有关系的实体对误导,因为N个实体会产生近N个实体对,但其中大多数不具有任何关系。[0005] 第二个问题是重叠问题。一个句子中可能会含有实体对重叠(EntityPairOverlap,EPO)和单实体重叠(SingleEntityOverlap,SEO),实体对重叠表示一个实体对拥有多个关系,而单实体重叠表示两个三元组共享一个重叠实体。这一问题直接影响了一些经典方法,它们通常假设每个实体最多持有一个关系。现有研究解决这一问题的方法通常是将任务转换为序列标注或文本聚类,尽管它们取得了良好的效果,但单独考虑每个关系将不可避免地忽略它们之间的联系,从而难以发现隐含的三元组。[0006] 第三个问题是关系关联。关系间的关联性对于实体对重叠和单实体重叠场景十分重要。例如:“颐和园位于中国的首都北京”一句中,三元组(北京,位于,中国)可以由三元组(北京,是……的首都,中国)推导出。这样的情况尽管对于知识图谱任务很常见,但对于输入中不包含实体的联合抽取任务却很难捕捉到关系间的关联性。[0007] 因此,我们针对冗余预测、重叠三元组、关系连接这三个重要挑战,设计并实现了一个统一的实体和关系联合抽取系统。发明内容[0008] 为了在一个统一的系统中解决冗余预测、重叠三元组、关系关联这三个重要挑战,本发明提供一种基于翻译机制的实体和关系联合抽取系统,并将其命名为TransRel,所述系统包括:[0009] 编码模块,用于将接收的语句编码为向量序列,并将所述向量序列传送给实体标注模块;[0010] 实体标注模块,用于对所述向量序列进行实体标注,获得语句中包含的所有头实体向量集合和尾实体向量集合;然后将所述头实体向量集合和尾实体向量集合传送给关系预测模块;[0011] 关系预测模块,对头实体向量和尾实体向量两两之间蕴含的关系进行预测,从而求得每一对头尾实体之间的关系。[0012] 进一步地,编码模块中,编码的方法包括:[0013] S11、使用字节对编码(BPE),将输入的句子切分成为词表内所包含的字符序列,这一步的目的是将低频词转化为简单的分词表示,以便能够使该分词结果存在于BERT模型的词汇表中,防止出现OOV(out‑of‑vocabulary)的现象。[0014] 例如,将一个playing的单词,经过BPE算法,会转化为[‘play’,’##ing’]两部分,这两部分均存在于BERT模型的词汇表中;[0015] S12、将S11步骤中生成的字符序列进行符号嵌入和位置嵌入,相加作为该词的总体嵌入:[0016] ti=wi+pi[0017] 其中的wi和pi分别代表该词的符号嵌入和位置嵌入,嵌入矩阵均为随机初始化获得。[0018] 最终的句子嵌入表示为:[t1,t2,t3,…,tl],l代表句子长度。[0019] S13、将句子的嵌入输入到预训练好的BERT模型中,得到句子的表示(向量序列):[0020] s=(e1,e2,e3,…,el)[0021] 其中l代表该句子的长度。[0022] 进一步地,实体标注模块中,标注的方法包括:[0023] S21、使用标注器标注为单词标注其属于头实体或尾实体的开头或结尾;[0024] 例如,使用4个0/1标注器,对每个词向量进行0/1标注,得到4位0/1序列。其中4位0/1序列每一位代表的含义为:[0025] 第1位:不是/是头实体的开头、[0026] 第2位:不是/是头实体的结尾、[0027] 第3位:不是/是尾实体的开头、[0028] 第4位:不是/是尾实体的结尾;[0029] S22、根据S11标注出来的0/1标注结果,得到每一个头实体、尾实体对应的向量序列,即取开头和结尾位置之间(包含两端)的向量序列,如果头实体或为尾实体的开头和结尾在同一位置,则代表该实体只包含一个词语,直接将该向量作为该实体的最终表示;[0030] S23、对于向量个数大于1个的实体(多词实体),使用平均池化,将开头和结尾之间(包括开头和结尾)向量序列压缩成为单个向量作为该实体的向量表示。[0031] 进一步地,S21步骤中的0/1标注器,包括两个全连接的网络,该标注器取上下文相关的表示(在本系统中即为ei)作为输入,并输出0/1序列,其中第i个符号标注结果计算方式为:[0032][0033][0034] 其中的 和 分别代表输入序列中第i个符号的位置属于开头和属于结尾的概率,W(·)和b(·)代表的是可训练的权重和偏置值,σ()代表的是sigmoid激活函数。对于最终的计算结果,我们设置一个阈值θ,并认为如果p≥θ,则p=1。[0035] 进一步地,关系预测模块中,预测的方法包括:[0036] S31、将实体标注模块中获得的头实体集合中的每一个头实体hi,分别与尾实体集合中的每一个尾实体tj,使用翻译机制中的思想,做向量减法,得到它们的关系向量r,即:[0037][0038] 其中,Wt和Wh为映射矩阵,加入这两个矩阵的目的是防止当关系r为对称关系的时候,直接相减会使其趋于 的现象。映射矩阵为随机初始化的,在训练模块中逐步训练的参数矩阵。[0039] S32、将S31步骤中得到的关系向量 与关系集合中所有关系的关系表示向量做相似度计算,并得到相似度的分级序列。[0040] Rank=[x1,x2,x3,...,xN,xNA][0041][0042][0043] 其中的ri代表所有关系的集合中第i个关系的关系表示向量,rNA表“NA”的关系表示向量,即“无关系”的向量表示,N表示关系集合内关系的数量。这里,所有的关系表示向量都由随机初始化之后通过训练模块进行训练时获得,包括NA关系。xi表示与第i个关系的相似度,xNA表示与无关系的相似度。[0044] S33、对计算出来的 与关系集合中所有关系的表示向量的相似度序列做降序排序,取相似度比NA关系的相似度高的关系作为关系预测结果,如果有多个关系,则表明该头尾实体对之间存在多种关系,将这些关系都作为预测结果。特别地,如果与NA关系相似度最大,那么取NA关系作为预测结果,即代表这两个实体之间“无关系”。[0045] 在步骤S31中,加入权重矩阵的原因是:传统的翻译机制在计算关系向量的时候是直接进行计算的,并不需要引入额外的参数,但是传统的翻译机制方式无法处理对称的关系,即如果三元组(h,r,t)满足h+r≈t以及t+r≈h的时候,会导致 为了解决这个问题,才在模型中引入了权重矩阵Wt和Wh。[0046] 进一步地,在关系预测模块中,对实体标注模块进行训练,对关系预测模块进行训练,最终的训练目标是实体标注模块和关系预测模块的损失函数之和最小。[0047] 进一步地,实体标注模块的损失函数包括头实体预测损失 和尾实体预测损失 两者计算公式如下:[0048][0049][0050] 其中,sj表示第j个句子,|D|代表训练集的大小,Hj和Tj分别代表第j个句子中被标注出来的头实体和尾实体的集合。其中似然函数p(h|sj)的计算方法为:[0051][0052] 其中的l代表句子的长度, 和 是句子中第i个字符真实的0/1标签。I(x)函数定义如下:[0053][0054] 似然函数p(t|sj)的定义同理。[0055] 进一步的,关系预测模块的损失函数包括正确关系三元组预测损失 和NA关系预测损失[0056] 其中,正确关系三元组预测损失函数被定义为:[0057][0058] 其中的Cj代表的是第j个句子中正确关系三元组的集合,r代表的是Cj中某个关系的向量表示。正确关系三元组,就是头实体和尾实体具有关系r的三元组,即(头实体,正确t h关系,尾实体)。|D|代表训练集的大小;v和v为公式 中的tj和hi;[0059] 定义与上式类似,只需将上述公式中的Cj替换为Nj,Nj代表的是将句子j中每一个正确关系三元组的头实体或尾实体替换为不正确的头实体或尾实体,并将关系替换为NA关系得到的负样例集合。为NA关系增加数据,是为了系统能够更好地学习到NA关系的特征,从而生成正确的NA关系向量作为关系预测时的阈值。[0060] 最终的关系预测部分的损失函数 定义如下:[0061][0062] 其中λ为调和因子,满足λ<<1,目的是降低NA关系相对于其他正确关系的重要性,从而在关系预测中,能够成为最低等级的“正确关系”,并作为动态阈值来作为预测结果与非预测结果之间的分界。[0063] 进一步地,抽取系统最终的总损失函数 为:[0064][0065] 根据这个损失函数进行训练,在训练过程中,对整个系统中的参数使用Adam算法进行优化。[0066] 进一步地,负样例的生成方式为:[0067] 例如,对于正确的三元组(h,r,t),会相应地生成两个NA关系样本:[0068] (h′,NA,t)[0069] (h,NA,t′)[0070] 其中,h′和t′为原本的h,t分别被随机替换为其他非正确头尾实体的结果。如果句中存在多个头/尾实体,那么h和t将被随机替换为本句中其他的头/尾实体;如果该句中没有其他的头/尾实体,那么h和t将被随机替换为其他句子中的头/尾实体。[0071] 根据本发明的另一方面,提出一种基于翻译机制的实体和关系联合抽取系统的使用方法,包括:[0072] 1.对所述抽取系统进行训练;[0073] 2.向所述抽取系统输入语句,所述抽取系统输出正确关系三元组;[0074] 其中,所述训练的步骤包括:[0075] S1、将语句输入训练模块;[0076] S2、训练模块将数据集中的语句输入编码模块,获得每条语句的向量表示;[0077] S3、编码模块将语句的向量表示输入到实体标注模块,在实体标注模块进行头实体和尾实体的0、1标注,从而获得每一语句的头实体集合和尾实体集合;[0078] S4、将头实体集合和尾实体集合传送到关系预测模块,在关系预测模块中预测输出头尾实体的关系;[0079] S5、在训练模块中计算实体标注模块的损失函数、关系预测模块的损失函数,相加得到总损失函数;[0080] S6、将总损失函数对所有训练参数,包括实体标注模块中全连接网络的权重参数、Wt和Wh、以及所有关系的表示向量进行求导,使用反向传播的方式更新和优化这些参数;[0081] S7、按照步骤S1‑S6进行迭代,直到总损失函数的值小于设定阈值,或者训练轮数达到最大。[0082] 本发明所述的一种基于翻译机制的实体和关系联合抽取系统,与现有的实体关系联合抽取系统相比,具有如下有益效果:[0083] (1)本发明所述的实体和关系联合抽取系统,首次利用了翻译机制的思想来计算头尾实体之间的关系表示,并规避了翻译机制在对于对称关系的局限性,从而使翻译机制的思想能够更好地服务于具有对称关系的数据中。[0084] (2)本发明所述的实体和关系联合抽取系统,通过定义和训练NA关系的向量表示,使该NA向量其能够具备“辨识”无关系的标准,并能够作为动态阈值,在关系预测阶段成为正确与错误关系的“分界线”。[0085] (3)本发明所述的实体和关系联合抽取系统,通过对非NA关系的训练和调优,使得具有相关关系的关系向量距离相近,从而可以通过NA关系的动态阈值,一次性预测出头尾实体之间蕴含的多种关系,有效解决了实体对重叠的问题。[0086] (4)本发明所述的实体和关系联合抽取系统,通过对头实体和尾实体独立标注,能够将可能的头尾实体全部抽取出来,即同一个实体既可以被包含在头实体集合中,又可以被包含在尾实体集合当中,这样一来就可以解决单实体重合的问题。附图说明[0087] 为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。[0088] 图1为根据本发明一个实施例抽取系统的使用示意图;[0089] 图2为根据本发明一个实施例抽取系统的编码的流程示意图;[0090] 图3为根据本发明一个实施例抽取系统的实体标注模块的流程示意图;[0091] 图4为根据本发明一个实施例抽取系统的关系预测模块的流程示意图;[0092] 图5为根据本发明一个实施例抽取系统的训练方法的流程示意图;[0093] 图6为根据本发明一个实施例抽取系统的不同的λ值对实验结果的影响统计图。具体实施方式[0094] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。[0095] 下面结合附图和具体实施方式对本发明作进一步说明。[0096] 为了使本申请实例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实例可以相互结合。[0097] 本发明提供一种基于翻译机制的实体和关系联合抽取系统,如图1所示,当用户输入句子“YiheyuanislocatedinBeijing,thecapitalofChina”时,系统会输出三元组(Yiheyuan,located_in,Beijing),(Beijing,capital_of,China)。三元组为(h,r,t)格式的标准关系三元组,如果h和t具有r的关系,则成为正确关系三元组。一般来说,关系r非双向关系。[0098] 本发明提出一种基于翻译机制的实体和关系联合抽取系统,如图1所示,包含编码模块、实体标注模块和关系预测模块。其中,[0099] 编码模块,用于将接收的语句编码为向量序列,并将所述向量序列传送给实体标注模块;[0100] 实体标注模块,用于对所述向量序列进行实体标注,获得语句中包含的所有头实体向量集合和尾实体向量集合;然后将所述头实体向量集合和尾实体向量集合传送给关系预测模块;[0101] 关系预测模块,对头实体向量和尾实体向量两两之间蕴含的关系进行预测,从而求得每一对头尾实体之间的关系。[0102] 在编码模块中,编码的工作流程如图2所示,具体步骤为:[0103] S11、使用字节对编码(BPE),将输入的句子切分成为词表内所包含的字符序列,这一步的目的是将低频词转化为简单的分词表示,以便能够使该分词结果存在于BERT模型的词汇表中,防止出现OOV(out‑of‑vocabulary)的现象(例如,将一个playing的单词,经过BPE算法,会转化为[‘play’,’##ing’]两部分,这两部分均存在于BERT的词汇表中)。[0104] S12、将S11步骤中生成的字符序列进行符号嵌入和位置嵌入,相加作为该词的总体嵌入:[0105] ti=wi+pi[0106] 其中的wi和pi分别代表该词的符号嵌入和位置嵌入,嵌入矩阵均为随机初始化获得。最终的句子嵌入表示为:[t1,t2,t3,…,tl],l代表句子长度。[0107] S13、将句子的嵌入输入到预训练好的BERT中,得到句子的表示(向量序列):[0108] s=(e1,e2,e3,…,el)[0109] 其中l代表该句子的长度。[0110] 步骤S2中,实体标注模块的工作流程如图3所示,具体步骤如下:[0111] S21、首先,使用4个0/1标注器,对每个词向量进行0/1标注,得到4位0/1序列。其中4位0/1序列每一位代表的含义为:[0112] 第1位:不是/是头实体的开头、[0113] 第2位:不是/是头实体的结尾、[0114] 第3位:不是/是尾实体的开头、[0115] 第4位:不是/是尾实体的结尾;[0116] 这里的0/1标注器,其核心是一个两个全连接的网络,该分类器取上下文相关的表示(在本系统中即为ei)作为输入,并输出0/1序列,其中第i个符号的头/尾实体标注结果计算方式为:[0117][0118][0119] 其中的 和 分别代表输入序列中第i个符号的位置属于头/尾实体的start位置和属于end位置的概率,W(·)和b(·)代表的是可训练的权重和偏置值,σ()代表的是sigmoid激活函数。对于最终的计算结果,我们设置一个阈值θ,并认为如果p≥θ,则p=1。[0120] S22、根据S11标注出来的0/1标注结果,得到每一个头/尾实体对应的向量序列。即取开头和结尾位置之间(包含两端)的向量序列,如果开头和结尾在同一位置,则代表该实体只包含一个词语,直接将该向量作为该实体的最终表示;[0121] S23、对于向量个数大于1个的实体(多词实体),使用平均池化,将向量序列压缩成为单个向量作为该实体的向量表示。[0122] 步骤S3中的关系预测步骤如图4所示,具体步骤如下:[0123] S31、将S2步骤中得到的头实体集合中的每一个头实体hi,分别与尾实体集合中的每一个尾实体tj,使用翻译机制中的思想,做向量减法,得到它们的关系向量r,即:[0124][0125] 其中,Wt和Wh为映射矩阵,加入这两个矩阵的目的是防止当关系r为对称关系的时候,直接相减会使其趋于 的现象。传统的翻译机制在计算关系向量的时候是直接进行计算的,并不需要引入额外的参数,但是传统的翻译机制方式无法处理对称的关系,所以如果三元组(h,r,t)满足h+r≈t以及t+r≈h的时候,会导致 为了解决这个问题,才在模型中引入了权重矩阵Wt和Wh。映射矩阵为随机初始化的,在训练中能够被逐步训练的参数矩阵。[0126] S32、将S31步骤中得到的关系向量 与关系集合中所有关系的关系表示向量做相似度计算,并得到相似度的分级序列。[0127] Rank=[x1,x2,x3,...,xN,xNA][0128][0129][0130] 其中的ri代表所有关系的集合中第i个关系的关系表示,rNA表“NA”关系,即“无关系”的向量表示,N表示数据集内关系的数量。这里,所有的关系表示向量都由随机初始化之后在训练步骤中被训练,包括NA关系。[0131] S33、对计算出来的,与关系集合中所有关系的表示向量的相似度序列做降序排序,取相似度比与NA关系相似度高的关系作为关系预测结果,如果有多个关系,则表明该头尾实体对之间存在多种关系,将这些关系都作为预测结果。特别地,如果与NA关系相似度最大,那么取NA关系作为预测结果,即代表这两个实体之间“无关系”。[0132] 这里,经过降序排列之后,NA关系就作为了一个动态阈值,即为正确关系集合和非正确关系集合的“分界线”,相似度高于与NA的相似度的关系即为正确关系,低于NA的即为错误关系。[0133] 系统还包括训练模块,用于对整个系统进行训练,包括实体标注模块和关系预测模块的训练,最终的训练目标是实体标注模块和关系预测模块的损失函数之和最小化。编码模块所用的BERT表示模型和对应的字节对(BPE)编码器都是预训练过的,不需要我们再进行训练了,直接拿来用就行了,比如BERT模型可以通过引入BERT库函数并下载相应的预训练权重来直接调用,可以直接将经由BPE分词过的词序列生成带有上下文信息的词向量序列。[0134] 实体标注模块的损失函数包括头实体预测损失 和尾实体预测损失 两者计算公式如下:[0135][0136][0137] 其中,sj表示第j个句子,|D|代表训练集的大小,Hj和Tj分别代表第j个句子中被标注出来的头实体和尾实体的集合。其中似然函数p(h|sj)的计算方法为:[0138][0139] 其中的l代表句子的长度, 和 是句子中第i个字符的0/1标签。I(x)函数定义如下:[0140][0141] 似然函数p(t|sj)的定义同理,为:[0142][0143] 和 是句子中第i个词真实的0/1标签, 就代表句子中第i个词的位置为start; 就代表句子中第i个词的位置为end。 代表序列标注结果中第i个词的位置为start的概率; 代表序列标注结果中第i个词的位置为end的概率。q∈{start,end}就代表着分别将q取start和end。[0144] 关系预测部分的损失函数包括正确关系三元组预测损失 和NA关系预测损失[0145] 其中,正确关系三元组预测损失函数被定义为:[0146][0147] 其中的Cj代表的是第j个句子中正确关系三元组的集合,r代表的是Cj中某个关系t h的向量表示。|D|代表训练集的大小;v和v即为公式 中的tj和hi。[0148] 定义与上式类似,只需将上述公式中的Cj替换为Nj,Nj代表的是负样例集合,即将句子j中每一个正确关系三元组的头实体或尾实体替换为不正确的头实体或尾实体,并将关系替换为NA关系得到的负样例。为NA关系增加数据,是为了系统能够更好地学习到NA关系的特征,从而生成正确的NA关系向量作为关系预测时的阈值。[0149] 例如,对于正确的三元组(h,r,t),会相应地生成两个负样例:[0150] (h′,NA,t)[0151] (h,NA,t′)[0152] 其中,h′和t′为原本的h,t分别被随机替换为其他非正确头尾实体的结果。如果句中存在多个头/尾实体,那么h和t将被随机替换为本句中其他的头/尾实体;如果该句中没有其他的头/尾实体,那么h和t将被随机替换为其他句子中的头/尾实体。[0153] 最终的关系预测部分的损失函数 定义如下:[0154][0155] 其中λ为调和因子,满足λ<<1,目的是降低NA关系相对于其他正确关系的重要性,从而在关系预测中,能够成为最低等级的“正确关系”,并作为动态阈值来作为预测结果与非预测结果之间的分界。[0156] 系统最终的总损失函数 为:[0157][0158] 在训练模块中,根据最终的总损失函数进行实体标注模块、关系预测模块的训练,具体包括:计算实体标注模块的损失函数、关系预测模块的损失函数,以及最终的总损失函数;将总损失函数对所有训练参数(包括实体标注模块中全连接网络的权重参数、Wt和Wh、以及所有关系的表示向量等)进行求导,使用反向传播的方式更新和优化这些参数,按照这样的方式进行迭代,直到最终的损失函数的值小于设定阈值,或者训练轮数达到最大。在训练过程中,对整个系统中的参数使用Adam算法进行优化。[0159] 根据本发明的另一方面,提出一种基于翻译机制的实体和关系联合抽取系统的使用方法,包括:[0160] 1.对所述抽取系统进行训练;[0161] 2.向所述抽取系统输入语句,所述抽取系统输出正确关系三元组;[0162] 其中,所述训练的步骤,如图5所示,包括:[0163] S1、将数据集中的语句输入训练模块;[0164] S2、训练模块将数据集中的语句输入编码模块,获得每条语句的向量表示;[0165] S3、编码模块将语句的向量表示输入到实体标注模块,在实体标注模块进行头实体和尾实体的0、1标注,从而获得每一语句的头实体集合和尾实体集合;[0166] S4、将头实体集合和尾实体集合传送到关系预测模块,在关系预测模块中预测输出头尾实体的关系;[0167] S5、在训练模块中计算实体标注模块的损失函数、关系预测模块的损失函数,相加得到总损失函数;[0168] S6、将损失函数对所有训练参数包括实体标注模块中全连接网络的权重参数、Wt和Wh、以及所有关系的表示向量进行求导,使用反向传播的方式更新和优化这些参数;[0169] S7、按照步骤S1‑S6进行迭代,直到总损失函数的值小于设定阈值,或者训练轮数达到最大。[0170] 下面从实验部分来说明本发明的有效性。[0171] 本发明的实验部分所用的数据集为NYT数据集和WebNLG数据集,均为Google的公开数据集,两数据集中的数据信息如表1所示:[0172] 表1数据集构成[0173][0174] 具体地,NYT数据集是用远程监督方法构建起来的一个数据集,其中包含有24种关系和5000条作为验证集的句子。WebNLG原本是为自然语言生成任务而创建的一个数据集,后来经过研究者的改造,能够为关系抽取所用,该数据集中包含171种关系和500条作为验证集的句子。[0175] 另外关于对比模型,我们挑选了CasRel、TPLinker,RSAN、CGT、CopyRE、GraphRel和RIFRE模型作为基线;关于结果的评测指标,我们选择了准确率,召回率和F1值来作为评判依据,各个基线模型以及本发明提出的方法实验结果如表2所示:[0176] 表2各个模型的实验结果对比(单位:%)[0177][0178] 另外,针对单实体重叠和实体对重叠的问题,我们还统计了上述实验的详细信息,从简起见,只展示了F1值,如表3和表4所示。其中EPO和SEO分别表示实体对重叠的句子和单实体重叠的句子,N值代表句子包含N个三元组,相应列对应的是针对这些句子的效果。[0179] 表3NYT数据集中各个类型的关系抽取效果F1值(单位:%)[0180][0181] 表4WebNLG数据集中各个类型的关系抽取效果F1值(单位:%)[0182][0183] 从结果中不难看出,我们所用的方式能够达到很好的效果。另外对于所用方法中的调和因子λ,我们也做了一些实验来分析不同的λ值对于结果的影响,实验结果如图6所示。[0184] 本领域普通技术人员可以理解:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
专利地区:北京
专利申请日期:2021-11-05
专利公开日期:2024-09-03
专利公告号:CN114065781B