一种对话回复生成方法、装置和存储介质
文献发布时间:2023-06-19 19:07:35
技术领域
本申请涉及人工智能领域,特别是涉及一种对话回复生成方法、装置和存储介质。
背景技术
对话回复生成是一项自然语言处理中的核心任务,可以被结合到很多领域如智能音箱、智能客服、AI陪伴机器人等。
随着大规模预训练模型的提出,多轮对话回复生成模型取得了重大的突破,不过如何有效地编码对话历史从而生成通顺且相关地回复,还是一个很大的挑战。传统的对话回复生成的做法包括两种:1)将所有对话历史拼接成一个长序列输入到模型,然后模型进行字词层级的attention学习并生成回复。这样做法的一个缺点是只考虑了字词层级的信息,忽略了句子语意信息,无法有效地将语意的影响考虑进来生成适当的回复;2)利用一个分层结构,先对多轮对话中每一句话进行编码,然后将每一句的句向量输入到另一个编码器中进行句子层级的编码。目前的对话回复生成技术存在两个问题:1) 缺乏句子结构化信息,在生成对话回复的时候往往更关注最近的且最相关的对话历史来帮助生成回复;2) 模型往往生成比较泛的回复,缺少了对主题相关信息的捕捉,从而导致生成的对话回复不准确。
针对现有的对话回复生成技术中缺少了对主题相关信息的利用,从而导致生成的对话回复不准确的问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种对话回复生成方法、装置和存储介质,以解决现有的对话回复生成技术中缺少了对主题相关信息的利用,从而导致生成的对话回复不准确的问题。
第一个方面,在本实施例中提供了一种对话回复生成方法,所述方法包括:
利用预先训练好的句子表征模型,生成对话语句的句向量;
提取所述对话语句的主题词;所述主题词用于标识所述对话语句的主题信息;
根据所述主题词和所述预先训练好的句子表征模型,生成所述对话语句的主题向量;
根据所述句向量和所述主题向量,生成所述对话回复。
在其中的一些实施例中,所述利用预先训练好的句子表征模型,生成对话语句的句向量,包括:
利用预先训练好的句子表征模型对所述对话语句进行编码,生成所述对话语句的句向量。
在其中的一些实施例中,所述根据所述主题词和所述预先训练好的句子表征模型,生成所述对话语句的主题向量,包括:
利用所述句子表征模型的字典,将所述主题词拼接为主题序列;
根据所述主题序列和所述句子表征模型,生成所述主题词的词向量;
根据所述词向量生成所述对话语句的主题向量。
在其中的一些实施例中,所述根据所述句向量和所述主题向量,生成所述对话回复,包括:
构建所述对话语句的有向图;所述有向图包括节点和连接所述节点的有向边;所述节点用于标识所述对话语句,所述有向边用于标识所述对话语句的之间的关系;
根据所述句向量和所述主题向量,利用图注意力神经网络对所述有向图中的节点进行信息聚合,得到所述节点的聚合向量;
根据所述聚合向量,生成所述对话回复。
在其中的一些实施例中,所述方法还包括:
根据所述句向量和所述主题向量,生成所述节点的初始向量。
在其中的一些实施例中,所述根据所述句向量和所述主题向量,利用图注意力神经网络对所述有向图中的节点进行信息聚合,得到所述节点的聚合向量,包括:
构建有向图的节点间的时间衰减函数;所述时间衰减函数用于表征时间对所述对话语句的之间的关系的影响;
构建所述有向图的有向边的权重系数;
根据所述有向图的节点间的时间衰减函数、所述权重系数和相邻节点的所述初始向量,利用图注意力神经网络对所述有向图中的节点进行信息聚合,得到所述节点的聚合向量。
在其中的一些实施例中,所述根据所述聚合向量,生成所述对话回复,包括:
将所述节点的聚合向量输入至解码器,生成所述对话回复。
在其中的一些实施例中,所述根据所述词向量生成所述对话语句的主题向量,包括:
将所述对话语句的词向量取平均,得到所述对话语句的主题向量。
第二个方面,在本实施例中提供了一种对话回复生成装置,所述装置包括:
第一生成模块,用于利用预先训练好的句子表征模型,生成对话语句的句向量;
提取模块,用于提取所述对话语句的主题词;所述主题词用于标识所述对话语句的主题信息;
第二生成模块,用于根据所述主题词和所述预先训练好的句子表征模型,生成所述对话语句的主题向量;
第三生成模块,用于根据所述句向量和所述主题向量,生成所述对话回复。
第三个方面,在本实施例中提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一个方面所述的对话回复生成方法的步骤。
与相关技术相比,在本申请中提供的一种对话回复生成方法、装置和存储介质,通过利用预先训练好的句子表征模型,生成所有对话语句的句向量,对所有的对话语句提取主题词,再利用预先训练好的句子表征模型,生成所有对话语句的主题向量,根据所有对话语句的句向量和所有对话语句主题向量,生成相应的对话回复。本申请利用主题信息来生成相应的对话回复,提高了对话回复的准确性,解决了现有的对话回复生成技术中缺少了对主题相关信息的利用,从而导致生成的对话回复不准确的问题。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是执行本申请实施例的一种对话回复生成方法的终端的硬件结构框图;
图2是本申请实施例的一种对话回复生成方法的流程图;
图3本申请实施例的生成对话语句的主题向量的流程图;
图4本申请实施例的生成对话回复的流程图;
图5是本申请实施例的对话回复生成方法的优选流程图;
图6是本申请实施例的一种对话回复生成装置的结构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是执行本申请实施例的一种对话回复生成方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的一种对话回复生成方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种对话回复生成方法,图2是本申请实施例的一种对话回复生成方法的流程图,如图2所示,该流程包括如下步骤:
步骤S210,利用预先训练好的句子表征模型,生成对话语句的句向量。
具体地,将获取到的对话语句或数据库中存储的所有的对话语句,分别输入至预先训练好的句子表征模型,生成每条对话语句所对应的句向量。示例性地,这里的句子表征模型可以为SimCSE-RoBERTa模型。
步骤S220,提取对话语句的主题词;主题词用于标识对话语句的主题信息。
具体地,对获取到的对话语句或数据库中存储的所有的对话语句分别进行主题词提取,提取每条对话语句所对应的主题词。这里的主题词用于标识对话语句的主题信息,一条对话语句中可以包括一个或多个主题词,也可以不包括主题词。
步骤S230,根据主题词和预先训练好的句子表征模型,生成对话语句的主题向量。
具体地,将步骤S220中提取的所有对话语句的主题词,输入至预先训练好的句子表征模型,生成每条对话语句的主题向量。示例性地,这里的句子表征模型可以为SimCSE-RoBERTa模型。
步骤S240,根据句向量和主题向量,生成对话回复。
具体地,根据步骤S210生成的所有对话语句的句向量和步骤S230生成的所有对话语句主题向量,生成相应的对话回复。
在本实施中,利用预先训练好的句子表征模型,生成所有对话语句的句向量,对所有的对话语句提取主题词,再利用预先训练好的句子表征模型,生成所有对话语句的主题向量,根据所有对话语句的句向量和所有对话语句主题向量,生成相应的对话回复。本申请利用主题信息来生成相应的对话回复,提高了对话回复的准确性,解决了现有的对话回复生成技术中缺少了对主题相关信息的利用,从而导致生成的对话回复不准确的问题。
在其中的一些实施例中,步骤S210,利用预先训练好的句子表征模型,生成对话语句的句向量,包括:利用预先训练好的句子表征模型对对话语句进行编码,生成对话语句的句向量。
具体地,将对话语句输入至预先训练好的句子表征模型进行编码,根据编码结果,生成该对话语句的句向量。进一步具体地,可以利用对比学习的损失函数作为句子表征模型的训练的目标,并采用大规模预训练模型RoBERTa在对比学习的框架上继续训练来更好的学习句子表征,最后得到句子表征模型。
在本实施例中,利用对比学习的损失函数来训练句子表征模型,增强了句子表征模型对语意的理解,从而提高了句子表征模型的准确度。
在其中的一些实施例中,步骤S230,根据主题词和预先训练好的句子表征模型,生成对话语句的主题向量,如图3所示,包括如下步骤:
步骤S231,利用句子表征模型的字典,将主题词拼接为主题序列。
具体地,将步骤S220中提取的所有对话语句的主题词,输入至预先训练好的句子表征模型,利用该句子表征模型的字典对输入的主题词按照对话语句顺序进行拼接,得到主题序列,该主题序列包括对话语句的标识,该对话语句的标识用于标识主题序列中的主题词属于哪个对话语句。
步骤S232,根据主题序列和句子表征模型,生成主题词的词向量。
具体地,将步骤S231生成的主题序列输入至句子表征模型,生成主题词的词向量。
步骤S233,根据词向量生成对话语句的主题向量。
具体地,将同一条对话语句的所有主题词的词向量取平均,得到该条对话语句的主题向量。
在其中的一些实施例中,步骤S240,根据句向量和主题向量,生成对话回复,如图4所示,包括如下步骤:
步骤S241,构建对话语句的有向图;有向图包括节点和连接节点的有向边;节点用于标识对话语句,有向边用于标识对话语句的之间的关系。
具体地,构建关于对话语句的有向图,其中,有向图包括节点和连接节点的有向边,该有向图用于编码对话语句的结构信息。
步骤S242,根据句向量和主题向量,利用图注意力神经网络对有向图中的节点进行信息聚合,得到节点的聚合向量。
具体地,根据句向量和主题向量,生成有向图的节点的初始向量。构建有向边的权重系数。构建有向图的节点间的时间衰减函数,有向图的节点间的时间衰减函数用于表征时间对对话语句的之间的关系的影响,时间衰减函数中包括时间衰减信息。根据节点的初始向量、权重系数和节点间的时间衰减函数,利用图注意力神经网络对有向图中的节点进行信息聚合,得到节点的聚合向量。
进一步具体地,可以根据句子表征模型将两个节点所标识的对话语句连接起来,得到拼接句向量,输入至线性分类器中来计算两个节点对应的对话语句的语意相似度,从而作为两个节点之间的有向边的权重系数。
另外,进一步具体地,根据两个节点所代表的对话语句的标识来确定时间衰减函数的时间差,根据该时间差生成该两个节点间的时间衰减函数,这里的对话语句的标识包括对话语句的身份标识和对话语句的对话轮次标识。
步骤S243,根据聚合向量,生成对话回复。
具体地,将聚合得到的聚合向量输入到解码器中进行解码,根据解码结果,生成相应的对话回复。示例性地,这里的解码器可以为基于Transformer的解码器。
在本实施例中,通过构建对话语句的有向图,将对话语句的结构化信息如时间衰减信息、语意相关性等信息融合到图网络中,最后利用图注意力神经网络进行信息的融合与传递,来指导对话的回复,充分利用对话语句的结构化信息及主题相关信息来指导对话的回复,提高了对话回复的准确度。
下面通过优选实施例对本申请实施例进行描述和说明。
图5是本申请实施例的对话回复生成方法的优选流程图,如图5所示,该流程包括如下步骤:
步骤S510,提取对话中的主题词。
具体地,使用自然语言处理工具包NLTK来对每一句对话进行自动分词与词性标注,NLTK会针对不同的词将其依照词性分成36类。选择其中的名词即词性标签为NN,NNS,NNP或者NNPS。同时还会利用正则表达式将名词性短语NP、动词性短语VP以及介词性短语PP从对话的语句中提取出来。最后得到每一句对话u
步骤S520,利用对比学习方法训练句子表征模型。
具体地,利用对比学习的方法训练句子表征模型,其主要思想是拉近相似语句的距离并推开不相似的语句,这样的方式可以让模型更好的学到句子的语意表征。训练的语料是自然语言推理的数据集,每一笔训练资料都包含两个句子u
其中,
步骤S530,生成句子的句向量和主题向量。
具体地,在步骤S520中,利用对比学习的方法得到SimCSE-RoBERTa句子表征学习模型。给定一段多轮对话u={u
其中,该长序列中,表示长序列的起始,中间的表示连接着两个带有主题信息的词,最后一个表示序列的终止,连接词与为SimCSE-RoBERTa模型vocab字典中的词。若某一句话中没有提取到带有主题信息的词,则使用符号
步骤S540,构建有向图。
具体地,在获取每一句话的句向量Hu
1)说话者间的对话交互
两个不同的说话者之间存在一条边E
2)同一说话者的历史交互
同一个说话者中存在一条边E
在构建有向图G中,边的方向是单向的,即从历史对话指向当前对话,因为历史对话会对当前的对话产生影响,而当前对话无法影响到历史发生过的对话。此外,不同于以往的方法在构建有向图之后边的权重初始为0(两个节点之间没有边连接)或1(两个节点之间有一条边连接)。本实施例在构建完边之后,会使用步骤S520得到的基于对比学习的SimCSE-RoBERTa句子表征模型将两个句子拼接起来,得到句向量,然后将句向量输入到线性分类器中来计算两个节点(V
步骤S550,构建指数时间衰减函数。
具体地,在对话中,除了不同说话者身份信息、对话之间的语意相关性外,还满足时间衰减的结构化特性,即历史对话对当前对话的影响会随着对话轮数的增加而慢慢衰减,现有技术中未将这个结构化特征考虑进去。定义指数时间衰减的函数F如公式(2)所示:
其中,τ用来控制指数时间衰减的速率,d(u
步骤S560,利用图注意力神经网络进行信息的聚合与传递,得到聚合向量。
具体地,构建完指数时间衰减函数之后,利用图注意力神经网络进行信息的聚合与传递。在步骤S530获取每一句话的句向量Hu
a
根据公式(5)将初始化权重w
如公式(6)所示,通过两个GRU网络实现层与层之间的信息传递,其中GRU
经过了L层图注意力网络的迭代之后,根据公式(7)将得到的向量表征相加起来得到聚合后的聚合向量H
步骤S570,将聚合向量进行解码,生成对话回复。
具体地,将图注意力网络聚合得到的聚合向量H
本优选实施例至少具有以下有益效果:
1、本优选实施例提供的基于时间及语意信息的多轮对话结构建模与回复生成方法,提取每一句话中带有主题信息的字词并提取主题向量,同时构建了一个有向图,将对话的结构化信息如时间衰减、语意相关性、说话者身份认证等融合到图网络中,最后利用图注意力神经网络进行信息的融合与传递,作为指导控制回复生成,提高了对话回复的准确性。
2、本优选实施例提供的多轮对话回复生成方法,结合了对比学习的方法,增强了模型对句子语义特征的理解;指数时间衰减,藉由生活中时间衰减的现象,对应到多轮对话中历史讯息对当前回复影响的时间衰减,更好地融合了结构化信息;利用语意相似性作为边的初始权重,将对话的语意信息融合到构建的图注意力网络中;采用图注意力网络的结构,将对话的结构信息及语意信息进行融合并向后传递,从而来指导对话回复的生成。从而对多轮对话的结构化信息进行建模并生成更通顺且主题相关的对话回复。
在本实施例中还提供了一种对话回复生成装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是本申请实施例的一种对话回复生成装置的结构框图,如图6所示,该装置包括:
第一生成模块610,用于利用预先训练好的句子表征模型,生成对话语句的句向量;
提取模块620,用于提取对话语句的主题词;主题词用于标识对话语句的主题信息;
第二生成模块630,用于根据主题词和预先训练好的句子表征模型,生成对话语句的主题向量;
第三生成模块640,用于根据句向量和主题向量,生成对话回复。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,利用预先训练好的句子表征模型,生成对话语句的句向量;
S2,提取对话语句的主题词;主题词用于标识对话语句的主题信息;
S3,根据主题词和预先训练好的句子表征模型,生成对话语句的主题向量;
S4,根据句向量和主题向量,生成对话回复。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的一种对话回复生成方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种对话回复生成方法的步骤。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
- 一种对话问答方法、装置、设备及存储介质
- 一种APP的自动生成方法、装置、终端设备及可读存储介质
- 一种基于H5页面的海报生成方法、系统、装置及存储介质
- 一种三维水电预埋图的生成方法、装置、设备及存储介质
- 一种图像生成方法、装置、设备和存储介质
- 对话生成模型训练、对话回复生成方法和装置以及介质
- 对话回复的生成方法、装置、设备及存储介质