一种问答模型训练方法、问题语句处理方法、装置及存储介质与流程

文档序号:18642666发布日期:2019-09-11 23:43阅读:134来源:国知局
一种问答模型训练方法、问题语句处理方法、装置及存储介质与流程

本发明涉及数据处理技术,尤其涉及问答模型训练方法、问题语句处理方法、装置及存储介质。



背景技术:

人机交互(human–computerinteraction,hci)是指人与计算机之间使用某种对话语言,以一定的交互方式确定人与计算机之间的信息交换过程。随着人机交互技术的发展,越来越多的基于人机交互技术的智能产品应运而生,例如聊天机器人(chatterbot)等。这些智能产品可以和用户进行聊天交流,并根据用户的问题生成相应的回答信息。但是,所生成的回答信息通常都是高频的通用答复,这些答复往往没有实际意义,同时相关技术仅能够根据一个问题语句生成一个对应的答复语句,但并不能够根据一个问题语句生成多个对应的答复语句,影响用户的使用体验。



技术实现要素:

有鉴于此,本发明实施例提供一种问答模型训练方法、问题语句处理方法、装置及存储介质,能够根据用户输入的问题语句,可以一次性生成多中不同的回复,生成的回复具有较好的多样性,减少了通用回复的生成,提升了用户的使用体验。

本发明实施例的技术方案是这样实现的:

本发明实施例提供了一种问答模型训练方法,包括:

通过问答模型的隐变量生成网络,确定与问题语句所对应的词语级的隐变量;

通过所述问答模型的答复语句生成网络对所述词语级的隐变量进行解码处理,生成与所述词语级的隐变量相同数量的答复词语;

根据与所述词语级的隐变量相同数量的答复词语,生成与所述词语级的隐变量相对应的答复语句;

通过所生成的答复语句所对应的精确率和召回率的调和平均数,更新所述隐变量生成网络的参数;

通过损失值最小的所述答复语句的正确数据标注,更新所述答复语句生成网络的参数。

本发明实施例还提供了一种问答模型的问题语句处理方法,其特征在于,所述方法包括:

通过问答模型的隐变量生成网络,确定与目标问题语句所对应的至少一个词语级的隐变量;

通过所述问答模型的答复语句生成网络,根据所述至少一个词语级的隐变量,生成与所述词语级的隐变量相对应的答复词语以及所述答复词语的被选取概率;

根据所述答复词语的被选取概率,选取至少一个答复词语组成与所述目标问题语句相对应的答复语句;

输出所述答复语句。

本发明实施例还提供了一种问答模型的训练装置,包括:

隐变量生成网络训练模块,用于通过问答模型的隐变量生成网络,确定与问题语句所对应的词语级的隐变量;

答复语句生成网络训练模块,用于通过所述问答模型的答复语句生成网络对所述词语级的隐变量进行解码处理,生成与所述词语级的隐变量相同数量的答复词语;

所述答复语句生成网络训练模块,用于根据与所述词语级的隐变量相同数量的答复词语,生成与所述词语级的隐变量相对应的答复语句;

所述隐变量生成网络训练模块,用于通过所生成的答复语句所对应的精确率和召回率的调和平均数,更新所述隐变量生成网络的参数;

所述答复语句生成网络训练模块,用于通过损失值最小的所述答复语句的正确数据标注,更新所述答复语句生成网络的参数。

上述方案中,所述隐变量生成网络训练模块,用于根据所生成的每一个所述答复语句的精确率和召回率的调和平均数,确定所有的答复语句对应的调和平均数的加和;

所述隐变量生成网络训练模块,用于将所述调和平均数的加和确定为与所述隐变量生成网络相对应的奖励函数,并通过所述奖励函数更新所述隐变量生成网络的参数。

上述方案中,

所述答复语句生成网络训练模块,用于根据每一个所述答复语句的精确率和召回率的调和平均数,确定与所述词语级的隐变量相对应的答复语句的准确性;

所述答复语句生成网络训练模块,用于根据与所述词语级的隐变量相对应的答复语句的准确性,确定损失值最小的所述答复语句的正确数据标注;

所述答复语句生成网络训练模块,用于通过所述损失值最小的所述答复语句的正确数据标注,更新所述答复语句生成网络的参数。

上述方案中,

所述隐变量生成网络训练模块,用于根据所述问题语句,初始化所述隐变量生成网络,以实现更新所述隐变量生成网络的参数;

所述答复语句生成网络训练模块,用于根据所述问题语句,初始化所述答复语句生成网络以更新所述答复语句生成网络的参数。

上述方案中,

所述隐变量生成网络训练模块,用于通过所述隐变量生成网络的编码器对所述问题语句进行编码,形成所述问题语句的编码结果;

所述隐变量生成网络训练模块,用于通过对所述问题语句的编码结果进行全连接处理和归一化指数处理,确定能够形成与所述问题语句所对应的词语级的隐变量时的所述隐变量生成网络的参数。

上述方案中,

所述答复语句生成网络训练模块,用于通过所述答复语句生成网络的编码器对所述问题语句进行编码,形成所述问题语句的编码结果;

所述答复语句生成网络训练模块,用于通过所述答复语句生成网络的解码器,对所述问题语句的编码结果进行解码;

所述答复语句生成网络训练模块,用于当解码得到与所述问题语句相对应的答复词语的被选取概率时,确定所述答复语句生成网络的参数。

上述方案中,

所述答复语句生成网络训练模块,用于根据所述答复语句生成网络的解码器的输出结果和所述问题语句所对应的词语级的隐变量,确定所述问题语句所对应的注意力权重;

所述答复语句生成网络训练模块,用于将所述答复语句生成网络的解码器的输出结果和所述注意力权重进行拼接,并进行全连接处理和归一化指数处理,得到所述问题语句相对应的答复词语的被选取概率。

本发明实施例还提供了一种问答模型装置,所述问答模型装置包括:

隐变量生成网络模块,用于确定与目标问题语句所对应的至少一个词语级的隐变量;

答复语句生成网络模块,用于根据所述至少一个词语级的隐变量,生成与所述词语级的隐变量相对应的答复词语以及所述答复词语的被选取概率;

所述答复语句生成网络模块,用于根据所述答复词语的被选取概率,选取至少一个答复词语组成与所述目标问题语句相对应的答复语句;

所述答复语句生成网络模块,用于输出所述答复语句。

本发明实施例还提供了一种问答模型的训练装置,所述训练装置包括:

存储器,用于存储可执行指令;

处理器,用于运行所述存储器存储的可执行指令时,实现前述的问答模型的训练方法,或者,实现前述的答模型的问题语句处理方法。

本发明实施例还提供了一种计算机可读存储介质,存储有可执行指令,所述可执行指令被处理器执行时实现前述的问答模型的训练方法,或者实现前述的答模型的问题语句处理方法

本发明实施例具有以下有益效果:

通过对问答模型的隐变量生成网络和答复语句生成网络的联合训练,使得问答模型能够通过提取问题语句的词语级的隐变量,并根据由词语级的隐变量所生成的答复词语的概率,生成相应的答复语句。以使得训练得到的问答模型所生成的回复更加具有针对性,减少万能回复,从而可以提升回复的丰富度和前瞻性,提升用户的使用体验。

附图说明

图1为本发明实施例提供的问答模型训练方法的使用场景示意图;

图2为本发明实施例提供的问答模型的训练装置的组成结构示意图;

图3为现有技术中,基于rnn的seq2seq模型生成答复语句的示意图;

图4为本发明实施例提供的问答模型的训练方法一个可选的流程示意图;

图5为对问答模型中的隐变量生成网络和答复语句生成网络的预训练原理示意图;

图6为本发明实施例提供的问答模型的训练方法一个可选的流程示意图;

图7为本发明实施中隐变量生成网络和答复语句生成网络连接示意图;

图8为本发明实施例提供的问答模型装置的组成结构示意图;

图9为本发明实施例提供的问答模型的问题语句处理方法一个可选的流程示意图;

图10为本发明实施例所提供的问答模型的前端显示界面示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。

1)端到端神经网络(seq2seq,sequence-to-sequence),包括两个rnn网络,一个被称为编码器encoder,另一个则称为解码器decoder,编码器encoder负责把可变长度(variable-length)序列编码成固定长度(fixed-length)向量表示解码器decoder后者负责把fixed_length向量表示解码成variable-length输出。

2)递归神经网络(rnn,recurrentneuralnetwork),具有树状阶层结构且网络节点按其连接顺序对输入信息进行递归的人工神经网络(ann,artificialneuralnetwork),是深度学习(deeplearning)算法之一。

3)极大似然估计方法(mle,maximumlikelihoodestimate)也称为最大概似估计或最大似然估计,是求估计的一种方法。

4)fc层:全连接层,softmax层:softmax归一化函数;query:用户输入文本;response:由系统生成的回复语句。

图1为本发明实施例提供的问答模型训练方法的使用场景示意图,参见图1,终端(包括终端10-1和终端10-2)上设置有聊天软件的客户端,用户通过所设置的聊天客户端可以输入相应的问题语句,聊天客户端也可以接收相应的答复语句,并将所接收的答复语句向用户进行展示;终端通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。

作为一个示例,服务器200用于布设所述问答模型并对所述问答模型进行训练,以更新所述问答模型中隐变量生成网络的参数和答复语句生成网络的参数,以实现将通过问答模型中隐变量生成网络和答复语句生成网络生成针对目标问题语句的答复语句,并通过终端(终端10-1和/或终端10-2)展示问答模型所生成的与问题语句相对应的答复语句。

当然在通过问答模型对目标问题语句进行处理以生成相应的答复语句之前,还需要对问答模型进行训练,具体包括:通过问答模型的隐变量生成网络,确定与问题语句所对应的词语级的隐变量;通过所述问答模型的答复语句生成网络对词语级的隐变量进行解码处理生成与词语级的隐变量相同数量的答复词语;根据与词语级的隐变量相同数量的答复词语,生成与词语级的隐变量相对应的答复语句;通过所生成的答复语句所对应的精确率和召回率的调和平均数,更新隐变量生成网络的参数;通过损失值最小的所述答复语句的正确数据标注,更新答复语句生成网络的参数,实现对问答模型的训练。

下面对本发明实施例的问答模型的训练装置的结构做详细说明,问答模型的训练装置可以各种形式来实施,如带有问答模型训练功能的专用终端,也可以为设置有问答模型训练功能的服务器,例如前序图1中的服务器200。图2为本发明实施例提供的问答模型的训练装置的组成结构示意图,可以理解,图2仅仅示出了问答模型的训练装置的示例性结构而非全部结构,根据需要可以实施图2示出的部分结构或全部结构。

本发明实施例提供的问答模型的训练装置包括:至少一个处理器201、存储器202、用户接口203和至少一个网络接口204。问答模型训练装置中的各个组件通过总线系统205耦合在一起。可以理解,总线系统205用于实现这些组件之间的连接通信。总线系统205除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统205。

其中,用户接口203可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。

可以理解,存储器202可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。本发明实施例中的存储器202能够存储数据以支持终端(如10-1)的操作。这些数据的示例包括:用于在终端(如10-1)上操作的任何计算机程序,如操作系统和应用程序。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序。

在一些实施例中,本发明实施例提供的问答模型的训练装置可以采用软硬件结合的方式实现,作为示例,本发明实施例提供的问答模型训练装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的问答模型训练方法。例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,applicationspecificintegratedcircuit)、dsp、可编程逻辑器件(pld,programmablelogicdevice)、复杂可编程逻辑器件(cpld,complexprogrammablelogicdevice)、现场可编程门阵列(fpga,field-programmablegatearray)或其他电子元件。

作为本发明实施例提供的问答模型的训练装置采用软硬件结合实施的示例,本发明实施例所提供的问答模型的训练装置可以直接体现为由处理器201执行的软件模块组合,软件模块可以位于存储介质中,存储介质位于存储器202,处理器201读取存储器202中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器201以及连接到总线205的其他组件)完成本发明实施例提供的问答模型训练方法。

作为示例,处理器201可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

作为本发明实施例提供的问答模型的训练装置采用硬件实施的示例,本发明实施例所提供的装置可以直接采用硬件译码处理器形式的处理器201来执行完成,例如,被一个或多个应用专用集成电路(asic,applicationspecificintegratedcircuit)、dsp、可编程逻辑器件(pld,programmablelogicdevice)、复杂可编程逻辑器件(cpld,complexprogrammablelogicdevice)、现场可编程门阵列(fpga,field-programmablegatearray)或其他电子元件执行实现本发明实施例提供的问答模型训练方法。

本发明实施例中的存储器202用于存储各种类型的数据以支持问答模型训练装置的操作。这些数据的示例包括:用于在问答模型训练装置上操作的任何可执行指令,如可执行指令,实现本发明实施例的从问答模型训练方法的程序可以包含在可执行指令中。

在另一些实施例中,本发明实施例提供的问答模型的训练装置可以采用软件方式实现,图2示出了存储在存储器202中的问答模型的训练装置,其可以是程序和插件等形式的软件,并包括一系列的模块,作为存储器202中存储的程序的示例,可以包括问答模型的训练装置,问答模型的训练装置中包括以下的软件模块:隐变量生成网络训练模块2081,答复语句生成网络训练模块2082。当问答模型的训练装置中的软件模块被处理器201读取到ram中并执行时,将实现本发明实施例提供的问答模型训练方法,将在后续的说明书实施例中说明问答模型的训练装置中各个软件模块的功能。

结合图2示出的问答模型训练装置说明本发明实施例提供的问答模型的训练方法,在介绍本发明实施例提供的问答模型的训练方法之前,首先介绍相关技术中,通过传统的问答模型根据问题文本生成相应答复语句的过程中,图3为现有技术中,基于rnn的seq2seq模型生成答复语句的示意图,其中,eq2seq模型是以编码器(encode)和解码器(decode)为代表的架构方式,seq2seq模型是根据输入序列x来生成输出序列y。编码器(encode)和解码器(decode)为代表的seq2seq模型中,编码器(encode)是将输入序列转化成一个固定长度的向量,解码器(decode)将输入的固定长度向量解码成输出序列。如图3所示,编码器(encoder)对输入的问题语句进行编码,得到问题语句的文本特征;解码器(decoder)对文本特征进行解码后输出生成相应的回复,其中,编码器(encode)和解码器(decode)是一一对应的。

可见,对于图3所示的相关技术来说基于seq2seq模型的聊天生成系统的缺点在于,相关技术中的模型本身只对训练数据query-response建立一对一的关系,并且使用mle进行模型的优化,这导致了模型会生成很多高频的通用回复,这些回复往往没有意义且很短。同时,很多实际场景中,同一个query可以有很多种response,现有的seq2seq模型由于编码器(encode)和解码器(decode)是一一对应的,并不能够有效对这种一对多问题进行处理,用户体验差。

为解决这一相关技术中的缺陷,参见图4,图4为本发明实施例提供的问答模型的训练方法一个可选的流程示意图,可以理解地,图4所示的步骤可以由运行问答模型训练装置的各种电子设备执行,例如可以是如带有模型训练功能的专用终端、带有问答模型训练功能的服务器或者服务器集群。下面针对图4示出的步骤进行说明。

步骤401:通过问答模型的隐变量生成网络,确定与问题语句所对应的词语级的隐变量。

其中,在对问答模型进行训练的过程中,可以通过网络接收用户通过终端所输入的问题语句作为相应的训练样本,也可以使用问答模型训练装置保存在相应的存储介质中的已有的问题语句作为训练样本。

其中,通过隐变量生成网络,可以将问题语句进行分解,并生成相应的词语级的隐变量,其中可以使用双向门控循环单元(gru,gatedrecurrentunit)作为隐变量生成网络的编码器,以实现分解倒装语句格式的问题语句,以增强问答模型中的隐变量生成网络的适用范围。

步骤402:通过所述问答模型的答复语句生成网络对所述词语级的隐变量进行解码处理,生成与所述词语级的隐变量相同数量的答复词语。

其中,通过答复语句生成网络的解码器可以为双向gru网络,对应的复语句生成网络的编码器可以为单向gru网络,通过答复语句生成网络的解码器可以对问题语句进行编码,随后由编码器进行编码,形成相应的答复词语。

步骤403:根据与所述词语级的隐变量相同数量的答复词语,生成与所述词语级的隐变量相对应的答复语句。

此处的预设的答复语句生成网络包括对应的编码器和对应的解码器,该对应的编码器和该对应的解码器为双向网络模型,例如可以均选用bi-gru双向gru模型作为对应的编码器和对应的解码器,此处的bi-gru双向gru模型是一种可以识别倒装句结构的模型。由于用户在输入对话语句时,可能使得该对话语句为倒装句结构,即与正常的语句结构不一样,例如用户输入的对话语句为“天气怎么样今天”,而正常的语句结构为“今天天气怎么样”,采用bi-gru双向gru模型可以识别出倒装句结构的对话语句,从而可以丰富训练后的模型的功能,进而可以提高最终训练得到的目标模型的鲁棒性。

在本发明的一些实施例中,答复语句生成网络的对应的编码器和对应的解码器的架构不一致,即对应的编码器和对应的解码器中的模型参数不一致。由于对应的编码器和对应的解码器的模型参数不一致,因此在后续对答复语句生成网络的训练过程中所需训练并更新的模型参数更多,从而可以提高最终训练得到的目标模型的鲁棒性以及性能,使得训练得到的目标模型所生成的目标回复更加贴近于人类的语言,更具真实性。

在本发明的一些实施例中,在执行步骤401之前,需要首先初始化问答模型中的隐变量生成网络,以实现更新所述隐变量生成网络的参数。当然也需要初始化答复语句生成网络进行,以实现更新答复语句生成网络的参数。图5为对问答模型中的隐变量生成网络和答复语句生成网络的预训练原理示意图,如图5所示,编码器a和解码器a组成隐变量生成网络,基于问题语句的不同文本样本(例如不同内容和不同语言风格),对隐变量生成网络进行无监督地训练,以更新编码器a和解码器a的参数,直至编码器a能够对问题语句进行编码得到问题语句的降维后的特征,解码器a用于基于问题语句的降维后的特征进行解码,得到问题语句所对应的词语级的隐变量,同时解码器a所生成的词语级隐变量还需要通过全连接处理和归一化指数处理,得到每一个词语级隐变量的被选取概率。同理,基于问题语句的不同文本样本,对答复语句生成网络进行无监督地训练,以更新编码器b和解码器b的参数,直至解码器b能够生成与所述词语级的隐变量相同数量的答复词语,同时解码器b之后还需要通过全连接处理和归一化指数处理,得到所述问题语句相对应的答复词语的被选取概率。

可见,对于本实施所提供的问答模型的训练来说,本发明所提供的问答模型训练方法涉及到对隐变量生成网络和答复语句生成网络的初始化训练,隐变量生成网络和答复语句生成网络的训练过程中都需要分别对相应的编码器和解码器的参数进行更新,下面进行说明。

对隐变量生成网络的训练过程中,隐变量生成网络的损失函数表示为:

loss_a=∑(decoder_a(encoder(warp(x1)))-x1)2;其中,decoder_a为解码器a,warp为问题语句的函数,x1为问题语句,encoder为编码器。

在迭代训练的过程中,通过将问题语句代入隐变量生成网络的损失函数,求解损失函数按照梯度(例如最大梯度)下降时编码器a和解码器a的参数,当损失函数收敛时(即确定能够形成与所述问题语句所对应的词语级的隐变量时),结束训练。

对答复语句生成网络的训练过程中,答复语句生成网络的损失函数表示为:loss_b=∑(decoder_b(encoder(warp(x2)))-x2)2;其中,decoder_b为解码器b,warp为问题语句的函数,x2为问题语句,encoder为编码器。

在迭代训练的过程中,通过将问题语句代入答复语句生成网络的损失函数,求解损失函数按照梯度(例如最大梯度)下降时编码器b和解码器b的参数;当损失函数收敛时(即当解码得到与所述问题语句相对应的答复词语的被选取概率时),结束训练。

图6为本发明实施例提供的问答模型的训练方法一个可选的流程示意图,其中步骤406-407示出了对问答模型隐变量生成网络和答复语句生成网络预训练的示意图,下面针对图6示出的步骤进行说明。

步骤406:根据问题语句,初始化隐变量生成网络,以实现更新隐变量生成网络的参数。

在本发明的一些实施例中,根据问题语句,初始化隐变量生成网络,以实现更新隐变量生成网络的参数,可以通过以下方式实现:

通过所述隐变量生成网络的编码器对所述问题语句进行编码,形成所述问题语句的编码结果;通过对所述问题语句的编码结果进行全连接处理和归一化指数处理,确定能够形成与所述问题语句所对应的词语级的隐变量时的所述隐变量生成网络的参数。

步骤407:根据所述问题语句,初始化所述答复语句生成网络以更新所述答复语句生成网络的参数。

在本发明的一些实施例中,根据所述问题语句,初始化所述答复语句生成网络以更新所述答复语句生成网络的参数,可以通过以下方式实现:

通过所述答复语句生成网络的编码器对所述问题语句进行编码,形成所述问题语句的编码结果;通过所述答复语句生成网络的解码器,对所述问题语句的编码结果进行解码;当解码得到与所述问题语句相对应的答复词语的被选取概率时,确定所述答复语句生成网络的参数。例如:初始化训练训练后的问答模型的答复语句生成网络根据相应的问题语句生成了3个生成回复词语,分别是回复a(概率为0.25)、回复b(概率为0.5)以及回复c(概率为0.25),那么概率分布为{0.25,0.5,0.25}。

在本发明的一些实施例中,通过所述答复语句生成网络的解码器,对所述问题语句的编码结果进行解码,可以通过以下方式实现:

根据所述答复语句生成网络的解码器的输出结果和所述问题语句所对应的词语级的隐变量,确定所述问题语句所对应的注意力权重;将所述答复语句生成网络的解码器的输出结果和所述注意力权重进行拼接,并进行全连接处理和归一化指数处理,得到所述问题语句相对应的答复词语的被选取概率。

当问答模型的隐变量生成网络和答复语句生成网络通过前述的实施例完成初始化之后,还需要通过以下步骤进行联合训练,下面介绍对隐变量生成网络和答复语句生成网络进行联合训练的过程:

步骤404:通过所生成的答复语句所对应的精确率和召回率的调和平均数,更新所述隐变量生成网络的参数。

在本发明的一些实施例中,通过所生成的答复语句所对应的精确率和召回率的调和平均数,更新所述隐变量生成网络的参数,更新所述隐变量生成网络的参数,可以通过以下方式实现:

根据所生成的每一个所述答复语句的精确率和召回率的调和平均数,确定所有的答复语句对应的调和平均数的加和;将调和平均数的加和确定为与隐变量生成网络相对应的奖励函数,并通过所述奖励函数更新所述隐变量生成网络的参数。

步骤405:通过损失值最小的所述答复语句的正确数据标注,更新所述答复语句生成网络的参数。

在本发明的一些实施例中,通过损失值最小的所述答复语句的正确数据标注,更新所述答复语句生成网络的参数,可以通过以下方式实现:

根据每一个所述答复语句的精确率和召回率的调和平均数,确定与词语级的隐变量相对应的答复语句的准确性;根据与词语级的隐变量相对应的答复语句的准确性,确定损失值最小的答复语句的正确数据标注;通过损失值最小的答复语句的正确数据标注,更新答复语句生成网络的参数。

下面结合图2说明问答模型的训练装置中各个软件模块的功能。

隐变量生成网络训练模块2081,用于通过问答模型的隐变量生成网络,确定与问题语句所对应的词语级的隐变量;

答复语句生成网络训练模块2082,用于通过所述问答模型的答复语句生成网络对所述词语级的隐变量进行解码处理,生成与所述词语级的隐变量相同数量的答复词语;

所述答复语句生成网络训练模块2082,用于根据与所述词语级的隐变量相同数量的答复词语,生成与所述词语级的隐变量相对应的答复语句;

所述隐变量生成网络训练模块2081,用于通过所生成的答复语句所对应的精确率和召回率的调和平均数,更新所述隐变量生成网络的参数;

所述答复语句生成网络训练模块2082,用于通过损失值最小的所述答复语句的正确数据标注,更新所述答复语句生成网络的参数。

图7为本发明实施中隐变量生成网络和答复语句生成网络连接示意图,其中,隐变量生成网络为actor网络,答复语句生成网络为critic网络。

结合前述实施例,下面首先介绍对actor网络和critic网络的训练过程,包括:对actor网络以及critic网络进行预训练,随后将两者进行联合训练。

其中,预训练阶段,通过初始化所述actor网络,以实现更新所actor网络隐变量生成网络的参数,同时,根据所述问题语句,初始化critic网络,以实现critic网络的参数。联合训练阶段,actor网络首先根据输入的query选取k个隐变量z,接着critic网络根据k个z分别生成k个response,随后计算这k个response的f1score之和来作为actor网络的reward来更新actor网络的参数,接着使用损失值最小的groundtruth来更新critic网络的参数。

结合前述实施例,下面首先介绍对actor网络和critic网络的测试过程,包括:actor网络首先根据输入的query选取k个隐变量z,接着critic网络根据k个z分别生成k个response,直至所述critic网络能够根据所输入的query稳定输出相应的回复语句response。

下面首先介绍通过actor网络和critic网络生成相应的回复语句response的过程。

1)actor网络首先用一个双向gru网络作为encoder,对query文本进行编码得到一个输入表示,再经过一层fc网络将其映射到隐变量空间大小,最后经过一层softmax层得到选取每个隐变量z的概率,最后模型选取概率最大的前k个隐变量z。

2)critic网络是基于attention机制的seq2seq模型,并且通过jointattention机制来引入隐变量(latentvariable),critic网络首先同样是通过一个基于双向gru网络的encoder对query文本进行编码,随后由基于单向gru网络的decoder对其进行解码输出。而在解码阶段,本方案提出一种jointattention机制,分别由当前的decoder的hiddenstate以及隐变量z的向量表示来分别对输入的query计算attention权重并进行相加后得到两个attention向量表示,最后将两个attention向量以及当前decoder的hiddenstate进行拼接后经过一层fc层将其映射到词表空间最后经过一层softmax层得到选取每个词的概率。最后使用beamsearch技术选取相应的回复词语来得到所要生成的回复语句response。

下面对本发明实施例的问答模型装置的结构做详细说明,问答模型装置可以各种形式来实施,如带有根据能够运行问答模型的专用终端,也可以为带有回答的功能的服务器,以根据终端中的应用程序所接收的问题语句生成相应的答复语句(例如前序图1中的服务器300)。图8为本发明实施例提供的问答模型装置的组成结构示意图,可以理解,图8仅仅示出了问答模型装置的示例性结构而非全部结构,根据需要可以实施图8示出的部分结构或全部结构。

本发明实施例提供的问答模型装置包括:至少一个处理器801、存储器802、用户接口803和至少一个网络接口804。问答模型装置中的各个组件通过总线系统805耦合在一起。可以理解,总线系统805用于实现这些组件之间的连接通信。总线系统805除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统805。

其中,用户接口803可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。

可以理解,存储器802可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。本发明实施例中的存储器802能够存储数据以支持终端(如10-1)的操作。这些数据的示例包括:用于在终端(如10-1)上操作的任何计算机程序,如操作系统和应用程序。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序。

在一些实施例中,本发明实施例提供的问答模型装置可以采用软硬件结合的方式实现,作为示例,本发明实施例提供的问答模型装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的问答模型的问题语句处理方法。例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,applicationspecificintegratedcircuit)、dsp、可编程逻辑器件(pld,programmablelogicdevice)、复杂可编程逻辑器件(cpld,complexprogrammablelogicdevice)、现场可编程门阵列(fpga,field-programmablegatearray)或其他电子元件。

作为本发明实施例提供的问答模型装置采用软硬件结合实施的示例,本发明实施例所提供的问答模型装置可以直接体现为由处理器801执行的软件模块组合,软件模块可以位于存储介质中,存储介质位于存储器802,处理器801读取存储器802中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器801以及连接到总线805的其他组件)完成本发明实施例提供的问答模型的问题语句处理方法。

作为示例,处理器801可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

作为本发明实施例提供的问答模型装置采用硬件实施的示例,本发明实施例所提供的装置可以直接采用硬件译码处理器形式的处理器801来执行完成,例如,被一个或多个应用专用集成电路(asic,applicationspecificintegratedcircuit)、dsp、可编程逻辑器件(pld,programmablelogicdevice)、复杂可编程逻辑器件(cpld,complexprogrammablelogicdevice)、现场可编程门阵列(fpga,field-programmablegatearray)或其他电子元件执行实现本发明实施例提供的问答模型的问题语句处理方法。

本发明实施例中的存储器802用于存储各种类型的数据以支持问答模型装置的操作。这些数据的示例包括:用于在问答模型装置上操作的任何可执行指令,如可执行指令,实现本发明实施例的从问答模型的问题语句处理方法的程序可以包含在可执行指令中。

在另一些实施例中,本发明实施例提供的问答模型装置可以采用软件方式实现,图8示出了存储在存储器802中的问答模型装置,其可以是程序和插件等形式的软件,并包括一系列的模块,作为存储器802中存储的程序的示例,可以包括问答模型装置,问答模型装置中包括以下的软件模块:隐变量生成网络模块8081,答复语句生成网络模块8082。当问答模型装置中的软件模块被处理器801读取到ram中并执行时,将实现本发明实施例提供的问答模型的问题语句处理方法,问答模型装置中各个软件模块的功能将在后续说明。

结合图8示出的问答模型装置说明本发明实施例提供的问答模型的问题语句处理方法,参见图9,图9为本发明实施例提供的问答模型的问题语句处理方法一个可选的流程示意图,可以理解地,图9所示的步骤可以由运行问答模型装置的各种电子设备执行,例如可以是如带有问题语句处理功能的专用终端、带有问题语句处理功能的服务器或者服务器集群。下面针对图9示出的步骤进行说明。

步骤901:通过问答模型的隐变量生成网络,确定与目标问题语句所对应的至少一个词语级的隐变量。

其中,问答模型的隐变量生成网络可以接收用户通过终端所输入的问题语句。

步骤902:通过所述问答模型的答复语句生成网络,根据所述至少一个词语级的隐变量,生成与所述词语级的隐变量相对应的答复词语以及所述答复词语的被选取概率。

步骤903:根据所述答复词语的被选取概率,选取至少一个答复词语组成与所述目标问题语句相对应的答复语句。

步骤904:服务器输出所述答复语句。

下面结合图8,说明问答模型装置中各个软件模块的功能将在后续说明。

隐变量生成网络模块8081,用于确定与目标问题语句所对应的至少一个词语级的隐变量;

答复语句生成网络模块8082,用于根据所述至少一个词语级的隐变量,生成与所述词语级的隐变量相对应的答复词语以及所述答复词语的被选取概率;

所述答复语句生成网络模块8082,用于根据所述答复词语的被选取概率,选取至少一个答复词语组成与所述目标问题语句相对应的答复语句;

所述答复语句生成网络模块8082,用于输出所述答复语句。

图10为本发明实施例所提供的问答模型的前端显示界面示意图,通过本实施例所示的问答模型隐变量生成网络对目标问题语句进行处理,形成词语级的隐变量。其中,目标问题文本为用户通过前端显示界面所输入的“当我能找到时间的时候,我想去野营,和我的朋友们一起点篝火。”

通过所述问答模型的答复语句生成网络,根据所述词语级的隐变量,生成与词语级的隐变量相对应的答复词语以及所述答复词语的被选取概率。

根据所述答复词语的被选取概率,选取答复词语组成与所述目标问题语句相对应的答复语句包括以下三种组合:

1)“太神了!但我更喜欢一个人弹吉他”。

2)“我喜欢踢足球、网球和跑步”。

3)“我喜欢看篝火!非常放松”。

由此,通过本发明所提供的问答模型,可以实现根据同一个目标问题语句可以生成多种不同的答复语句。

综上所述,本发明实施例具有以下技术效果:

能够根据用户输入的问题语句,可以一次性生成多中不同的回复,生成的回复具有较好的多样性,减少了通用回复的生成,提升了用户的使用体验。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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