本发明属于自然语言处理领域,具体涉及一种基于膨胀门卷积神经网络的文本关系抽取方法。
背景技术:
在实体关系的抽取方法上,按照对语句的处理方式不同可以分为三种方法:基于特征向量的方法、基于核函数的方法、基于神经网络的方法。
基于特征向量的方法主要通过向量空间模型将自然语句映射到特征向量,通常为词向量和位置向量,再经过向量化后形成对应的向量矩阵,最后将向量矩阵输入到选取的分类器中,得到分类结果。基于核函数的方法利用字符串的原始形式作为处理对象来计算任意两个对象之间的核相似度(kernelsimilarity)函数值;基于核函数方法是将句子后面的隐式特征向量投影到特征空间中,通过计算投影空间的内积来确定实体之间关系的相似性,不需要构建特征向量。目前神经网络的兴起给实体关系抽取的研究提供了一些新的方法。liu,sun,chao等人提出将深度卷积神经网络(deepconvolutionalneuralnetworks,dcnn)应用到关系抽取中。miwa,bansal提出了一种基于端到端神经网络的关系抽取模型,该模型通过在双向顺序长短期记忆循环神经网络(lstm-rnn)上堆叠双向树结构lstm-rnn来捕获词序列和依赖树的子结构信息。
基于特征向量的方法可以通过选择合适的关系特征和特征组合来获得良好的性能,但是该方法致力于寻找有效的特征,而忽略了关系特征,并且该方法在训练语料时需要训练的数据较多,处理数据的效率低。基于内核的实体关系抽取的方法可以把不同的核函数复合来表示高维甚至无限维的特征空间,但是这使得该方法学习和训练的速度相慢,不适合大规模数据的抽取。基于神经网络的方法在关系抽取任务中虽然能较好的提取文本的关系,但是现有的基于神经网络方法的关系抽取模型中没有充分地利用实体周围的上下文信息,忽略了实体与客体的关系,使得识别文本关系的准确率低。
技术实现要素:
为解决以上现有技术存在的问题,本发明提出了一种基于膨胀门卷积神经网络的文本关系抽取方法,该方法包括:
s1:实时获取文本信息数据;
s2:将获取的文本信息进行分字、分词处理,得到字词混合向量和位置向量;
s3:将字词混合向量和位置向量分别输入到训练好的膨胀门卷积神经网络模型中进行编码,得到编码序列;
s4:采用自注意力机制对编码序列进行处理,通过“半指针-半标注”的方法对经过自注意力机制的编码序列进行主实体抽取;
s5:采用双向lstm对编码序列进行处理,将处理结果与位置向量进行融合,得到与输入序列等长的向量序列;
s6:采用自注意力机制对编码序列进行处理,并将处理后的结果与向量序列进行拼接;采用“半指针-半标注”的方法对拼接后的向量进行抽取,得到客实体;
s7:将主实体和客实体进行组合,得到文本关系。
优选的,求取位置向量的公式为:
优选的,对膨胀门卷积神经网络模型进行训练的过程包括:
步骤1:获取原始文本数据集,对原始文本数据集中的文本数据进行预处理,得到文本训练集;
步骤2:将训练集中的文本数据输入到膨胀门卷积神经网络模型的膨胀门卷积层中,进行特征向量提取;
步骤3:把提取的特征向量传入到自注意力机制层,最终得到编码序列;
步骤4:把编码序列传入到全连接层,得到预测结果;
步骤5:计算膨胀门卷积神经网络模型的损失函数,采用adam优化器对损失函数进行优化,当损失函数最小时,完成模型的训练。
进一步的,对膨胀门一维卷积层处理数据的公式为:
进一步的,膨胀门卷积神经网络模型共使用了12层膨胀门卷积,膨胀率依次为[1,2,5,1,2,5,1,2,5,1,1,1],即对文本数据进行三次膨胀率为[1,2,5]的膨胀卷积操作,使文本信息的颗粒度从细到粗反复学习;采用膨胀率为[1,1,1]的膨胀门卷积对提取的特征进行细颗粒度精调,得到特征向量。
进一步的,对数据进行膨胀卷积的公式为:
σ=σ(conv1d2(x))
优选的,计算自注意力权重的公式为:
a=softmax(wl2tanh(wl1h))
优选的,采用双向lstm对编码序列进行处理的过程包括:
步骤1:对编码序列进行随机采样,得到一个标注的主实体,预测时逐一遍历所有标注的主实体,得到主实体的子序列。
步骤2:将编码序列中对应主实体的子序列输入到前向lstm和后项lstm中,得到前向隐藏状态和后向隐藏状态;
步骤3:将前向隐藏状态和后向隐藏状态进行组合,得到组合以后的编码序列。
优选的,采用“半指针-半标注”的方法对拼接后的向量进行抽取的过程包括获取训练样本集中的构建的三元组知识库,所述三元组知识库包括文本数据的客体与实体的关系;获取输入数据文本的主体特征subject,判断该主体特征是否在三元组知识库中存在,若存在,则将该主体特征对应的位置标记为1,否则标记为0;根据标记结果,构建0/1向量;将0/1向量拼接到编码向量序列中,将拼接后的编码向量序列与三元组知识库进行对比,得到该文本数据的主实体关系;获取输入数据文本的客体特征,根据三元组知识库将客实体的对应关系构建一个0/1向量,将该0/1向量拼接到编码向量序列,将拼接后的向量与三元组知识库对比,得到该文本数据的客实体关系。
本发明有益技术效果如下:
(1)本发明属于自然语言处理领域,具有轻量级实体关系抽取的特点,能够将满足schema限制的实体关系进行抽取。
(2)提出了门控神经网络算法,门控机制通过引入更新门与重置门,有效地解决了rnn网络在训练过程中的梯度消失问题。相较lstm而言,门控机制精简了网络结构,减少了模型参数,提升了模型训练速度。门控网络可以学习词语在句子中的长期依赖关系,更好地对文本进行建模。
(3)提出了膨胀卷积神经网络算法,膨胀卷积能够扩展字符上下文宽度,堆叠的膨胀卷积神经网络能够更好地提取整个文本序列的全局信息,进而更好地理解文本语义,并且随着卷积神经网络层数的加深,会出现过拟合现象,而在膨胀卷积神经网络中能够有效缓解这种过拟合情况。
(4)根据主体去抽取客体与对应关系,运用膨胀网络以及注意力机制可以解决普通卷积神经网络的过拟合问题,还能结合上下文的关系进行语义分析。
附图说明
图1为本发明的一种基于膨胀门卷积神经网络的结构示意图。
图2为本发明的字词向量混合的结构示意图。
图3为本发明的残差与门卷积神经网络结合的结构示意图。
图4为本发明的普通卷积神经网络与膨胀卷积神经网络的对比示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种基于膨胀门卷积神经网络的文本关系抽取方法,如图1所示,该方法包括:
s1:实时获取文本信息数据;
s2:将获取的文本信息进行分字、分词处理,得到字词混合向量和位置向量;
s3:将字词混合向量和位置向量分别输入到训练好的膨胀门卷积神经网络模型中进行编码,得到编码序列;
s4:采用自注意力机制对编码序列进行处理,通过“半指针-半标注”的方法对经过自注意力机制的编码序列进行主实体抽取;
s5:采用双向lstm对编码序列进行处理,将处理结果与位置向量进行融合,得到与输入序列等长的向量序列;
s6:采用自注意力机制对编码序列进行处理,并将处理后的结果与向量序列进行拼接;采用“半指针-半标注”的方法对拼接后的向量进行抽取,得到客实体;
s7:将主实体和客实体进行组合,得到文本关系。
在对文本信息进行分字、分词的预处理过程中,为了最大程度上避免边界切分出错,选择字标注的方式,即以字为基本单位进行输入。由于单纯的字embedding难以储存有效的语义信息,即单个字是没有语义的,为了更有效地融入语义信息,本发明将“字词混合embedding”。为了得到跟字向量对齐的词向量序列,将每个词的词向量重复“词的字数”那么多次;得到对齐的词向量序列后,将词向量序列经过一个矩阵变换到跟字向量一样的维度,并将两者相加。
如图2所示,对文本数据的字向量和词向量进行混合的具体过程包括:
本发明以字为单位的文本序列,经过一个字embedding层后得到字向量序列;然后将文本分词,通过一个预训练好的word2vec模型来提取对应的词向量,然后将每个词的词向量重复得到跟字向量对齐的词向量序列;得到对齐的词向量序列后,我们将词向量序列经过一个矩阵变换到跟字向量一样的维度,并将两者相加。
位置向量能有效的判断实体的位置关系,从而更容易抽取主实体和客实体。加入位置信息的一个有效信息是positionembedding。具体做法包括:设定一个最大长度为512的文本信息;对文本信息进行全零初始化,得到一个新的embedding层,该层的维度跟字向量维度相同;确定文本信息的位置id,将该文本输入embedding层,输出对应的positionembedding,并把这个positionembedding加到前面的字词混合embedding中,作为完整的embedding结果,传入到下述dgcnn编码中。位置向量计算的公式如下:
其中,pe2i(p)表示词向量的位置编码,p表示词向量在序列中的位置,
对膨胀门卷积神经网络模型进行训练的过程包括:
步骤1:获取原始文本数据集,对原始文本数据集中的文本数据进行预处理,得到文本训练集;
步骤2:将训练集中的文本数据输入到膨胀门卷积神经网络模型的膨胀门卷积层中,进行特征向量提取;
对膨胀门一维卷积层处理数据的公式为:
其中,conv1d1(.)表示一维卷积,x表示需要处理的向量序列,
步骤3:把提取的特征向量传入到自注意力机制层,最终得到编码序列;
步骤4:把编码序列传入到全连接层,得到预测结果;将预测结果存入三元组知识库。
优选的,膨胀门卷积神经网络模型共使用了12层膨胀门卷积,膨胀率依次为[1,2,5,1,2,5,1,2,5,1,1,1],即对文本数据进行三次膨胀率为[1,2,5]的膨胀卷积操作,使文本信息的颗粒度从细到粗反复学习;采用膨胀率为[1,1,1]的膨胀门卷积对提取的特征进行细颗粒度精调,得到特征向量。
步骤5:计算膨胀门卷积神经网络模型的损失函数,采用adam优化器对损失函数进行优化,当损失函数最小时,完成模型的训练。
如图3所示,将得到的字词混合向量和位置向量输入到膨胀门卷积神经网络模型中。由于门控卷积机制中有一个卷积是不加任意激活函数的,没加激活函数的这部分卷积不容易梯度消失,从而门控卷积机制能使梯度消失的风险更低。如果输入和输出的维度大小一致,采用残差结构对输入的向量和输出的向量进行处理,使得信息能够在多通道传输。其中残差结构公式如下:
σ=σ(conv1d2(x))
其中,conv1d1(.)表示一维卷积,x表示需要处理的向量序列,
如图4所示,膨胀卷积能够扩展字符上下文宽度,堆叠的膨胀卷积神经网络能够更好地提取整个文本序列的全局信息,进而更好地理解文本语义。随着卷积神经网络层数的加深,会出现过拟合现象,而在膨胀卷积神经网络中能够有效缓解过拟合状况。
将膨胀门卷积模型得到的编码序列传入到一层注意力机制中,自注意力计算权重公式如下:
a=softmax(wl2tanh(wl1h))
其中,a表示自注意力权重,wl1表示第一个线性神经层的权重矩阵,wl2表示第二个线性神经层的权重矩阵,tanh为激活函数,softmax函数是归一化指数函数。权重矩阵wl1和wl2是通过自注意力层的线性神经网络层学习得到。
将从自注意力层输出的结果传入到卷积神经网络的全连接层,预测出啊主实体subject的首尾位置。
在训练模型时,随机采样一个标注的subject,预测时逐一遍历所有的subject,然后将第二步得到的编码序列对应此subject的子序列传入到一个双向lstm中,得到subject的编码向量,然后加上相对位置的positionembedding,得到一个与输入序列等长的向量序列。
采用双向lstm对编码序列进行处理的过程包括:
步骤1:对编码序列进行随机采样,得到一个标注的主实体,预测时逐一遍历所有标注的主实体,得到主实体的子序列。
步骤2:将编码序列中对应主实体的子序列输入到前向lstm和后项lstm中,得到前向隐藏状态和后向隐藏状态;
步骤3:将前向隐藏状态和后向隐藏状态进行组合,得到组合以后的编码序列。
将编码序列对应主实体的子序列传入到一个双向的lstm,双向lstm的结构由向前和向后的lstm组合而成,其中,向前的lstm可以根据前序信息影响后序信息,而向后的lstm可以通过后序信息影响前序信息。
将编码序列输入到另外一层自注意机制中,所得结果与上述的向量序列进行拼接,将拼接以后的序列传入到卷积神经网络的全连接层,对于每一种关系predicate利用“半指针-半标注”的方法抽取出对应的客实体object。
采用“半指针-半标注”的方法对拼接后的向量进行抽取的过程包将获取训练样本集中的构建的三元组知识库,所述三元组知识库包括文本数据的客体与实体的关系;获取输入数据文本的主体特征subject,判断该主体特征是否在三元组知识库中存在,若存在,则将该主体特征对应的位置标记为1,否则标记为0;根据标记结果,构建0/1向量;将0/1向量拼接到编码向量序列中,将拼接后的编码向量序列与三元组知识库进行对比,得到该文本数据的主实体关系;获取输入数据文本的客体特征,根据三元组知识库将客实体的对应关系构建一个0/1向量,将该0/1向量拼接到编码向量序列,将拼接后的向量与三元组知识库对比,得到该文本数据的客实体关系。
在损失函数选择上,由于是一个分类任务,然后损失函数选择交叉熵,损失函数公式为:
其中,
主题subject的预测只有两个2分类,而预测主题object的同时还预测了主体与客体之间的关系predicate,所以object的预测实际上有100=50×2个2分类,但它们的损失函数依然按照1:1相加。换句话说,按照损失函数loss的绝对值来看,object的loss是subject的loss的50倍。
本发明采用adam优化器对模型进行训练,先用10-3的学习率训练不超过50个epoch,即在进行模型训练过程中,对模型进行不超过50期的训练;然后加载训练的最优结果,再用10-4的学习率继续训练到最优。为了保证训练结果稳定提升,采用权重滑动平均ema的方法对模型中的权重进行平均运算,滑动平均的公式为:
φn 1=δφn (1-δ)θn 1
其中φ表示最后经过ema处理后得到的参数值,θ表示当前epoch轮次的参数值,δ表示衰减率,本发明中衰减率取0.999。
以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种基于膨胀门卷积神经网络的文本关系抽取方法,其特征在于,包括:
s1:实时获取文本信息数据;
s2:将获取的文本信息进行分字、分词处理,得到字词混合向量和位置向量;
s3:将字词混合向量和位置向量分别输入到训练好的膨胀门卷积神经网络模型中进行编码,得到编码序列;
s4:采用自注意力机制对编码序列进行处理,通过“半指针-半标注”的方法对经过自注意力机制的编码序列进行主实体抽取;
s5:采用双向lstm对编码序列进行处理,将处理结果与位置向量进行融合,得到与输入序列等长的向量序列;
s6:采用自注意力机制对编码序列进行处理,并将处理后的结果与向量序列进行拼接;采用“半指针-半标注”的方法对拼接后的向量进行抽取,得到客实体;
s7:将主实体和客实体进行组合,得到文本关系。
2.根据权利要求1所述的一种基于膨胀门卷积神经网络的文本关系抽取方法,其特征在于,求取位置向量的公式为:
其中,pe2i(p)表示词向量的位置编码,p表示词向量在序列中的位置,
3.根据权利要求1所述的一种基于膨胀门卷积神经网络的文本关系抽取方法,其特征在于,对膨胀门卷积神经网络模型进行训练的过程包括:
步骤1:获取原始文本数据集,对原始文本数据集中的文本数据进行预处理,得到文本训练集;
步骤2:将训练集中的文本数据输入到膨胀门卷积神经网络模型的膨胀门卷积层中,进行特征向量提取;
步骤3:把提取的特征向量传入到自注意力机制层,最终得到编码序列;
步骤4:把编码序列传入到全连接层,得到预测结果;将预测结果存入三元组知识库;所述预测结果为输入文本数据的客体与实体关系;若客体与实体有关系,则将该文本标记为1,若客体与实体无关,则将该文本标记为0;
步骤5:计算膨胀门卷积神经网络模型的损失函数,采用adam优化器对损失函数进行优化,当损失函数最小时,完成模型的训练。
4.根据权利要求3所述的一种基于膨胀门卷积神经网络的文本关系抽取方法,其特征在于,对膨胀门一维卷积层处理数据的公式为:
其中,conv1d1(.)表示一维卷积,x表示需要处理的向量序列,
5.根据权利要求3所述的一种基于膨胀门卷积神经网络的文本关系抽取方法,其特征在于,膨胀门卷积神经网络模型共使用了12层膨胀门卷积,膨胀率依次为[1,2,5,1,2,5,1,2,5,1,1,1],即对文本数据进行三次膨胀率为[1,2,5]的膨胀卷积操作,使文本信息的颗粒度从细到粗反复学习;采用膨胀率为[1,1,1]的膨胀门卷积对提取的特征进行细颗粒度精调,得到特征向量。
6.根据权利要求3所述的一种基于膨胀门卷积神经网络的文本关系抽取方法,其特征在于,损失函数的表达式为:
其中,
7.根据权利要求1所述的一种基于膨胀门卷积神经网络的文本关系抽取方法,其特征在于,在采用自注意力机制对编码序列进行处理前,采用残差网络和门控卷积对数据进行处理,得到具有文本关系的编码序列;采用残差网络与门控卷积对编码序列进行处理的公式为:
σ=σ(conv1d2(x))
其中,conv1d1(.)表示一维卷积,x表示待处理的编码序列,
8.根据权利要求1所述的一种基于膨胀门卷积神经网络的文本关系抽取方法,其特征在于,计算自注意力权重的公式为:
a=softmax(wl2tanh(wl1h))
其中,a表示自注意力权重,wl1表示第一个线性神经层的权重矩阵,wl2表示第二个线性神经层的权重矩阵,tanh为激活函数,softmax函数是归一化指数函数。
9.根据权利要求1所述的一种基于膨胀门卷积神经网络的文本关系抽取方法,其特征在于,采用双向lstm对编码序列进行处理的过程包括:
步骤1:对编码序列进行随机采样,得到一个标注的主实体,预测时逐一遍历所有标注的主实体,得到主实体的子序列。
步骤2:将编码序列中对应主实体的子序列输入到前向lstm和后项lstm中,得到前向隐藏状态和后向隐藏状态;
步骤3:将前向隐藏状态和后向隐藏状态进行组合,得到组合以后的编码序列。
10.根据权利要求1所述的一种基于膨胀门卷积神经网络的文本关系抽取方法,其特征在于,采用“半指针-半标注”的方法对拼接后的向量进行抽取的过程包括获取训练样本集中的构建的三元组知识库,所述三元组知识库包括文本数据的客体与实体的关系;获取输入数据文本的主体特征subject,判断该主体特征是否在三元组知识库中存在,若存在,则将该主体特征对应的位置标记为1,否则标记为0;根据标记结果,构建0/1向量;将0/1向量拼接到编码向量序列中,将拼接后的编码向量序列与三元组知识库进行对比,得到该文本数据的主实体关系;获取输入数据文本的客体特征,根据三元组知识库将客实体的对应关系构建一个0/1向量,将该0/1向量拼接到编码向量序列,将拼接后的向量与三元组知识库对比,得到该文本数据的客实体关系。
技术总结