[发明专利]一种基于词组多样性的对话生成方法有效
申请号: | 202010304195.4 | 申请日: | 2020-04-17 |
公开(公告)号: | CN111563148B | 公开(公告)日: | 2023-06-20 |
发明(设计)人: | 蔡毅;李灿光 | 申请(专利权)人: | 华南理工大学 |
主分类号: | G06F16/332 | 分类号: | G06F16/332;G06F16/35;G06F16/33;G06F40/284;G06N3/0455;G06N3/044;G06N3/047;G06N3/082 |
代理公司: | 广州市华学知识产权代理有限公司 44245 | 代理人: | 裴磊磊 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 词组 多样性 对话 生成 方法 | ||
1.一种基于词组多样性的对话生成方法,其特征在于,构造对话生成模型,所述模型包括句子编码器、上下文编码器、转化层、条件变分自编码器、解码器以及词袋层,所述方法包括步骤:
采用编码器将对话上下文编码为一个上下文向量;
通过转化层将上下文向量映射为符合解码器输入大小的隐含状态,并将得到的隐含状态作为解码器的初始隐含状态;
将得到的隐含状态输入条件变分自编码器中,获取随机潜在变量;
将得到的随机潜在变量,包括训练阶段使用识别网络输出的随机潜在变量以及测试阶段使用先验网络输出的随机潜在变量、上下文向量、前一个词的词向量以及前一个时间步的隐含状态输入解码器的循环神经网络单元,得到循环神经网络单元输出的当前时间步的隐含状态;
将解码器输出的当前时间步的隐含状态输入到词分类器,得到词分类器输出的一个词表大小的概率分布向量;
采用编码器将对话上下文编码为一个上下文向量的步骤中,设对话上下文为u={u1,u2,…,uk-1},其中,ui={x0,x1…,xn}表示一个对话上下文句子,包括步骤:
编码器开始编码之前,先将句子ui中的词转化为词向量,记为
若上下文u只包含一个句子,则采用句子编码器将其编码为上下文向量ct;
若上下文u不止包含一个句子,则采用句子编码器先将每一个对话上下文句子的词向量表示编码为句子向量再采用上下文编码器将所有的句子向量编码为上下文向量ct;
将得到的隐含状态输入条件变分自编码器中,获取随机潜在变量的步骤中,
若处于对话生成阶段,则在解码器的每个时间步,将上下文向量以及解码器前一个时间步的隐含状态输入到条件变分自编码器的先验网络,得到先验网络输出的一个随机潜在变量;
若处于训练阶段,则在解码器的每个时间步,将上下文向量、当前要预测的词的词向量以及解码器前一个时间步的隐含状态输入到条件变分自编码器的识别网络中,得到识别网络输出的一个随机潜在变量;
具体为:先验网络为单层的前向神经网络,用MLPp表示先验网络,ct表示上下文向量,表示解码器前一个时间步的隐含状态;
识别网络也为单层的前向神经网络,用MLPq表示识别网络,表示当前要预测的词的词向量;
若处于对话生成阶段,在解码器的每个时间步,将ct与输入先验网络,可得:
其中,[*,*]表示两个向量拼接。利用重参数技巧,可以得到随机潜在变量zt:
Zt=μ′t+σ′t*∈
其中,∈服从标准高斯分布N(0,I);
若处于训练阶段,则将ct,和输入到识别网络,可得:
同样利用重参数技巧,可以得到随机潜在变量zt:
zt=μt+σt*∈;
将解码器输出的当前时间步的隐含状态输入到词分类器,得到词分类器输出的一个词表大小的概率分布向量的步骤中,包括:
所述词分类器为单层的前向神经网络,包含在解码器中,用MLPo表示词分类器,则词分类器输出的概率分布向量为:
得到概率分布向量后,通过softmax函数对概率分布向量进行归一化,使其各维度概率值之和为1,最终取概率值最大的维度对应的词作为当前时间步的输出。
2.根据权利要求1所述的方法,其特征在于,由于编码器的输出大小与解码器的输入大小设置不一定相同,因此在编码器与解码器之间增加一个转化层,用于将编码器输出的上下文向量的大小映射为解码器的输入大小;其中,转化层为单层的前向神经网络,用MLPd表示;
将上下文向量ct输入转化层MLPd后,转化层输出的解码器初始隐含状态表示为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010304195.4/1.html,转载请声明来源钻瓜专利网。