1.一种对话回复生成方法,其特征在于,包括步骤:
S12:根据历史选择知识向量计算选择感知向量,然后分别执行步骤S13和步骤S14;
S13:根据所述选择感知向量和所述历史选择知识向量计算知识流趋势向量;
S14:将所述选择感知向量和候选知识向量进行比较,获得比较信息;
S15:对上下文语句进行编码,获得上下文向量;其中,步骤S15在步骤S20之前的任一阶段执行;
S20:根据所述候选知识向量、所述知识流趋势向量、所述比较信息和所述上下文向量计算知识选择分布;
S30:根据所述知识选择分布计算每个候选知识向量的注意力得分,并将注意力得分最高的候选知识向量作为当前选择知识向量;
S40:根据所述上下文向量和所述当前选择知识向量计算历史解码状态向量,并根据所述历史解码状态向量和历史生成词计算当前时刻的解码状态向量;
S50:根据当前时刻的所述解码状态向量、所述历史生成词、所述上下文向量、所述当前选择知识向量分别计算当前时刻的词表生成概率和当前时刻的知识复制概率,并根据当前时刻的所述词表生成概率和当前时刻的所述知识复制概率计算当前时刻的目标生成概率;
S60:将当前时刻的目标生成概率中概率值最高的单词作为当前时刻的生成词;
S70:判断当前时刻的生成词是否为一结束符;若是,执行步骤S80,若否,将当前时刻的生成词作为历史生成词,返回步骤S40;
S80:将所有时刻的生成词组成回复语句并输出。
2.根据权利要求1所述的对话回复生成方法,其特征在于,步骤S12具体为:采用一层Transformer块的自注意力机制对所述历史选择知识向量进行建模,捕获知识流中的动态信息,获得所述选择感知向量,其计算公式为:Fτ=Transformer[TE(rτ‑N,s,rτ‑N+1,s,...,rτ‑1,s)] (4)Fτ={fτ‑N,fτ‑N+1,...,fτ‑1} (5)
式中,Fτ为第τ轮对话的所述选择感知向量;fτ‑N,fτ‑N+1,...,fτ‑1分别为第(τ‑N)轮至第(τ‑1)轮对话的相互感知向量;TE()表示对每个所述历史选择知识向量添加对应轮次的信息嵌入的操作;rτ‑N,s,rτ‑N+1,s,...,rτ‑1,s分别为第(τ‑N)轮至第(τ‑1)轮对话的所述历史选择知识向量;N为知识选择参数。
3.根据权利要求2所述的对话回复生成方法,其特征在于:
所述知识流趋势向量的计算公式为:
式中,Tτ为第τ轮对话的所述知识流趋势向量;fτ‑n为第(τ‑n)轮对话的所述相互感知向量,rτ‑n,s为第(τ‑n)轮对话的所述历史选择知识向量;λn为第(τ‑n)轮对话的知识选择权重;
其中,n∈[1,N],且
4.根据权利要求3所述的对话回复生成方法,其特征在于,步骤S14具体为:通过比较函数将每个所述候选知识向量与当前轮次的所述选择感知向量进行比较,获得所述比较信息,其计算公式为:其中,fn为第n轮对话的所述相互感知向量,rl为第l个候选知识向量,oτ,l为第l个候选知识向量与第τ轮对话的选择知识向量的比较信息;Compare(,)表示比较函数,F()表示tanh激活函数,⊙表示哈玛达乘积。
5.根据权利要求4所述的对话回复生成方法,其特征在于,步骤S20具体为:将所述上下文向量和所述知识流趋势向量作为查询,将所述候选知识向量和所述比较信息作为键,计算所述知识选择分布,其计算公式为:式中, 为上下文向量;βτ,l为以第l个候选知识向量及其对应的比较信息为键时计算得到的知识选择分布;v为矩阵转换参数,表示矩阵的转置,Wquery为查询矩阵,Wkey为键矩阵;tanh()表示tanh激活函数。
6.根据权利要求1~5任一条所述的对话回复生成方法,其特征在于,步骤S12之前还包括步骤:S11:对候选知识语句集中的所有候选知识语句进行编码,获得所述候选知识向量;其中,所述候选知识语句集包括历史选择知识语句,所述候选知识向量包括对应的所述历史选择知识向量。
7.根据权利要求6所述的对话回复生成方法,其特征在于,步骤S11具体为:采用双向门控循环单元对所述候选知识语句集中的所有候选知识语句进行第一次编码,获得候选知识中间向量;采用双向门控循环单元对所述候选知识中间向量进行第二次编码,获得候选知识向量。
8.根据权利要求7所述的对话回复生成方法,其特征在于,还包括参数优化步骤:S91:初始化步骤S11~S80的网络参数,将训练集中的对话样本随机分为多个批次,按批次对所述训练集的对话样本执行步骤S11~S80来优化所述网络参数,并采用总损失函数进行损失计算;其中,所述总损失函数包括知识流监督损失函数、知识选择损失函数和响应生成损失函数;
S92、每次迭代后,对验证集中的对话样本执行步骤S11~S80来进行验证,并记录每次迭代的验证结果和对应的网络参数;
S93:多次迭代后,选择步骤S92中最优验证结果对应的网络参数来更新步骤S11~S80的网络参数,然后对测试集的对话样本执行步骤S11~S80来进行性能测试。
9.一种对话回复生成模型,其特征在于,包括:
选择感知向量计算模块,用于根据历史选择知识向量计算选择感知向量;
知识流趋势向量计算模块,用于根据所述选择感知向量和所述历史选择知识向量计算知识流趋势向量;
比较信息计算模块,用于将所述选择感知向量和候选知识向量进行比较,获得比较信息;
上下文编码模块,用于对上下文语句进行编码,获得上下文向量;
知识选择分布计算模块,用于根据所述候选知识向量、所述知识流趋势向量、所述比较信息和所述上下文向量计算知识选择分布;
当前选择知识向量计算模块,用于根据所述知识选择分布计算每个候选知识向量的注意力得分,并将注意力得分最高的候选知识向量作为当前选择知识向量;
当前解码状态向量计算模块,用于根据所述上下文向量和所述当前选择知识向量计算历史解码状态向量,并根据所述历史解码状态向量和历史生成词计算当前时刻的解码状态向量;
目标生成概率计算模块,用于根据当前时刻的所述解码状态向量、所述历史生成词、所述上下文向量、所述当前选择知识向量分别计算当前时刻的词表生成概率和当前时刻的知识复制概率,并根据当前时刻的所述词表生成概率和当前时刻的所述知识复制概率计算当前时刻的目标生成概率;
回复语句生成模块,用于将当前时刻的目标生成概率中概率值最大的词作为当前时刻的生成词,并判断该生成词是否为一结束符;若是,则将所有时刻的生成词组成回复语句并输出,若否,则将当前时刻的生成词作为历史生成词,并传输至当前解码状态向量计算模块继续解码。
10.根据权利要求9所述的对话回复生成模型,其特征在于,还包括:候选知识编码模块,用于对候选知识语句集中的所有候选知识语句进行编码,获得所述候选知识向量;其中,所述候选知识语句集包括历史选择知识语句,所述候选知识向量包括对应的所述历史选择知识向量。