基于知识推理的文本生成方法、介质、装置和计算设备与流程

文档序号:23629214发布日期:2021-01-12 10:43阅读:149来源:国知局
基于知识推理的文本生成方法、介质、装置和计算设备与流程

本发明的实施方式涉及自然语言处理领域,更具体地,本发明的实施方式涉及一种基于知识推理的文本生成方法、介质、装置和计算设备。



背景技术:

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

文本生成技术,旨在通过机器根据一段原文本自动化的产生具有高度可读性的相关文本。这一技术自诞生以来,一直是人工智能领域中的热点课题。文本生成技术可以在有效理解原文本内容的基础上,通过对文字的处理与改造,产生全新的文本。这为人们提供一种更为高效、智能的文本转换模式。人们可以根据自身所需,利用文本生成的方法产生形式和内容多种多样的文本。正是由于文本生成技术的灵活性,学界、工业界在过去一段时间内对其进行了一系列的探索性工作。诸如“智能客服机器人”、“写稿机器人”、“写诗机器人”等应用相继出现,有效地提升了相关行业工作人员的工作效率,节约了人力物力成本。

通过长期的研究工作,文本生成技术已经取得了长足的发展。但是,文本作为信息的一种重要载体,其具有丰富的形式及含义。因此,处理及生成文本的过程中,涉及到大量自然语言处理技术和自然语言理解技术,这也使得文本生成技术成为人工智能领域内的一个难点问题。以往大量有关文本生成技术的成果,还在利用甚至完全依赖人工编写的模板来提升生成的效果。这极大地限制了生成内容的多样性和灵活性。近些年,深度学习模型在文本生成方面取得了巨大的进步,但在实际应用中,仍然存在着一些挑战,其中最为突出的就是:模型生成的文本存在着内容单一、容易重复、可读性差的问题。

近些年,知识图谱领域蓬勃发展。许多深度学习的研究者开始考虑在深度学习模型中引入知识图谱作为外部信息,辅助模型产生更好的生成效果。这其中应用最为广泛的就是利用知识图谱辅助问答系统的建设。问答系统利用深度学习模型接收用户输入之后,在知识图谱中寻找相应的答案,并利用语言模型产生最后的回答。而在文本生成领域,目前也有一些工作使用知识图谱进行生成,但是如何在预训练语言模型的框架下有效融入外部知识的信息来增强其知识感知的生成能力仍然是一个开放性且具有挑战的课题。



技术实现要素:

在本上下文中,本发明的实施方式期望提供一种基于知识推理的文本生成方法、介质、装置和计算设备。

在本发明实施方式的第一方面中,提供了一种基于知识推理的文本生成方法,包括:

采用预训练语言模型对序列文本进行处理,至少得到根据当前上下文信息进行前缀生成得到的解码器隐藏状态以及用于确定当前待生成单词的第一概率分布;

从原始文本中提取特定的概念,以便确定进行知识推理时的多个起始概念节点;

基于从原始文本中提取到的特定的概念,按照预设方式对外部知识图谱进行编码,以得到包括多个存在关系路径的知识子图上的概念节点表示向量和关系表示向量;

根据所述由当前上下文信息进行前缀生成得到的解码器隐藏状态和从图谱编码得到的概念节点表示向量和关系表示向量在所述知识子图中进行知识推理,以便得到用于确定当前待生成单词的第二概率分布;

按照预设规则从所述第一概率分布和第二概率分布确定当前待生成的单词。

在本发明实施方式的第二方面中,提供了一种基于知识推理的文本生成装置,包括:

处理模块,被配置为采用预训练语言模型对序列文本进行处理,至少得到根据当前上下文信息进行前缀生成得到的解码器隐藏状态以及用于确定当前待生成单词的第一概率分布;

提取模块,被配置为从原始文本中提取特定的概念,以便确定进行知识推理时的多个起始概念节点;

编码模块,被配置为基于从原始文本中提取到的特定的概念,按照预设方式对外部知识图谱进行编码,以得到包括多个存在关系路径的知识子图上的概念节点表示向量和关系表示向量;

推理模块,被配置为根据所述由当前上下文信息进行前缀生成得到的解码器隐藏状态和从图谱编码得到的概念节点表示向量和关系表示向量在所述知识子图中进行知识推理,以便得到用于确定当前待生成单词的第二概率分布;

生成模块,被配置为按照预设规则从所述第一概率分布和第二概率分布确定当前待生成的单词。

在本发明实施方式的第三方面中,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序在被处理器执行时能够实现第一方面中任一项所述的方法。

在本发明实施方式的第四方面中,提供了一种计算设备,所述计算设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于执行第一方面中任一项所述的方法。

根据本发明实施方式的基于知识推理的文本生成方法、介质、装置和计算设备,采用预训练语言模型对序列文本进行处理,至少得到根据当前上下文信息进行前缀生成得到的解码器隐藏状态以及用于确定当前待生成单词的第一概率分布;从原始文本中提取特定的概念,以便确定进行知识推理时的多个起始概念节点;基于从原始文本中提取到的特定的概念,按照预设方式对外部知识图谱进行编码,以得到包括多个存在关系路径的知识子图上的概念节点表示向量和关系表示向量;根据所述由当前上下文信息进行前缀生成得到的解码器隐藏状态和从图谱编码得到的概念节点表示向量和关系表示向量在所述知识子图中进行知识推理,以便得到用于确定当前待生成单词的第二概率分布;按照预设规则从所述第一概率分布和第二概率分布确定当前待生成的单词。本申请提出的方案对外部知识图谱执行多跳推理,能够基于丰富的外部知识生成与上下文语义连贯的后续文本。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1为根据本发明一实施例提供的基于知识推理的文本生成方法的进行故事结局生成的示例图;

图2为本发明一实施例提供的基于知识推理的文本生成方法的流程示意图;

图3为本发明一实施例提供的基于知识推理的文本生成方法的构建相应的模型的整体结构图;

图4为本发明一实施例提供的基于知识推理的文本生成装置的结构示意图;

图5示意性地示出了本发明实施例的一种介质的结构示意图;

图6示意性地示出了本发明实施例的一种计算设备的结构示意图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种基于知识推理的文本生成方法、介质、装置和计算设备。

此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

发明概述

本申请旨在提供一种能够充分利用外部知识生成与上下文语意连贯的文本,首先参考图1,其是根据某个故事内容利用外部知识生成故事结局的示例,在图1中的rocstory是一个故事文本数据集,conceptnet是一个知识图谱;storycontext表示从所述故事文本数据集中随机抽取的一个故事内容,对应虚线框中带有下划线的单词为提取出的源概念;relationalpaths表示关系路径,对应虚线框为从所述知识图谱中抽取的由所述源概念出发的相连的部分知识三元组形成的知识子图,其中a类节点为原故事内容中存在的概念,c类节点为用于生成故事结局的概念,b类节点为连接证据链(即从a类节点到c类节点)的中间概念;storyending表示根据所述storycontext和relationalpaths生成的故事结局。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

示例性方法

下面参考图1来描述根据本发明示例性实施方式的用于基于知识推理的文本生成的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。

本发明实施例提供了一种基于知识推理的文本生成方法,包括:

步骤s110,采用预训练语言模型对序列文本进行处理,至少得到根据当前上下文信息进行前缀生成得到的解码器隐藏状态以及用于确定当前待生成单词的第一概率分布;

步骤s120,从原始文本中提取特定的概念,以便确定进行知识推理时的多个起始概念节点;

步骤s130,基于从原始文本中提取到的特定的概念,按照预设方式对外部知识图谱进行编码,以得到包括多个存在关系路径的知识子图上的概念节点表示向量和关系表示向量;

步骤s140,根据所述由当前上下文信息进行前缀生成得到的隐藏状态和从图谱编码模块得到的概念节点表示向量和关系表示向量在所述知识子图中进行知识推理,以便得到用于确定当前待生成单词的第二概率分布;

步骤s150,按照预设规则从所述第一概率分布和第二概率分布确定当前待生成的单词。

本申请提出的技术方案面向文本生成任务,通常情况下,输入数据是一个文本序列x=(x1,x2,···xn),它可以由几个句子组成。输出目标是另一个文本序列y=(y1,y2,···,ym)。为了促进推理过程,本申请提出的技术方案借助外部常识知识图谱其中表示概念集合,ε表示连接这些概念的关系的集合。由于对完整图进行直接推理是难于处理的,因此在输入文本为的情况下,本申请从中提取子图g=(v,e)。该子图由从输入文本中提取的源概念cx为起始节点的包括h跳路径的图节点组成。然后,将任务假设为生成最佳的目标文本该假设最大化以下条件概率:

其中,为输入文本序列,g为所述知识子图,为可能会输出的文本序列。

下面结合附图说明如何进行基于知识推理的文本生成:

首先,执行步骤s110,采用预训练语言模型对序列文本进行处理,至少得到根据当前上下文信息进行前缀生成得到的解码器隐藏状态以及用于确定当前待生成单词的第一概率分布;

在本实施方式中,所述预训练语言模型可以是预先训练好的任意用于自然语言处理的生成式语言处理模型,本实施方式的一个优选实施例中采用gpt-2模型进行文本生成,所述模型的具体情况可以是堆叠了12层transformer解码器模块,设置了768维隐藏状态和12个注意力头的小型gpt-2模型。

在确定所述预训练语言模型之后,即对文本序列的上下文进行建模,在训练阶段该模型的输入是源序列和目标序列的串联,采用前缀生成的掩码策略。在测试阶段模型按照自回归的解码方式依次解码目标序列。训练阶段模型输入如下所示:

s=(x1,···,xn,[bos],y1;···ym);

然后即可采用所述模型对所述文本序列进行相应的处理:

其中,et和pt是词嵌入向量和位置嵌入向量。t_block是带掩模的自注意力模块。在第t时间步处的对上下文信息进行编码得到的最终隐藏状态被用作多跳推理的输入。所述第一概率分布

接下来,执行步骤s120,从原始文本中提取特定的概念,以便确定进行知识推理时的多个起始概念节点;在本实施方式的一个实施例中,从原始文本中提取特定的概念包括从原始文本中提取特定类型的单词,例如从原始文本中提取的特定类型的单词为名词和/或动词,具体的文本中各个单词的属性分析可以采用stanfordcorenlp等分析器,本实施方式对此不做限定,在获取到所述原始文本(即输入数据的文本序列x=(x1,x2,···xn))中的特定词之后,即可将所述特定词构建为源概念的集合cx,例如一个包括了所述原始文本中所有名词和动词的集合,并在编码子图时将其作为起始节点。

然后执行步骤s130,基于从原始文本中提取到的特定的概念,按照预设方式对外部知识图谱进行编码,以得到包括多个存在关系路径的知识子图上的概念节点表示向量和关系表示向量;在本实施方式的一个实施例中,基于从原始文本中提取到的特定的概念,按照预设方式对外部知识图谱进行编码,包括:

基于从原始文本中提取到的特定的概念,按照预设的方式从所述外部知识图谱中获取与所述特定的概念相关的知识子图;

基于获取到的知识子图,按照预设的方式对所述知识子图进行更新,以得到包括多个存在关系路径的知识子图上的概念节点表示向量和关系表示向量;

其中,所述知识图谱中包括多个概念节点以及各个概念节点的关系信息,从所述知识图谱中获取的知识子图包括所述多个概念节点中的部分概念节点以及所述部分概念节点的关系信息,更新后的知识子图以所述特定的概念为起始节点。

具体来说,所述知识子图中的各个节点基于其全部邻居节点的信息进行更新,所述信息包括相邻节点之间的关系信息,并采用非参数运算φ(·)将节点嵌入和关系嵌入结合起来;例如,在本实施方式的一个实施例中,给定输入图g=(v,e)和带有lg层的图卷积神经网络,所述知识子图中的概念节点根据以下方式更新:

其中,表示在所述知识子图中概念节点v的邻居节点u和关系r的集合,集合中每一个元素形如(u,r);分别是第l层特定的权重矩阵;为第l+1层的概念节点表示向量,通过查找单词嵌入初始化;为第l+1层的关系表示向量,通过关系类型嵌入初始化;φ(hu,hr)=hu-hr。

在本实施方式的一个实施例中,采用conceptnet作为所述外部知识图谱,所述conceptnet中包括多个三元组(h,r,t),每一三元组表示头部概念h与尾部概念t具有某种关系r,其中,采用预设方式(例如linqiu,yunxuanxiao,yanruqu,haozhou,leili,weinanzhang,andyongyu.2019.dynami-callyfusedgraphnetworkformulti-hopreasoning.inproceedingsofthe57thconferenceoftheassociationforcomputationallinguistics,acl2019,florence,italy,july28-august2,2019,volume1:longpapers,pages6140–6150.associationforcomputationallinguistics.)对所述conceptnet中包括的关系类型进行压缩(例如将其中原始的42个关系类型分组为17个),并为其中的每一三元组添加反向链接(h,r-1,t),表示尾部概念t与头部概念h具有某种关系r-1

在得到所述知识子图之后,执行步骤s140,根据所述由当前上下文信息进行前缀生成得到的隐藏状态和从图谱编码得到的概念节点表示向量和关系表示向量在所述知识子图中进行知识推理,以便得到用于确定当前待生成单词的第二概率分布,包括:

根据所述由当前上下文信息进行前缀生成得到的解码器隐藏状态,以所述从原始文本中提取到的特定的概念为起始节点,在所述知识子图中进行遍历;

在进行遍历过程中,根据预设方式计算所述知识子图中各个概念节点的分数;具体而言,在本实施方式的一个实施例中,所述知识子图中的起始节点的初始分数为1,各个未访问到的概念节点的初始分数为0,在遍历过程中通过以下方式计算各个未访问到的概念节点的分数:

其中,表示直接连接概念节点v的已遍历到的概念节点u及其关系r的集合;f(·)是从连接的概念节点汇总分数的聚合器;γ是折扣因子,控制上一节点u流向下一节点v的信息流强度;r(u,r,v)表示当前的三元组给出的证据相关性;σ(·)表示激活函数;wsim是权重矩阵;是所述预训练语言模型在t时间步根据当前上下文信息进行前缀生成得到的解码器隐藏状态;hu,r,v是概念节点u和v的表示向量以及两者关系r的表示向量的拼接。

可以理解的是,所述f(·)可以是max(·)和mean(·)中的任意一种,在本实施方式的一个优选实施例中,选取max(·)作为所述f(·)。

在以上实施方式中,对于各个概念节点的分数的计算和更新直到访问g上的所有节点为止。

根据各个概念节点的分数进行归一化,并生成用于确定当前待生成单词的第二概率分布,具体来说,在经过h跳后,通过归一化获得节点上的分数以确定最终的第二概率分布:

接下来,执行步骤s150,按照预设规则从所述第一概率分布和第二概率分布确定当前待生成的单词,包括:

通过选择门判断选择是从第一概率分布还是第二概率分布生成当前待生成的单词;在本实施方式的一个实施例中,选择门gt的计算与所述隐藏状态有关:

其中,σ(·)表示激活函数,wgate为预设的权重矩阵;

获得所述gt后,通过以下方式生成当前的单词:

其中,述第一概率分布;

表示所述第二概率分布;

其中,为当前待生成的单词,为输出文本序列,为输入文本序列,g为所述知识子图,n为输入文本序列的长度,s为输入文本序列和输出文本序列的拼接,t为时间步长,v为所述语言模型的预设词典,wlm为预设的权重矩阵,b为偏置向量。

其中,基于第一概率分布生成当前单词为从所述语言模型的预设词典中选择某个单词作为当前单词;基于第二概率分布生成当前单词为从所述知识子图中选择某个概念作为当前的单词。

对于本申请提出的基于知识推理的文本生成方法,还可以根据以上步骤建立对应的模型,模型的大体结构如图3所示,图3中所示的wordembedding表示单词嵌入,maskedself-attention表示带掩膜的自注意力机制,layernorm表示对每一层的激活值进行归一化,feedforward表示前馈回路,表示向量的逐元素加法运算;conceptdistribution表示基于知识推理得到的概念分布(第二概率分布),vocabdistribution表示所述预训练语言模型根据上下文信息解码得到的词表分布(第一概率分布);其中(a)部分中使用预训练的transformer进行上下文建模。(b)部分中模型使用非参数运算φ(·)对知识子图进行编码,以将关系和概念组合在一起。(c)中的多跳推理模块将来自源概念cx的证据沿关系路径传播到知识子图中的所有节点,其中阴影表示节点得分,阴影越深,代表节点的得分越高。(d)为带门控制的最终单词分布。

为了使得训练得到上述模型,在本实施方式的一个实施例中,将生成真实目标序列ygold=(y1,y2···ym,[eos])的负对数可能性最小化:

本实施方式中,还添加辅助门损失函数来监督选择概念或通用词的可能性,另外本实施方式中,还引入了弱监督来诱导预测三元组的相关性,根据广度优先搜索获得在所述知识子图上从源概念到目标序列ygold中的目标概念的最短路径,将最短路径上的边作为正例,知识子图上的其余边作为负例。以上两种损失函数均采用交叉熵的形式。由此,这两个额外损失函数都鼓励模型更有效地学习图上的多跳推理。

那么,最终需要优化的损失函数是线性组合:

其中α和β是超参数。

在测试阶段(即文本生成时),所述模型的输入为(x1,···,xn,[bos])。该模型一次生成一个词,并将其连接到输入序列以生成下一个词。当生成特殊结束符号[eos]时,生成过程终止。

总的来说,本申请提供的基于知识推理的文本生成方法,在从外部知识图谱中抽取的知识子图上进行显式的多跳推理,在原语言生成模型的基础上充分扩展利用了外部知识图谱,既保证了生成文本与原始文本在语义上的连贯,又大大提高了生成文本的知识丰富度。

示例性装置

在介绍了本发明示例性实施方式的方法之后,接下来,参考图4对本发明示例性实施方式的一种基于知识推理的文本生成装置进行说明,该装置包括:

处理模块410,被配置为采用预训练语言模型对序列文本进行处理,至少得到根据当前上下文信息进行前缀生成得到的解码器隐藏状态以及用于确定当前待生成单词的第一概率分布;

提取模块420,被配置为从原始文本中提取特定的概念,以便确定进行知识推理时的多个起始概念节点;

编码模块430,被配置为基于从原始文本中提取到的特定的概念,按照预设方式对外部知识图谱进行编码,以得到包括多个存在关系路径的知识子图上的概念节点表示向量和关系表示向量;

推理模块440,被配置为根据所述由当前上下文信息进行前缀生成得到的解码器隐藏状态和从图谱编码得到的概念表示向量和关系表示向量在所述知识子图中进行知识推理,以便得到用于确定当前待生成单词的第二概率分布;

生成模块450,被配置为按照预设规则从所述第一概率分布和第二概率分布确定当前待生成的单词。

在本实施方式的一个实施例中,所述提取模块420还被配置为从原始文本中提取特定的概念,包括从原始文本中提取特定类型的单词。

在本实施方式的一个实施例中,从原始文本中提取的特定类型的单词为名词和/或动词。

在本实施方式的一个实施例中,所述编码模块430包括:

获取单元,被配置为基于从原始文本中提取到的特定的概念,按照预设的方式从所述外部知识图谱中获取与所述特定的概念相关的知识子图;

编码更新单元,被配置为基于获取到的知识子图,按照预设的方式对所述知识子图进行更新,以得到包括多个存在关系路径的知识子图上的概念节点表示向量和关系表示向量;

其中,所述知识图谱中包括多个概念节点以及各个概念节点的关系信息,从所述知识图谱中获取的知识子图包括所述多个概念节点中的部分概念节点以及所述部分概念节点的关系信息,更新后的知识子图以所述特定的概念为起始节点。

在本实施方式的一个实施例中,所述知识子图中的各个节点基于其全部邻居节点的信息进行更新,所述信息包括相邻节点之间的关系信息。

在本实施方式的一个实施例中,所述知识子图中的概念节点根据以下方式更新:

其中,表示在所述知识子图中概念节点v的邻居节点u和关系r的集合,集合中每一个元素形如(u,r);分别是第l层特定的权重矩阵;为第l+1层的概念节点表示向量,通过查找单词嵌入初始化;为第l+1层的关系表示向量,通过关系类型嵌入初始化;φ(hu,hr)=hu-hr。

在本实施方式的一个实施例中,采用conceptnet作为所述外部知识图谱,所述conceptnet中包括多个三元组,每一三元组表示头部概念与尾部概念具有某种关系,其中,采用预设方式对所述conceptnet中包括的关系类型进行压缩,并为其中的每一三元组添加反向链接,表示尾部概念与头部概念具有某种关系。

在本实施方式的一个实施例中,所述推理模块440包括:

遍历单元,被配置为根据所述由当前上下文信息进行前缀生成得到的解码器隐藏状态,以所述从原始文本中提取到的特定的概念为起始节点,在所述知识子图中进行遍历;

计算单元,被配置为在进行遍历过程中,根据预设方式计算所述知识子图中各个概念节点的分数;

确定单元,被配置为根据各个概念节点的分数进行归一化,并生成用于确定当前待生成单词的第二概率分布。

在本实施方式的一个实施例中,所述知识子图中的起始节点的初始分数为1,各个未访问到的概念节点的初始分数为0,在遍历过程中通过以下方式计算各个未访问到的概念节点的分数:

其中,表示直接连接概念节点v的已遍历到的概念节点u及其关系r的集合;f(·)是从连接的概念节点汇总分数的聚合器;γ是折扣因子,控制上一节点u流向下一节点v的信息流强度;r(u,r,v)表示当前的三元组给出的证据相关性;σ(·)表示激活函数;wsim是权重矩阵;是所述预训练语言模型在t时间步对当前上下文信息进行前缀生成得到的解码器隐藏状态;hu,r,v是概念节点u和v的嵌入以及两者关系r的表示向量的拼接。

在本实施方式的一个实施例中,所述生成模块450包括:

选择单元,被配置为通过选择门判断选择是从第一概率分布还是第二概率分布生成当前待生成的单词;

其中,基于第一概率分布生成当前单词为从所述语言模型的预设词典中选择某个单词作为当前单词;基于第二概率分布生成当前单词为从所述知识子图中选择某个概念作为当前的单词。

在本实施方式的一个实施例中,选择门gt的计算与所述隐藏状态有关:

其中,σ(·)表示激活函数,wgate为预设的权重矩阵;

获得所述gt后,通过以下方式生成当前的单词:

其中,述第一概率分布;

表示所述第二概率分布;

其中,为当前待生成的单词,为输出文本序列,为输入文本序列,g为所述知识子图,n为输入文本序列的长度,s为输入文本序列和输出文本序列的拼接,t为时间步长,v为所述语言模型的预设词典,wlm为预设的权重矩阵,b为偏置向量。

示例性介质

在介绍了本发明示例性实施方式的方法和装置之后,接下来,参考图5对本发明示例性实施方式的计算机可读存储介质进行说明,请参考图5,其示出的计算机可读存储介质为光盘50,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会实现上述方法实施方式中所记载的各步骤,例如,采用预训练语言模型对序列文本进行处理,至少得到根据当前上下文信息进行前缀生成得到的解码器隐藏状态以及用于确定当前待生成单词的第一概率分布;从原始文本中提取特定的概念,以便确定进行知识推理时的多个起始概念节点;基于从原始文本中提取到的特定的概念,按照预设方式对外部知识图谱进行编码,以得到包括多个存在关系路径的知识子图上的概念节点表示向量和关系表示向量;根据所述由当前上下文信息进行前缀生成得到的解码器隐藏状态和从图谱编码得到的概念节点表示向量和关系表示向量在所述知识子图中进行知识推理,以便得到用于确定当前待生成单词的第二概率分布;按照预设规则从所述第一概率分布和第二概率分布确定当前待生成的单词;各步骤的具体实现方式在此不再重复说明。

需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。

示例性计算设备

在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图对本发明示例性实施方式的用于文本生成的计算设备。

图6示出了适于用来实现本发明实施方式的示例性计算设备60的框图,该计算设备60可以是计算机系统或服务器。图6显示的计算设备60仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图6所示,计算设备60的组件可以包括但不限于:一个或者多个处理器或者处理单元601,系统存储器602,连接不同系统组件(包括系统存储器602和处理单元601)的总线603。

计算设备60典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算设备60访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器602可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)6021和/或高速缓存存储器6022。计算设备60可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,rom6023可以用于读写不可移动的、非易失性磁介质(图6中未显示,通常称为“硬盘驱动器”)。尽管未在图6中示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线603相连。系统存储器602中可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块6024的程序/实用工具6025,可以存储在例如系统存储器602中,且这样的程序模块6024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块6024通常执行本发明所描述的实施例中的功能和/或方法。

计算设备60也可以与一个或多个外部设备604(如键盘、指向设备、显示器等)通信。这种通信可以通过输入/输出(i/o)接口605进行。并且,计算设备60还可以通过网络适配器606与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图6所示,网络适配器606通过总线603与计算设备60的其它模块(如处理单元601等)通信。应当明白,尽管图6中未示出,可以结合计算设备60使用其它硬件和/或软件模块。

处理单元601通过运行存储在系统存储器602中的程序,从而执行各种功能应用以及数据处理,例如,采用预训练语言模型对序列文本进行处理,至少得到根据当前上下文信息进行前缀生成得到的解码器隐藏状态以及用于确定当前待生成单词的第一概率分布;从原始文本中提取特定的概念,以便确定进行知识推理时的多个起始概念节点;基于从原始文本中提取到的特定的概念,按照预设方式对外部知识图谱进行编码,以得到包括多个存在关系路径的知识子图上的概念节点表示向量和关系表示向量;根据所述由当前上下文信息进行前缀生成得到的解码器隐藏状态和从图谱编码得到的概念节点表示向量和关系表示向量在所述知识子图中进行知识推理,以便得到用于确定当前待生成单词的第二概率分布;按照预设规则从所述第一概率分布和第二概率分布确定当前待生成的单词。各步骤的具体实现方式在此不再重复说明。应当注意,尽管在上文详细描述中提及了基于知识推理的文本生成装置的若干单元/模块或子单元/子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

通过上述的描述,本发明的实施例提供了以下的技术方案,但不限于此:

1.一种基于知识推理的文本生成方法,包括:

采用预训练语言模型对序列文本进行处理,至少得到根据当前上下文信息进行前缀生成得到的解码器隐藏状态以及用于确定当前待生成单词的第一概率分布;

从原始文本中提取特定的概念,以便确定进行知识推理时的多个起始概念节点;

基于从原始文本中提取到的特定的概念,按照预设方式对外部知识图谱进行编码,以得到包括多个存在关系路径的知识子图上的概念节点表示向量和关系表示向量;

根据所述由当前上下文信息进行前缀生成得到的解码器隐藏状态和从图谱编码得到的概念节点表示向量和关系表示向量在所述知识子图中进行知识推理,以便得到用于确定当前待生成单词的第二概率分布;

按照预设规则从所述第一概率分布和第二概率分布确定当前待生成的单词。

2.如方案1所述的方法,其中,从原始文本中提取特定的概念包括从原始文本中提取特定类型的单词。

3.如方案2所述的方法,其中,从原始文本中提取的特定类型的单词为名词和/或动词。

4.如方案2所述的方法,其中,基于从原始文本中提取到的特定的概念,按照预设方式对外部知识图谱进行编码,包括:

基于从原始文本中提取到的特定的概念,按照预设的方式从所述外部知识图谱中获取与所述特定的概念相关的知识子图;

基于获取到的知识子图,按照预设的方式对所述知识子图进行更新,以得到包括多个存在关系路径的知识子图上的概念节点表示向量和关系表示向量;

其中,所述知识图谱中包括多个概念节点以及各个概念节点的关系信息,从所述知识图谱中获取的知识子图包括所述多个概念节点中的部分概念节点以及所述部分概念节点的关系信息,更新后的知识子图以所述特定的概念为起始节点。

5.如方案4所述的方法,其中,所述知识子图中的各个节点基于其全部邻居节点的信息进行更新,所述信息包括相邻节点之间的关系信息。

6.如方案5所述的方法,其中,所述知识子图中的概念节点根据以下方式更新:

其中,表示在所述知识子图中概念节点v的邻居节点u和关系r的集合,集合中每一个元素形如(u,r);分别是第l层特定的权重矩阵;为第l+1层的概念节点表示向量,通过查找单词嵌入初始化;为第l+1层的关系表示向量,通过关系类型嵌入初始化;φ(hu,hr)=hu-hr。

7.如方案1-6中任一所述的方法,其中,采用conceptnet作为所述外部知识图谱,所述conceptnet中包括多个三元组,每一三元组表示头部概念与尾部概念具有某种关系,其中,采用预设方式对所述conceptnet中包括的关系类型进行压缩,并为其中的每一三元组添加反向链接,表示尾部概念与头部概念具有某种关系。

8.如方案1-7中任一所述的方法,其中,根据所述由当前上下文信息进行前缀生成得到的解码器隐藏状态和从图谱编码模块得到的特定的概念节点表示向量和关系表示向量在所述知识子图中进行知识推理,以便得到用于确定当前待生成单词的第二概率分布,包括:

根据所述由当前上下文信息进行前缀生成得到的解码器隐藏状态,以所述从原始文本中提取到的特定的概念为起始节点,在所述知识子图中进行遍历;

在进行遍历过程中,根据预设方式计算所述知识子图中各个概念节点的分数;

根据各个概念节点的分数进行归一化,并生成用于确定当前待生成单词的第二概率分布。

9.如方案8所述的方法,其中,所述知识子图中的起始节点的初始分数为1,各个未访问到的概念节点的初始分数为0,在遍历过程中通过以下方式计算各个未访问到的概念节点的分数:

其中,表示直接连接概念节点v的已遍历到的概念节点u及其关系r的集合;f(·)是从连接的概念节点汇总分数的聚合器;γ是折扣因子,控制上一节点u流向下一节点v的信息流强度;r(u,r,v)表示当前的三元组给出的证据相关性;σ(·)表示激活函数;wsim是权重矩阵;是所述预训练语言模型在t时间步对当前上下文信息进行前缀生成得到的解码器隐藏状态;hu,r,v是概念节点u和v的表示向量以及两者关系r的表示向量的拼接。

10.如方案1-9中任一所述的方法,其中,按照预设规则从所述第一概率分布和第二概率分布确定当前待生成的单词,包括:

通过选择门判断选择是从第一概率分布还是第二概率分布生成当前待生成的单词;

其中,基于第一概率分布生成当前单词为从所述语言模型的预设词典中选择某个单词作为当前单词;基于第二概率分布生成当前单词为从所述知识子图中选择某个概念作为当前的单词。

11.如方案10所述的方法,其中,选择门gt的计算与所述隐藏状态有关:

其中,σ(·)表示激活函数,wgate为预设的权重矩阵;

获得所述gt后,通过以下方式生成当前的单词:

其中,述第一概率分布;

表示所述第二概率分布;

其中,为当前待生成的单词,为输出文本序列,为输入文本序列,g为所述知识子图,n为输入文本序列的长度,s为输入文本序列和输出文本序列的拼接,t为时间步长,v为所述语言模型的预设词典,wlm为预设的权重矩阵,b为偏置向量。

12.一种基于知识推理的文本生成装置,包括:

处理模块,被配置为采用预训练语言模型对序列文本进行处理,至少得到根据当前上下文信息进行前缀生成得到的解码器隐藏状态以及用于确定当前待生成单词的第一概率分布;

提取模块,被配置为从原始文本中提取特定的概念,以便确定进行知识推理时的多个起始概念节点;

编码模块,被配置为基于从原始文本中提取到的特定的概念,按照预设方式对外部知识图谱进行编码,以得到包括多个存在关系路径的概念节点的知识子图上的概念节点表示向量和关系表示向量;

推理模块,被配置为根据所述由当前上下文信息进行前缀生成得到的解码器隐藏状态和从图谱编码得到的概念节点表示向量和关系表示向量在所述知识子图中进行知识推理,以便得到用于确定当前待生成单词的第二概率分布;

生成模块,被配置为按照预设规则从所述第一概率分布和第二概率分布确定当前待生成的单词。

13.如方案12所述的装置,其中,所述提取模块还被配置为从原始文本中提取特定的概念包括从原始文本中提取特定类型的单词。

14.如方案13所述的装置,其中,从原始文本中提取的特定类型的单词为名词和/或动词。

15.如方案13所述的装置,其中,所述编码模块包括:

获取单元,被配置为基于从原始文本中提取到的特定的概念,按照预设的方式从所述外部知识图谱中获取与所述特定的概念相关的知识子图;

编码更新单元,被配置为基于获取到的知识子图,按照预设的方式对所述知识子图进行更新,以得到包括多个存在关系路径的知识子图上的概念节点表示向量和关系表示向量;

其中,所述知识图谱中包括多个概念节点以及各个概念节点的关系信息,从所述知识图谱中获取的知识子图包括所述多个概念节点中的部分概念节点以及所述部分概念节点的关系信息,更新后的知识子图以所述特定的概念为起始节点。

16.如方案15所述的装置,其中,所述知识子图中的各个节点基于其全部邻居节点的信息进行更新,所述信息包括相邻节点之间的关系信息。

17.如方案16所述的装置,其中,所述知识子图中的概念节点根据以下方式更新:

其中,表示在所述知识子图中概念节点v的邻居节点u和关系r的集合,集合中每一个元素形如(u,r);分别是第l层特定的权重矩阵;为第l+1层的概念节点表示向量,通过查找单词嵌入初始化;为第l+1层的关系表示向量,通过关系类型嵌入初始化;φ(hu,hr)=hu-hr。

18.如方案12-17中任一所述的装置,其中,采用conceptnet作为所述外部知识图谱,所述conceptnet中包括多个三元组,每一三元组表示头部概念与尾部概念具有某种关系,其中,采用预设方式对所述conceptnet中包括的关系类型进行压缩,并为其中的每一三元组添加反向链接,表示尾部概念与头部概念具有某种关系。

19.如方案12-18中任一所述的装置,其中,所述推理模块包括:

遍历单元,被配置为根据所述由当前上下文信息进行前缀生成得到的解码器隐藏状态,以所述从原始文本中提取到的特定的概念为起始节点,在所述知识子图中进行遍历;

计算单元,被配置为在进行遍历过程中,根据预设方式计算所述知识子图中各个概念节点的分数;

确定单元,被配置为根据各个概念节点的分数进行归一化,并生成用于确定当前待生成单词的第二概率分布。

20.如方案19所述的装置,其中,所述知识子图中的起始节点的初始分数为1,各个未访问到的概念节点的初始分数为0,在遍历过程中,通过以下方式计算各个未访问到的概念节点的分数:

其中,表示直接连接概念节点v的已遍历到的概念节点u及其关系r的集合;f(·)是从连接的概念节点汇总分数的聚合器;γ是折扣因子,控制上一节点u流向下一节点v的信息流强度;r(u,r,v)表示当前的三元组给出的证据相关性;σ(·)表示激活函数;wsim是权重矩阵;是所述预训练语言模型在t时间步对当前上下文信息进行前缀生成得到的解码器隐藏状态;hu,r,v是概念节点u和v的嵌入以及两者关系r的表示向量的拼接。

21.如方案12-20中任一所述的装置,其中,所述生成模块包括:

选择单元,被配置为通过选择门判断选择是从第一概率分布还是第二概率分布生成当前待生成的单词;

其中,基于第一概率分布生成当前单词为从所述语言模型的预设词典中选择某个单词作为当前单词;基于第二概率分布生成当前单词为从所述知识子图中选择某个概念作为当前的单词。

22如方案21所述的装置,其中,选择门gt的计算与所述隐藏状态有关:

其中,σ(·)表示激活函数,wgate为预设的权重矩阵;

获得所述gt后,通过以下方式生成当前的单词:

其中,述第一概率分布;

表示所述第二概率分布;

其中,为当前待生成的单词,为输出文本序列,为输入文本序列,g为所述知识子图,n为输入文本序列的长度,s为输入文本序列和输出文本序列的拼接,t为时间步长,v为所述语言模型的预设词典,wlm为预设的权重矩阵,b为偏置向量。

23.一种计算机可读存储介质,存储有程序代码,所述程序代码当被处理器执行时,实现如方案1-11之一所述的方法。

24.一种计算设备,包括处理器和存储有程序代码的存储介质,所述程序代码当被处理器执行时,实现如方案1-11之一所述的方法。

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