一种基于异质图注意力网络的文档级关系抽取方法

文档序号:30496854发布日期:2022-06-22 05:28阅读:107来源:国知局
一种基于异质图注意力网络的文档级关系抽取方法

1.本发明涉及一种抽取方法,具体涉及一种基于异质图注意力网络的文档级实体关系的抽取方法,属于计算机技术领域。


背景技术:

2.关系抽取任务能够提取出自然语言文本中两个命名实体之间所存在的语义关系。关系抽取技术突破了传统的必须经过人工阅读、理解的方式来获得语义关系的限制,取而代之的是语义关系的自动查找和抽取,可以帮助计算机更好的处理文本数据,以及理解非结构化文本的语义信息。目前关系抽取的相关研究多集中在句子级别,即只关注句内两个实体之间的关系,对跨句子的情况关注相对较少。而根据自然语言的表达习惯,实体对分别位于不同句子的情况也十分常见。因此,研究文档级关系提取是十分必要和重要的。与句子级关系抽取相比,文档级关系抽取更为复杂,也更具挑战性,主要有以下几个方面:
3.(1)在文档级关系抽取中,实体数量比句子级的大得多,因此,文档级关系抽取需要考虑大量实体之间的所有关系。
4.(2)在句子级关系抽取中,实体通常在句子中出现的形式唯一。一个实体在文档级关系抽取中可能以不同的形式出现多次,比如指代,别名,缩略语等,这些短语通常被成为实体提及。
5.(3)在文档级关系抽取中,可能无法直接抽取两个实体之间的关系,需要经过多重信息的推理才能得到。
6.所以为了解决多跳推理和实体表示问题,现有的大多数方法采用图神经网络来抽取关系。但是这些方法在获取节点表示时忽略了图中节点和边的重要作用,从而影响了关系抽取的准确率。


技术实现要素:

7.本发明为了解决现有的图神经网络在获取节点表示时忽略了图中节点和边,导致关系抽取的准确率低的问题,进而提出了一种基于异质图注意力网络的文档级关系抽取方法。
8.本发明采取的技术方案是:
9.一种基于异质图注意力网络的文档级关系抽取方法,它包括以下步骤:
10.s1、获取文档文本;
11.s2、建立文档级关系抽取模型,将s1中获取的文档文本输入文档级关系抽取模型内进行训练,输出所述文档文本的关系,得到训练好的文档级关系抽取模型;
12.s3、将待抽取文档级关系的文档文本输入s2中训练好的文档级关系抽取模型内,得到对应的文档文本的关系。
13.优选的,所述s2中建立的文档级关系抽取模型依次包括向量表示层、上下文表示层、图表示层、分类层。
14.优选的,所述s2中建立文档级关系抽取模型,将s1中获取的文档文本输入文档级关系抽取模型内进行训练,输出所述文档文本的关系,得到训练好的文档级关系抽取模型,具体过程为:
15.s21、将s1中获取的文档文本输入文档级关系抽取模型的向量表示层内,输出对应的文档文本编码表示;
16.s22、将s21中得到的文档文本编码表示输入文档级关系抽取模型的上下文表示层内,输出文档文本的上下文表示;
17.s23、将s1中获取的文本文档输入文档级关系抽取模型的图表示层内构建对应的文档图,所述文档图包含多个节点,根据s22中得到的文档文本的上下文表示分别对文档图中的多个节点进行编码表示,将编码表示后的多个节点输入异质图注意力网络内,得到实体节点的编码表示;
18.s24、将s23中得到的实体节点的编码表示输入文档级关系抽取模型的分类层内,输出所述文档文本的关系,得到训练好的文档级关系抽取模型。
19.优选的,所述s22中上下文表示层采用bert编码器进行上下文表示。
20.优选的,所述s23中将s1中获取的文本文档输入图表示层内构建对应的文档图,所述文档图包含多个节点,根据s22中得到的文档文本的上下文表示分别对文档图中的多个节点进行编码表示,利用异质图注意力网络对编码表示后的多个节点进行处理,得到实体节点的编码表示,具体过程为:
21.s231、将s1中获取的文本文档输入文档级关系抽取模型的图表示层内构建对应的文档图,所述文档图包含句子节点、提及节点和实体节点;
22.s232、根据s22中得到的文档文本的上下文表示分别对文档图中的句子节点、提及节点和实体节点进行编码表示;
23.s233、将s232中编码表示后的多个节点输入异质图注意力网络内,得到实体节点的编码表示。
24.优选的,所述s232中根据s22中得到的文档文本的上下文表示分别对文档图中的句子节点、提及节点和实体节点进行编码表示,具体过程为:
25.提及节点
[0026][0027]
其中,表示第a个提及节点的编码表示;
[0028]
xi表示文档文本中的第i个单词;
[0029]
ma表示第a个提及节点;
[0030]hi
表示文档文本中第i个单词的上下文表示;
[0031]
实体节点
[0032][0033]
其中,表示第b个实体节点的编码表示;
[0034]
eb表示第b个实体节点;
[0035]
句子节点
[0036][0037]
其中,表示第c个实体节点的编码表示;
[0038]
sc第c个句子节点。
[0039]
优选的,所述s233中将s232中编码表示后的多个节点输入异质图注意力网络内,得到实体节点的编码表示,具体过程为:
[0040]
s2331、基于启发式规则对s232中编码表示后的多个节点构建多种类别的无向边;
[0041]
s2332、将s2331中构建的无向边输入异质图注意力网络内,得到实体节点的编码表示。
[0042]
优选的,所述s2331中构建的无向边的类别为七种。
[0043]
优选的,七种无向边分别包括:
[0044]
第一提及边:在一个句子中的两个不同实体的提及之间建立一个边;
[0045]
第二提及边:若一个句子中两个提及节点表示同一实体,则在所述两个提及节点之间建立一条边;
[0046]
第一提及实体边:若一个句子中包含多个实体,则在其中一个实体与其他实体的提及之间建立一个边;
[0047]
第二提及实体边:若句子一中包含实体,句子二中包含所述实体的提及,则在实体和提及之间建立一条边;
[0048]
提及句子边:若一个句子中包含一个提及,则在提及和句子之间建立一条边;
[0049]
实体句子边:若句子一中包含实体,句子二中至少包含所述实体的一个提及,则在实体和句子二之间建立一条边;
[0050]
句子边:若有四个句子,则在每两个句子之间建立一条边。
[0051]
优选的,所述异质图注意力网络依次包括节点级注意力层、第一类型级注意力层、第二类型级注意力层。
[0052]
有益效果:
[0053]
本发明构建了文档级关系抽取模型,文档级关系抽取模型依次包括向量表示层、上下文表示层、图表示层、分类层,首先将获取的文档文本输入向量表示层内,目的是将文档文本中的单词转换为计算机能够识别的编码表示;将得到的文档文本的编码表示输入上下文表示层内,并利用上下文表示层内的bert编码器获取文档文本中每个单词的上下文表示;将文档文本输入图表示层内构建对应的文档图,所述文档图包括句子节点、提及节点和实体节点,将得到的文档文本的上下文表示对上述不同类型的节点(句子节点、提及节点和实体节点)分别进行编码表示,再将编码表示的节点输入异质图注意力网络内,通过在其内构造七种类型的无向边,结合节点级注意力和类型级注意力对节点和边分别进行处理,得到实体节点的编码表示。即采用异质图注意力网络的消息传播策略来获取有关文档图的信息,所述异质图注意力网络依次包括基于边的节点级注意力层、基于边的第一类型级注意力层、基于节点的第二类型级注意力层;最终将经过异质图注意力网络处理得到的实体节点的编码表示输入分类层内,得到文档文本之间的关系。
[0054]
本发明文档文本在图表示层内进行处理时结合了文档图中的节点和边,并采用异质图注意力网络对二者均进行了处理,捕获了文档图中提及节点之间、实体节点之间和句
子节点之间的复杂交互信息,为关系抽取提供了更多的有用信息,从而提高了关系抽取的准确率,
附图说明
[0055]
图1是本发明的抽取框架图;
具体实施方式
[0056]
具体实施方式一:结合图1说明本实施方式,本实施方式所述一种基于异质图注意力网络的文档级关系抽取方法,它包括以下步骤:
[0057]
s1、获取文档文本;
[0058]
首先,给定一个文档文本,以实现对文档文本中实体之间的关系进行预测,同时便于后续对文档级关系抽取模型进行训练。
[0059]
s2、建立文档级关系抽取模型,将s1中获取的文档文本输入文档级关系抽取模型内进行训练,输出所述文档文本的关系,得到训练好的文档级关系抽取模型,具体过程为:
[0060]
所述文档级关系抽取模型依次包括向量表示层、上下文表示层、图表示层、分类层;
[0061]
向量表示层:将文档中的单词转换为计算机能够识别的嵌入式表示。
[0062]
上下文表示层:采用bert编码器获取文档中每个单词的上下文表示。
[0063]
图表示层:首先,将文档转换为图。其次,根据得到的上下文表示,对不同类型节点分别进行编码表示。最后,采用异质图注意力网络的消息传播策略来累积有关文档图的信息。
[0064]
分类层:根据得到实体节点的编码表示来预测实体之间的关系。
[0065]
s21、将s1中获取的文档文本输入文档级关系抽取模型的向量表示层内,输出对应的文档文本编码表示;
[0066]
s22、将s21中得到的文档文本编码表示输入文档级关系抽取模型的上下文表示层内,输出文档文本的上下文表示;
[0067]
所述上下文表示层采用bert编码器进行上下文表示;
[0068]
s23、将s1中获取的文本文档输入文档级关系抽取模型的图表示层内构建对应的文档图,所述文档图包含多个节点,根据s22中得到的文档文本的上下文表示分别对文档图中的多个节点进行编码表示,将编码表示后的多个节点输入异质图注意力网络内,得到实体节点的编码表示,具体过程为:
[0069]
s231、将s1中获取的文本文档输入文档级关系抽取模型的图表示层内构建对应的文档图,所述文档图包含句子节点、提及节点和实体节点;
[0070]
由于文档中不同类型的元素在表达语义关系中起着不同的作用,以便更好地描述这些元素之间的交互,并将它们用于文档级关系抽取,我们将文档文本在文档级关系抽取模型的图表示层内构建为具有不同节点类型的文档图,具体来说,文档中的元素被分为三种不同类型的节点:句子节点、提及节点和实体节点。
[0071]
s232、根据s22中得到的文档文本的上下文表示分别对文档图中的句子节点、提及节点和实体节点进行编码表示,具体过程为:
[0072]
根据s22中bert编码器得到的文档文本的上下文表示(词的向量化表示)对文档图中的每种类型节点进行编码表示,即对每种类型节点的属性进行初始化,表示如下:
[0073]
提及节点
[0074][0075]
其中,表示第a个提及节点的编码表示;
[0076]
xi表示文档文本中的第i个单词;
[0077]
ma表示第a个提及节点;
[0078]hi
表示文档文本中第i个单词的上下文表示;
[0079]
实体节点
[0080][0081]
其中,表示第b个实体节点的编码表示;
[0082]
eb表示第b个实体节点;
[0083]
句子节点
[0084][0085]
其中,表示第c个实体节点的编码表示;
[0086]
sc第c个句子节点。
[0087]
s233、将s232中编码表示后的多个节点输入异质图注意力网络内,得到实体节点的编码表示,具体过程为:
[0088]
s2331、基于启发式规则对s232中编码表示后的多个节点构建七类无向边:
[0089]
为了将s232中的节点连接起来,得到反映节点间交互的图,本发明利用文档元素之间的自然关联构造了以下无向边,具体实例如下表1所示。
[0090]
第一提及边:在一个句子中的两个不同实体的提及之间建立一个边。
[0091]
例如,在句子s1中张三达和x国表示两个实体,在句子s3中张三为实体张三达的提及,x国为实体x国的提及,则在句子s3中具有不同实体的两个提及(张三和x国)之间建立一条边,作为第一提及边。
[0092]
第二提及边:若一个句子中两个提及节点表示同一实体,则在所述两个提及节点之间建立一条边。
[0093]
例如,在句子s1中红色公司为一个实体,在句子s4中两处红色均为实体红色公司的提及,则在句子s4中的两处红色之间建立一条边,作为第二提及边。
[0094]
第一提及实体边:若一个句子中包含多个实体,则在其中一个实体与其他实体的提及之间建立一个边。
[0095]
例如,在句子s1中张三达和x国表示两个实体,张三为张三达的提及,则在提及张三和实体x国之间建立一条边,作为第一提及实体边。
[0096]
第二提及实体边:若句子一中包含实体,句子二中包含所述实体的提及,则在实体和提及之间建立一条边。
[0097]
例如,在句子s1中张三达为实体,在句子s2中张三为实体张三达的提及,则在提及张三和实体张三达之间建立一条边,作为第二提及实体边。
[0098]
提及句子边:若一个句子中包含一个提及,则在提及和句子之间建立一条边。
[0099]
例如,在句子s1中张三达为实体,在句子s2中张三为实体张三达的提及,则在提及张三和句子s2之间建立一条边,作为提及句子边。
[0100]
实体句子边:若句子一中包含实体,句子二中至少包含所述实体的一个提及,则在实体和句子二之间建立一条边。
[0101]
例如,在句子s1中张三达为实体,句子s2中张三为实体张三达的提及,则在实体张三达和句子s2之间建立一条边,作为实体句子边。
[0102]
句子边:若有四个句子,则在每两个句子之间建立一条边。
[0103]
例如,根据表1,将其中的s1,s2,s3和s4中的每两个句子之间建立一条边。
[0104]
表1文本实例
[0105][0106]
s2332、将s2331中构建的无向边输入异质图注意力网络内,得到实体节点的编码表示。
[0107]
所述异质图注意力网络依次包括节点级注意力层、第一类型级注意力层、第二类型级注意力层。
[0108]
将s2321中构建的无向边输入异质图注意力网络内,利用异质图注意力网络的消息传播策略来累积有关文档图的信息。首先,无向边会输入到节点级注意力层,在节点级注意力层内基于边的节点级注意力聚合所有相同边类型邻居节点,得到并输出特定边类型的节点嵌入表示;其次,将节点级注意力层的输出作为第一类型级注意力层的输入,即将特定边类型的节点嵌入表示输入第一类型级注意力层内,并在此层内基于边的类型级注意力输出不同节点类型下的节点嵌入表示;最终,将第一类型级注意力层输出的不同节点类型下的节点嵌入表示作为第二类型级注意力层的输入,并在此层内基于节点的类型级注意力输出最终的有节点嵌入表示,从而得到头实体和尾实体的表示,即实体节点的编码表示,至此,完成无向边在异质图注意力网络内的处理。
[0109]
s24、将s23中得到的实体节点的编码表示输入文档级关系抽取模型的分类层内,输出所述文档文本的关系,得到训练好的文档级关系抽取模型。
[0110]
本发明分类层内采用多标签分类任务,并使用二进制交叉熵作为分类损失进行分类,能够预测实体之间的多种关系,结果更加准确。将s23中得到的实体节点的编码表示输入分类层,输出所述文档文本中实体之间的关系。从而得到训练好的文档级关系抽取模型。
[0111]
s3、将待抽取文档级关系的文档文本输入s2中训练好的文档级关系抽取模型内,得到对应的文档文本关系;
[0112]
实施例1
[0113]
由于文档中不同类型的元素在表达语义关系中起着不同的作用,因此将输入文档构建为具有不同节点类型的文档图,即构建的文档图包含句子节点、提及节点和实体节点。然后,利用文档元素之间的自然关联构造七种类型的无向边。另外,考虑到节点和边的重要性,提出一种异质图注意力网络来学习文档图中的丰富的节点表示。
[0114]
具体地,给定一个文档文本为其中,表示文档文本x中的第da个单词,da=1,2,

i。同时建立文档级关系抽取模型,所述文档级关系抽取模型依次包括向量表示层、上下文表示层、图表示层、分类层。
[0115]
将文档文本输入文档级关系抽取模型的向量表示层内,得到文档文本的编码表示
[0116]
将输入上下文表示层内,所述上下文表示层内设置有bert编码器,即通过bert编码器获得文档文本的编码表示的上下文表示η为:
[0117]
η=bert(x)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0118]
其中,表示由bert编码器获得的文档文本中da个单词的上下文表示;表示矩阵,da表示矩阵的行数,d
l
表示矩阵的列数。
[0119]
由于文档文本中不同类型的元素在表达语义关系中起着不同的作用。以便更好地描述这些元素之间的交互,并将它们用于文档级关系抽取,我们考虑将输入文档文本构建为具有不同节点类型的文档图。具体来说,文档文本中的元素被分为三种不同类型的节点:句子节点(s)、提及节点(m)和实体节点(e)。我们根据bert编码器得到的上下文表示(词的向量化表示)对每种类型的节点均进行编码表示,表示如下:
[0120]
(1)提及节点:提及节点的编码表示vm是通过对提及所包含单词的表示进行平均,即为表示第a个提及节点的编码表示,xi表示文档文本中的第i个单词,ma表示第a个提及节点,hi表示文档文本中第i个单词的上下文表示。
[0121]
(2)实体节点:表示文档中的实体。实体节点的编码表示ve是通过实体所有提及的平均(将实体对应的所有提及向量做一个平均池化)表示,即为表示第b个实体节点的编码表示;eb表示第b个实体节点。
[0122]
(3)句子节点:句子节点的编码表示vs是多个句子中的所有单词嵌入的平均表示,即为表示第c个实体节点的编码表示;sc第c个句子节点。
[0123]
为了将这些节点连接起来,得到反映节点间交互的图,我们利用文档元素之间的自然关联构造无向边。具体来说,基于启发式规则构造了以下七类边。
[0124]
·
第一提及边(mmu):在一个句子中的两个不同实体的提及之间建立一个边。
[0125]
·
第二提及边(mmo):若一个句子中两个提及节点表示同一实体,则在所述两个提及节点之间建立一条边。
[0126]
·
第一提及实体边(meu):若一个句子中包含多个实体,则在其中一个实体与其他实体的提及之间建立一个边。
[0127]
·
第二提及实体边(meo):若句子一中包含实体,句子二中包含所述实体的提及,则在实体和提及之间建立一条边。
[0128]
·
提及句子边(ms):若一个句子中包含一个提及,则在提及和句子之间建立一条边。
[0129]
·
实体句子边(es):若句子一中包含实体,句子二中至少包含所述实体的一个提及,则在实体和句子二之间建立一条边。
[0130]
·
句子边(ss):若有四个句子,则在每两个句子之间建立一条边。
[0131]
在构建的图中,目标节点与m种类型的节点相邻,并存在n种类型的边,则节点的类型为{φ1,φ2,...φm},m=(1,2,
…k…
p),边的类型为n=(1,2,

q),则节点同时具有类型边和φ
p
类型邻居节点的集合为
[0132]
给定两个节点对(d,f),基于边的节点级注意力可以学习到节点f相对于节点d的注意力得分公式如下所示:
[0133][0134]
其中,[vd;vf]表示vd与vf串联,vd表示节点d的向量表示,vf表示节点f的向量表示,
[0135]
表示基于边的节点级注意力向量,
[0136]
σ(
·
)为激活函数;
[0137][0138]
其中,表示节点f对节点d的注意力值;
[0139]
表示相同节点类型下和不同边类型下的注意力得分;
[0140]
聚合所有相同边类型邻居节点,得到特定边类型的嵌入表示
[0141][0142]
其中,
[0143]
将节点d通过基于边的节点级注意力得到所有类型嵌入作为输入,学习节点d的每种边类型信息的注意力得分公式如下所示:
[0144][0145]
其中,v是目标节点的集合,|v|表示目标集合中节点的数目;
[0146]weta
和b
eta
均表示可学习的参数,a
eta
表示类型级别的注意力向量,
[0147]
经过softmax函数,得到相同节点类型下的不同边类型权重:
[0148][0149]
表示类型的边对目标节点d的重要性,k∈(1,2,

p)。
[0150]
最后,进行加权求和以获得基于边的类型级注意力层的节点的嵌入表示
[0151][0152]
为了学习不同的节点类型的重要性并将其融合,将节点d通过基于边的类型级注意力的得到所有节点类型下的节点d的嵌入表示作为输入,学习节点d的每种节点类型信息的权重公式如下所示:
[0153][0154]
其中,a
nta
表示节点类型级别的注意力向量,
[0155]wnta
和b
nta
均表示可学习的参数,
[0156]
基于节点的类型级注意力的权重计算公式为:
[0157][0158]
表示表示φk节点类型下的注意力分数;;
[0159]
最后,最终的节点的嵌入表示为:
[0160][0161]
将文档图中导出的头实体和尾实体的表示分别为eh和e
t
,使用比较运算来增强特
征,即采用两个实体表示之间的减法绝对值|e
h-e
t
|和对逐元素相乘eh⊙et
进行特征增强,得到最终的头实体和尾实体的表示:
[0162]eh,t
=[eh;e
t
;|e
h-e
t
|;eh⊙et
]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0163]
此时得到的头实体和尾实体即为实体节点的编码表示,至此,完成无向边在异质图注意力网络内的处理。
[0164]
我们将得到的实体节点的编码表示输入分类器内,分类器的任务为多标签分类任务,并输出预测的实体之间的关系:
[0165]
p(r|eh,e
t
)=sigmoid(w2σ(w1e
h,t
+b1)+b2)
ꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0166]
其中,r表示两个实体eh和e
t
之间的关系;w1,w2,b1和b2均表示可训练参数;σ()表示激活函数,例如relu。
[0167]
分类器使用二进制交叉熵作为分类损失:
[0168][0169]
表示关系抽取的损失;r表示文档中关系的集合;yr表示关系r的真实标签;pr表示预测关系r的概率;
[0170]
实施例2
[0171]
[0172]
[0173]
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1