基于多轮会话的意图识别方法及装置与流程

文档序号:22627728发布日期:2020-10-23 19:36阅读:223来源:国知局
基于多轮会话的意图识别方法及装置与流程

本发明涉及计算机领域,具体而言,涉及一种基于多轮会话的意图识别方法及装置。



背景技术:

在智能客服实践中发现用户描述通常会有表述模糊、分句描述、涉及多意图、意图随会话进行而改变等诸多问题。

目前对于多轮意图识别应用方面通常是多轮会话拼接后的单轮文本分类以及单一的特征提取编码方式,通过单层的文本分类算法如传lstm、cnn识别用户意图。然而在多轮分类任务中,每轮的问题间存在关联性,并且每轮的问题有着不同的重要程度。单层的结构无法学习每轮问题间的关联性特征和重要性,并不适合于多轮分类任务。从而导致给用户推送错误答案,导致用户体验较差的问题。

针对相关技术中,多轮问题的用户意图识别准确率低的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种基于多轮会话的意图识别方法及装置,以至少解决多轮问题的用户意图识别准确率低的技术问题。

根据本发明实施例的一个方面,提供了一种基于多轮会话的意图识别方法,包括:将m轮问题信息中的每轮问题信息的词向量转换为句向量,得到m个句向量,其中,所述m轮问题信息为多轮会话中由用户帐号产生的问题信息,所述m为大于1的自然数;根据预先确定的标签矩阵对所述m个句向量进行注意力编码操作,得到第一会话向量,其中,所述第一会话向量用于表示所述m个句向量中的每个句向量的意图信息;对所述m个句向量进行门控循环单元gru编码,得到第二会话向量,其中,所述第二会话向量用于表示所述多轮会话的全局会话信息;根据预设的多个卷积核对所述m个句向量进行卷积操作,得到第三会话向量,其中,所述第三会话向量用于表示所述多轮会话的局部会话信息;根据所述第一会话向量、所述第二会话向量以及所述第三会话向量,确定所述多轮会话的意图信息。

根据本发明实施例的另一方面,还提供了一种基于多轮会话的意图识别装置,包括:转换模块,用于将m轮问题信息中的每轮问题信息的词向量转换为句向量,得到m个句向量,其中,所述m轮问题信息为多轮会话中由用户帐号产生的问题信息,所述m为大于1的自然数;操作模块,用于根据预先确定的标签矩阵对所述m个句向量进行注意力编码操作,得到第一会话向量,其中,所述第一会话向量用于表示所述m个句向量中的每个句向量的意图信息;编码模块,用于对所述m个句向量进行门控循环单元gru编码,得到第二会话向量,其中,所述第二会话向量用于表示所述多轮会话的全局会话信息;卷积模块,用于根据预设的多个卷积核对所述m个句向量进行卷积操作,得到第三会话向量,其中,所述第三会话向量用于表示所述多轮会话的局部会话信息;确定模块,用于根据所述第一会话向量、所述第二会话向量以及所述第三会话向量,确定所述多轮会话的意图信息。

根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述基于多轮会话的意图识别方法。

根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的基于多轮会话的意图识别方法。

在本发明实施例中,通过将m轮问题信息中的每轮问题信息的词向量转换为句向量,得到m个句向量,根据预先确定的标签矩阵对m个句向量进行注意力编码操作,得到第一会话向量,第一会话向量用于表示所述m个句向量中的每个句向量的意图信息;对m个句向量进行门控循环单元gru编码,得到第二会话向量,第二会话向量用于表示所述多轮会话的全局会话信息;根据预设的多个卷积核对m个句向量进行卷积操作,得到第三会话向量,第三会话向量用于表示多轮会话的局部会话信息,根据第一会话向量、第二会话向量以及第三会话向量,确定多轮会话的意图信息。由于在本申请中结合了多轮会话中每轮会话的意图信息,多轮会话的全局会话信息和局部会话信息,达到了综合考虑多虑会话间的关联性和重要性的目的,从而实现了提高多轮问题的用户意图识别准确率的技术效果,进而解决了多轮问题的用户意图识别准确率低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的基于多轮会话的意图识别方法的应用环境的示意图;

图2是根据本发明实施例的基于多轮会话的意图识别方法的流程图;

图3是根据本发明实施例的一种可选的客户端获取多轮问题的示意图;

图4是根据本发明实施例的一种可选的多轮意图识别模型结构示意图;

图5是根据本发明实施例的一种可选的字词联合结构示意图;

图6是根据本发明实施例的一种可选的leam结构示意图;

图7是根据本发明实施例的一种可选的点选界面示意图;

图8是根据本发明实施例的一种可选的基于多轮会话的意图识别装置的结构示意图;

图9是根据本发明实施例的一种可选的电子设备的结构示意图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例的一个方面,提供了一种基于多轮会话的意图识别方法,可选地,作为一种可选的实施方式,上述基于多轮会话的意图识别方法可以但不限于应用于如图1所示的环境中。

可选地,在本实施例中,上述用户设备可以是配置有目标客户端的终端设备,可以包括但不限于以下至少之一:手机(如android手机、ios手机等)、笔记本电脑、平板电脑、掌上电脑、mid(mobileinternetdevices,移动互联网设备)、pad、台式电脑、智能电视等。目标客户端可以是视频客户端、即时通信客户端、浏览器客户端、教育客户端、购物客户端等。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、wifi及其他实现无线通信的网络。上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器。上述仅是一种示例,本实施例中对此不作任何限定。

可选地,作为一种可选的实施方式,如图2所示,上述基于多轮会话的意图识别方法包括:

步骤s202,将m轮问题信息中的每轮问题信息的词向量转换为句向量,得到m个句向量,其中,所述m轮问题信息为多轮会话中由用户帐号产生的问题信息,所述m为大于1的自然数;

步骤s204,根据预先确定的标签矩阵对所述m个句向量进行注意力编码操作,得到第一会话向量;

步骤s206,对所述m个句向量进行gru编码,得到第二会话向量,其中,所述第二会话向量用于表示所述多轮会话的全局会话信息;

步骤s208,根据预设的多个卷积核对所述m个句向量进行卷积操作,得到第三会话向量,其中,所述第三会话向量用于表示所述多轮会话的局部会话信息;

步骤s210,根据所述第一会话向量、所述第二会话向量以及所述第三会话向量,确定所述多轮会话的意图信息。

作为一个可选的实施方式,可以通过客户端获取m轮问题信息,客户端可以是购物客户端、教育客户端等。图3是根据本发明实施例的一种可选的客户端获取多轮问题的示意图,用户可以在客户端会话界面与客服进行会话,会话的内容可以是多轮会话,每轮会话中可以包括一个问题,也可以包括多个问题。在本实施例中,用户可以通过账号登陆客户端进行会话,会话的对象可以是客户端智能助手或客服人员。意图可以用于表示问题主要表达的主题,用户所要咨询的主要内容。例如,对于问题“身高170体重55公斤,这件衣服需要拍哪个号”,该问题的主要意图是咨询码数。对于“什么时候可以发货”,该问题的主要意图是发货时间。在实际的生活场景中,同一个用户可能一次性会咨询多个问题,多个问题可能分别表示不同的意图,也有可能多个问题均表示同一种意图,多个问题之间可能存在一定的关联性。例如“这个订单发货了吗”“没发货的话可以换个颜色吗”“要红色吧”,这几个问题单独的意图分别表示发货、换货、颜色。多轮问题之间是存在一定关联性的,单独的分析结果并不准确,由此为用户推送的答案可能并不是用户想要咨询的答案。在本申请中,可以将这三个问题作为全局进行分析,不但可以分析出每个问题单独的意图,还将多轮问题作为整体进行分析,将多轮问题的全局信息和局部信息作为依据,可以提高意图识别的准确性,使得推送的答案更加准确,满足用户的需求。

作为一个可选的实施方式,异质图神经网络(hierarchicalattentionnetworks,简称han),是一种层次化的篇章文本分类模型,通过文本的结构进行分析,可以在词级别和句级别上使用双向门控循环单元gru和attention机制,分别对单词在句子中和句子在文档中的重要性进行建模。本申请通过han的分层架构,可以对用户会话这种层次结构的数据进行编码。同时模型采取了三种编码器,具有更好的全局、局部特征捕获能力。并且利用leam中的标签矩阵将单轮意图识别结构标签化,增强模型识别能力。

作为一个可选的实施方式,图4是根据本发明实施例的一种可选的多轮意图识别模型结构示意图。在本实施例中,多轮意图识别模型中包括句编码层和会话编码层。句编码层用于将获取到的多轮问题转化成句向量句编码层中用于将m轮问题信息中的每轮问题信息的词向量转换为句向量。对输入的字和词进行向量化得到词向量输入特征,其中,m表示会话的轮数,n表示每轮问题中包括的词语的数量。

为了缓解未登陆词向量问题(outofvocabulary,简称oov),以及获得部分字粒度的优势,模型采取字词联合的结构。图5是根据本发明实施例的一种可选的字词联合结构示意图。在字词联合结构中,将每轮问题出现的字组成字组,假设字组为。其中,每个字组,其中,是每个为每个字组中字的个数,是大于或等于1的整数,的具体取值可以根据实际情况而定,例如可以是2、3、4、5等,总共有n个字组,n为每句中词的个数。依次输入字组中的每个字对每个字进行维度为d的随机向量化,d是自然数,可以根据实际情况而定。随后进行2层的transformer编码器进行字向量编码以及mean-pool组合得到最终的字组向量

对每轮问题中出现的词向量进行维度为d的随机向量化或者预训练词向量向量化,预训练词向量可以采用ngram2vec方式对领域语料进行训练得到对应的词向量,该词向量在训练时考虑到了ngram特征,效果比基准的cbow和skip-gram模型效果更好。随后将该词向量与字组向量进行加和操作,得到最终的输入词向量。假设多轮问题的句子组为,其中,m为轮数,使用四层的堆叠的transformer编码器以及self-attention模块,得到句子编码层的句子输出向量

会话编码层用于对得到的m个句向量进行三个编码器的多种特征提取操作:一是基于leam的标签-句向量attention操作;二是双向的gru操作,用于获取全局信息;三是提取局部特征的多种卷积核cnn编码器。

其中,基于leam的标签-句向量attention操作可以将句向量转化成第一会话向量,第一会话向量可以表示多轮问题中每个单轮问题的意图信息。句编码层可以得到单轮问题中用户所表达的意图。结合单论问题的意图信息可以得到多轮问题中的局部特征,基于局部特征得到的用户意图更加准确。

其中,双向的gru操作将多轮问题作为一个整体进行分析,gru编码可以结合多轮问题中每个问题之间的上下文关联性,通过双向的gru可以得到多轮问题的全局会话信息。由于第二会话向量中结合了多轮问题之间的关联性,可以得到问题之间的外部信息,通过得到的关联信息可以避免用户在多轮问题中由于问题的重复、模糊带来的用户意图识别准确率低的问题。在本实施例中,由于通过gru编码将多轮会话作为一个整体,考虑了多轮会话之间的关联性,可以提高多轮会话意图识别的准确性。

其中,提取局部特征的多种卷积核cnn编码器卷,可以通过不同卷积核大小对多轮问题进行卷积操作,获取到多轮问题的局部特征,由于第三会话向量中包括了多轮会话的局部信息,可以通过局部信息准确的定位出用户的真实意图。

作为一个可选的实施方式,多轮意图识别模型中的句编码层可以将获取到的多轮问题转化成句向量。会话编码层可以基于leam的标签-句向量attention操作得到每轮问题的会话意图,双向的gru操作将多轮问题作为一个会话整体,可以获取到多轮会话之间的上下文关联性。通过多种卷积核cnn编码器可以获取多轮会话中的局部信息。结合多轮会话中每轮会话的会话意图,以及多轮会话的全局信息和局部信息,通过多轮意图识别模型中的全连接层可以得到多轮问题所表示的用户的真实意图。通过上述步骤,由于在本是申请中,同时考虑了多轮问题中每轮问题的意图信息,以及多轮问题的全局信息和局部信息。综合考虑了单轮问题的意图,以及会话的全局和局部信息。具有全局、局部特征捕获能力,增强模型识别能力。达到了提高多轮会话意图识别准确率的技术效果。

可选地,所述根据预先确定的标签矩阵对所述m个句向量进行注意力编码操作,得到第一会话向量,包括:对所述标签矩阵与所述m个句向量的乘积进行第一注意力编码操作,得到m个注意力取值;对所述m个注意力取值进行归一化操作,得到m个归一化取值;根据所述m个句向量与所述m个归一化取值,确定所述第一会话向量。

作为一个可选的实施方式,会话编码层可以通过如下方式实现,基于leam的标签-句向量attention操作。如图6所示是根据本发明一个可选实施例的leam结构示意图。在leam结构中对标签组进行随机向量化,得到标签矩阵,其中l为标签个数,d为标签向量维度,d可以与句子向量维度一致。在本实施例中标签矩阵中的每个标签向量对应的标签用于表示一种意图类别,例如,“退货”“包邮”“发货时间”等意图。对标签矩阵和句向量组做乘积、relu激活函数以及max-pooling操作,得到一个长度为m的句向量组的注意力取值attentionscore,最后对该注意力取值attentionscore做softmax归一化操作得到归一化取值,最后与句向量组分别乘法得到第一会话向量。

可选地,所述对所述标签矩阵与所述m个句向量的乘积进行第一注意力编码操作,得到m个注意力取值,包括:使用目标激活函数对所述标签矩阵与所述m个句向量的乘积执行目标激活操作,得到m个激活向量,其中,所述m个激活向量中的每个激活向量用于表示所述m个句向量中的一个句向量与所述标签矩阵中的每个标签的匹配概率,所述标签矩阵中的每个标签用于表示多个意图类别中的一个意图类别;对所述m个激活向量执行目标池化操作,得到所述m个注意力取值,其中,所述目标池化操作用于在所述m个激活向量中的每个激活向量中选取最大的匹配概率,所述m个注意力取值中的每个注意力取值为所述m个激活向量中对应的激活向量中最大的匹配概率。

作为一个可选的实施方式,目标激活函数可以是relu激活函数,使用激活函数对句向量进行激活得到m个激活向量,每个激活向量用于表示句向量与标签的匹配概率。在本实施例中,假设m个句子向量中的一个句向量为句向量1,标签矩阵为[a,b,c,d],其中,a,b,c,d用于表示标签对应的向量值。a,b,c,d对应于a,b,c,d四种意图,通过激活函数对标签举着与句向量的乘积进行激活,可以得到句向量中每个句向量对应的句子与a,b,c,d四种意图之间的匹配概率。

作为一个可选的实施方式,目标池化操作可以是max-pooling操作,在对句向量执行激活操作后,得到句向量中每个句向量对应的句子与a,b,c,d四种意图类别之间的匹配概率。通过max-pooling操作可以选取出匹配概率最大的标签作为该句向量所表示的意图。在本实施例中,假设向量1与标签矩阵为[a,b,c,d]执行激活操作后得到的激活向量为[0.4,0.3,0.1,0.8],其中,0.4,0.3,0.1,0.8分别表示句向量1与a,b,c,d标签的匹配概率。由于0.8为最大值,则确定0.8为句向量1对应的注意力取值attentionscore。在本实施例中,通过对标签矩阵和句向量的乘积执行激活操作和池化操作,可以得到每个句向量的意图信息,由于本申请考虑的每轮问题的意图,可以增加对多轮问题意图识别的准确性,达到提高意图识别准确率的技术效果。

可选地,所述根据所述m个句向量与所述m个归一化取值,确定所述第一会话向量,包括:将所述第一会话向量确定为:

其中,表示所述第一会话向量,表示所述m个归一化取值中的第i个归一化取值,表示所述m个句向量中的第i个句向量。

作为一个可选的实施方式,可以通过公式得到第一会话向量,例如,用户的多轮问题中包括“这件衣服码数准吗,我要拍什么码”“这都几天了,怎么还没有物流信息,什么时候发货”、“客服人去哪了,怎么还不发货”。在本实施例中得到的第一会话向量可以综合考虑上述问题中的每个用户意图。例如,“这件衣服码数准吗,我要拍什么码”,用户的意图是咨询号码。“这都几天了,怎么还没有物流信息,什么时候发货”,用户的意图是咨询发货时间。在本实施例中,由于第一会话向量中考虑了多轮问题中每轮问题的意图信息,可以更准确的确定出用户在每轮问题的意图,达到精准确定用户在多轮问题中每轮问题的意图。

可选地,所述对所述m个注意力取值进行归一化操作,得到m个归一化取值,包括:对所述m个注意力取值进行softmax归一化操作,得到所述m个归一化取值

作为一个可选的实施方式,softmax函数是归一化指数函数,softmax函数可以将任意实数映射到0到1的区间内,可以表示句向量对应意图类别的概率。

可选地,所述对所述m个句向量进行gru编码,得到第二会话向量,其中,所述第二会话向量用于表示所述多轮会话的全局会话信息,包括:对所述m个句向量进行gru编码,得到m个目标编码向量;将所述m个目标编码向量输入自注意self-attention层,通过所述self-attention层为所述m个句向量中的每个句向量分配权重,并将分配权重的m个句向量执行求和操作,得到所述第二会话向量。

作为一个可选的实施方式,为获取全局的会话信息,可以构建一个双向的gru层对句向量组进gru编码,得到m个目标编码向量。在本实施例中,由于双向的gru可以结合多轮问题中每轮问题之间的关联性,可以得到问题之间的关联特征,结合多轮问题之间的关联特征可以得到多轮问题的全局信息,例如,“这都几天了,怎么还没有物流信息,什么时候发货”、“客服人去哪了,怎么还不发货”是用户询问的前后两个问题,这两个问题之间是具有关联性的,用户的意图是咨询发货时间,这两个问题关联的特征为希望客服即时回复。

作为一个可选的实施方式,在得到m个目标编码向量后,将m个目标编码向量输入自注意self-attention层,self-attention层自带权重,可以为每个目标编码向量分配权重。在本实施例中,权重可以对会话中点选进行权重限制。例如可以对点选的问题进行权重限制,也可以对重复问题进行权重限制。

作为一个可选的实施方式,如图7所示是根据本发明一个可选实施例的点选界面示意图。其中,用户可以在“我想”后的“服务评价”“订单查询”“优惠券”中点选想要咨询的问题。由于终端屏幕的尺寸限制,只能显示部分点选标识,用于可以通过左右滑动点选区域在界面中显示其他点选标识,进而选取用户想要咨询的问题。在本实施例中,可以将点选的attention权重限制在0.5以下,经self-attention层后得到第二会话向量

作为一个可选的实施方式,用户可能将同一个问题输入多遍,出现重复问题的情况。例如用户连续输入同一个问题,同一个问题所表达的意图是相同的,并且同一个问题之间并不存在关联信息。可以将重复问题的权重限制在0.5以下。例如,用户连续输入“什么时候发货”多遍,形成多轮问题信息,但是这多轮问题信息均是同一个问题,多轮问题之间并不存在关联性,仅分析一个问题信息的意图即可。因此,可以将重复的问题的权重值进行限制。

可选地,所述根据预设的多个卷积核对所述m个句向量进行卷积操作,得到第三会话向量,包括:使用p个不同大小的卷积核分别对所述m个句向量执行卷积操作,得到p组特征图;通过self-attention层,将所述p组特征图转化成p组特征向量,并获取与所述p组特征向量一一对应的权重值;在所述p组特征向量中选取出权重值大于预设阈值的多个目标特征向量;将所述多个目标特征向量的组合确定为所述第三会话向量。

作为一个可选的实施方式,为获取局部的会话信息,可以构建一个多卷积核的cnn特征提取层,使用不同大小的卷积核对m个句向量进行卷积操作。在本实施例中,可以使用卷积核大小分别为四种卷积核对m个句向量进行卷积操作可以得到多张特征图。每个卷积核对应得到一组特征图。将得到的特征图输入self-attention层,可以将特征图转化成特征向量,并为每个特征向量分配权重。选取出权重值大于预设阈值的特征向量,进行组合得到第三会话向量

可选地,所述根据所述第一会话向量、所述第二会话向量以及所述第三会话向量,确定所述多轮会话的意图信息,包括:将所述第一会话向量、所述第二会话向量以及所述第三会话向量拼接为目标分类向量;将所述目标分类向量输入到目标全连接层,得到目标分类结果;根据所述目标分类结果确定所述多轮会话的意图信息。

作为一个可选的实施方式,在得到三种会话向量后,将向量进行拼接得到分类向量随后经全连接层得到分类的logit,,其中,。对和真实会话意图标签经交叉熵损失函数得到的分类损失值。将看做一个输出向量,做一层如操作的全连接层,得到标签loss的类别值,然后与标签的one-hot编码做交叉熵得到标签的损失值。将进行加和得到最终的loss值,并根据loss值进行梯度优化,更新模型参数。

可选地,所述根据所述目标分类结果确定所述多轮会话的意图信息,包括:对所述目标分类结果进行softmax归一化操作,得到多个意图类别中的每个意图类别的概率,其中,所述目标分类结果用于表示在所述多个意图类别中的每个意图类别上的类别取值;将所述多轮会话的意图信息确定为包括所述多个意图类别中的目标意图类别,其中,所述目标意图类别是所述多个意图类别中所述概率最大的意图类别。

作为一个可选的实施方式,在模型预测会话意图时,输入时整个会话的问题列表,输出时将进行softmax归一化操作,得到当前会话对应的每个意图类别的概率,选择最大概率的意图为当前会话的会话意图。通过本申请能够实现多轮意图识别,确定会话意图,为智能客服上下文问答提供支撑。本申请中层次化编码器的多轮意图识别模型,能够提取每轮问题的意图信息,多轮问题的全局信息和局部信息等多种特征信息,从而提升多轮意图识别准确率。

可选地,在所述将m轮问题信息中的每轮问题信息的词向量转换为句向量之前,所述方法包括:对所述m轮问题信息中的每轮问题信息执行以下操作,得到每轮问题信息的词向量,其中,在执行以下操作的过程中,所述每轮问题信息被视为当前问题信息:在所述当前问题信息为所述m轮问题信息中的第i轮问题信息时,对所述当前问题信息进行分词处理,得到ni个词语,其中,ni为自然数;对所述ni个词语中的每个词语进行向量化操作,得到ni个第一词向量;对所述ni个词语中的每个词语进行拆字操作,得到ni组字;对所述ni组字中的每个字进行向量化操作,得到ni组字向量;对所述ni组字向量中的每组字向量进行组合,得到ni个第二词向量;将所述ni个第一词向量和所述ni个第二词向量分别进行加和,得到所述ni个词语对应的ni个词向量,其中,所述当前问题信息的词向量包括所述ni个词向量。

作为一个可选的实施方式,多轮问题中的每轮问题进行分词处理,对于m轮问题中的每轮问题:,其中n为句子中词的个数,m为会话轮数。we用于表示每轮问题中的词语,将每轮问题进行词语拆分,拆分成个词语,对词进行维度为d的随机向量化,或者预训练词向量向量化,预训练词向量采用ngram2vec方式对领域语料进行训练得到对应的词向量,该词向量在训练时考虑到了ngram特征,效果比基准的cbow和skip-gram模型效果更好,以此得到每轮问题中包括的每个词语的第一词向量。为了缓解oov问题以及获得部分字粒度的优势,模型采取字词联合的结构。具体地,可以将每轮问题拆分出的每个词语进一步进行字拆分,通过维度为d的随机向量化得到每个词语对应的每个字的字向量;随后进行2层的transformer编码器进行字向量编码以及mean-pool组合得到最终的字组向量第二词向量,将该词语的第一词向量和第二词向量进行加和操作,可以得到该词语的词向量。

作为一个可选的实施方式,假设对于m轮问题信息中的一轮问题信息是“什么时候发货”分词处理后得到“什么”“时候”“发货”这三组词语,通过随机向量化或者预训练词向量向量化可以得到这三个词语每个词语的第一词向量。以这三个词语中的“发货”为例,假设通过随机向量化得到“发货”的第一词向量为“01”。将词语“发货”进行字拆分操作,拆分成“发”和“货”两个字,通过随机向量化分别得到“发”的字向量为“1”,“货”的字向量为“0”,将两个字向量进行组合得到“发货”的第二词向量为“10”。将第一词向量“01”和第二词向量“10”进行加和,得到“发货”的词向量为“11”。在本实施例中,通过词向量和字组向量的联合,可以体现字粒度的优势,使得意图识别准确率更高。

可选地,所述将m轮问题信息中的每轮问题信息的词向量转换为句向量,包括:对所述m轮问题信息中的每轮问题信息执行以下操作,得到每轮问题信息的词向量,其中,在执行以下操作的过程中,所述每轮问题信息被视为当前问题信息:在所述当前问题信息为所述m轮问题信息中的第i轮问题信息时,将所述当前问题信息的词向量中包括的所述ni个词向量进行加权求和,得到所述当前问题信息的句向量。

作为一个可选的实施方式,对于m轮问题信息中的每轮问题信息得到词向量之后,通过加权求和可以得到每轮问题信息对应的句向量。在本实施例中,假设对于问题信息“什么时候发货”中“什么”“时候”“发货”分别对应的词向量为“01”“11”“10”可以直接将三个词向量求和得到该问题信息的句向量“110”。或者为三个词向量分配权重,权重的大小可以根据词语的重要程度确定,例如,对于“发货”的重要程度较高,所分配的权重更大,“什么”的重要程度较低,可以分配更小的权重。假设,“什么”分配的权重为0,“11”“10”分配的权重均为1,则得到该问题信息得到句向量为“101”。在本实施例中,通过为每轮问题信息中的词向量分配权重后得到对应的句向量,可以去除问题信息中冗余的信息,保留重要的信息,提高意图识别的准确率。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

根据本发明实施例的另一个方面,还提供了一种用于实施上述基于多轮会话的意图识别方法的基于多轮会话的意图识别装置。如图8所示,该装置包括:转换模块82,用于将m轮问题信息中的每轮问题信息的词向量转换为句向量,得到m个句向量,其中,所述m轮问题信息为多轮会话中由用户帐号产生的问题信息,所述m为大于1的自然数;操作模块84,用于根据预先确定的标签矩阵对所述m个句向量进行注意力编码操作,得到第一会话向量,其中,所述第一会话向量用于表示所述m个句向量中的每个句向量的意图信息;编码模块86,用于对所述m个句向量进行门控循环单元gru编码,得到第二会话向量,其中,所述第二会话向量用于表示所述多轮会话的全局会话信息;卷积模块88,用于根据预设的多个卷积核对所述m个句向量进行卷积操作,得到第三会话向量,其中,所述第三会话向量用于表示所述多轮会话的局部会话信息;确定模块810,用于根据所述第一会话向量、所述第二会话向量以及所述第三会话向量,确定所述多轮会话的意图信息。

可选地,所述操作模块,包括:第一操作单元,用于对所述标签矩阵与所述m个句向量的乘积进行第一注意力编码操作,得到m个注意力取值;第二操作单元,用于对所述m个注意力取值进行归一化操作,得到m个归一化取值;确定单元,用于根据所述m个句向量与所述m个归一化取值,确定所述第一会话向量。

可选地,上述装置用于通过如下方式实现所述对所述标签矩阵与所述m个句向量的乘积进行第一注意力编码操作,得到m个注意力取值:使用目标激活函数对所述标签矩阵与所述m个句向量的乘积执行目标激活操作,得到m个激活向量,其中,所述m个激活向量中的每个激活向量用于表示所述m个句向量中的一个句向量与所述标签矩阵中的每个标签的匹配概率,所述标签矩阵中的每个标签用于表示多个意图类别中的一个意图类别;对所述m个激活向量执行目标池化操作,得到所述m个注意力取值,其中,所述目标池化操作用于在所述m个激活向量中的每个激活向量中选取最大的匹配概率,所述m个注意力取值中的每个注意力取值为所述m个激活向量中对应的激活向量中最大的匹配概率。

可选地,上述装置用于通过如下方式实现所述根据所述m个句向量与所述m个归一化取值,确定所述第一会话向量:将所述第一会话向量确定为:

其中,表示所述第一会话向量,表示所述m个归一化取值中的第i个归一化取值,表示所述m个句向量中的第i个句向量。

可选地,上述装置用于通过如下方式实现所述对所述m个注意力取值进行归一化操作,得到m个归一化取值:对所述m个注意力取值进行softmax归一化操作,得到所述m个归一化取值

可选地,上述装置用于通过如下方式实现所述对所述m个句向量进行gru编码,得到第二会话向量:对所述m个句向量进行gru编码,得到m个目标编码向量;将所述m个目标编码向量输入自注意self-attention层,通过所述self-attention层为所述m个句向量中的每个句向量分配权重,并将分配权重的m个句向量执行求和操作,得到所述第二会话向量。

可选地,上述装置用于通过如下方式实现所述根据预设的多个卷积核对所述m个句向量进行卷积操作,得到第三会话向量:使用p个不同大小的卷积核分别对所述m个句向量执行卷积操作,得到p组特征图;通过self-attention层,将所述p组特征图转化成p组特征向量,并获取与所述p组特征向量一一对应的权重值;在所述p组特征向量中选取出权重值大于预设阈值的多个目标特征向量;将所述多个目标特征向量的组合确定为所述第三会话向量。

可选地,上述装置用于通过如下方式实现所述根据所述第一会话向量、所述第二会话向量以及所述第三会话向量,确定所述多轮会话的意图信息:将所述第一会话向量、所述第二会话向量以及所述第三会话向量拼接为目标分类向量;将所述目标分类向量输入到目标全连接层,得到目标分类结果;根据所述目标分类结果确定所述多轮会话的意图信息。

可选地,上述装置用于通过如下方式实现所述根据所述目标分类结果确定所述多轮会话的意图信息:对所述目标分类结果进行softmax归一化操作,得到多个意图类别中的每个意图类别的概率,其中,所述目标分类结果用于表示在所述多个意图类别中的每个意图类别上的类别取值;将所述多轮会话的意图信息确定为包括所述多个意图类别中的目标意图类别,其中,所述目标意图类别是所述多个意图类别中所述概率最大的意图类别。

可选地,上述装置还用于在所述将m轮问题信息中的每轮问题信息的词向量转换为句向量之前,对所述m轮问题信息中的每轮问题信息执行以下操作,得到每轮问题信息的词向量,其中,在执行以下操作的过程中,所述每轮问题信息被视为当前问题信息:在所述当前问题信息为所述m轮问题信息中的第i轮问题信息时,对所述当前问题信息进行分词处理,得到ni个词语,其中,ni为自然数;对所述ni个词语中的每个词语进行向量化操作,得到ni个第一词向量;对所述ni个词语中的每个词语进行拆字操作,得到ni组字;对所述ni组字中的每个字进行向量化操作,得到ni组字向量;对所述ni组字向量中的每组字向量进行组合,得到ni个第二词向量;将所述ni个第一词向量和所述ni个第二词向量分别进行加和,得到所述ni个词语对应的ni个词向量,其中,所述当前问题信息的词向量包括所述ni个词向量。

可选地,上述装置还用于通过如下方式实现所述将m轮问题信息中的每轮问题信息的词向量转换为句向量:对所述m轮问题信息中的每轮问题信息执行以下操作,得到每轮问题信息的词向量,其中,在执行以下操作的过程中,所述每轮问题信息被视为当前问题信息:在所述当前问题信息为所述m轮问题信息中的第i轮问题信息时,将所述当前问题信息的词向量中包括的所述ni个词向量进行加权求和,得到所述当前问题信息的句向量。

根据本发明实施例的又一个方面,还提供了一种用于实施上述基于多轮会话的意图识别方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为服务器为例来说明。如图9所示,该电子设备包括存储器902和处理器904,该存储器902中存储有计算机程序,该处理器904被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,将m轮问题信息中的每轮问题信息的词向量转换为句向量,得到m个句向量,其中,所述m轮问题信息为多轮会话中由用户帐号产生的问题信息,所述m为大于1的自然数;

s2,根据预先确定的标签矩阵对所述m个句向量进行注意力编码操作,得到第一会话向量,其中,所述第一会话向量用于表示所述m个句向量中的每个句向量的意图信息;

s3,对所述m个句向量进行门控循环单元gru编码,得到第二会话向量,其中,所述第二会话向量用于表示所述多轮会话的全局会话信息;

s4,根据预设的多个卷积核对所述m个句向量进行卷积操作,得到第三会话向量,其中,所述第三会话向量用于表示所述多轮会话的局部会话信息;

s5,根据所述第一会话向量、所述第二会话向量以及所述第三会话向量,确定所述多轮会话的意图信息。

可选地,本领域普通技术人员可以理解,图9所示的结构仅为示意,电子装置电子设备也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图9其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图9中所示更多或者更少的组件(如网络接口等),或者具有与图9所示不同的配置。

其中,存储器902可用于存储软件程序以及模块,如本发明实施例中的基于多轮会话的意图识别方法和装置对应的程序指令/模块,处理器904通过运行存储在存储器902内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的基于多轮会话的意图识别方法。存储器902可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器902可进一步包括相对于处理器904远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器902具体可以但不限于用于存储m轮问题信息等信息。作为一种示例,如图9所示,上述存储器902中可以但不限于包括上述基于多轮会话的意图识别装置中的转换模块82、操作模块84、编码模块86、卷积模块88及确定模块810。此外,还可以包括但不限于上述基于多轮会话的意图识别装置中的其他模块单元,本示例中不再赘述。

可选地,上述的传输装置906用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置906包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置906为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

此外,上述电子设备还包括:显示器908,用于显示上述m轮问题信息;和连接总线910,用于连接上述电子设备中的各个模块部件。

在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(p2p,peertopeer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。

根据本发明的实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,将m轮问题信息中的每轮问题信息的词向量转换为句向量,得到m个句向量,其中,所述m轮问题信息为多轮会话中由用户帐号产生的问题信息,所述m为大于1的自然数;

s2,根据预先确定的标签矩阵对所述m个句向量进行注意力编码操作,得到第一会话向量,其中,所述第一会话向量用于表示所述m个句向量中的每个句向量的意图信息;

s3,对所述m个句向量进行门控循环单元gru编码,得到第二会话向量,其中,所述第二会话向量用于表示所述多轮会话的全局会话信息;

s4,根据预设的多个卷积核对所述m个句向量进行卷积操作,得到第三会话向量,其中,所述第三会话向量用于表示所述多轮会话的局部会话信息;

s5,根据所述第一会话向量、所述第二会话向量以及所述第三会话向量,确定所述多轮会话的意图信息。

可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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