一种融合多知识图谱的神经网络文本分类方法与流程

文档序号:16248657发布日期:2018-12-11 23:48阅读:353来源:国知局
一种融合多知识图谱的神经网络文本分类方法与流程

本发明涉及自然语言处理及数据挖掘技术领域,特别是一种融合多知识图谱的神经网络文本分类方法。

背景技术

文本分类(textcategorization)技术是信息检索和文本挖掘的重要基础,其主要任务是在预先给定的类别标记(label)集合下,根据文本内容判定它的类别。文本分类在自然语言处理与理解、信息组织与管理、内容信息过滤等领域都有着广泛的应用。近年来,利用深度学习来建立语言模型的研究思路逐渐走向成熟,大大提升了文本的特征质量。有学者最早提出一种基于卷积神经网络的句子分类模型,通过卷积层对预训练的词向量矩阵进行特征提取,利用梯度下降法优化网络权重参数,达到优于传统基于机器学习分类方法的分类精度;有学者提出一种对句子建模的深度神经网络模型,底层通过组合邻近的词语信息,逐步向上传递,上层则又组合新的phrase信息,从而使得句子中即使相离较远的词语也有交互行为;有学者提出一种结合卷积神经网络和循环神经网络的网络模型,利用循环神经网络的结构得到词的上下文信息,将词本身与其上下文视为一个整体,共同参与卷积层的特征提取以及输出层的分类;有学者提出一种结合大型的分类知识库probase于卷积神经网络的分类模型,将一个短文本概念化为一组相关概念,然后,在预训练的词向量上,通过合并词与相关概念得到短文本的嵌入;有学者提出一种增强模型,运用知识图谱来进行nlp任务,运用注意力机制来从知识图谱中提取与任务相关的事实三元组。

目前借助知识图谱来增强深度神经网络语义建模的研究还相对较少,且这些研究在知识图谱中的信息与训练集文本的结合匹配上还较为粗糙,容易导致引入过多与训练集文本内容不相关的知识图谱信息,从而形成噪声,影响建模。此外,目前的研究工作大多只考虑单一知识图谱上的建模,可能无法更多的覆盖到训练集文本的内容,而不同知识图谱之间的信息可以相互补充,相对于单一知识图谱,多知识图谱可以覆盖更多训练集文本内容。



技术实现要素:

本发明的目的在于提供一种融合多知识图谱的神经网络文本分类方法,该方法提升了模型对文本语义的理解,可以更可靠、准确且鲁棒地对文本内容进行分类。

为实现上述目的,本发明的技术方案是:一种融合多知识图谱的神经网络文本分类方法,包括以下步骤:

步骤a:将训练集中文本输入至长短期记忆网络中,得到文本的上下文向量;

步骤b:对训练集中各文本抽取实体,在知识图谱中进行实体匹配;

步骤c:计算步骤b中匹配到的各实体在步骤a中得到的上下文向量下的注意力权重,得到文本的总体实体向量,同时,计算知识图谱中各关系在所述上下文向量下的注意力权重,得到文本的总体关系向量,进而得到事实三元组向量;

步骤d:在不同知识图谱中重复步骤b、c,得到不同知识图谱下的事实三元组向量,计算这些事实三元组在步骤a中得到的上下文向量下的注意力权重,得到最终的文本表征向量,将所述文本表征向量输入到神经网络的全连接层,使用分类器计算各文本属于各类别的概率来训练网络;

步骤e:利用训练好的深度神经网络模型预测待预测文本所属类别,取概率最大的类别作为预测的类别输出。

进一步地,所述步骤a中,将训练集中文本输入至长短期记忆网络中,得到文本的上下文向量,包括以下步骤:

步骤a1:对任一文本d,进行分词处理,并使用词嵌入工具将文本中的词转为词向量形式,计算公式如下:

v=w·v′

其中,文本中每个词随机初始化为一个d’维的实数向量v’;w为词嵌入矩阵,w∈rd×d′,由大规模语料在神经网络语言模型中训练得到,用于将d’维实数向量投射为d维词向量;v∈rd,表示词向量,d为词向量的维度;

步骤a2:对于文本d,将构成句子的词看作一个时序序列,将词向量按照词序依次输入到一个双向的长短期记忆网络中,对于长短期记忆网络的正向,依次输入x1,x2,...,xn,对于长短期记忆网络的反向,则依次输入xn,xn-1,...,x1,其中,xn表示文本中第n个词的词向量,n为文本d中词的个数;计算每个词在正向和反向的隐层状态值,将这些隐层状态值求平均,乘以权重矩阵,最后使用激活函数得到文本d的上下文向量,计算公式如下:

c=relu(otwc)

其中,xt为文本中第t个词的词向量,表示文本d中第t个词的在正向长短期记忆网络中的隐层状态向量,表示文本d中第t个词在反向长短期记忆网络中的隐层状态向量,f为长短期记忆网络中对隐层状态的计算函数,ht为正向和反向状态向量的串联,o为隐层状态的平均值向量,ot为向量o的转置向量,wc为权重参数矩阵,relu为使用的激活函数,c为文本的上下文向量。

进一步地,所述步骤b中,对训练集中各文本抽取实体,在知识图谱中进行实体匹配,包括以下步骤:

步骤b1:对于每一分词后的训练文本d,对其进行词性标注,取其中的名词及名词短语,构成集合s,对于集合s中的每一个元素si,利用crosswikis数据集,从中得到名词或名词短语si到实体列表的映射,所述实体列表指实体及其各自别名,即通过crosswikis得到集合ei表示以si为名称或别名在crosswikis中匹配到的第i个实体,eij表示实体ei在crosswikis中的第j个别名,m是以si为名称或别名在crosswikis中匹配到的实体的个数,nm表示第m个实体的别名个数;设当前使用的知识图谱为kg,对于集合s中的元素,大部分都能从crosswikis中匹配到实体,对于不能从crosswikis中匹配到实体的s’i,则在当前知识图谱kg中按照字面进行实体匹配,得到在kg中的实体集合{e’1,e’2,…,e’k},e’k表示在当前知识图谱kg中,对不存在于kg中的实体按照字面进行实体匹配,得到的第k个实体;将得到的所有实体e’1,e’2,…,e’k构成一个集合,记为es;

步骤b2:计算给定s条件下各实体e的置信分数:

对于集合s中的元素s及s所对应的实体集合es中的元素e,其中s为si或s’i,e为ei、eij或e’i,对于存在于crosswikis中的实体ei,crosswikis给出了给定si条件下,得到实体ei或eij的概率p(ei|si)或p(eij|si)作为实体ei或eij的置信分数;对于不存在于crosswikis中的实体e’i,利用使概率值最大的实体emax及词的流行度推算概率值p(e’i|s’i),计算公式如下:

p(ei′|si′)=p(emax|si′)·pop(ei′)/pop(emax)

其中,emax表示使p(e|s)值最大的实体,pop为实体词的流行度,通过统计该词在大规模英文网页语料数据集clueweb12上的频数得到。

进一步地,所述步骤c中,计算匹配到的各实体在得到的上下文向量下的注意力权重,得到文本的总体实体向量,同时,计算知识图谱中各关系在上下文向量下的注意力权重,得到文本的总体关系向量,进而得到事实三元组向量,包括以下步骤:

步骤c1:借助预训练的知识图谱嵌入,得到步骤b中匹配到的各实体对应的向量表示,计算这些实体向量在步骤a中得到的上下文向量下的注意力权重,然后对这些实体向量加权求和,得到文本的总体实体向量,计算公式如下:

其中,es为文本d所匹配到的所有实体的集合,|e|为集合中实体的个数,ei为e中的第i个实体的在当前知识图谱嵌入中的向量表示,为ei的置信分数,为ei在上下文c下的注意力权重,ed为文本d的总体实体向量;

步骤c2:借助预训练的知识图谱嵌入,得到当前知识图谱中的所有关系对应的向量表示,计算这些关系向量在步骤a中得到的上下文向量下的注意力权重,然后对这些关系向量加权求和,得到文本的总体关系向量,计算公式如下:

其中,r为当前知识图谱中的关系集合,|r|为集合中关系的个数,ri为当前知识图谱的第i个关系的向量表示,为关系向量ri在上下文c下的注意力权重,rd为文本d的总体关系向量;

步骤c3:利用步骤c1、c2得到的文本的总体实体向量和总体关系向量,计算当前知识图谱的事实三元组向量,计算公式如下:

f=[ed,rd,ed+rd]

其中,f表示当前知识图谱的事实三元组,其中,ed为知识图谱事实三元组中的主实体,rd为知识图谱事实三元组中的关系,由于知识图谱嵌入使用基于transe模型,在该模型中,有主实体+关系=客实体的关系,因此,ed+rd为知识图谱事实三元组中的客实体。

进一步地,所述步骤d中,在不同知识图谱中重复步骤b、c,得到不同知识图谱下的事实三元组向量,计算这些事实三元组在步骤a中得到的上下文向量下的注意力权重,得到最终的文本表征向量,将所述文本表征向量输入到全连接层,使用分类器计算各文本属于各类别的概率来训练网络,包括以下步骤:

步骤d1:在不同知识图谱中重复步骤b、c,得到不同知识图谱下的事实三元组向量,计算这些事实三元组在步骤a中得到的上下文向量下的注意力权重,然后对这些事实三元组向量加权求和,得到最终的文本表征向量,计算公式如下:

其中,g为知识图谱的个数,为第i个知识图谱的事实三元组fi的注意力权重,p为最终的文本表征向量;

步骤d2:将文本特征向量输入到全连接层,并使用softmax归一化,计算文本属于各类别的概率,计算公式如下:

y=fdense(wdense·p+bdense)

其中,wdense为全连接层权重矩阵,bdense为偏置项,fdense为激活函数,y为文本表征向量p经过全连接层非线性转换的特征向量,向量维度为l,yi为y的第i维,p(yi)为预测为类别i的概率,0≤p(yi)≤1,l为类别的总数;

步骤d3:以对数似然函数为损失函数,通过随机梯度下降优化方法,利用方向传播迭代更新模型参数,以最小化损失函数来训练模型,计算公式如下:

其中,dtrain表示训练集,x为训练集中的文本,y为x的真实类别,θ表示模型参数。

相较于现有技术,本发明的有益效果是:利用知识图谱,对文本中所包含的实体,在知识图谱中进行实体匹配,获得上下文向量下的注意力权重,同时计算知识图谱中各关系,得到在上下文向量下的注意力权重,得到文本的总体实体向量,通过在不同知识图谱中所获得的文本实体向量得到最终的文本表征向量,从而提升了模型对文本的语义的理解,更可靠准确且鲁棒地对文本内容进行分类。

附图说明

图1是本发明实施例的实现流程图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的详细说明。

图1是本发明一种融合多知识图谱的神经网络文本分类方法的实现流程图。如图1所示,该方法包括以下步骤:

步骤a:将训练集中文本输入至长短期记忆网络中,得到文本的上下文向量。具体包括以下步骤:

步骤a1:对任一文本d,进行分词处理,并使用词嵌入工具将文本中的词转为词向量形式,计算公式如下:

v=w·v′

其中,文本中每个词随机初始化为一个d’维的实数向量v’;w为词嵌入矩阵,w∈rd×d′,由大规模语料在神经网络语言模型中训练得到,用于将d’维实数向量投射为d维词向量;v∈rd,表示词向量,d为词向量的维度;

步骤a2:对于文本d,将构成句子的词看作一个时序序列,将词向量按照词序依次输入到一个双向的长短期记忆网络中,对于长短期记忆网络的正向,依次输入x1,x2,...,xn,对于长短期记忆网络的反向,则依次输入xn,xn-1,...,x1,其中,xn表示文本中第n个词的词向量,n为文本d中词的个数;计算每个词在正向和反向的隐层状态值,将这些隐层状态值求平均,乘以权重矩阵,最后使用激活函数得到文本d的上下文向量,计算公式如下:

c=relu(otwc)

其中,xt为文本中第t个词的词向量,表示文本d中第t个词的在正向长短期记忆网络中的隐层状态向量,表示文本d中第t个词在反向长短期记忆网络中的隐层状态向量,f为长短期记忆网络中对隐层状态的计算函数,ht为正向和反向状态向量的串联,o为隐层状态的平均值向量,ot为向量o的转置向量,wc为权重参数矩阵,relu为使用的激活函数,c为文本的上下文向量。

步骤b:对训练集中各文本抽取实体,在知识图谱中进行实体匹配。具体包括以下步骤:

步骤b1:对于每一分词后的训练文本d,对其进行词性标注,取其中的名词及名词短语,构成集合s,对于集合s中的每一个元素si,利用crosswikis数据集,从中得到名词或名词短语si到实体列表的映射,所述实体列表指实体及其各自别名,即通过crosswikis得到集合ei表示以si为名称或别名在crosswikis中匹配到的第i个实体,eij表示实体ei在crosswikis中的第j个别名,m是以si为名称或别名在crosswikis中匹配到的实体的个数,nm表示第m个实体的别名个数;设当前使用的知识图谱为kg,对于集合s中的元素,大部分都能从crosswikis中匹配到实体,对于不能从crosswikis中匹配到实体的s’i,则在当前知识图谱kg中按照字面进行实体匹配,得到在kg中的实体集合{e’1,e’2,…,e’k},e’k表示在当前知识图谱kg中,对不存在于kg中的实体按照字面进行实体匹配,得到的第k个实体;将得到的所有实体e’1,e’2,…,e’k构成一个集合,记为es;

步骤b2:计算给定s条件下各实体e的置信分数:

对于集合s中的元素s及s所对应的实体集合es中的元素e,其中s为si或s’i,e为ei、eij或e’i,对于存在于crosswikis中的实体ei,crosswikis给出了给定si条件下,得到实体ei或eij的概率p(ei|si)或p(eij|si)作为实体ei或eij的置信分数;对于不存在于crosswikis中的实体e’i,利用使概率值最大的实体emax及词的流行度推算概率值p(e’i|s’i),计算公式如下:

p(ei′|si′)=p(emax|si′)·pop(ei′)/pop(emax)

其中,emax表示使p(e|s)值最大的实体,pop为实体词的流行度,通过统计该词在大规模英文网页语料数据集clueweb12上的频数得到。

步骤c:计算步骤b中匹配到的各实体在步骤a中得到的上下文向量下的注意力权重,得到文本的总体实体向量,同时,计算知识图谱中各关系在所述上下文向量下的注意力权重,得到文本的总体关系向量,进而得到事实三元组向量。具体包括以下步骤:

步骤c1:借助预训练的知识图谱嵌入,得到步骤b中匹配到的各实体对应的向量表示,计算这些实体向量在步骤a中得到的上下文向量下的注意力权重,然后对这些实体向量加权求和,得到文本的总体实体向量,计算公式如下:

其中,es为文本d所匹配到的所有实体的集合,|e|为集合中实体的个数,ei为e中的第i个实体的在当前知识图谱嵌入中的向量表示,为ei的置信分数,为ei在上下文c下的注意力权重,ed为文本d的总体实体向量;

步骤c2:借助预训练的知识图谱嵌入,得到当前知识图谱中的所有关系对应的向量表示,计算这些关系向量在步骤a中得到的上下文向量下的注意力权重,然后对这些关系向量加权求和,得到文本的总体关系向量,计算公式如下:

其中,r为当前知识图谱中的关系集合,|r|为集合中关系的个数,ri为当前知识图谱的第i个关系的向量表示,为关系向量ri在上下文c下的注意力权重,rd为文本d的总体关系向量;

步骤c3:利用步骤c1、c2得到的文本的总体实体向量和总体关系向量,计算当前知识图谱的事实三元组向量,计算公式如下:

f=[ed,rd,ed+rd]

其中,f表示当前知识图谱的事实三元组,其中,ed为知识图谱事实三元组中的主实体(subjectentity),rd为知识图谱事实三元组中的关系(relation),由于知识图谱嵌入使用基于transe模型,在该模型中,有主实体+关系=客实体(subjectentity+relation=objectentity)的关系,因此,ed+rd为知识图谱事实三元组中的客实体(objectentity)。

步骤d:在不同知识图谱中重复步骤b、c,得到不同知识图谱下的事实三元组向量,计算这些事实三元组在步骤a中得到的上下文向量下的注意力权重,得到最终的文本表征向量,将所述文本表征向量输入到神经网络的全连接层,使用分类器计算各文本属于各类别的概率来训练网络。具体包括以下步骤:

步骤d1:在不同知识图谱中重复步骤b、c,得到不同知识图谱下的事实三元组向量,计算这些事实三元组在步骤a中得到的上下文向量下的注意力权重,然后对这些事实三元组向量加权求和,得到最终的文本表征向量,计算公式如下:

其中,g为知识图谱的个数,为第i个知识图谱的事实三元组fi的注意力权重,p为最终的文本表征向量;

步骤d2:将文本特征向量输入到全连接层,并使用softmax归一化,计算文本属于各类别的概率,计算公式如下:

y=fdense(wdense·p+bdense)

其中,wdense为全连接层权重矩阵,bdense为偏置项,fdense为激活函数,y为文本表征向量p经过全连接层非线性转换的特征向量,向量维度为l,yi为y的第i维,p(yi)为预测为类别i的概率,0≤p(yi)≤1,l为类别的总数;

步骤d3:以对数似然函数为损失函数,通过随机梯度下降优化方法,利用方向传播迭代更新模型参数,以最小化损失函数来训练模型,计算公式如下:

其中,dtrain表示训练集,x为训练集中的文本,y为x的真实类别,θ表示模型参数。

步骤e:利用训练好的深度神经网络模型预测待预测文本所属类别,取概率最大的类别作为预测的类别输出。

以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1