一种答案生成方法及装置与流程

文档序号:14403243阅读:314来源:国知局
一种答案生成方法及装置与流程

本技术方案属于自然语言处理领域,特别涉及一种基于结构化信息选择的答案生成方法。



背景技术:

答案生成是智能问答系统中一个基础性科学问题,能否较好地利用问句和答案片段生成符合自然语言交互习惯的答案,对于提升智能问答系统的自然交互性能具有十分重要的意义。

在问答系统中,采用序列-序列(seq2seq,sequencetosequence)问题的模型能够获得较为符合自然语言交互习惯的答案。seq2seq问题的模型是根据一个输入序列x,来生成另一个输出序列y。具体地,在问答系统中,输入序列是提出的问题,而输出序列是答案。为了解决seq2seq问题,有人提出了编码-解码(encoder-decoder)模型。所谓编码,就是将输入序列转化成一个固定长度的向量;解码,就是将所述固定长度的向量转化成输出序列。它的工作模型如图1所示。具体到问答系统中,请结合图1中,编码器将输入的问题转化成具有固定长度的向量x1、x2、x3和x4,对向量x1、x2、x3和x4编码后生成向量c,解码器首先根据所述向量c从候选词中抽取第一个生成词y1,并生成第一生成词y1的隐向量,再根据向量c和前一生成词的隐向量从候选词中选取第二个生成词y2,并生成第二生成词y2的隐向量,同样地,依次生成后续生成词,直至生成包含有结束符号的生成词,结束生成,假设包含结束符号的生成词为第三生成词y3,则最后按照y1、y2与y3的生成顺序输出文本,即为答案。

在传统的seq2seq问题的模型中,y1-y3是根据候选词中选的概率分布生成的,这样会使生成的答案具有很大的随机性和不确定性,如问题为“姚明身高是多少?”,得到的回答为“姚明身高为1.8m。”这个回答在语法上是正确的,但从答案的性和准确性上来讲是错误的,在追求答案准确性的今天,传统的答案生成方法会导致问答系统的准确性低。



技术实现要素:

本申请提供了一种部分基于结构化知识库的自动问答系统和部分基于深度神经网络模型的自然语言对话系统的答案生成方法,具体地,所述方法基于encoder-decoder模型,结合三元组结构化数据问答系统,在生成生成词前进行二分类选择,选择生成词的来源,使得生成的答案既具符合自然语言的表达习惯,又具有较高的准确性。

本申请的目的在于提供一种答案生成方法,所述方法包括:第一解码器获取起始隐向量和隐状态向量;第一解码器使用所述隐状态向量和起始隐向量生成第一中间向量;第一解码器使用第一中间向量计算第一逻辑回归分类结果;第一解码器使用第一逻辑回归分类结果对应的用于计算概率分布的模型生成第一概率分布,所述第一概率分布为所有候选词被选中成为第一生成词的概率的集合;第一解码器根据第一概率分布从候选词中选出第一生成词;如果所述第一生成词中包含结束符,则生成答案,所述答案为所述第一生成词。

在一种可实现的方式中,所述方法还包括:如果第(k-1)生成词不包含结束符,则,第一解码器获取待处理问题的隐状态向量、所述第(k-1)中间向量、所述第(k-1)生成词对应的词向量;第一解码器根据所述隐状态向量、所述第(k-1)中间向量和所述第(k-1)生成词对应的词向量生成第k中间向量;

第一解码器使用第k中间向量计算第k逻辑回归分类结果;

第一解码器使用第k逻辑回归分类结果对应的模型计算第k概率分布;

第一解码器根据第k概率分布生成第k生成词;

如果第k生成词中包含结束符,则生成答案,所答案由第一生成词至第k生成词顺次连接而成。

在一种可实现的方式中,所述使用第一中间向量计算第一逻辑回归分类结果包括,根据所述第一中间向量利用逻辑回归模型计算逻辑回归分类结果,所述逻辑回归模型如下所示:

其中,

p表示在st和θ的条件下,选择zt=0的类别或者zt=1的类别的概率;

zt表示用于计算概率分布的模型的类别;

st表示中间向量;

θ为预设值;

e表示自然对数的底数。

在一种可实现的方式中,所述使用第一逻辑回归分类结果对应的模型计算第一概率分布包括:

如果逻辑回归分类结果大于0.5,则利用三元组符合度模型生成候选词被选中成为生成词的第一概率分布。

在一种可实现的方式中,所述候选词选自三元组结构化数据集合,所述三元组结构化数据集合包括至少一条与所述问题的相关度大于第一预设值的三元组结构化数据,每条所述三元组结构化数据包括两个实体词和一个关系词。

在一种可实现的方式中,所述利用三元组符合度模型生成第一概率分布包括:

第二解码器获取待处理问题的隐状态向量和预设起始词向量;

第二解码器计算所述三元组结构化数据集合中实体词的平均向量和关系词的平均向量;

第二解码器拼接所述实体词的平均向量,所述隐状态向量,所述预设起始词向量与所述关系词的平均向量得到第一总向量;

第二解码器使所述第一总向量经过神经网络全连接层,获得第一子向量;

第二解码器使用所述第一子向量获得所述第一概率分布。

本申请的目的还在于提供一种答案生成装置,所述装置包括:

初始向量获取模块,用于第一解码器获取起始隐向量和隐状态向量;

第一中间向量获取模块,用于使用所述隐状态向量和起始隐向量生成第一中间向量;

第一逻辑回归分类结果获取模块,用于使用中间向量计算第一逻辑回归分类结果;

第一概率分布获取模块,用于使用第一逻辑回归分类结果对应的用于计算概率分布的模型生成第一概率分布,所述第一概率分布为所有候选词被选中成为第一生成词的概率的集合;

第一生成词获取模块,用于根据第一概率分布从候选词中选出第一生成词;

第一答案获取模块,用于如果所述第一生成词中包含结束符,则生成答案,所述答案为所述第一生成词。

在一种可实现的方式中,如果第(k-1)个生成词中不包含结束符,则

初始向量获取模块还用于获取待处理问题的隐状态向量、所述第(k-1)中间向量、所述第(k-1)生成词对应的词向量;

第一中间向量获取模块还用于根据所述隐状态向量、所述第(k-1)中间向量和所述第(k-1)生成词对应的词向量生成第k中间向量;

第一逻辑回归分类结果获取模块还用于使用第k中间向量计算第k逻辑回归分类结果;

第一概率分布获取模块还用于使用第k逻辑回归分类结果对应的模型计算第k概率分布;

第一生成词获取模块还用于根据第k概率分布生成第k生成词;

第一答案获取模块还用于如果第k生成词中包含结束符,则生成答案,所答案由第一生成词至第k生成词顺次连接而成。

在一种可实现的方式中,所述第一逻辑回归分类结果获取模块具体用于根据所述第一中间向量利用逻辑回归模型计算逻辑回归分类结果,所述逻辑回归模型如下所示:

其中,

p表示在st和θ的条件下,选择zt=0的类别或者zt=1的类别的概率;

zt表示用于计算概率分布的模型的类别;

st表示中间向量;

θ为预设值;

e表示自然对数的底数。

在一种可实现的方式中,所述第一概率分布获取模块具体用于如果逻辑回归分类结果大于0.5,则利用三元组符合度模型生成候选词被选中成为生成词的第一概率分布。

在一种可实现的方式中,所述候选词选自三元组结构化数据集合,所述三元组结构化数据集合包括至少一条与所述问题的相关度大于第一预设值的三元组结构化数据,每条所述三元组结构化数据包括两个实体词和一个关系词。

在一种可实现的方式中,所述第一概率分布获取模块包括:

初始向量获取单元,用于第二解码器获取待处理问题的隐状态向量和预设起始词向量;

平均向量获取单元,用于计算所述三元组结构化数据集合中实体词的平均向量和关系词的平均向量;

第一总向量获取单元,用于拼接所述实体词的平均向量,所述隐状态向量,所述预设起始词向量与所述关系词的平均向量得到第一总向量;

第一子向量获取单元,用于使所述第一总向量经过神经网络全连接层,获得第一子向量;

第一概率分布获取单元,用于使用所述第一子向量获得所述第一概率分布。

附图说明

图1为一种使用序列到序列的自然语言对话系统的架构示意图;

图2为本申请提供方法在模型训练阶段的流程示意图;

图3为本申请提供方法的模型图;

图4为一种可实现的生成文本隐状态向量的方法的流程示意图;

图5为本申请提供的一种获取第t个生成词的隐状态向量ct的流程图;

图6为本申请提供的一种使用三元组结构化数据符合度模型生成第一概率分布的流程示意图;

图7为本申请提供的一种使用三元组结构化数据符合度模型生成第一概率分布的模型示意图;

图8为本申请提供方法的另一种实施方式的流程图;

图9为本申请提供的一种可实现的获取第p个生成词的流程图;

图10为本申请一种实施方式的答案生成方法的流程图;

图11为本申请提供的一种所述装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明的保护范围。

本申请的方案部分基于结构化知识库的自动问答系统和部分基于深度神经网络模型的自然语言对话系统。

所述基于结构化知识库的自动问答系统首先从大量数据(通常是非结构化或半结构化的数据)中获取或挖掘结构化的知识,并构建结构化的知识库。知识的结构通常用三元组结构化数据来表示:实体-关系-实体,如(姚明,身高,2.26m)就是一个三元组结构化数据。所述知识库由多个三元组结构化数据构成。在知识库构建后,可以在所述知识库中查询相关知识,由于知识本身就包含有两个实体词以及它们之间的关系,因此,由该知识库获取的答案的性和准确性较高。

但是基于结构化知识库的自动问答系统提供的答案往往只是三元组结构化数据,并非自然语言,例如,当问题为“姚明身高是多少?”时,基于结构化知识库的自动问答系统提供的答案可能仅仅为“姚明身高2.26m。”,而“姚明的身高为2.26m。”这种更符合自然语言习惯的答案更容易被用户接受。因此,单纯使用所述基于结构化知识库的自动问答系统,只能满足答案的性需求,而损失了答案语言的自然性。

所述基于深度神经网络模型的自然语言对话系统是利用seqtoseq(sequencetosequence,序列到序列)的学习模型在经过大规模的对话语料训练得到的自然语言对话系统。

图1为一种使用序列到序列的自然语言对话系统的架构示意图。结合图1,所述基于深度神经网格模型的自然语言对话系统包括编码器和解码器,其中,编码器(encoder)对用户输入的问题进行编码处理生成隐状态向量,所述隐状态向量作为所述使用序列到序列的自然语言对话系统的输入序列,所述编码器再将所述隐状态向量发送给解码器,解码器(decoder)接受由所述编码器发送来的隐状态向量,再根据所述隐状态向量和前一生成词的词向量依次生成生成词,再顺次连接所述生成词构成答案序列。对于第一个生成词,是解码器根据所述隐状态向量和起始向量生成的,而起始向量是在模型训练阶段获得的。

然而,所述基于深度神经网络模型的自然语言对话系统提供的生成词全部源自于训练阶段累积的词典,如果用户输入的问题与训练阶段使用的语料相关度小,或者模型训练不充分时,所述提供的答案的准确度和性则降低,具体表现为答非所问或者答案信息不准确。例如:如果训练阶段使用的语料中没有关于“姚明”的语料,那么,如果用户输入的问题为“姚明的身高是多少?”,则所述自然语言对话系统可能会随机生成一个答案,如“科尔的身高是2m。”而且,由于在训练阶段累积的词典中各个候选词之间并没有逻辑关系,因此,对于同一个问题可能会有多个候选词中选的概率相同,此时,所述解码器会随机选择一个候选词作为生成词,这就造成了答案的不准确性。例如,当问题为“姚明的身高是多少?”时,所述基于深度神经网络模型的自然语言对话系统提供的答案可能是“姚明的身高是2.26m。”,也可能是“姚明的身高是1.8m。”这两个答案在语法上都是正确的,但是回答特定问题的准确性则是不同的。

因此,单独使用任何一种系统或者模型都存在难以克服的问题。本申请以基于深度神经网络的自然语言对话系统为基础,结合基于结构化知识库的自动问答系统,选择适当的生成词选取模型来选取生成词,使得生成的答案序列既准确又符合自然语言的表达习惯。

而本申请提供的方法是以基于深度神经网络模型的自然语言对话系统为基础,结合基于结构化知识库的自动问答系统提供一种能够生成答案的方法,用该方法生成的答案既符合自然语言表达习惯又具有较高的准确度。

作为一种机器学习模型,基于深度神经网络的自然语言对话系统包括模型训练和模型使用两个阶段。

所述模型训练阶段是指根据训练语料,通过反向传播等算法来确定神经网络上各个模块参数的阶段。

在一种可实现的方式中,所述训练语料可以为:问题,答案,匹配的三元组结构化数据。例如:

问题:姚明的身高是多少?

答案:姚明的身高为2.26m。

匹配的三元组结构化数据:(姚明,身高,2.26m)

在本申请中,训练语料中形成的三元组结构化数据可以作为模型使用阶段三元组结构化数据召回的对象,从而,在模型使用阶段可以从所述三元组结构化数据所包括的词语中选取生成词。

在一种可实现的方式中,在模型训练阶段,所述三元组结构化数据可以来源于已有的三元组知识库,如:在从网络上抓取的大量语料中提取的三元组结构化数据。

在本申请中,在模型训练阶段,随着训练的不断进行,所述第一解码器逐条存储所述三元组结构化数据。

在另一种可实现的方式中,所述训练语料也可以为:问题,答案,候选词。例如:

问题:姚明的身高是多少?

答案:姚明的身高为2.26m。

候选词为:“姚明”,“的”,“身高”,“为”,“2.26m”,“。”。

在本申请中,模型训练阶段不断更新预设词典,所述预设词典包括所述训练语料中的候选词,模型使用阶段可以从所述预设词典中选取生成词。

在本申请中,所述候选词可以为单独的一个字符、一个数字、一个字母,或者为上述中至少两个的组合。例如,所述候选词可以为“姚明”,“的”,“身高”,“为”,“2.26m”或者“。”等。

所述模型使用阶段是指在所述模型训练阶段结束后,基于在模型训练阶段建立的知识库,以用户的自然语言问题为输入,通过神经网络系统中各个模块的计算,生成自然语言答案返回给用户的阶段。

为便于理解,首先介绍模型训练阶段。

在模型训练阶段首先要获取训练语料,所述训练语料来自特定领域的数据信息,或者从互联网上抓取。

所述模型训练阶段主要用于确定所述模型中各个计算模块的参数,所述参数包括起始隐向量和预设词典。

图2为本申请提供方法在模型训练阶段的流程示意图,图3为本申请提供方法的模型图,结合图2和图3,具体地,所述模型训练阶段包括:

s110,第一解码器获取预设起始隐向量和起始隐状态向量。

在本申请中,在模型训练阶段,第一解码器会使用预设起始隐向量作为开始生成第一个生成词的标记,所述预设起始隐向量可以是第一解码器随机生成的,也可以是根据经验而人为设定的。所述预设起始隐向量用于开启所述模型训练阶段,它的数值随着训练的不断进行而不断被更新,直至模型训练阶段结束,在模型训练阶段最后末一次训练后,通过反向传播更新后的预设起始隐向量作为模型使用阶段的起始隐向量。

可选地,所述训练语料中问题的隐状态向量为第一编码器根据所述训练语料中问题生成的包含所述问题特征信息的隐状态向量,以便神经网络对所述问题进行处理来获得期待的答案,所述训练语料中问题的隐状态向量的生成方法可以为现有技术中任意一种生成文本隐状态向量的方法,例如,图4为一种可实现的生成文本隐状态向量的方法的流程示意图,结合图4,包括:

s111,第一编码器获取训练语料中的问题q。

s112,第一编码器对所述训练语料中的问题进行分词处理,获得多个具有顺序的词语。本申请中所用的分词方法可以是现有技术中任意一种对文本进行分词处理的方法。

s113,第一编码器获取每个所述词语的预设词向量q1,q2,q3和q4。在本申请中,每个所述词语对应的预设词向量可以是相同的也可以是不同的,可以是所述第一编码器随机生成的,也可以是根据经验而人为设定的。

s114,第一编码器使用第一个所述词语对应的预设词向量q1计算第1个所述词语对应的隐向量m1。所述隐向量m1包含第一个所述词语的特征信息。

s115,第一编码器使用第(i-1)个所述词语对应的隐向量mi-1和第i个所述词语对应的词向量计算第i个所述词语对应的隐向量mi。其中,i=2,3,……,f,f为第一编码器对所述训练语料中的问题进行分词处理,获得的具有顺序的词语的个数。

在一种可实现的方式中,所述第i所述词语对应的词向量可以为预设的向量,也可以为第一编码器随机生成的向量,也可以为在当前时刻模型中存储的所述第i个所述词语对应的词向量。

进一步地,如果所述第i个所述词语在模型训练阶段首次出现,则所述第i个所述词语对应的词向量可以为预设的向量,也可以为第一编码器随机生成的向量;如果所述第i个所述词语在模型训练阶段非首次出现,则所述第i所述词语对应的词向量可以为在当前时刻模型中存储的所述第i个所述词语对应的词向量。

在本申请中,从第2个所述词语开始,在计算当前所述词语对应的隐向量时会使用前一所述词语对应的隐向量,例如,如图3所示的模型中,在计算第2个所述词语对应的隐向量m2时,会使用m1以及q2,从而在依次计算每个所述词语对应的隐向量时会传递当前所述词语之前所有所述词语的隐向量,使得计算得到的当前所述词语对应的隐向量包含了从第1个所述词语至当前所述词语的全部特征信息。

具体地,第一编码器使用第(i-1)个所述词语对应的隐向量和第i个所述词语对应的预设词向量使用下列公式(1)计算第i个所述词语对应的隐向量mi:

mi=tanh(uxi+w·mi-1+bm)公式(1)

其中,

mi表示第i个所述词语对应的隐向量;

u为预设的矩阵,由模型训练阶段获得,具体地,所述u可以为第一解码器随机生成的,也可以为根据经验而人为设定的,随着模型训练的不断进行,u不断地被更新;

w为另一个预设的矩阵,同样地,w也由模型训练阶段获得,具体地,所述w可以为第一解码器随机生成的,也可以为根据经验而人为设定的,随着模型训练的不断进行,w不断地被更新;

xi为第i个所述词语对应的预设词向量;

mi-1为第(i-1)个所述词语对应的隐向量;

bm为预设值,即偏置,所述偏置是指函数中的预设常数。bm由模型训练阶段获得,具体地,所述bm可以为第一解码器随机生成的,也可以为根据经验而人为设定的,随着模型训练的不断进行,bm不断地被更新。

在第一编码器生成所述训练语料中问题的隐向量后,第一编码器将所述隐向量发送给第一解码器,第一解码器根据所述隐向量生成所述训练语料中问题对应的答案。

具体地,第一解码器根据所述隐向量生成问题对应的答案包括:

s120,第一解码器使用所述预设起始隐向量a1和所述起始隐状态向量c1生成第一中间向量s1。所述第一中间向量s1包含开始生成生成词的指示信息,也包含所述训练语料中的问题的全部特征信息,所述第一中间向量用于计算第一逻辑回归分类结果,从而使第一解码器根据所述第一逻辑回归分类结果判断生成词的来源。

在本申请中,可以使用现有技术中任意一种应用于encoder-decoder模型的计算隐状态向量的方法。例如,图5为获取第t个生成词的隐状态向量ct的一种方式的流程图,请结合图5,在一种可实现的方式中,所述ct根据包括以下步骤的方法获取:

获取所有所述词语隐向量m1~mf和第(t-1)个所述词语对应的隐向量m(t-1)’,

将每个所述词语隐向量mt与m(t-1)’相乘,分别得到m与m’的相关度即,

对所有的相关度进行softmax处理,得到所述相关度的概率分布

再根据公式(2)来获取ct:

第一解码器根据以下公式(3)和公式(4)计算所述第一中间向量s1:

mt’=tanh(u’·at+v’·ct-1+w’·mt-1’+bm’)公式(3)

st=tanh(o’·mt’+bs’)公式(4)

其中,

st为中间向量;

mt’为当前生成词的隐向量;

u’为预设的矩阵,由模型训练阶段获得,具体地,所述u’可以为第一解码器随机生成的,也可以为根据经验而人为设定的,随着模型训练的不断进行,u’不断地被更新;

v’为另一个预设的矩阵,由模型训练阶段获得,具体地,所述v’可以为第一解码器随机生成的,也可以为根据经验而人为设定的,随着模型训练的不断进行,v’不断地被更新;

w’为另一个预设的矩阵,由模型训练阶段获得,具体地,所述w’可以为第一解码器随机生成的,也可以为根据经验而人为设定的,随着模型训练的不断进行,w’不断地被更新;

o’为另一个预设的矩阵,由模型训练阶段获得,具体地,所述o’可以为第一解码器随机生成的,也可以为根据经验而人为设定的,随着模型训练的不断进行,o’不断地被更新;

bm’为另一个预设的矩阵,由模型训练阶段获得,具体地,所述bm’可以为第一解码器随机生成的,也可以为根据经验而人为设定的,随着模型训练的不断进行,bm’不断地被更新;

bs’为另一个预设的矩阵,由模型训练阶段获得,具体地,所述bs’可以为第一解码器随机生成的,也可以为根据经验而人为设定的,随着模型训练的不断进行,bs’不断地被更新;

at为前一个生成词的词向量,对于第1个生成词,a1为预设的起始向量,由模型训练阶段获得,具体地,所述a1可以为第一解码器随机生成的,也可以为根据经验而人为设定的,随着模型训练的不断进行,a1不断地被更新;

ct-1为前一个生成词的隐状态向量,对于第1个生成词,c0为使用所述问题中第i个所述词语对应的隐向量mi获得,例如,结合图5的模型,c0是使用m4获得的;

mt-1’为前一个生成词的隐向量,对于第1个生成词,m0’为所述问题中第i个所述词语对应的隐向量mi,例如,结合图5的模型,m0’=m4。

s130,第一解码器使用第一中间向量s1计算第一逻辑回归分类结果z1。所述第一逻辑回归分类结果z1用于判断生成词的来源。所述第一逻辑回归分类结果考虑了所述训练语料中问题的全部特征信息,因此,使用所述第一逻辑回归分类结果来判断生成词的来源能够兼顾答案的准确性和答案语言的自然性。

具体地,第一解码器根据以下逻辑回归模型计算所述逻辑回归分类结果:

其中,

p表示在st和θ的条件下,选择zt=0的类别或者zt=1的类别的概率;

zt表示用于计算概率分布的模型的类别,例如zt=0表示使用三元组结构化数据符合度模型,zt=1表示使用随机概率分布计算模型;

st表示中间向量;

θ为预设值,θ的起始值可以为第一解码器随机生成的,也可以为根据经验而人为设定的,随着模型训练的不断进行,θ的数值不断地被更新;

e表示自然对数的底数。

s140,第一解码器使用所述第一逻辑回归分类结果对应的用于计算概率分布的模型生成第一概率分布,所述第一概率分布为所有候选词被选中成为第一生成词的概率的集合。

具体地,所述第一解码器使用所述第一逻辑回归分类结果对应的用于计算概率分布的模型生成第一概率分布为,如果第一逻辑回归分类结果z1大于0.5,则使用三元组结构化数据符合度模型生成第一概率分布,所述三元组结构化数据符合度模型为计算三元组结构化数据中所有候选词中选成为生成词的概率分布的模型;如果第一逻辑回归分类结果z1小于或者等于0.5,则使用随机概率分布计算模型生成第一概率分布,所述随机概率分布计算模型为计算预设词典中所有候选词中选成为生成词的概率分布的模型。

图6为使用三元组结构化数据符合度模型生成第一概率分布的流程示意图,图7为使用三元组结构化数据符合度模型生成第一概率分布的模型示意图,结合图6和图7,在一种可实现的方式中,所述使用三元组结构化数据符合度模型生成第一概率分布包括:

s141,第二解码器获取所述训练语料中问题的隐状态向量和预设起始词向量。

在本申请中,所述隐状态向量ct是由第一编码器发送来的,即,第二解码器获得的隐状态向量ct与第一解码器获得的隐状态向量相同。结合图2和图3,所述预设起始词向量q1,q2,q3和q4是由第一解码器发送而来的,即,第二解码器获得的预设起始词向量与第一解码器获得的预设起始词向量相同。

s142,第二解码器计算三元组结构化数据集合中实体词的平均向量m1和关系词的平均向量m2。

在本申请中,所述三元组结构化数据集合为预先召回的,包括至少一条与所述训练语料中问题的相关度大于第一预设值的三元组结构化数据。所述第一预设值可以根据需求设定不同的第一预设值。

在一种可实现的方式中,所述三元组结构化数据与所述训练语料中问题的相关度可以使用现有技术中任意一种用于计算三元组结构化数据与文本相关度的方法或者模型。

s143,第二解码器拼接所述实体词的平均向量m1,所述隐状态向量ct,所述预设起始词向量q1与所述关系词的平均向量m2得到第一总向量mz。

在一种可实现的方式中,第二解码器可以顺次拼接所述实体词的平均向量,所述隐状态向量,所述预设起始词向量与所述关系词的平均向量得到第一总向量,可以按照其它顺序拼接所述四个向量,但在同一个模型中只能选定一种拼接次序。例如,如果选定拼接次序为实体词的平均向量-隐状态向量-预设起始词向量-关系词的平均向量得到第一总向量,则在本申请提供的方法中,不论在模型训练阶段还是在模型使用阶段,第二解码器均会按照实体词的平均向量-隐状态向量-预设起始词向量-关系词的平均向量的次序拼接所述四个向量来获得总向量或者总向量。所述总向量包括第一总向量至第p总向量,其中,p为每条答案中生成词的个数;所述总向量包括第一总向量至第q总向量,其中,q为每条答案中生成词的个数。

s144,第二解码器使所述第一总向量mz经过神经网络全连接层,获得第一子向量mg。

在一种可实现的方式中,所述神经网络全连接层为现有技术中任意一种神经网络全连接层。

s145,第二解码器使用所述第一子向量mg获得所述第一概率分布。所述第一概率分布包括所述三元组结构化数据集合中所有候选词被选中成为生成词的概率。

在另一种可实现的方式中,所述使用随机概率分布计算模型生成第一概率分布包括:

第二解码器使用第一中间向量和预设起始向量生成第一概率分布,所述第一概率分布包括预设词典中所有候选词被选中成为生成词的概率。

在一种可实现的方式中,所述第二解码器根据公式(2)~公式(6)使用预设起始向量a1生成第一中间向量s1,使用s1计算得到z1。

s150,第一解码器根据所述第一概率分布从候选词中选出第一生成词。

在一种可实现的方式中,所述第一解码器根据所述第一概率分布从三元组结构化数据集合中或者预设词典中选择一个候选词作为第一生成词。

在本申请中,在选择第一生成词时,可以选择所述概率分布中概率最大的候选词作为第一生成词,也可以使用其它选择方式来选择第一生成词,例如,用beamsearch的方法选取出几个候选词,后续再逐层从所述候选词中选出最优的候选词作为生成词。

s160,如果所述第一生成词中包含结束符,则生成答案,所述答案为所述第一生成词。

第一解码器对所述第一生成词进行解析,如果检测到所述第一生成词中包含结束符,则停止继续生成生成词,并且,开始输出答案,所述答案为所述第一生成词。例如:问题为“今天天气好吗?”,第一解码器生成的第一生成词为“好”,并且,所述“好”中包含结束符,则第一解码器停止继续生成生成词,并且输出答案“好”。

图8为本申请提供方法的另一种实施方式的流程图,请结合图8,在一种可实现的方式中,如果第(p-1)个生成词中不包含结束符,则还包括:

s170,获取第p个生成词。

具体地,图9为一种可实现的获取第p个生成词的流程图,请结合图9,所述获取第p个生成词包括:

s171,第一解码器获取训练语料中问题的隐状态向量、所述第(p-1)中间向量、所述第(p-1)个生成词对应的词向量。

s172,第一解码器根据所述隐状态向量、所述第(p-1)中间向量和所述第(p-1)个生成词对应的词向量生成第p中间向量。

s173,第一解码器使用第p中间向量计算第p逻辑回归分类结果。

s174,第一解码器使用第p逻辑回归分类结果对应的模型计算第p概率分布。

在本申请中,所述第一解码器使用第p逻辑回归分类结果对应的模型计算第p概率分布包括:如果第p逻辑回归分类结果大于0.5,则使用三元组结构化数据符合度模型生成第p概率分布;如果第p逻辑回归分类结果小于或者等于0.5,则使用随机概率分布计算模型生成第p概率分布。

在一种可实现的方式中,所述使用三元组结构化数据符合度模型生成第p概率分布的具体方法与所述使用三元组结构化数据符合度模型生成第一概率分布的方法类似,区别在于,用第(p-1)个生成词的词向量替换预设起始词向量。

在另一种可实现的方式中,所述使用随机概率分布计算模型生成第p概率分布的具体方法与所述使用随机概率分布计算模型生成第一概率分布的方法类似,区别在于,用第(p-1)个生成词的词向量替换预设起始词向量。

s175,第一解码器根据第p概率分布生成第p个生成词。

s180,如果所述第p个生成词包含结束符,则第一解码器停止继续生成生成词,并且输出答案,所述答案由第1个生成词至第p个生成词依次连接而成。

例如:多个生成词分别依次为“姚明”、“身高”、“是”、“2.26m“和“。”,则输出的训练答案为“姚明身高是2.26m。”

在本申请中,所述结束符可以为预设的,也可以为经过多次训练,通过更新参数而添加到某些生成词上的。

具体地,所述获取第p个生成词的方法与获取第1个生成词的方法类似,区别在于:用第(p-1)个生成词的词向量替换预设起始词向量。

s190,第一解码器计算所述答案与标准答案的损失函数,得到误差。

在本申请中,所述标准答案为训练语料中问题对应的标准答案,所述标准答案为预设的答案,既符合自然语言的表达习惯,也针对对应的问题具有准确的语义答复。

由于在训练阶段模型中各个参数并不完善,存在较大的误差,因此,由第一解码器获得的答案常常与标准答案具有较大的差异,因此,可以使用训练答案与标准的损失函数来表示训练答案的误差,并且将所述误差在所述模型中反向传播,从而更新模型中的各个参数。

在本申请中,计算所述答案与标准答案的损失函数l,可以根据下列公式(7)进行计算:

l为损失函数,

k表示样本,所述样本为训练语料中一个qa对,即,一个问题和与之对应标准答案,

n表示当前样本中词或者字符的个数,n为在模型选择时设定的粒度,与模型使用阶段分字或者分处理保持一致,

q表示词表中词的位置,

n表示词表中词的总数量。

tki表示词表中第i个词能否成为样本k的生成词的概率,所述tki是人为设定的,例如,词表中第i个词成为样本k的生成词,例如,词表中第i个词中选,则tki=1,否则tki=0;

yki表示词表中第i个词能否成为样本k的生成词的预测概率,所述yki是在模型训练阶段获取的。

s190,第一解码器将所述误差反向传播,更新起始隐向量和预设词典。

在本申请中,第一解码器将所述误差反向传播至第一编码器,在反向传播过程中,所述模型能够自动更新模型中的相关参数,所述参数包括起始隐向量,而且,在经过一次训练后,第一解码器会将本次训练中使用的所有生成词添加到预设词典中,从而更新预设词典。

本申请提供一种答案生成方法,所述方法与模型训练阶段的方法类似,区别仅在于,所述方法不包括计算相似度及后续的步骤。

图10为本申请一种实施方式的答案生成方法的流程图,请结合图10,具体地,所述答案生成方法包括:

s210,第一解码器获取起始隐向量和隐状态向量。

在本申请中,所述起始隐向量为模型训练阶段确定的起始隐向量;所述隐状态向量为第一编码器生成的所述待处理问题对应的隐状态向量,第一编码器生成所述待处理问题对应的隐状态向量的方法与第一编码器生成训练语料中问题对应的隐状态向量的方法类似,区别仅在于,将训练语料中问题替换为所述待处理问题,具体方法请参见步骤s110,在此不再赘述。

s220,第一解码器使用所述隐状态向量和起始隐向量生成第一中间向量。

所述第一中间向量包含开始生成生成词的指示信息,也包含所述待处理问题的全部特征信息,所述第一中间向量用于计算第一逻辑回归分类结果,从而使第一解码器根据所述第一逻辑回归分类结果判断生成词的来源。

在本申请中,本步骤的具体方法与本申请步骤s120的方法类似,区别仅在于,用步骤s210获取的第一隐状态向量替换步骤s120中的第一隐状态向量,用步骤s210中的第一起始隐向量替换步骤s120中的第一起始隐向量,具体方法在此不再赘述。

s230,第一解码器使用第一中间向量计算第一逻辑回归分类结果。

在本申请中,本步骤的具体方法可参见本申请步骤s130,区别仅在于,用步骤s220获取的中间向量替换步骤s130中的中间向量,具体方法在此不再赘述。

s240,第一解码器使用所述第一逻辑回归分类结果对应的用于计算概率分布的模型生成第一概率分布。所述第一概率分布为所有候选词被选中成为第一生成词的概率的集合。

需要说明的是,如果使用三元组结构化数据符合度模型生成第一概率分布,则候选词选自三元组结构化数据集合;如果使用随机概率分布计算模型生成第一概率分布,则候选词选自模型训练阶段最新更新的预设词典。

在计算所述第一概率分布之前,召回至少一个三元组结构化数据来构成三元组结构化数据集合。被召回的三元组结构化数据与所述待处理问题的相关度可以根据需求而调整。

在一种可实现的方式中,所述三元组结构化数据与所述三元组结构化数据可以相同也可以不同。

本申请中,在模型使用阶段,三元组结构化数据可以来源于已有知识库,如:在从网络上抓取的大量语料中提取的三元组结构化数据。

在本申请中,本步骤的具体方法可参见本申请步骤s140,在此不再赘述。

s250,第一解码器根据第一概率分布从候选词中选出第一生成词。

在本申请中,本步骤的具体方法可参见本申请步骤s150,在此不再赘述。

s260,如果所述生成词中包含结束符,则生成答案,所述答案为所述第一生成词。

在本申请s260中,所述结束符为模型训练阶段标记到候选词中的结束符。

在本申请中,本步骤的具体方法可参见本申请步骤s160,在此不再赘述。

在一种可实现的方式中,如果第(k-1)个生成词不包含结束符,k=2,3,……,则所述方法还包括:

s270,获取第k生成词,包括:

第一解码器获取待处理问题的隐状态向量、所述第(k-1)中间向量、所述第(k-1)生成词对应的词向量;

第一解码器根据所述隐状态向量、所述第(k-1)中间向量和所述第(k-1)生成词对应的词向量生成第k中间向量;

第一解码器使用第k中间向量计算第k逻辑回归分类结果;

第一解码器使用第k逻辑回归分类结果对应的模型计算第k概率分布;

第一解码器根据第k概率分布生成第k生成词;

s280,如果第k生成词中包含结束符,则生成答案,所答案由第一生成词至第k生成词顺次连接而成。

在本申请中,本步骤的具体方法可参见申请步骤s170,在此不再赘述。

本申请还提供一种用于生成答案的装置,图11为本申请提供的一种所述装置的结构示意图,结合图11,所述装置包括:

初始向量获取模块301,用于第一解码器获取起始隐向量和隐状态向量;

第一中间向量获取模块302,用于使用所述隐状态向量和起始隐向量生成第一中间向量;

第一逻辑回归分类结果获取模块303,用于使用第一中间向量计算第一逻辑回归分类结果;

第一概率分布获取模块304,用于使用第一逻辑回归分类结果对应的用于计算概率分布的模型生成第一概率分布,所述第一概率分布为所有候选词被选中成为第一生成词的概率的集合;

第一生成词获取模块305,用于根据第一概率分布从候选词中选出第一生成词;

第一答案获取模块306,用于如果所述第一生成词中包含结束符,则生成答案,所述答案为所述第一生成词。

在一种可实现的方式中,如果第(k-1)个生成词中不包含结束符,则初始向量获取模块301还用于获取待处理问题的隐状态向量、所述第(k-1)中间向量、所述第(k-1)生成词对应的词向量。

第一中间向量获取模块302还用于根据所述隐状态向量、所述第(k-1)中间向量和所述第(k-1)生成词对应的词向量生成第k中间向量。

第一逻辑回归分类结果获取模块303还用于使用第k中间向量计算第k逻辑回归分类结果;

第一概率分布获取模块304还用于使用第k逻辑回归分类结果对应的模型计算第k概率分布;

第一生成词获取模块305还用于根据第k概率分布生成第k生成词;

第一答案获取模块306还用于如果第k生成词中包含结束符,则生成答案,所答案由第一生成词至第k生成词顺次连接而成。

在一种可实现的方式中,所述第一逻辑回归分类结果获取模块具体用于根据所述第一中间向量利用逻辑回归模型计算逻辑回归分类结果,所述逻辑回归模型如下所示:

其中,

p表示在st和θ的条件下,选择zt=0的类别或者zt=1的类别的概率;

zt表示用于计算概率分布的模型的类别;

st表示中间向量;

θ为预设值;

e表示自然对数的底数。

在一种可实现的方式中,所述第一概率分布获取模块具体用于如果逻辑回归分类结果大于0.5,则利用三元组符合度模型生成候选词被选中成为生成词的第一概率分布。

在一种可实现的方式中,所述候选词选自三元组结构化数据集合,所述三元组结构化数据集合包括至少一条与所述问题的相关度大于第一预设值的三元组结构化数据,每条所述三元组结构化数据包括两个实体词和一个关系词,例如,一条三元组结构化数据为“姚明”-“身高”-“2.26m”,其中,两个实体词分别为“姚明”和“2.26m”,关系词为“身高”。

在一种可实现的方式中,所述第一概率分布获取模块包括:

初始向量获取单元,用于第二解码器获取待处理问题的隐状态向量和预设起始词向量;

平均向量获取单元,用于计算所述三元组结构化数据集合中实体词的平均向量和关系词的平均向量;

第一总向量获取单元,用于拼接所述实体词的平均向量,所述隐状态向量,所述预设起始词向量与所述关系词的平均向量得到第一总向量;

第一子向量获取单元,用于使所述第一总向量经过神经网络全连接层,获得第一子向量;

第一概率分布获取单元,用于使用所述第一子向量获得所述第一概率分布。

以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。

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