1.一种基于正向引导知识蒸馏的文档级关系抽取方法,其特征在于,包括以下步骤:S1、获取文档文本;
S2、建立文档级关系抽取模型,将步骤S1所得文档文本输入所述的文档级关系抽取模型内进行训练,输出文档文本关系,得到训练好的文档级关系抽取模型;
S3、将待抽取文档级关系的文档文本输入到步骤S2所得训练好的文档级关系抽取模型内,得到相应的文档文本关系;
所述S2中的文档级关系抽取模型包括实体对编码模块、老师模型、学生模型;
所述实体对编码模块用于对待抽取的文档文本进行编码,得到实体对编码表示;
所述老师模型用于在学生模型训练阶段仅对正样本的关系类型进行预测,以监督学生模型的训练;
所述学生模型用于获取相应的文档文本关系;
所述老师模型的实体对编码模块的结构与学生模型的实体对编码模块的结构相同;对于老师模型,其在训练阶段仅使用正样本,这样老师模型可以学习正类的模式,而不会受到假阴性问题的干扰;对于学生模型,其使用所有样本作为输入来获得预测结果,学生模型可以在老师模型的部分监督下避免噪声标注数据所导致的模式崩溃。
2.根据权利要求1所述的基于正向引导知识蒸馏的文档级关系抽取方法,其特征在于,所述S2中,具体过程为:S21、将步骤S1中文档文本输入到文档级关系抽取模型中的实体对编码模块内,输出实体对编码表示;
S22、将步骤S1中文档文本输入到老师模型的实体对编码模块中,得到正样本的实体对编码表示,从而得到训练好的老师模型;
所述老师模型的实体对编码模块的结构与步骤S21中实体对编码模块的结构相同;
S23、将步骤S1中文档文本输入到学生模型的实体对编码模块中,得到所有样本的实体对编码表示,在S22所得训练好的老师模型的部分监督下,得到训练好的学生模型;
所述学生模型的实体对编码模块的结构与步骤S21中实体对编码模块的结构相同。
3.根据权利要求2所述的基于正向引导知识蒸馏的文档级关系抽取方法,其特征在于,所述步骤S21中,将S1中文档文本输入到文档级关系抽取模型中的实体对编码模块内,输出实体对编码表示,具体过程为:S211、在对文档文本进行编码之前,在文档中提及的前后插入“*”,以确保提及出现的位置,使用预训练语言模型PLM作为文档编码器对S1中所得文档文本中的每个单词进行编码,获得文档文本的上下文表示和注意力表示;
S212、根据S211中插入“*”的标记和文档文本的上下文表示,得到实体节点的编码表示;
S213、根据S211所得文档文本的上下文表示和注意力表示,获得每个实体对的局部上下文表示;
S214、将S212所得实体节点的编码表示和S213中对应的实体对的局部上下文表示相结合,得到实体对编码表示。
4.根据权利要求3所述的基于正向引导知识蒸馏的文档级关系抽取方法,其特征在于,所述步骤S211中,在对文档文本进行编码之前,在文档中提及的前后插入“*”,以确保提及出现的位置,使用预训练语言模型PLM作为文档编码器对S1中所得文档文本中的每个单词进行编码,获得文档文本的上下文表示和注意力表示,具体过程如下:首先,在原始文档文本中的提及前后均插入特殊字符“*”,获得对应的文档文本;
其中, 表示文档文本中的第个单词,L表示文档文本的总单词数量;
然后,使用预训练语言模型PLM作为编码器 对文档文本进行编码,得到文档文本的上下文表述和注意力表示,公式如下所示:(1)
其中,H表示文档文本的上下文表示, ,d表示每个单词的向量维度,A表示文档文本的注意力表示, ,R表示参数矩阵;
所述步骤S212中,根据S211中插入“*”的标记和文档文本的上下文表示,得到实体节点的编码表示,具体过程如下:根据S211中插入“*”的标记,将提及前的“*”的编码表示作为提及的编码表示 ;
使用 函数,对同一实体的不同提及进行处理,得到实体的编码表示 ,公式如下所示:(2)
其中, 表示文档文本中的第 个实体, ; 表示第 个实体的第 个提及,, 表示第个实体的提及数目;
所述步骤S213中,根据S211所得文档文本的上下文表示和注意力表示,获得每个实体对的局部上下文表示,具体过程如下:在S211中得到的文档文本的上下文表示H和注意力表示A之后,将同一实体的提及的注意力求平均,得到实体级注意力,实体对的局部上下文表示 可由以下公式计算得到:(3)
其中, , 分别表示头实体和尾实体的注意力, , 表示上下文表示H的转置, 表示注意力表示A的转置, 表示 和 的点乘;
所述步骤S214中,将S212所得实体节点的编码表示和S213中对应的实体对的局部上下文表示相结合,得到实体对编码表示,具体过程如下:根据S212中的实体节点的编码表示 和对应的实体对的局部上下文表示 ,根据如下所示的公式来获得最终的实体对的编码表示 :(4)
(5)
(6)
(7)
其中, 表示头实体节点的编码; 表示尾实体节点的编码; 表示模型参数, ; 表示融入了局部上下文的头实体
的编码表示; 表示融入了局部上下文的尾实体的编码表示, ; 表示激活函数;K表示为了减少双线性分类器中的参数数量,各个参数被拆分的组数。
5.根据权利要求2所述的基于正向引导知识蒸馏的文档级关系抽取方法,其特征在于,所述步骤S22中,将S1中文档文本输入到老师模型的实体对编码模块中,得到正样本的实体对编码表示,从而得到训练好的老师模型,具体过程为:S221、将S1中文档文本输入到老师模型的实体对编码模块中,得到正样本的实体对编码表示,将正样本的实体对编码表示输入到老师模型的分类器中,输出正样本的关系预测分数;
S222、将S221中得到的正样本的关系预测分数与真实标签输入到损失函数中,计算出老师模型的损失值;
S223、根据S222中老师模型的的损失值,进行反向传播,得到训练好的老师模型。
6.根据权利要求5所述的基于正向引导知识蒸馏的文档级关系抽取方法,其特征在于,所述步骤S221中,将正样本的实体对编码表示输入到老师模型的分类器中,输出相应的关系预测分数,具体过程如下:首先,将S1中文档文本输入到老师模型的实体对编码模块中,获得属于正样本的实体对编码表示 ;
然后将 输入到前馈神经网络中,即老师模型的分类器,得到老师模型对正样本的关系预测分数 ,公式如下所示:(8)
其中,r表示某种关系类型, 表示老师模型的学习参数; 表示激活函数;
所述步骤S222中,将S221中得到的正样本的关系预测分数与真实标签输入到损失函数中,计算出老师模型的损失值,具体过程如下:由于相同的关系概率值对不同的实体对或类有不同的含义,即一个全局阈值是不够的,因此本发明使用自适应阈值损失函数作为教师模型的损失函数;
引入了TH类来区分正类和负类:正类的概率需要有高于TH的概率,负类的概率需要低于TH的概率,TH表示自适应阈值;
老师模型的损失 的计算过程如下所示:
(9)
(10)
(11)
其中, 中的 表示正类和TH类组成的集合中某种关系类型, 表示正类; 中的 表示负类和TH类组成的集合中某种关系类型, 表示负类; 表示老师模型在激活函数之前的老师模型的最后一层的输出结果; 表示老师模型所输出关系r的预测分数;
表示老师模型所输出关系 的预测分数; 表示老师模型所输出TH类的预测分数。
7.根据权利要求2所述的基于正向引导知识蒸馏的文档级关系抽取方法,其特征在于,所述步骤S23中,将步骤S1中文档文本输入到学生模型的实体对编码模块中,得到所有样本的实体对编码表示,在S22所得训练好的老师模型的部分监督下,得到训练好的学生模型,具体过程为:S231、将S1中文档文本输入到学生模型的实体对编码模块中,得到所有样本的实体对编码表示,然后将其输入到学生模型的分类器中,输出对所有样本的关系预测分数;
S232、将S1中文档文本输入到S22中已训练好的老师模型内,输出仅对正样本的关系预测分数;
S233、学生模型在S22中训练好的老师模型的部分监督下,结合S231和S232中学生模型和老师模型对正样本的预测结果,得到知识蒸馏损失;
S234、将S231中的输出结果与真实标签作对比,得到学生模型的硬损失;
S235、将S233和S234中学生模型的知识蒸馏损失和硬损失加权求和,得到学生模型的最终损失,得到训练好的文档级关系抽取模型。
8.根据权利要求7所述的基于正向引导知识蒸馏的文档级关系抽取方法,其特征在于,所述步骤S231中,将S1中文档文本输入到学生模型的实体对编码模块中,得到所有样本的实体对编码表示,然后将其输入到学生模型的分类器中,输出对所有样本的关系预测分数,具体过程如下:首先,将S1中文档文本D输入到学生模型的实体对编码模块中,得到所有样本的实体对编码表示 ;
然后,将获得的实体对编码表示输入到学生模型的分类器中,得到对应的关系预测分数 ,公式如下所示:(12)
其中, 表示学生模型的学习参数;表示激活函数 ;
所述步骤S232中,将S1中文档文本输入到S22中已训练好的老师模型内,输出仅对正样本的关系预测分数,具体过程如下:将S1中文档文本输入到老师模型的实体对编码模块中,获得属于正样本的实体对编码表示 ;
然后将 输入已训练好的老师模型的分类器,得到老师模型对正样本的关系预测分数 ,公式如下所示:(13)
其中, 表示老师模型的学习参数;表示激活函数 ;
所述步骤S233中,学生模型在S22中训练好的老师模型的部分监督下,结合S231和S232中学生模型和老师模型对正样本的预测结果,得到知识蒸馏损失,具体过程如下:分别为目标类知识蒸馏损失和非目标类知识蒸馏损失设置了两个权重,再将这两个损失的加权和定义为新的知识蒸馏损失;
实体对的真实标签和97种关系类型中其余标签会分别被视为目标类和非目标类;具体而言,首先根据正样本的真实标签 ,得到目标类掩码 和非目标类掩码 ,公式如下所示:(14)
(15)
然后,从S231和S232中分别获得学生模型和老师模型对正样本的预测结果和 ,将 和 分别视作学生模型的软预测和软标签;学生模型在老师模型的监督下,可以防止噪声标注数据中的大量假阴性样本对正类模型造成干扰,从而提高模型的关系抽取性能;
在目标类掩码 和非目标类掩码 的帮助下,通过如下所示的公式,依次获得学生模型的目标类软标签 、非目标类软标签 、目标类软预测 和非目标软预测 ,公式如下所示:(16)
(17)
(18)
(19)
本发明使用均方误差损失函数来计算目标类损失和非目标类损失;两个超参数 和 分别作为目标类损失和非目标类损失的权重,然后结合目标类损失和非目标类损失得到知识蒸馏损失,公式如下所示:(20)
(21)
(22)
其中,m表示正样本的数目, 表示目标类损失, 表示非目标类损失, 表示知识蒸馏损失,和 表示两个超参数;
所述步骤S234中,将S231中的输出结果与真实标签作对比,得到学生模型的硬损失,具体过程如下:将S231中获得学生模型对所有样本的关系预测分数 和真实标签 输入到自适应阈值损失函数中,计算过程与S222相同,从而得到学生模型的硬损失 ;
所述步骤S235中,将S233和S234中学生模型的知识蒸馏损失和硬损失加权求和,得到一个学生模型的最终损失,进行反向传播,从而得到训练好的文档级关系抽取模型,具体过程如下:通过结合知识蒸馏损失和硬损失来优化学生模型,从而得到学生模型的最终损失,公式如下所示:(26)
其中, 表示学生模型的硬损失, 表示学生模型的知识蒸馏损失, 是进行权衡的超参数;
最终,将学生模型的损失 进行反向传播,更新文档级关系抽取模型的梯度和参数,从而得到训练好的文档级关系抽取模型。
9.根据权利要求8所述的基于正向引导知识蒸馏的文档级关系抽取方法,其特征在于,所述步骤S234中,学生模型的硬损失 的计算过程如下所示:(23)
(24)
(25)
其中, 中的 表示正类和TH类组成的集合中某种关系类型, 表示正类; 中的 表示负类和TH类组成的集合中某种关系类型, 表示负类; 表示学生模型在激活函数之前的学生模型的最后一层的输出结果; 表示学生模型所输出关系r的预测分数; 表示学生模型所输出关系 的预测分数; 表示学生模型所输出TH类的预测分数。
10.根据权利要求1所述的基于正向引导知识蒸馏的文档级关系抽取方法,其特征在于,所述步骤S3中,将待抽取文档级关系的文档文本输入到S2中训练好的文档级关系抽取模型内,得到对应的文档文本的关系,具体过程为:S31、将待抽取文档级关系的文档文本输入到已训练好的文档级关系抽取模型中,得到文档级关系抽取模型的输出结果出 ;
S32、将S31中得到的关系预测分数 与自适应阈值TH作比较,当预测分数高于TH视为正类,低于TH视为负类,从而得到待抽取的文档文本的关系标签。