1.本发明涉及一种基于知识图谱的生成式常识推理方法,属于互联网与人工智能技术领域。
背景技术:2.随着互联网技术的发展,常识证据推理领域已经吸引越来越多研究者的目光,目前该领域与很多下游任务关系十分紧密。但其本身是一项极具挑战性的工作,相关算法需要聚合上下文当中不同类型的分散信息,并根据这些已有信息发现其内在联系,最后获得推断的结果。推理过程一般需要使用外部常识背景知识图谱使算法能够掌握隐式关系信息,但目前该领域还存在一些亟待解决的问题:很多方法通过引入外部知识图谱提升算法的表现,但只是查询与题干相关的显式信息,再把显式信息与题干当中的信息进行简单融合处理后投入后续的模块当中进行联合计算,没有进行有效的隐式证据推理提升证据的覆盖范围;很多方法通过双向lstm等模型只考虑简单的场景,对于需要使用已有常识进行推理的场景缺乏深入的考虑,不能应对较为复杂的多跳场景,没有考虑关系表示的学习与更新,忽略关系当中蕴含的深层次信息;很多方法生成的语句受各类因素的影响与限制,生成的证据信息逻辑性不强,与人类正常的语言交流差距很大。同时部分证据使用词汇不够丰富,语句相对结构简单,可读性不强,包含的信息量有限。
技术实现要素:3.针对现有技术当中存在的问题与不足,本发明提出一个基于知识增强的推理模型(knowledge-augment joint text and graph transformer for commonsense reasoning)提升方法的表示学习能力和推理能力,使得模型取得良好的生成与推理效果。
4.为实现上述发明目的,本发明的技术方案如下:通过构建一个基于文本transformer和图transformer的知识增强推理模型,加强文本特征与知识特征之间的交互,从而增强模型的表示学习与推理能力,并利用图神经网络实现信息的更新与传递,提升对于实体与关系的表示学习。该方法主要包括四个步骤,具体如下:
5.步骤1:获取给定文本当中的关键词信息。首先通过关键词提取算法获得文本当中包含的关键词信息,以实现在特定文本当中寻找推理可以使用的逻辑出发点。并利用上述关键词在知识图谱当中寻找关键词之间的路径联系,构建知识推理图;
6.步骤2:获得关键词信息的文本表示。将步骤1当中获得关键词输入编码器进行文本编码,获取上下文相关的语义信息和获得知识增强的文本表示,并在知识图谱的实体编码基础上使用图神经网络实现实体节点表示更新,对实体之间的关系也进行动态更新;
7.步骤3:根据编码结果对当前词产生的潜在值进行特征表示。使用解码器对步骤2获得的文本表示进行解码,预测特定位置的词汇信息,获得来自文本和知识的具体特征信息;
8.步骤4:使用步骤3获得的信息进行生成推理结果并进行模型训练。
9.相对于现有技术,本发明的优点如下:
10.(1)本发明使用一种联合编码的方法,该方法既利用当下主流预训练模型上下文感知的编码方式,又利用外部知识图谱相关信息进行编码的更新,将外部知识直接引入到编码层,实现隐式知识推理的效果;
11.(2)本发明通过已有信息和知识图谱,构建一个新的隐式知识推理图。在表示节点属性时将隐式知识推理图当中的关系表示与节点实体表示相结合,共同参与学习进行表示更新,解决以往方法关系表示固定的问题;
12.(3)本发明将知识图谱当中的知识信息与transformer模型编码器-解码器的结构结合,设计一种基于知识增强的生成模型,融合来自文本的特征信息与来自知识的特征信息,最后生成更符合自然逻辑的证据。
附图说明
13.图1为本发明实施例的方法框架图;
14.图2为本发明实施例中文本编码器框架图;
15.图3为本发明实施例中知识增强的图编码器框架图;
16.图4为本发明实施例中文本解码器框架图;
17.图5为本发明实施例中知识增强的图解码器框架图。
具体实施方式
18.为了加深对本发明的认识和理解,下面结合具体实施例,进一步阐明本发明。
19.实施例:参见图1—图5,一种基于知识图谱的生成式常识推理算法,所述方法包括以下步骤:
20.步骤1,利用给定文本提取关键词并构建推理图,该步骤的实施可以分为以下子步骤:
21.步骤1-1,根据给定关键词语序列本方法需要从q中提取n个关键词并将这些关键词应用到下文所述具体步骤当中。首先,本方法使用natural language toolkit(nltk)对这些文本进行预处理,包括分词、词性标注、词形还原等操作,并去除句子当中的停用词和标点符号等特殊字符,实现提升文本特征质量的效果。接着本文通过n-gram对文本当中的单词进行处理生成单词元组,并使用下划线“_”将同一元组中的单词进行连接成为组合,再根据tf-idf算法(如以下公式所示)评估这些组合在语句当中的重要性,选出重要性前n和前m的组合拆分后作为最终的关键词。
[0022][0023][0024]
tfidf
i,j
=tf
i,j
×
idfiꢀꢀ
(3)
[0025]
其中n
i,j
为元组ti在路径dj当中出现的次数,∑kn
k,j
为路径dj当中三元组的数量之和,|{j:ti∈dj}|为三元组ti出现的总路径数量,|d|为所有路径的总数。
[0026]
子步骤1-2,针对子步骤1-1当中提取出的关键词信息,利用迪杰斯特拉算法找到两个关键词对应节点在知识图谱当中的路径信息。迪杰斯特拉算法的思想为:设图g=(v,e)是一个有向图,其中v是顶点集合,e是边集合。把图中顶点集合v分为两部分,第一组为已求出最短路径的顶点集合(用s表示,初始时s中只有源点,以后每求出一条最短路径,就将顶点加入到s中,直到所有顶点都加入到s中,算法结束),第二组为其余未求出最短路径的顶点集合(用u表示),按最短路径的长度次序依次将第二组中的顶点加入到第一组中。具体方法如下:
[0027]
(1)将关键词在知识图谱当中对应的实体节点作为有向图当中的节点,实体之间的关系视为有向图当中的边,相邻节点之间距离为1;
[0028]
(2)选择一个问题关键词作为源点v。初始时,s中只有源点,即s={v},v的距离为0(到自己的距离为0)。u包含除v外的所有其他顶点,v与u中顶点u距离为1(若v到u存在边)或∞(v到u不存在边);
[0029]
(3)从u中选取一个距离v最小的顶点k加入到s中;
[0030]
(4)以k为新考虑的中间点,修改u中各顶点的距离。若从源点v经过顶点k到顶点u的距离比原来距离(不经过顶点k)短,则修改顶点u的距离,修改后的距离值为顶点k的距离加上1;
[0031]
(5)重复(3)、(4)直到所有的顶点都加入到s中。
[0032]
(6)重复(2)到(5)直到所有问题关键词节点已完成到选项关键词节点最短路径的查询。
[0033]
步骤2,利用步骤1处理后的基于知识图谱的生成式常识推理方法进行训练,该步骤的实施可以分为以下子步骤:
[0034]
子步骤2-1,使用文本编码器进行编码。由于transformer的编码器结构可以获得长序列上下文的依赖关系,本步骤采用该结构作为文本编码器获得上下文相关的语义信息。transformer中的编码器结构并没有使用传统的cnn或rnn等串行方式提取特征,而是大量使用多头注意力机制获取特征并分配权重,因此在实际运行时可以使用并行计算的方法,极大提升计算效率。
[0035]
该编码器由多个相同的编码层组成,每一个编码层又可分为两个子层,分别是多头注意力层(multi-head self-attention layer)和全连接前馈神经网络层(fully connected feed-forward network layer),经过每一层计算后再使用残差连接和层归一化探索深层次的语义信息,计算方式如公式(4)-(6)所示。
[0036]
multihead(q,k,v)=concat(head1,
…
,headh)woꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0037]
headi=attention(qw
iq
,kw
ik
,vw
iv
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0038][0039]
其中wo、w
iq
、w
ik
、w
iv
为待学习的模型参数,dk为向量维度,q、k、v为对应的注意力向量。
[0040]
具体地,有一个关键词序列其中表示该序列中的第i个词。首先进行词嵌入与位置编码,词嵌入将该关键词序列转变为特征空间的词向量表示,而
位置编码则为词向量提供位置信息;然后将编码后的信息输入编码器层当中;在经过n层编码器层叠进行深层次的上下文文本语义特征提取之后,获得对应关键词的语义向量表示eq={x1,
…
,xn}。
[0041]
子步骤2-2,使用知识增强的图编码器编码。使用知识增强的图编码器是为了将知识图谱中的知识信息引入单词表示之中,提升其感知外部信息所包含常识知识的能力,并通过图神经网络结构更新节点的表示信息。图神经网络可以按其图状结构利用知识图谱当中的实体相关信息进行节点更新,将各类知识图谱当中蕴含的隐式关系信息嵌入单词原本的语义表示当中。记eq={x1,
…
,xn}为上一层文本编码器的输出,即作为本知识增强图编码器的输入,其加上知识推理图一起获得更新后的单词表示
[0042]
记中xi对应的节点i的特征表示为ni,本方法将文本编码器输出eq与节点表示相结合,利用图神经网络的信息流动机制,聚合相邻节点的特征信息并更新中心节点的特征表示,获得包含更多信息的节点表示。本方法使用对属性向量进行投影的方法解决不同向量维度空间的问题。具体的初始化方法如公式(7)、(8)所示。
[0043][0044][0045]
其中w
proj
、b
proj
为待学习的算法参数,[;]为拼接操作,e
ij
为节点i与节点j之间关系的向量表示,xi为文本编码后的表示,ni为知识图谱当中的节点i对应的实体表示,为节点i的初始化表示,为节点i与节点j之间关系的初始化向量表示。
[0046]
本方法在进行信息传递时,同时探索相邻节点之间深层次的关系,两个节点之间的关系表示随之同步更新,具体的计算方法如公式(9)-(11)所示。
[0047][0048][0049][0050]
其中wq、wk、wr为待学习的算法参数,ffn为前馈神经网络,dk为向量维度,为节点i在第l层的属性表示,为节点i与节点j之间关系向量在第l层的表示。
[0051]
在第l+1层更新节点i的表示时,通过计算注意力系数s
ij
评估从邻居节点j通过路径传递至节点i信息的重要性。为获得最后的注意力权重并进行比较,此处使用softmax函数对所有的注意力系数进行归一化处理,具体计算如公式(12)-(14)所示。
[0052][0053]
[0054][0055]
其中wc、wj、wk为待学习的算法参数,r
ij
为知识推理图中节点i与节点j之间的关系表示,[;]为拼接操作,为节点i的邻居节点集合,为节点i在第l层的属性表示,为节点i与节点j之间关系向量在第l层的表示。
[0056]
如公式(15)、(16)所示,获得信息聚合的结果后,利用残差连接方法计算并完成节点表示的更新。
[0057][0058][0059]
其中ffn为前馈神经网络,为节点i在第l层的属性表示。
[0060]
记图神经网络当中最后一层节点i的隐藏状态为hi,如公式(17)、(18)所示,此处最后使用线性层和层归一化获得节点i最后的表示
[0061]
ti=w1relu(w2hi)
ꢀꢀ
(17)
[0062][0063]
其中w1、w2为待学习的算法参数,hi为节点i最终的向量表示,xi为字符编码。
[0064]
步骤3,利用步骤2处理后的基于知识图谱的生成式常识推理方法进行训练,该步骤的实施可以分为以下子步骤:
[0065]
子步骤3-1,使用本文解码器解码。本方法采用的文本解码器模块与文本编码器模块结构类似,均是由多个解码层堆叠而成。其中每一个解码层由三个子层组成,分别是带掩码的多头注意力层(masked multi-head self-attention layer)、多头注意力层(multi-head self-attention layer)和全连接前馈神经网络层(fully connected feed-forward network layer)。不同子层之间通过残差连接的方式进行传递计算。与文本编码器的结构相比,此处多加一个带掩码的多头注意力子层,其目的是在训练阶段防止当前位置使用未来输出的单词,例如在预测第i个单词时需要避免使用第i+1个单词,应参考前面已经出现的单词情况。记y为文本解码器层的输出表示。
[0066]
子步骤3-2,使用知识增强的图解码器进行解码。如公式(19)所示,本方法使用实体的向量表示作为图神经网络当中节点的初始化。
[0067][0068]
其中ni为实体的向量表示。
[0069]
与使用固定关系进行节点更新的方法不同,本方法采用关系更新机制探索相邻节点之间的深层次关系表示,并使用残差连接的方式进行更新。具体计算方式如公式(20)-(22)所示。
[0070]
[0071][0072][0073]
其中wq、wk、wr为待学习的算法参数,ffn为前馈神经网络,分别为节点i和节点j在第l层的属性表示,dk为向量的维度。
[0074]
与gat类似,在第l+1层更新节点i的过程中,本方法采用注意力机制通过计算注意力系数衡量相邻节点信息的重要性的程度。为获得最后的注意力权重,本方法使用softmax函数对所有与相邻节点计算获得的注意力系数进行归一化,最后完成中心节点的更新操作。具体的如公式(23)、(24)、(25)所示。
[0075][0076][0077][0078]
其中wc、wj、wi为待学习的算法参数,r
ij
为隐式知识推理图中节点i与节点j之间的关系表示,[;]为拼接操作,分别为节点i和节点j在第l层的属性表示。
[0079]
如公式(26)、(27)所示,获得信息聚合的结果后,利用残差连接机制完成节点表示的更新。
[0080][0081][0082]
其中ffn为前馈神经网络,为节点i在第l层的属性表示。
[0083]
步骤4,利用步骤3处理后表示完成推理并进行模型训练,该步骤的实施可以分为以下子步骤:
[0084]
子步骤4-1,融合来自文本和知识的特征。如公式(28)-(32)所示,使用注意力机制计算来自知识增强的信息:首先将文本解码器的结果y以及节点表示h进行不同的线性映射获得和再将点乘把结果送入softmax函数,获得文本知识与图知识的关系权重;接着用获得的关系权重点乘获得信息最后将所有信息进行拼接,作为来自知识增强的信息表示。
[0085][0086][0087][0088]
[0089][0090]
其中wg为待学习的算法参数,y为文本解码器输出,h为知识增强的图解码器输出,d为向量维度。
[0091]
如公式(33)-(37)所示,使用注意力机制计算来自文本的信息:首先将文本解码器的结果y以及文本编码器的输出xr进行不同的线性映射获得和再将点乘把结果送入softmax函数,获得文本知识的关系权重;接着用获得的关系权重点乘获得信息最后将所有信息进行拼接,作为来自文本的信息表示。
[0092][0093][0094][0095][0096][0097]
其中w
t
为待学习的算法参数,y为文本解码器输出,xr为文本编码器输出,d为向量维度。
[0098]
如公式(38)、(39)所示,本算法根据来自文本的信息表示和来自知识增强的信息表示计算得出最后的概率分布。
[0099]
yr=w
concat
[sg;s
t
]+b
concat
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(38)
[0100]
p
vocab
=softmax(w
predictyr
+b
predict
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(39)
[0101]
其中w
concat
、b
concat
、w
predict
、b
predict
为待学习的算法参数,sg为来自知识的特征,s
t
为来自文本的特征,yr为知识增强的图编码器输出。
[0102]
子步骤4-2,联合训练损失。本实例采用随机初始化的方式对所有的参数进行初始化在训练过程中采用adam优化器进行梯度反向传播来更新模型参数,初始学习率设置为0.001,当训练损失不再下降或训练轮数超过50轮时,模型训练结束,并保存在验证集上表现最好的模型。
[0103]
子步骤4-3,利用训练完毕的模型构建输出模型获取推理结果。输出模型不需要事先构建数据,只需要待进行推理的文本作为输入,该方法会首先进行关键词提取,然后使用上述步骤进行推理,最后输出推理的结果。
[0104]
基于相同的发明构思,本发明实例还提供一种基于知识图谱的生成式常识推理装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被加载至处理器时实现上述基于知识图谱的生成式常识推理方法。
[0105]
应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本技术所附权利要求所限定的范围。