自然语言生成方法、装置、设备及存储介质与流程

文档序号:19156081发布日期:2019-11-16 00:47阅读:235来源:国知局
自然语言生成方法、装置、设备及存储介质与流程

本申请涉及自然语言处理领域,特别涉及一种自然语言生成方法、装置、设备及存储介质。



背景技术:

随着科技的发展,以及人们对便捷的人机交互方式的需求,机器学习在自然语言处理领域得到了广泛应用。例如,可以利用训练好的语言生成模型,将一些对象转换为准确的自然语言,即用较为准确的语句来描述这些对象,这些对象一般为语音或图片等。

相关技术中,语言生成模型一般包括编码器和解码器,在利用该模型进行自然语言转换时,可以将待生成语句的对象作为语言生成模型的输入,通过语言生成模型的编码器对待生成语句的对象进行编码,得到该对象的上下文向量,然后通过解码器对该上下文向量进行解码,得到该对象对应的一个语句。

由上可知,相关技术中在对对象进行自然语言转换时,只能生成一种语言风格的语言,且语言风格不可控,自然语言生成方式较为单一,灵活性较低。



技术实现要素:

本申请提供了一种自然语言生成方法、装置、设备及存储介质,可以解决相关技术中存在的自然语言生成方式较为单一,灵活性较低的问题。所述技术方案如下:

一方面,提供了一种自然语言生成方法,所述方法包括:

将待生成语句的对象作为语言生成模型的输入,通过所述语言生成模型的编码器对所述对象进行编码,得到所述对象的上下文向量;

基于所述上下文向量,通过所述语言生成模型的选择器从多个备选集线器中进行选择,得到n个集线器,所述多个备选集线器与多个辅助参数一一对应,所述多个辅助参数是基于不同的特征词集合确定得到;

基于所述上下文向量和所述n个集线器分别对应的n个辅助参数,通过所述语言生成模型的解码器对所述上下文向量进行解码,得到n个语句,所述n个语句的语言风格不同。

一方面,提供了一种自然语言生成装置,所述装置包括:

编码模块,用于将待生成语句的对象作为语言生成模型的输入,通过所述语言生成模型的编码器对所述对象进行编码,得到所述对象的上下文向量;

选择模块,用于基于所述上下文向量,通过所述语言生成模型的选择器从多个备选集线器中进行选择,得到n个集线器,所述n为大于1的整数,所述多个备选集线器与多个辅助参数一一对应,所述多个辅助参数是基于不同的特征词集合确定得到;

解码模块,用于基于所述上下文向量和所述n个集线器分别对应的n个辅助参数,通过所述语言生成模型的解码器对所述上下文向量进行解码,得到n个语句,所述n个语句的语言风格不同。

一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现上述所述的自然语言生成方法。

一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由处理器加载并执行以实现上述所述的自然语言生成方法。

一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的自然语言生成方法。

本申请提供的技术方案至少可以带来以下有益效果:

本申请实施例中的自然语言生成模型包括编码器、多个备选集线器、选择器和解码器,在再通过编码器对待生成语句的对象进行编码,得到上下文向量之后,可以先基于上下文向量,通过语言生成模型的选择器从多个备选集线器中选择n个集线器,再基于该上下文向量和n个集线器分别对应的n个辅助参数,通过语言生成模型的解码器对上下文向量进行解码,得到语言风格不同的n个语句。在模型处理过程中,所选择的n个集线器对应的辅助参数会在很大程度上影响模型的生成结果,使得基于不同集线器对应的辅助参数,生成不同语言风格的语句,由于可以基于同一对象生成多种语言风格的语句,因此扩展了自然语言生成方式,提高了灵活性。而且,由于不同集线器对应的辅助参数是基于不同的特征词集合确定得到的,能够表征不同特征词集合的语言风格特征,因此,通过设置特定的特征词集合,即可使得该模型能够输出特定语言风格的语句,使得该模型所生成语句的语言风格可控,兼顾了生成多种语言风格的语句且保证语言风格可控这个重要特性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种语言生成模型的示意图;

图2是本申请实施例提供的一种语言生成模型的训练方法的流程图;

图3是本申请实施例提供的另一种语言生成模型的示意图;

图4是本申请实施例提供的一种自然语言生成方法的流程图;

图5是本申请实施例提供的一种自然语言生成装置的框图;

图6是本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在对本申请实施例提供的自然语言生成方法进行详细的解释说明之前,先对本申请实施例涉及的应用场景进行介绍。

本申请实施例提供的方法涉及人工智能(artificialintelligence,ai)的自然语言处理(naturelanguageprocessing,nlp)技术,具体涉及一种基于机器学习(machinelearning,ml)或深度学习的自然语言生成方法。

其中,人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

其中,自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。

其中,机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。

本申请实施例提供的自然语言生成方法可以应用于基于待生成语句的对象,利用语言生成模型生成语言风格不同的多个语句的场景中,而且,所生成语句的语言风格可控,可以根据需要设置生成特定语言风格的语句。该对象可以为图片、语音、查询语句或对话系统中用户输入的语句等。

比如,在查询场景中,对于用户输入的查询语句,可以利用语言生成模型将该查询语句转换为不同语言风格的多个改写查询语句,然后,将多个改写查询语句下发到各个搜索引擎中获取搜索结果。另外,对于不同的搜索引擎,还可以将用户输入的查询语句改写为符合该搜索引擎的语言风格的查询语句,并将改写后的查询语句下发至对于搜索引擎中进行搜索,如此,可以提高搜索结果的准确度。

示例的,对于用户输入的查询语句,可以将其分别改写为医学类语言风格的第一查询语句、娱乐类语言风格的第二查询语句、以及足球类语言风格的第二查询语句中,然后将第一查询语句下发至专业的医学类搜索引擎中进行查询,将第二查询语句下发至专业的娱乐类搜索引擎中进行查询,将第三查询语句下发至足球类搜索引擎中进行查询,得到不同的查询结果。

再比如,在对话系统的答句生成场景中,对于用户输入的问句,可以利用语言生成模型生成语言风格不同的多个答句。示例的,对于用户输入的问句,可以生成俏皮风、文艺风或儿童风等多种语言风格的语句,增加对话的趣味性。

再比如,在图片标题生成场景中,对于待生成标题的图片,可以利用语言生成模型生成语言风格不同的多个标题,比如可以生成俏皮风、文艺风或儿童风等多种语言风格的标题。

需要说明的是,本申请实施例仅是以将该方法应用于上述几种应用场景中为例进行说明,而在其他实施例中,该方法还可以应用于其他场景中,本申请实施例在此不再一一举例。

接下来,对本申请实施例涉及的实施环境进行介绍。

本申请实施例提供的方法应用于计算机设备中,该计算机设备可以为终端或服务器,终端可以为手机、平板电脑或计算机等,服务器可以为应用程序的后台服务器,本申请实施例对此不做限定。该计算机设备中运行有语言生成模型,可以通过该语言生成模型,基于同一对象生成多种不同语言风格的语句。

请参考图1,图1是本申请实施例提供的一种语言生成模型的示意图,如图1所示,该语言生成模型包括编码器、选择器、多个备选集线器和解码器。由图1可知,本申请实施例中,相对于相关技术提供的语言生成模型,在语言生成模型中增加了一个选择器和多个备选集线器。

其中,编码器用于对输入对象进行编码,得到输入对象的上下文向量,该上下文向量用于指示输入对象的上下文语义。示例的,该编码器可以为cnn(convolutionalneuralnetworks,卷积神经网络)模型或rnn(recurrentneuralnetwork,循环神经网络)模型等,本申请实施例对此不做限定。

其中,集线器是本申请实施例的主要创点之一。每个备选集线器用于对某个特征词集合进行语义处理,得到该备选集线器对应的辅助参数。也即是,每个备选集线器的输入为特征词集合,输出为辅助参数。辅助参数用于引导编码器生成特定语言风格的语句。辅助参数包括辅助向量和辅助偏置,辅助向量是对特征词集合中每个词的词向量进行加权平均得到,辅助偏置是指特征词集合中各个词的权重。

其中,选择器用于在给定上下文向量的情况下,从所有的备选集线器中,选择恰当数量的集线器,进而选择恰当数量的集线器对应的辅助参数。示例的,选择器为rnn模型。

其中,解码器用于在给定上下文向量的情况下,基于选择器选择的多个集线器对应的辅助参数,对上下文向量进行解码,生成多种语言风格的语句。而且,这多种语言风格的语句与选择器选择的多个集线器对应的辅助参数一一对应,生成的每个语句所使用的词语都来自对应集线器处理的特征词集合中。示例的,编码器为rnn模型。

需要说明的是,本申请实施例提供的自然语言生成方法是一种基于深度学习的自然语言生成方法,需要利用语言生成模型来生成语言风格不同的多个语句,而在利用该语言生成模型之前,需要先根据样本数据进行模型训练,才能训练得到该语言生成模型。接下来,先对该语言生成模型的训练过程进行介绍。

图2是本申请实施例提供的一种语言生成模型的训练方法的流程图,该方法可以应用于计算机设备中,如图2所示,该方法包括如下步骤:

步骤201:获取不同的特征词集合,将不同的特征词集合作为待训练语言生成模型中的多个备选集线器的训练样本。

其中,不同的特征词集合至少包括m个局部特征词集合,m为大于1的整数。每个局部特征词集合包括预设词典中的部分词语。预设词典包括目前常用的所有词语。作为一个示例,m个局部特征词集合可以利用不同的分词工具处理训练预料得到。示例的,特征词集合可以用s={si}表示。

比如,每个局部特征词集合由具有显著语义特征的词语组成,不同的局部特征词集合中的词语具有不同的显著语义特征。例如,某个局部特征词集合可以为具有积极正面特征的词语的集合,如{美好,不错,很棒};某个局部特征词集合可以为烹饪动词的词语的集合,如{煎,炒,烹,炸,蒸}。

另外,不同的特征词集合还可以包括全局特征词集合,全局特征词集合包括预设词典中的全部词语,即可以包括目前常用的所有词语。

作为一个示例,特征词集合s可以用掩码向量m表示,它的长度等于预设词典v的大小,若第j个词在集合s中,那么向量m的j个维度mj=1,否则mj=0。若特征词集合为全局特征词集合,则全局特征词集合的掩码向量m是一个每一维度都是1的向量,如m=(1,1,...,1),其他方面和局部特征词集合完全相同。

其中,该多个备选集线器用于对不同的特征词集合进行语义处理,得到不同的辅助参数。不同的辅助参数用于引导编码器生成不同语言风格的语句。

其中,该多个备选集线器至少包括m个局部集线器,m为大于1的整数。该m个局部集线器与m个特征词集合一一对应,每个局部集线器用于对对应的局部特征词集合进行语义提取,得到该局部集线器对应的辅助参数。此外,该多个备选集线器还可以包括全局集线器和混合集线器。全局集线器对应于全局特征词集合,用于对全局特征词集合进行语义提取,得到全局集线器对应的辅助参数。此外,该多个备选集线器还可以包括至少一个混合集线器,每个混合集线器包括全局集线器和至少一个局部集线器。

其中,辅助参数包括辅助向量和辅助偏置,辅助向量是对对应的特征词集合中每个词的词向量进行加权平均得到,示例的,辅助向量可以用a表示。辅助偏置是指对应特征词集合中各个词的权重,示例的,辅助偏置可以用b表示。

作为一个示例,可以获取m个局部特征词集合,m个局部特征词集合与m个局部集线器一一对应,作为m个局部集线器的训练样本。则对于m个局部集线器中的参考局部集线器,参考局部集线器可以对对应的参考局部特征词集包括的词语进行语义提取,得到参考集线器对应的辅助参数,参考局部集线器为m个局部集线器中的人一个。

作为一个示例,参考集线器可以对参考局部特征词集合包括的词语的词向量进行加权平均,得到参考集线器对应的辅助向量;确定参考局部特征词集合包括的各个词语的权重,将参考局部特征词集合包括的各个词语的权重,确定为参考集线器对应的辅助偏置;将参考集线器对应的辅助向量和辅助偏置,确定为参考集线器对应的辅助参数。

作为一个示例,参考集线器可以利用注意力机制,对参考局部特征词集合包括的词语的词向量进行加权平均。

例如,设参考局部集线器h,它对应的局部特征词集合为s。设h的权重向量和分布向量分别是γ和β,则可以通过以下公式(1)确定参考局部集线器的权重向量γ:

其中,γj是权重向量γ的第j个维度,βj是分布向量β的第j个维度。

对于参考局部集线器来说,可以通过以下公式(2)和(3)来确定对应的辅助向量a和辅助偏置b:

bj=βjmj(3)

其中,wj是该局部集线器对应的局部特征词集合s中第j个词语的词向量,bj是辅助偏置b的第j个维度。

作为一个示例,若多个备选集线器还包括全局集线器,则可以获取全局特征词集合,全局集线器可以对全局特征词集合包括的词语进行语义提取,得到全局集线器对应的辅助参数。

作为一个示例,多个备选集线器还包括至少一个混合集线器,且该待训练语言生成模型可以包括多个集线器层,m个局部集线器和全局集线器位于多个集线器层中的第一个集线器层,即位于第0层,混合集线器位于多个集线器层中除第一个集线器层之外的集线器层,即混合集线器从第1层开始放置,每一层包括一个或多个混合集线器。则对于某层的的混合集线器来说,它的输入是层数低的所有集线器的辅助参数,输出也为辅助层数。

例如,对于该至少一个混合集线器中的参考混合集线器层,可以先确定位于参考集线器层之前的所有集线器层包括的各个集线器对应的辅助参数,然后,基于位于参考集线器层之前的所有集线器层包括的各个集线器对应的辅助参数,以及参考混合集线器层包括的全局集线器对应的全局特征词集合和各个局部集线器对应的局部特征词集合,确定参考混合集线器对应的辅助参数。其中,参考混合集线器层为所述至少一个混合集线器中的任一个,参考集线器层为所述参考混合集线器层所处的集线器层。

例如,设l是所有层数小于i的集线器的集合,对于第i层的某个混合集线器来说,可以通过以下公式(4)确定该混合集线器的权重向量γ:

其中,rj是权重向量γ的第j个维度,βj是该混合集线器的分布向量β的第j个维度。

该混合集线器可以通过以下公式(5)和(6)确定对应的辅助向量a*和辅助偏置b*

其中,aj为所有层数小于i的集线器的集合中的第j个集线器对应的辅助向量,bj为所有层数小于i的集线器的集合中的第j个集线器对应的辅助偏置。

示例的,如图3所示,待训练语言生成模型包括多个集线器层,m个局部集线器和全局集线器位于第一个集线器层,混合集线器位于之后的集线器层,对于某层的的混合集线器来说,它的输入是层数低的所有集线器的辅助参数,输出也为辅助层数。

步骤202:获取多个样本数据,每个样本数据包括待生成语句的样本对象和样本对象对应的多个样本语句。

示例的,每个样本数据还可以包括待生成语句的样本对象的上下文向量和该样本对象对应的多个样本语句。例如,这多个样本数据d={(c,y)},c为上下文向量,y为样本语句,y可以包括不同语言风格的多个语句。

步骤203:基于多个样本数据,对待训练语言生成模型进行训练,得到训练好的语言生成模型。

作为一个示例,模型训练过程可以包括:对于多个样本数据中的每个样本数据,将每个样本数据作为待训练语言生成模型的输入,通过待训练语言生成模型的编码器对每个对象进行编码,得到每个样本对象的上下文向量;基于每个样本对象的上下文向量,通过训练语言生成模型的选择器,从多个备选集线器中进行选择,得到每个样本对象对应的k个集线器;基于每个样本对象的上下文向量和每个样本对象对应的k个集线器分别对象的k个辅助参数,通过带待训练语言生成模型的解码器对每个样本对象的上下文向量进行解码,生成每个样本对象对应的k个预测语句;基于每个样本对象对应的k个集线器分别对应的k个辅助参数,每个样本对象对应的k个预测语句和多个样本语句,确定每个样本对象的预测误差;通过反向传播算法,对每个样本对象的预测误差进行方向传播,以对待训练语言生成模型的模型参数进行更新,将模型参数更新后的待训练语言生成模型,确定为语言生成模型。

选择器

该待训练语言生成模型中的选择器用于基于输入对象的上下文向量,从多个备选集线器中,选择恰当数量的集线器,进而选择恰当数量的集线器对应的辅助参数。

作为一个示例,选择器为第一rnn模型,该待训练语言生成模型包括集线器集合,集线器集合除包括多个备选集线器外,还可以包括终止集线器,终止集线器用于终止选择器的选择流程。则第一rnn模型可以基于输入对象的上下文向量、多个备选集线器对应的辅助向量、以及终止集线器,从多个备选集线器中进行选择,得到n个集线器。也即是,选择器中是一个rnn,它会以序列生成的方式,选择出生成不同语言风格语句所需的所有集线器。

作为一个示例,第一rnn的选择过程可以包括如下步骤:

1)可以先令t=1,基于第一rnn模型在第t-1个时序步骤的隐状态信息、上下文向量和在第t个时序步骤选择的集线器对应的辅助向量,确定第一rnn模型在第t个时序步骤的隐状态信息。

其中,当t=1时,第一rnn模型在第t-1个时序步骤的隐状态信息为第一预设参数,在第t个时序步骤选取的集线器对应的辅助参数为终止集线器对应的辅助向量。例如,假设在第t-1个时序步骤的隐状态信息为ht,在第t个时序步骤选取的集线器对应的辅助向量为at,则当t=1时,h0为第一预设参考,示例的,可以取h0=0,也可以令h0为可训练的向量;a1为终止集线器对应的辅助向量。

2)基于第一rnn模型在第t个时序步骤的隐状态信息,确定在第t+1个时序步骤选择的集线器。

作为一个示例,第一rnn可以基于在第t个时序步骤的隐状态信息,确定在第t个时序步骤的集线器分布向量,基于该集线器分布向量,确定在第t+1个时序步骤选择的集线器。其中,该集线器分布向量用于指示该多个备选集线器和终止集线器中每个集线器的分布概率。

3)若在第t+1个时序步骤选择的集线器不是终止集线器,则令t=t+1,返回基于第一rnn模型在第t-1个时序步骤的隐状态信息、上下文向量和在第t个时序步骤选取的集线器对应的辅助参数,确定第一rnn模型在第t个时序步骤的隐状态信息,基于第一rnn模型在第t个时序步骤的隐状态信息,确定在第t+1个时序步骤选择的集线器的步骤。

4)若在第t+1个时序步骤选择的集线器是终止集线器,则停止选择集线器,将已选择的除终止集线器之外的集线器,确定为n个集线器。

也即是,选择器可以根据当前输入at、上一步隐状态ht-1和上下文向量c,来计算当前的隐状态ht。选择器可以通过以下公式(7)确定当前的隐状态ht:

ht=rnn(ht-1,c,at)(7)

其中,ht是在第t个时序步骤的隐状态,at是在第t个时序步骤选择的集线器对应的辅助向量,c是上下文向量,ht-1是在第t-1个时序步骤的隐状态信息。

作为一个示例,选择器的具体运行方式是:在初始阶段,选择器利用h0和a1来计算第1步的隐状态h1。特别地,第1步的a1是特殊符号终止集线器<end>所对应的向量e,该向量和辅助向量尺寸相同,在选择过程中,一旦选择器选中<end>,则终止选择过程。而后,在第t步模型可以用公式ht=rnn(ht-1,c,at)不断迭代计算隐状态。

在第t步时,选择器除了需要计算隐状态ht,还需要计算第t步的集线器分布向量。例如,选择器可以基于在第t个时序步骤的隐状态信息,确定在第t个时序步骤的集线器分布向量,基于该集线器分布向量,确定在第t+1个时序步骤选择的集线器。其中,该集线器分布向量用于指示该多个备选集线器和终止集线器中每个集线器的分布概率。

举例来说,设系统中共有n个集线器,外加作为终止集线器的<end>,共有(n+1)个候选,其集线器分布向量为:

dt=softmax(wht)(8)

其中,w为预设参数,dt为集线器分布向量,dt的第i个维度代表(n+1)个候选中第i个候选的分布概率。

作为一个示例,在训练阶段,选择器每一步可以利用轮盘赌采样,以dt为基准概率,选择一个新的集线器。反复进行,若遇到终止集线器,则停止。这个过程重复k次,故而可以生成k个集线器集合。

编码器

该待训练语言生成模型中的解码器用于在给定上下文向量的情况下,基于选择器选择的多个集线器对应的辅助参数,对上下文向量进行解码,生成语言风格不同的多个语句。

作为一个示例,该编码器为第二rnn模型,对于n个集线器中的参考集线器,第二rnn模型用于基于上下文向量、参考集线器对应的辅助参数、不同的特征词集合中的词语、以及终止词语,对上下文向量进行解码,得到参考集线器对应的语句,终止词语为除不同的特征词集合包括的词语之外的用于停止编码器的编码流程的词语。也即是,选择器中是一个rnn模型,它会以序列生成的方式,基于选择器传来的每一个集线器的辅助向量和辅助偏置,生成一个句子,句子中的每个词都是来自于选择的集线器对应的特征词集合。

作为一个示例,第二rnn的编码过程可以包括如下步骤:

1)令t=1,基于第二rnn模型在第t-1个时序步骤的隐状态信息、上下文向量、参考集线器对应的辅助参数、以及在第t个时序步骤的输出词语,确定第二rnn模型在第t个时序步骤的隐状态信息;其中,当t=1时,第二rnn模型在第t-1个时序步骤的隐状态信息为第二预设参数,在第t个时序步骤的输出词语为终止词语。

2)基于第二rnn模型在第t个时序步骤的隐状态信息,确定在第t+1个时序步骤的输出词语。

作为一个示例,可以基于第二rnn模型在第t个时序步骤的隐状态信息,确定在第t个时序步骤的词分布向量,基于在第t个时序步骤的词分布向量,确定在第t+1个时序步骤的输出词语。其中,词分布向量用于指示参考集线器对应的特征词集合中各个词语的分布概率。

3)若在第t+1个时序步骤的输出词语不是终止词语,则令t=t+1,返回基于第二rnn模型在第t-1个时序步骤的隐状态信息、上下文向量、参考集线器对应的辅助参数、以及在第t个时序步骤的输出词语,确定第二rnn模型在第t个时序步骤的隐状态信息,基于第二rnn模型在第t个时序步骤的隐状态信息,确定在第t+1个时序步骤的输出词语的步骤。

4)若在第t+1个时序步骤的输出词语是终止词语,则停止编码,将已确定的除终止词语之外的输出词语组成的语句,确定为参考集线器对应的语句。

也即是,解码器和选择器类似,它可以通过隐状态gt-1、输入的辅助向量a和当前词语wt来计算当前的隐状态gt,解码器可以通过以下公式(9)确定当前的隐状态gt:

gt=rnn(gt-1,a,wt,c)(9)

其中,gt是在第t个时序步骤的隐状态,a是参考集线器对应的辅助参数,c是上下文向量,gt-1是在第t-1个时序步骤的隐状态信息。

在第t步时,选择器除了需要计算隐状态gt,还需要计算第t步的词分布向量et。设系统中共有|v|个词语,包括终止词<end>,共有|v|个候选,其词分布向量为:

p(yt|y<t,c,a,b)=et=softmax(ugt+b)(10)

其中,u为预设参数,u∈r。et的第i个维度代表|v|个候选中第i个候选的分布概率。b是输入的辅助偏置,这里和传统的解码器不同。

在训练阶段,该语言生成模型可以根据监督数据,计算et,进而计算模型的预测误差。

由上文可知,集线器输出的辅助参数,会很大程度上影响最后模型生成的结果。不同的辅助参数,会趋向于生成不同的语句。为了使不同的集线器在训练后能够得到不同的辅助参数,可以设置多样化惩罚项,以使各个集线器的权重向量γ尽可能各不相同。

假设共有n个集线器,第i个集线器的权重向量为γk,γk,j是其第j维。为了让γk尽量不同,设多样化惩罚项c为各个维度j上的γk所对应值的熵的求和,即:

本申请实施例中可以利用强化学习的方法训练模型参数,模型参数包括β,w,u,w以及rnn网络参数。对于输入的上下文向量c,选择器通过前述选择方法,得到k个集线器集合qi,每个集线器集合包括多个集线器的辅助参数qi={(a,b)}。

对于样本数据d={(c,y)}来说,每次可以只抽取一部分样本数据进行训练,在样本数据b上的预测误差定义为:

其中,λ可以为预设参数,可以由人工设定。

需要说明的是,本申请的模型训练过程还可以分为以下两个阶段进行:

第一个阶段:固定解码器网络参数和词向量,利用反向传播算法,对集线器和选择器的网络参数进行更新。反向传播算可以为梯度下降法或者adam等。

第二个阶段:固定集线器和选择器的参数,利用反向传播算法,对解码器的网络参数和词向量进行更新。反向传播算可以为梯度下降法或者adam等。

本申请实施例实施例中,在训练语言生成模型的过程中,可以通过显式引入具有显著特点的人工监督数据(特征词集合),训练模型生成多个具有特定风格、特定感情色彩或特定领域的句子。同时,模型又可以保证其生成的多个句子,语义上相互尽可能不重叠,且尽量覆盖语料中尽可能多的、与输入能对应的句子类型。

需要说明的是,在训练得到满足要求的语言生成模型之后,即可利用该语言生成模型生成不同语言风格的多个语句。接下来,对该语言生成模型的自然语言生成过程进行介绍。

图4是本申请实施例提供的一种自然语言生成方法的流程图,该方法可以应用于计算机设备中,如图4所示,该方法包括如下步骤:

步骤401:将待生成语句的对象作为语言生成模型的输入,通过语言生成模型的编码器对该对象进行编码,得到该对象的上下文向量。

其中,该待生成语句的对象可以为图片、语音、查询语句或对话系统中用户输入的语句等。该对象的上下文向量用于指示该对象的上下文语义。

步骤402:基于上下文向量,通过语言生成模型的选择器从多个备选集线器中进行选择,得到n个集线器,n为大于1的整数,多个备选集线器与多个辅助参数一一对应,多个辅助参数是基于不同的特征词集合确定得到。

其中,辅助参数至少包括辅助向量,辅助向量是对特征词集合中各个词语的词向量进行加权平均得到。此外,辅助参数还可以辅助向量和辅助偏置,辅助偏置是指对应特征词集合中各个词语的权重。

作为一个示例,若选择器为第一rnn模型,则可以基于该上下文向量、该多个备选集线器对应的辅助向量、以及终止集线器,通过该第一rnn模型,从该多个备选集线器中进行选择,得到n个集线器,该终止集线器为除该多个备选集线器之外的用于终止该选择器的选择流程的集线器。

作为一个示例,基于上下文向量、该多个备选集线器对应的辅助向量、以及终止集线器,通过该第一rnn模型,从该多个备选集线器中进行选择,得到n个集线器的操作可以包括如下步骤:

1)令t=1,基于该第一rnn模型在第t-1个时序步骤的隐状态信息、该上下文向量和在第t个时序步骤选择的集线器对应的辅助向量,确定该第一rnn模型在第t个时序步骤的隐状态信息;其中,当t=1时,该第一rnn模型在第t-1个时序步骤的隐状态信息为第一预设参数,在第t个时序步骤选取的集线器对应的辅助参数为该终止集线器对应的辅助向量。

2)基于该第一rnn模型在第t个时序步骤的隐状态信息,确定在第t+1个时序步骤选择的集线器。

作为一个示例,第一rnn可以基于在第t个时序步骤的隐状态信息,确定在第t个时序步骤的集线器分布向量,基于该集线器分布向量,确定在第t+1个时序步骤选择的集线器。其中,该集线器分布向量用于指示该多个备选集线器和终止集线器中每个集线器的分布概率。

3)若在第t+1个时序步骤选择的集线器不是该终止集线器,则令t=t+1,返回基于该第一rnn模型在第t-1个时序步骤的隐状态信息、该上下文向量和在第t个时序步骤选取的集线器对应的辅助参数,确定该第一rnn模型在第t个时序步骤的隐状态信息,基于该第一rnn模型在第t个时序步骤的隐状态信息,确定在第t+1个时序步骤选择的集线器的步骤。

4)若在第t+1个时序步骤选择的集线器是该终止集线器,则停止选择集线器,将已选择的除该终止集线器之外的集线器,确定为该n个集线器。

需要说明的是,选择器的具体实现过程,可以参考上述图2实施例的相关描述,本申请实施例在此不做赘述。此外,与训练过程不同的是,在预测阶段,选择器可以利用束搜索方法,直接生成一个概率近似最优的集线器组合,用于引导编码器生成语句。

需要说明的是,在通过器选择集线器之前,每个集线器需要基于对应的特征词集合生成辅助参数。

作为一个示例,模型中的多个备选集线器至少包括m个局部集线器,m为大于1的整数。则在进行模型预测之前,可以先获取m个局部特征词集合,该m个局部特征词集合与该m个局部集线器一一对应,每个局部特征词集合包括预设词典中的部分词语,且该m个局部特征词集合中的词语不同;对于该m个局部特征词集合中的参考局部特征词集合,通过该参考局部特征词集合对应的参考集线器,对该参考局部特征词集合包括的词语进行语义提取,得到该参考集线器对应的辅助参数,该参考局部特征词集合为该m个局部特征词集合中的任一个。

具体地,可以通过该参考局部特征词集合对应的参考集线器,对该参考局部特征词集合包括的词语的词向量进行加权平均,得到该参考集线器对应的辅助向量;通过该参考集线器,确定该参考局部特征词集合包括的各个词语的权重,将该参考局部特征词集合包括的各个词语的权重,确定为该参考集线器对应的辅助偏置;将该参考集线器对应的辅助向量和辅助偏置,确定为该参考集线器对应的辅助参数。

作为一个示例,多个备选集线器还可以包括全局集线器,则在进行模型预测之前,可以先获取全局特征词集合,该全局特征词集合包括该预设词典中的全部词语;通过该全局集线器,对该全局特征词集合包括的词语进行语义提取,得到该全局集线器对应的辅助参数。

作为一个示例,多个备选集线器还可以包括至少一个混合集线器,混合集线器包括全局集线器和至少一个局部集线器,该语言生成模型包括多个集线器层,该m个局部集线器和该全局集线器位于该多个集线器层中的第一个集线器层,该混合集线器位于该多个集线器层中除该第一个集线器层之外的集线器层。则在模型预测之前,对于该至少一个混合集线器中的参考混合集线器层,可以确定位于参考集线器层之前的所有集线器层包括的各个集线器对应的辅助参数,该参考混合集线器层为该至少一个混合集线器中的任一个,该参考集线器层为该参考混合集线器层所处的集线器层;然后,基于位于参考集线器层之前的所有集线器层包括的各个集线器对应的辅助参数,以及该参考混合集线器层包括的全局集线器对应的全局特征词集合和各个局部集线器对应的局部特征词集合,确定该参考混合集线器对应的辅助参数。

步骤403:基于该上下文向量和n个集线器分别对应的n个辅助参数,通过该语言生成模型的解码器对上下文向量进行解码,得到n个语句,n个语句的语言风格不同。

其中,该解码器可以为第二rnn模型。

作为一个示例,若该解码器为第二rnn模型,则对于该n个集线器中的参考集线器,基于该上下文向量、该参考集线器对应的辅助参数、该不同的特征词集合中的词语、以及终止词语,通过该第二rnn模型对该上下文向量进行解码,得到该参考集线器对应的语句,该终止词语为除该不同的特征词集合包括的词语之外的用于停止该编码器的编码流程的词语。

作为一个示例,该基于该上下文向量、该参考集线器对应的辅助参数、该不同的特征词集合中各个词语的词向量、以及终止词语,通过该第二rnn模型对该上下文向量进行解码,得到该参考集线器对应的语句的操作可以包括如下步骤:

1)令t=1,基于该第二rnn模型在第t-1个时序步骤的隐状态信息、该上下文向量、该参考集线器对应的辅助参数、以及在第t个时序步骤的输出词语,确定该第二rnn模型在第t个时序步骤的隐状态信息;其中,当t=1时,该第二rnn模型在第t-1个时序步骤的隐状态信息为第二预设参数,在第t个时序步骤的输出词语为该终止词语;

2)基于该第二rnn模型在第t个时序步骤的隐状态信息,确定在第t+1个时序步骤的输出词语。

作为一个示例,可以基于第二rnn模型在第t个时序步骤的隐状态信息,确定在第t个时序步骤的词分布向量,基于在第t个时序步骤的词分布向量,确定在第t+1个时序步骤的输出词语。其中,词分布向量用于指示参考集线器对应的特征词集合中各个词语的分布概率。

3)若在第t+1个时序步骤的输出词语不是该终止词语,则令t=t+1,返回基于该第二rnn模型在第t-1个时序步骤的隐状态信息、该上下文向量、该参考集线器对应的辅助参数、以及在第t个时序步骤的输出词语,确定该第二rnn模型在第t个时序步骤的隐状态信息,基于该第二rnn模型在第t个时序步骤的隐状态信息,确定在第t+1个时序步骤的输出词语的步骤。

4)若在第t+1个时序步骤的输出词语是该终止词语,则停止编码,将已确定的除该终止词语之外的输出词语组成的语句,确定为该参考集线器对应的语句。

本申请实施例中的自然语言生成模型包括编码器、多个备选集线器、选择器和解码器,在再通过编码器对待生成语句的对象进行编码,得到上下文向量之后,可以先基于上下文向量,通过语言生成模型的选择器从多个备选集线器中选择n个集线器,再基于该上下文向量和n个集线器分别对应的n个辅助参数,通过语言生成模型的解码器对上下文向量进行解码,得到语言风格不同的n个语句。在模型处理过程中,所选择的n个集线器对应的辅助参数会在很大程度上影响模型的生成结果,使得基于不同集线器对应的辅助参数,生成不同语言风格的语句,由于可以基于同一对象生成多种语言风格的语句,因此扩展了自然语言生成方式,提高了灵活性。而且,由于不同集线器对应的辅助参数是基于不同的特征词集合确定得到的,能够表征不同特征词集合的语言风格特征,因此,通过设置特定的特征词集合,即可使得该模型能够输出特定语言风格的语句,使得该模型所生成语句的语言风格可控,兼顾了生成多种语言风格的语句且保证语言风格可控这个重要特性。

图5是本申请实施例提供的一种自然语言生成装置的框图,该装置可以集成在计算机设备中,如图5所示,该装置包括编码模块501、选择模块502和解码模块503。

编码模块501,用于将待生成语句的对象作为语言生成模型的输入,通过该语言生成模型的编码器对该对象进行编码,得到该对象的上下文向量;

选择模块502,用于基于该上下文向量,通过该语言生成模型的选择器从多个备选集线器中进行选择,得到n个集线器,该n为大于1的整数,该多个备选集线器与多个辅助参数一一对应,该多个辅助参数是基于不同的特征词集合确定得到;

解码模块503,用于基于该上下文向量和该n个集线器分别对应的n个辅助参数,通过该语言生成模型的解码器对该上下文向量进行解码,得到n个语句,该n个语句的语言风格不同。

可选地,该辅助参数至少包括辅助向量,该辅助向量是对特征词集合中各个词语的词向量进行加权平均得到,该选择器为第一rnn模型;该选择模块502用于:

基于该上下文向量、该多个备选集线器对应的辅助向量、以及终止集线器,通过该第一rnn模型,从该多个备选集线器中进行选择,得到n个集线器,该终止集线器为除该多个备选集线器之外的用于终止该选择器的选择流程的集线器。

可选地,该选择模块502用于:

令t=1,基于该第一rnn模型在第t-1个时序步骤的隐状态信息、该上下文向量和在第t个时序步骤选择的集线器对应的辅助向量,确定该第一rnn模型在第t个时序步骤的隐状态信息;其中,当t=1时,该第一rnn模型在第t-1个时序步骤的隐状态信息为第一预设参数,在第t个时序步骤选取的集线器对应的辅助向量为该终止集线器对应的辅助向量;

基于该第一rnn模型在第t个时序步骤的隐状态信息,确定在第t+1个时序步骤选择的集线器;

若在第t+1个时序步骤选择的集线器不是该终止集线器,则令t=t+1,返回基于该第一rnn模型在第t-1个时序步骤的隐状态信息、该上下文向量和在第t个时序步骤选取的集线器对应的辅助参数,确定该第一rnn模型在第t个时序步骤的隐状态信息,基于该第一rnn模型在第t个时序步骤的隐状态信息,确定在第t+1个时序步骤选择的集线器的步骤;

若在第t+1个时序步骤选择的集线器是该终止集线器,则停止选择集线器,将已选择的除该终止集线器之外的集线器,确定为该n个集线器。

可选地,该解码器为第二rnn模型;该解码模块503用于:

对于该n个集线器中的参考集线器,基于该上下文向量、该参考集线器对应的辅助参数、该不同的特征词集合中的词语、以及终止词语,通过该第二rnn模型对该上下文向量进行解码,得到该参考集线器对应的语句,该终止词语为除该不同的特征词集合包括的词语之外的用于停止该编码器的编码流程的词语。

可选地,该解码模块503用于:

令t=1,基于该第二rnn模型在第t-1个时序步骤的隐状态信息、该上下文向量、该参考集线器对应的辅助参数、以及在第t个时序步骤的输出词语,确定该第二rnn模型在第t个时序步骤的隐状态信息;其中,当t=1时,该第二rnn模型在第t-1个时序步骤的隐状态信息为第二预设参数,在第t个时序步骤的输出词语为该终止词语;

基于该第二rnn模型在第t个时序步骤的隐状态信息,确定在第t+1个时序步骤的输出词语;

若在第t+1个时序步骤的输出词语不是该终止词语,则令t=t+1,返回基于该第二rnn模型在第t-1个时序步骤的隐状态信息、该上下文向量、该参考集线器对应的辅助参数、以及在第t个时序步骤的输出词语,确定该第二rnn模型在第t个时序步骤的隐状态信息,基于该第二rnn模型在第t个时序步骤的隐状态信息,确定在第t+1个时序步骤的输出词语的步骤;

若在第t+1个时序步骤的输出词语是该终止词语,则停止编码,将已确定的除该终止词语之外的输出词语组成的语句,确定为该参考集线器对应的语句。

可选地,该多个备选集线器至少包括m个局部集线器,该m为大于1的整数;该装置还包括:

获取模块,用于获取m个局部特征词集合,该m个局部特征词集合与该m个局部集线器一一对应,每个局部特征词集合包括预设词典中的部分词语,且该m个局部特征词集合中的词语不同;

第一处理模块,用于对于该m个局部特征词集合中的参考局部特征词集合,通过该参考局部特征词集合对应的参考集线器,对该参考局部特征词集合包括的词语进行语义提取,得到该参考集线器对应的辅助参数,该参考局部特征词集合为该m个局部特征词集合中的任一个。

可选地,该第一处理模块用于:

通过该参考局部特征词集合对应的参考集线器,对该参考局部特征词集合包括的词语的词向量进行加权平均,得到该参考集线器对应的辅助向量;

通过该参考集线器,确定该参考局部特征词集合包括的各个词语的权重,将该参考局部特征词集合包括的各个词语的权重,确定为该参考集线器对应的辅助偏置;

将该参考集线器对应的辅助向量和辅助偏置,确定为该参考集线器对应的辅助参数。

可选地,该多个备选集线器还包括全局集线器;该装置还包括:

第二获取模块,用于获取全局特征词集合,该全局特征词集合包括该预设词典中的全部词语;

第二处理模块,用于通过该全局集线器,对该全局特征词集合包括的词语进行语义提取,得到该全局集线器对应的辅助参数。

可选地,该多个备选集线器还包括至少一个混合集线器,混合集线器包括全局集线器和至少一个局部集线器,该语言生成模型包括多个集线器层,该m个局部集线器和该全局集线器位于该多个集线器层中的第一个集线器层,该混合集线器位于该多个集线器层中除该第一个集线器层之外的集线器层;该装置还包括:

确定模块,用于对于该至少一个混合集线器中的参考混合集线器层,确定位于参考集线器层之前的所有集线器层包括的各个集线器对应的辅助参数,该参考混合集线器层为该至少一个混合集线器中的任一个,该参考集线器层为该参考混合集线器层所处的集线器层;

第三处理模块,用于基于位于参考集线器层之前的所有集线器层包括的各个集线器对应的辅助参数,以及该参考混合集线器层包括的全局集线器对应的全局特征词集合和各个局部集线器对应的局部特征词集合,确定该参考混合集线器对应的辅助参数。

可选地,该装置还包括:

第三获取模块,用于获取多个样本数据,每个样本数据包括待生成语句的样本对象和该样本对象对应的多个样本语句;

训练模块,用于基于该多个样本数据,对待训练语言生成模型进行训练,得到该语言生成模型。

可选地,该训练模块用于:

对于该多个样本数据中的每个样本数据,将每个样本数据作为该待训练语言生成模型的输入,通过该待训练语言生成模型的编码器对每个对象进行编码,得到每个样本对象的上下文向量;

基于每个样本对象的上下文向量,通过该训练语言生成模型的选择器,从该多个备选集线器中进行选择,得到每个样本对象对应的k个集线器;

基于每个样本对象的上下文向量和每个样本对象对应的k个集线器分别对象的k个辅助参数,通过该带待训练语言生成模型的解码器对每个样本对象的上下文向量进行解码,生成每个样本对象对应的k个预测语句;

基于每个样本对象对应的k个集线器分别对应的k个辅助参数,每个样本对象对应的k个预测语句和多个样本语句,确定每个样本对象的预测误差;

通过反向传播算法,对每个样本对象的预测误差进行方向传播,以对该待训练语言生成模型的模型参数进行更新,将模型参数更新后的待训练语言生成模型,确定为该语言生成模型。

本申请实施例中的自然语言生成模型包括编码器、多个备选集线器、选择器和解码器,在再通过编码器对待生成语句的对象进行编码,得到上下文向量之后,可以先基于上下文向量,通过语言生成模型的选择器从多个备选集线器中选择n个集线器,再基于该上下文向量和n个集线器分别对应的n个辅助参数,通过语言生成模型的解码器对上下文向量进行解码,得到语言风格不同的n个语句。在模型处理过程中,所选择的n个集线器对应的辅助参数会在很大程度上影响模型的生成结果,使得基于不同集线器对应的辅助参数,生成不同语言风格的语句,由于可以基于同一对象生成多种语言风格的语句,因此扩展了自然语言生成方式,提高了灵活性。而且,由于不同集线器对应的辅助参数是基于不同的特征词集合确定得到的,能够表征不同特征词集合的语言风格特征,因此,通过设置特定的特征词集合,即可使得该模型能够输出特定语言风格的语句,使得该模型所生成语句的语言风格可控,兼顾了生成多种语言风格的语句且保证语言风格可控这个重要特性。

图6是本申请实施例提供的一种计算机设备600的结构示意图,该计算机设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)601和一个或一个以上的存储器602,其中,所述存储器602中存储有至少一条指令,所述至少一条指令由所述处理器601加载并执行以实现上述各个方法实施例提供的网络资源的推荐方法。当然,该计算机设备600还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机设备600还可以包括其他用于实现设备功能的部件,在此不做赘述。

在一些实施例中,还提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述实施例中自然语言生成方法。例如,所述计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘和光数据存储设备等。

值得注意的是,本申请提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。

应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。所述计算机指令可以存储在上述计算机可读存储介质中。

也即是,在一些实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的自然语言生成方法。

以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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