一种基于标签推理网络的细粒度实体分类方法

文档序号:30658267发布日期:2022-07-06 01:18阅读:118来源:国知局
一种基于标签推理网络的细粒度实体分类方法

1.本发明涉及一种细粒度实体分类方法,特别是涉及一种基于标签推理网络的细粒度实体分类方法,属于自然语言处理技术领域。


背景技术:

2.细粒度实体分类是信息抽取中的重要任务。给定一个句子并指出其中的实体提及作为输入,细粒度实体分类的目的是结合句子信息对实体提及进行细粒度分类。例如给定输入“他们同市书法协会工作人员一起走了”,其中实体提及为“市书法协会”,需要将“市书法协会”分类为:{“组织”,“社会机构”,“事业单位”,“工作人员”,“职员”}。
3.细粒度实体识别任务的重大挑战来自其相互依存、大规模、细粒度的标签集合。其一,实体标签通常会存在复杂的依存结构:层次依存结构和关联依存结构。如图1所示:标签“person”,“musician”,“composer”构成一个三层的分类学结构;而“commander”,“theorist”,“scientist”由于他们共享了“expert”,“scholar”属性,构成了一个关联结构。其二,由于标签集合是大规模、细粒度的,导致标签集合中存在大量长尾标签。比如,在ultra-fine数据集中就有大于80%的标签不足5条训练实例,甚至25%的标签没有训练实例。
4.已有的方法为了利用标签集合中的依存关系,通常会将标签之间的依存结构作为标签预测限制。然而这些方法需要预先定义的标签依存知识,再用特定的方法编码依存知识,这使得这些方法只能利用有限的依存关系并且难以泛化到新数据集上。


技术实现要素:

5.本发明的目的是提出一种基于标签推理网络的细粒度实体分类方法,能够利用标签之间的依存关系,且不使用预定义标签依存结构,能够泛化到新数据集上,而且够缓解长尾标签预测的难题。
6.为实现上述目的,本发明采用的技术方案如下:
7.一种基于标签推理网络的细粒度实体分类方法,包括以下步骤:
8.给定一个句子,该句子由实体词、上下文、实体标记和句子标记组成,输入到预训练语言模型中,获得句子的源端隐状态表示,将其中句子标记的隐状态表示作为上下文相关的实体提及表示;
9.将源端隐状态和实体提及表示输入到一解码器中,该解码器根据实体提及表示获得目标隐状态,再利用上下文注意力机制根据源端隐状态捕获不同时间步的上下文信息,以及利用前提注意力机制根据目标端隐状态捕获已经生成的标签信息,序列地预测全部实体提及标签,得到标签集合;根据实体提及表示、上下文信息和已经生成的标签信息,通过解码器计算在标签集合上的不同标签的预测概率,并选出每个时间步里预测概率最高的标签作为基于演绎推理生成的标签;
10.将作为预测结果的标签拆分为多个属性,根据属性与标签之间的关系构建属性网
络,该属性网络包括一属性图,该属性图包括属性结点和标签结点,以及表示属性结点和标签结点之间关联关系的边;在解码器的每个时间步,通过解码器的隐状态激活属性图中的属性结点;基于属性节点的激活状态和属性与标签之间的关联性,计算标签的激活分数:如果标签的激活份数大于一阈值,则生成标签,并作为基于归纳推理生成的标签;
11.将基于演绎推理生成的标签和基于归纳推理生成的标签作为预测结果的标签集合,并与标准答案的标签集合进行对比,结合集合预测损失函数和属性网络激活损失函数优化上述解码器和属性网络的参数;
12.利用预训练语言模型、优化后的解码器和属性网络来正式处理输入的句子,对句子中的实体进行分类。
13.进一步地,将句子输入预训练语言模型后,句子中的每一个标记和词汇都具有一个隐状态表示。
14.进一步地,预训练语言模型选用bert模型。
15.进一步地,基于演绎推理的解码器选用lstm模型。
16.进一步地,解码器利用实体提及表示初始化目标隐状态的第一个状态。
17.进一步地,利用上下文注意力机制根据源端隐状态捕获不同时间步的上下文信息的方法为:在每个时间步,上下文注意力机制通过激活函数计算解码器在每个时间步的隐状态和各个源端隐状态的相关度;利用该相关度计算权重;给各个源端隐状态分配权重,获得当前时间步的上下文信息。
18.进一步地,利用前提注意力机制根据目标端隐状态捕获已经生成的标签信息的方法为:在每个时间步,前提注意力机制通过激活函数计算解码器在每个时间步的隐状态和各个目标端隐状态的相关度;利用该相关度计算权重;给各个目标端隐状态分配权重,获得已经生成的标签信息。
19.进一步地,计算标签集合上的预测概率方法为:首先通过解码器利用解码器在上一个时间步的隐状态和上一个时间步的预测概率得到当前时间步的隐状态;然后将实体提及表示、上下文信息、已经生成的标签信息和当前时间步的隐状态作为输入,计算一中间量;再然后根据该中间量和引入的一项避免生成重复标签的掩膜向量,计算当前时间步的所有预测概率;最后选择当前时间步的最高预测概率的标签。
20.进一步地,通过解码器的隐状态激活属性图中的属性结点的方法为:采用余弦相似度评估解码器的隐状态和属性节点之间的相似度,再采用激活函数relu来激活属性。
21.进一步地,集合预测损失函数选用交叉熵损失函数,通过交叉熵损失函数计算预测结果的标签集合和基于匈牙利算法获得的答案最优序列之间的损失。
22.进一步地,属性网络激活损失函数计算属性图监督损失。
23.本发明方法基于预训练语言模型的上下文相关的实体提及编码器;基于序列到集合生成框架的标签演绎推理机制,结合生成的标签和上下文信息生成新的标签;基于属性网络的标签归纳推理机制,结合已经生成的标签所激活的属性生成新的标签;对应于上述描述的两种推理机制,使用基于集合预测损失和属性图激活损失的来优化网络参数。由预训练语言模型、解码器和属性网络构成的标签推理网络可以端到端地建模学习和利用标签依存关系,并且可以解决细粒度实体分类中的长尾标签预测问题。
附图说明
24.图1是标签的两种依存关系示例图。
25.图2是本发明实施例中的标签推理示意图。
26.图3是本发明实施例中的一种基于标签推理网络的细粒度实体分类示意图。
27.图4是本发明实施例中的一种属性实例。
具体实施方式
28.为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
29.以图1为例,为了能够同时利用标签的层次依存关系和关联依存关系,本实施例设计了两种标签推理机制来解码标签。针对层次依存关系,本实施例提出标签演绎推理机制来利用上下文信息和已经生成的标签来预测标签。如图2所示,在演绎推理过程中,模型可以通过已经生成的标签“person”和上下文信息“they theorize”推理出实体提及“they”是一个“theorist”,其中蕴含了标签“theorist”与“person”之间的层次依存关系。针对关联依存关系,本实施例将标签拆分为属性的集合,并提出标签归纳推理机制来利用已经生成的标签激活的属性来进一步激活新的标签。如图2所示,已经生成的标签“theorist”和“commander”分别激活了属性“scholar”和“expert”,这两个属性又进一步激活了标签“scientist”,其中蕴含了“theorist”,“commander”和“scientist”三者之间的关联关系。结合以上两种推理机制,本实施例构建一种标签推理网络,该网络能够利用序列到集合的生成框架序列地生成细粒度的标签,由此,该网络采用端到端的形式很好地建模,学习并利用这两种的标签依存关系。并且,由于标签被拆分为了多个属性,而长尾标签所关联的属性不一定是长尾的,使得长尾标签更加容易被预测,可以解决细粒度实体分类中的长尾标签预测问题。
30.为了利用标签之间的依存关系,并且不使用预定义标签依存结构,同时又能够缓解长尾标签预测的难题,本实施例提供了一种基于标签推理网络的细粒度标签分类方法,图3展示了网络架构,技术方案内容说明如下:
31.一、基于预训练语言模型的上下文相关的实体提及编码器;将实体提及及其上下文作为预训练语言模型的输入,获得与上下文相关的实体提及表示。
32.给定一个句子x=[cls],x1,

,[e1],m1,

,mk,[e2],

,xn,其中[e1],[e2]是实体标记,[cls]是句子标记,m是实体词,x是上下文,k、n表示数量。本实施例将句子x送入预训练语言模型bert,句子x中的每一个标记和词汇都会有一个隐状态表示,最终获得句子的隐状态表示h={h1,...,hn},最后采用[cls]的隐状态表示作为上下文相关的实体提及表示g。
[0033]
二、基于序列到集合生成框架的标签演绎推理机制,在每个预测时间步(即每次预测),均会结合上下文信息和之前时间步通过演绎推理机制已经生成的标签,生成新的标签。具体地,输入上述获得的表示,使用动态注意力机制获取上下文信息和通过演绎推理机制已经生成的标签信息,进而序列地生成实体提及标签,得到标签集合l。本步骤描述的是标签演绎推理过程,这是一个不断生成标签序列的过程,如图3所示,标签演绎推理生成的标签序列对应person

theorist

commandar
→…
。在每次生成标签的时候,都会结合已经生成的标签和上下文信息生成新的标签。
[0034]
对于目标隐状态和实体提及表示g,基于演绎推理的解码器利用上下文信息和已经生成的标签信息序列生成标签。具体地,本实施例利用lstm模型作为解码器来获得目标隐状态s={s0,...,sk},其中k是预测的标签数。本实施例首先利用g来初始化s0,之后在每个时间步,两个注意力机制会分别捕获上下文信息和已经生成的标签信息,进而预测下一个标签。
[0035]
(1)上下文注意力机制:上下文注意力机制用于捕获与当前状态s
t
(即当前t时刻标签演绎推理过程的状态)相关的上下文信息,进而帮助预测标签。比如,“they theorize”为预测“theorist”标签提供了丰富的信息。在每个时间步t,上下文注意力机制会通过给不同的源端隐状态hi分配不同的权重α
ti
来捕获上下文信息:
[0036][0037][0038]
其中tanh为激活函数,wc,uc,vc是网络参数,s
t
是解码器在时间步t的隐状态,e
ti
是在第t个时间步的隐状态与句子的第i个隐状态的相关度;t表示转置计算,将向量的维度交换,是vc的转置。这样即可获得上下文信息的表示c
t

[0039][0040]
(2)前提注意力机制:前提注意力机制用于捕获和利用标签之间的依存关系,从而帮助标签的预测。比如,如果已经生成了标签“person”,基于“they theorize”的上下文,模型很有可能预测“person”的下位词“theorist”。在每个时间步t,前提注意力机制会通过给不同的目标端隐状态sj分配不同的权重α
tj
来捕获已经生成标签的信息:
[0041][0042][0043]
其中w
p
,u
p
,v
p
是网络参数,e
tj
是指当前状态s
t
与第t个时间步时第j个目标端隐状态的相关度,t表示转置计算,将向量的维度交换,是v
p
的转置。这样即可获得已经生成的标签信息的表示u
t

[0044][0045]
(3)标签预测:基于上下文信息混合前提信息,本实施例将m
t
=[c
t
+g;u
t
+s
t
]作为lstm下一个时间步的输入,计算在标签集合上的预测概率:
[0046]st
=lstm(s
{t-1}
,wby
{t-1}
)
[0047]ot
=w
omt
[0048]yt
=softmax(o
t
+i
t
)
[0049]
其中wo是网络参数,wb是标签嵌入参数,y
t
是时间步t的预测的概率,o
t
为中间量,s
t
是解码器在时间步t的隐状态。为了避免解码器模型生成重复的标签,本实施例使用了掩模
向量
[0050][0051]
其中是模型在时间步t之前预测的标签,li是标签集合l中的第i个标签。最终本实施例选择y
t
中预测概率最高的标签作为当前时间步的预测结果,如果模型生成[eos]标签则停止预测。
[0052]
三、基于属性网络的标签归纳推理机制,结合已经生成的标签所激活的属性生成新的标签;上述演绎推理过程中激活的标签会通过线性神经网络模型逐步激活相应的属性,被激活的属性又会通过属性网络进一步激活标签。
[0053]
本实施例将标签拆分为多个属性,并设计了一个属性网络来表示属性和标签之间的关系。基于构造的属性网络,解码器的隐状态会激活属性,属性又会归纳推理出新的标签。
[0054]
(1)属性图:属性图g={v,e}是一个二部图,用于表示属性和标签之间的关系。其中v包含了属性结点va和标签结点v1,其中边e只存在于属性结点和标签结点之间,用于表示属性和标签之间的关联性。
[0055]
(2)基于属性图的归纳推理:在lstm解码的每个时间步,解码器在时间步t的隐状态s
t
都会去激活属性图中的属性结点:
[0056][0057]
其中ws是属性网络模型参数,wa是属性嵌入参数。本发明采用余弦距离来评估隐状态和属性的相似度(即式子中的sim),采用relu作为激活函数来激活属性。基于属性结点的激活状态,模型计算标签的激活分数:
[0058][0059]
其中na是属性的数量,是第j
th
个标签,e
ij
是第i个属性和第j个标签之间的关联性。如果标签的激活分数大于阈值θs则会生成该标签。最终,本实施例将演绎推理和归纳推理的生成的标签作为最终的细粒度实体分类的结果。
[0060]
(3)属性图的更新:由于标签与许多属性相关联,为了使得计算效率更高,本实施例动态地为每一个训练实例构造了一个属性图。本实施例采用两种方式获取属性:利用掩膜语言模型预测实体提及所在位置的词汇,和直接将实体提及分割为词汇。将上述两个部分的词汇进行预处理,即获得了每条实例相关的属性,如图4所示。
[0061]
四、基于集合预测损失和属性图损失的模型优化;基于步骤二和三的两种推理机制预测出的标签集合作为最终的预测结果,并且与标准答案的标签集合进行对比,通过集合预测损失函数,并结合属性网络激活损失函数来优化步骤二和三中的各项网络参数。
[0062]
由于细粒度识别分类任务中,标签之间没有顺序关系,因此应当采用集合预测损失作为标签预测的损失。具体地,本实施例采用二部匹配损失(交叉熵损失)来衡量上述预测结果与答案之间的差距:
[0063]
[0064]
其中ce是交叉熵损失,y
*
是模型预测结果,是利用匈牙利算法获得的答案最优序列(即作为本实施例中的一种标准答案的标签集合)。
[0065]
同时,本实施例的属性网络激活损失函数采用属性图监督损失来让模型正确激活属性:
[0066][0067][0068]
其中,yj指示第j个类别标签是正确答案还是错误答案,值为1代表正确,值为-1代表错误;y是标准答案标签集合;vj是第j个标签结点。
[0069]
最终的损失为两者相加:
[0070][0071]
以下给出一具体的应用实例:
[0072]
以对“on such a potent force,they theorize,could collapse some of the war ship.”中的实体提及“they”细粒度分类为“person”,“theorist”,“commander”,“scientist”为例。
[0073]
实施:
[0074]
将输入句子构造为“[cls]on such a potent force,[e1]they[e2]theorize,could collapse some of the war ship.”,并输入预训练语言模型(本工作采用bert),获得上下文相关的实体提及表示g。
[0075]
基于序列到集合生成框架的标签演绎推理机制,将g输入lstm,序列生成实体的标签,直至生成[eos]标签停止。在上述实例中,模型会序列生成“person”,“theorist”,“commander”,“[eos]”的标签。
[0076]
基于属性图的标签归纳推理机制,序列生成过程中生成的标签会激活属性图中的属性,属性又会进一步激活标签,如果标签的激活分数大于一定的阈值,则会生成该标签。在上述实例中,“person”标签会激活“human”属性,“theorist”标签会激活“scholar”属性,“commander”标签会激活“expert”属性,这三个激活的属性会共同激活“scientific”标签。
[0077]
虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域的普通技术人员对本发明的技术方案进行的适当修改或者等同替换,均应涵盖于本发明的保护范围内,本发明的保护范围以权利要求所限定者为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1