一种基于上下文注意流的对话意图识别系统及方法与流程

文档序号:25809693发布日期:2021-07-09 13:22阅读:263来源:国知局
一种基于上下文注意流的对话意图识别系统及方法与流程

1.本发明涉及计算机技术领域,具体而言,涉及一种基于上下文注意流的对话意图识别系统及方法。


背景技术:

2.对话机器人地核心功能模块是意图识别。机器人首先需要根据用户发来的对话语句预测其对应的意图,然后基于意图给用户发送对应的答案,从而完成在线自动应答。对话是一个多轮问答的过程,但是目前在线机器人识别意图时,只考虑单句话的内容,而很多对话中的意图并无法通过单句话的内容进行识别。因此,线上机器人有相当多的语句的意图是无法基于单句而准确识别的,从而导致机器人的问答响应失败。
3.为了解决多轮对话问答中的意图识别问题,目前工业界和学术界主要采用两类方法:基于记忆网络的方法——记忆网络一般包括输入编码模块、记忆模块和输出预测模块。这类方法一般维护一个记忆槽位空间(记忆模块),存储对话上文历史语句,然后应用注意力机制,动态地不断更新网络地记忆状态,并基于记忆状态生成一个特征向量,基于此预测对话的意图。
4.基于阅读理解技术的方法——阅读理解模型一般采用一个编码器,对输入的文章和问题做编码,通过文章内容和问题内容的互注意力、自注意力等技术,获得文章的单词粒度的表示,构造两个开始和结束位置预测头,预测每个单词作为问题答案开始位置的概率(p(start))和结束位置的概率(p(end)),最后选取“p(start)*p(end)”概率最大的一组短语构成问题答案。
5.虽然基于阅读理解的技术处理多轮对话上文依赖的问题时可以准确定位这些历史语句,但是阅读理解所需的主题文章在业界难以获取,此外获取到相关的历史语句后,还需要构造模型进一步融合这些语句信息和当前语句信息,进而预测对话意图。基于记忆网络的模型,无法直接选择相关历史对话语句作为对话的上文依赖信息,导致模型难以准确融合对话上文信息到当前语句中。此外,还可能每次重复地选择其中某些语句的编码特征,导致模型无法充分关注到其他相关特征,影响模型建模多轮对话的能力。
6.因此,需要提供一种方案以便于提高对话意图识别的效率和准确率,增强机器人的应答能力。


技术实现要素:

7.本发明的目的在于提供一种基于上下文注意流的对话意图识别系统及方法,用以实现提高对话意图识别的效率和准确率的技术效果。
8.第一方面,本发明提供了一种基于上下文注意流的对话意图识别系统,包括包括:输入编码模块、自相关系数分析模块、前馈神经网络和多任务学习模块;所述输入编码模块用于将包含若干个单词的输入语句进行编码处理,得到对应的
表征向量;所述输入语句包括对话样本集中已知对话意图和对话类型的若干个历史对话语句和当前语句;所述自相关系数分析模块用于将当前语句的表征向量与各个历史对话语句的表征向量进行拼接后进行计算,得到融合了问题信息的上文语句表示向量;然后根据所述上文语句表示向量进行特征融合,得到融合了对话上下文信息的上下文句子表示向量;最后根据当前语句的表征向量和所述上下文句子表示向量进行点积运算,获得用于意图识别的特征向量;所述前馈神经网络用于对所述特征向量进行处理后输入所述多任务学习模块;所述多任务学习模块用于根据所述前馈神经网络的处理结果和各个历史对话语句的实际对话意图进行计算得到对应的对话意图识别损失函数;根据所述前馈神经网络的处理结果和各个历史对话语句的实际类型分析得到对应的对话上文类型识别损失函数;同时将当前语句的表征向量与各个历史对话语句的表征向量进行拼接后通过一个条件随机场计算得到对应的对话意图证据损失函数;然后根据所述对话意图识别损失函数、所述对话上文类型识别损失函数和所述对话意图证据损失函数度计算得到系统的总损失函数,并根据所述总损失函数对所述特征向量进行优化。
9.进一步地,所述自相关系数分析模块包括上文

问题注意力层、自注意力层和问题

上文注意力层;所述上文

问题注意力层用于将当前语句的表征向量与各个历史对话语句的表征向量进行拼接后通过双曲正切函数进行计算,得到融合了问题信息的上文语句表示向量;所述自注意力层用于通过自注意力机制对所述上文语句表示向量进行特征融合,得到融合了历史对话上下文信息的上下文句子表示向量;所述问题

上文注意力层用于根据当前语句的表征向量和所述上下文句子表示向量进行点积运算,获得用于意图识别的特征向量。
10.进一步地,所述上文语句表示向量的计算方式为:式中,u
i1
表示上文语句表示向量;tanh表示双曲正切函数;w
cq
和b
cq
均表示上文

问题注意力层的学习参数;表示当前语句;u
i
表示第i个历史对话语句;n表示历史对话语句的总数;i表示变量,取值范围为1~n。
11.进一步地,所述上下文句子表示向量的计算方式为:
式中,u
i2
表示上下文句子表示向量;n表示历史对话语句的总数;w
self
∈r
d
×
d
,r
d
×
d
表示行列都为d维度的实数矩阵,r表示实数;attn
ij
表示经过softmax函数归一化处理后的注意力权重;score
ij
表示当前语句的上文中第i和第j个历史语句之间的注意力权重;k为变量,表示取值范围中的第k个。
12.进一步地,所述特征向量的计算方式为:式中,vec
feature
表示特征向量,w
qc
和b
qc
均表示问题

上文注意力层的学习参数,表示当前语句,dot表示点积运算。
13.进一步地,所述多任务学习模块包括对话意图识别单元、对话上文类识别单元和对话上文证据选择单元;所述对话意图识别单元用于根据所述前馈神经网络的处理结果和各个历史对话语句的意图进行计算得到对应的对话意图识别损失函数,所述对话上文类识别单元用于根据所述前馈神经网络的处理结果和各个历史对话语句的类型进行计算得到对应的对话上文类识别损失函数;所述对话上文证据选择单元用于将当前语句的表征向量与各个历史对话语句的表征向量进行拼接后根据当前语句与历史对话语句的关联性进行计算得到对应的对话上文证据选择损失函数。
14.进一步地,所述对话意图识别单元、所述对话上文类识别单元和所述对话上文证据选择单元的实现方式为:据选择单元的实现方式为:据选择单元的实现方式为:据选择单元的实现方式为:上式中,loss1表示对话意图识别损失函数;loss2表示对话上文类识别损失函数;loss3表示对话上文证据选择损失函数;crf表示条件随机场;ff表示前馈神经网络;θ
acflow
表示自相关系数分析模块的网络参数;θ
ff
表示前馈神经网络的网络参数;θ
crf
表示条件随机场的网络参数;表示当前语句;u1,u2,

,u
n
表示各个历史对话语句;x
k
表示对话样本集中的第k个样本;ce表示交叉熵运算;mle表示极大似然估计运算;intent
k
表示x
k
对应的的意图;type
k
表示x
k
对应的类型;tag
k
表示x
k
与当前语句是否相关的标记;sel
n
则表示标记序列中各个历史对话语句的标记,0表示不相关,1表示相关;d表示数据集,其中包含了每个样本x
k
对应的意图intent
k
、类型type
k
和相关标记tag
k

15.进一步地,所述总损失函数的计算方式为:
式中,min
obj
表示总损失函数,loss1表示对话意图识别损失函数;loss2表示对话上文类识别损失函数;loss3表示对话上文证据选择损失函数;λ1,λ2,λ3表示超参数。
16.第二方面,本发明实施例提供了一种基于上下文注意流的对话意图识别方法,应用于上述的对话意图识别系统,包括:s1.将包含若干个单词的输入语句进行编码处理,得到对应的表征向量;所述输入语句包括若干个历史对话语句和当前语句;s2.将当前语句的表征向量与各个历史对话语句的表征向量进行拼接后进行计算,得到融合了问题信息的上文语句表示向量;然后根据所述上文语句表示向量进行特征融合,得到融合了历史对话上下文信息的上下文句子表示向量;最后根据当前语句的表征向量和所述上下文句子表示向量进行点积运算,获得用于意图识别的特征向量;s3.通过前馈神经网络对所述特征向量进行处理后输入所述多任务学习模块;s4.通过多任务学习模块根据系统的总损失函数对所述特征向量进行优化;s5.根据优化后的特征向量分析得到当前语句的意图。
17.本发明能够实现的有益效果是:本发明提供的基于上下文注意流的对话意图识别系统及方法通过设置的自相关系数分析模块获取用于识别当前语句意图的特征向量,同时通过训练的多任务学习模块对该特征向量进行优化,提高了对话意图识别的效率和准确率。
附图说明
18.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
19.图1为本发明实施例提供的一种基于上下文注意流的对话意图识别系统的拓扑结构示意图;图2为本发明实施例提供的一种基于上下文注意流的对话意图识别方法流程示意图。
20.图标:10

对话意图识别系统;100

输入编码模块;200

自相关系数分析模块;300

前馈神经网络;400

多任务学习模块。
具体实施方式
21.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
22.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
23.请参看图1,图1为本发明实施例提供的一种基于上下文注意流的对话意图识别系
统的拓扑结构示意图。
24.在一种实施方式中,本发明提供了一种基于上下文注意流的对话意图识别系统10,包括输入编码模块100、自相关系数分析模块200、前馈神经网络300和多任务学习模块400;输入编码模块100用于将包含若干个单词的输入语句进行编码处理,得到对应的表征向量;输入语句包括对话样本中已知对话意图和对话类型的若干个历史对话语句和当前语句;自相关系数分析模块200用于将当前语句的表征向量与各个历史对话语句的表征向量进行拼接后进行计算,得到融合了问题信息的上文语句表示向量;然后根据上文语句表示向量进行特征融合,得到融合了对话上下文信息的上下文句子表示向量;最后根据当前语句的表征向量和上下文句子表示向量进行点积运算,获得用于意图识别的的特征向量;前馈神经网络300用于对特征向量进行处理后输入多任务学习模块;多任务学习模块400用于根据前馈神经网络的处理结果和各个历史对话语句的实际对话意图进行计算得到对应的对话意图识别损失函数;根据前馈神经网络的处理结果和各个历史对话语句的实际类型分析得到对应的对话上文类型识别损失函数;同时将当前语句的表征向量与各个历史对话语句的表征向量进行拼接后通过一个条件随机场计算得到对应的对话意图证据损失函数;然后根据对话意图识别损失函数、对话上文类型识别损失函数和对话意图证据损失函数度计算得到系统的总损失函数,并根据总损失函数对特征向量进行优化。
25.通过上述实施方式,既降低了系统的复杂度,也提高了对话意图识别的效率和准确率。
26.在一种实施方式中,输入编码模块100可以使用lstm

cnn编码器;lstm

cnn编码器首先使用一个基于glove词向量的词嵌入embedding层将一句包含n个单词的语句编码为n
×
d维的矩阵,每个单词对应矩阵中一个d维向量,然后使用一个lstm编码器读入这个矩阵,并将lstm的输出送入一个多卷积核cnn网络。该cnn网络包含长度为1、3、5、7、9个单位的卷积核,将每个卷积核的卷积结果拼接到一起,并做最大池化操作,从而生成各个语句编码的表征向量。
27.需要说明的是,输入编码模块100并不局限于使用lstm

cnn编码器,也可以采用其他编码器代替,例如transformer网络等。
28.在一种实施方式中,自相关系数分析模块200包括上文

问题注意力层、自注意力层和问题

上文注意力层;上文

问题注意力层用于将当前语句的表征向量与各个历史对话语句的表征向量进行拼接后通过双曲正切函数进行计算,得到融合了问题信息的上文语句表示向量;自注意力层用于通过自注意力机制对上文语句表示向量进行特征融合,得到融合了历史对话上下文信息的上下文句子表示向量;问题

上文注意力层用于根据当前语句的表征向量和上下文句子表示向量进行点积运算,获得用于意图识别的特征向量。
29.具体地,上文语句表示向量的计算方式为:
式中,u
i1
表示上文语句表示向量;tanh表示双曲正切函数;w
cq
和b
cq
均表示上文

问题注意力层的学习参数;表示当前语句;u
i
表示第i个历史对话语句;n表示历史对话语句的总数;i表示变量,取值范围为1~n。
30.上下文句子表示向量的计算方式为:式中,u
i2
表示上下文句子表示向量;n表示历史对话语句的总数;w
self
∈r
d
×
d
,r
d
×
d
表示行列都为d维度的实数矩阵,r表示实数;attn
ij
表示经过softmax函数归一化处理后的注意力权重;score
ij
表示当前语句的上文中第i和第j个历史语句之间的注意力权重;k为变量,表示取值范围中的第k个。
31.上述特征向量的计算方式为:式中,vec
feature
表示特征向量,w
qc
和b
qc
均表示问题

上文注意力层的学习参数,表示当前语句,dot表示点积运算。
32.在一种实施方式中,多任务学习模块400包括对话意图识别单元、对话上文类识别单元和对话上文证据选择单元;对话意图识别单元用于根据前馈神经网络的处理结果和各个历史对话语句的意图进行计算得到对应的对话意图识别损失函数,对话上文类识别单元用于根据前馈神经网络的处理结果和各个历史对话语句的类型进行计算得到对应的对话上文类识别损失函数;对话上文证据选择单元用于将当前语句的表征向量与各个历史对话语句的表征向量进行拼接后根据当前语句与历史对话语句的关联性进行计算得到对应的对话上文证据选择损失函数。
33.具体地,对话意图识别单元、对话上文类识别单元和对话上文证据选择单元的实现方式为:
上式中,loss1表示对话意图识别损失函数;loss2表示对话上文类识别损失函数;loss3表示对话上文证据选择损失函数;crf表示条件随机场;ff表示前馈神经网络;θ
acflow
表示自相关系数分析模块的网络参数;θ
ff
表示前馈神经网络的网络参数;θ
crf
表示条件随机场的网络参数;表示当前语句;u1,u2,

,u
n
表示各个历史对话语句;x
k
表示对话样本集中的第k个样本;ce表示交叉熵运算;mle表示极大似然估计运算;intent
k
表示x
k
对应的的意图;type
k
表示x
k
对应的类型;tag
k
表示x
k
与当前语句是否相关的标记;sel
n
则表示标记序列中各个历史对话语句的标记,0表示不相关,1表示相关;d表示数据集,其中包含了每个样本x
k
对应的意图intent
k
、类型type
k
和相关标记tag
k

34.在一种实施方式中,总损失函数的计算方式为:在一种实施方式中,总损失函数的计算方式为:式中,min
obj
表示总损失函数,loss1表示对话意图识别损失函数;loss2表示对话上文类识别损失函数;loss3表示对话上文证据选择损失函数;λ1,λ2,λ3表示超参数。其中,λ1,λ2,λ3可以采用超参数网格搜索获得;例如,可以设一个训练数据集,并将训练数据集划分为训练集和验证集,不同超级参数下分别获得意图识别准确率,选取验证集上准确率最高的一组超参数。
35.通过上述实施方式,可以使得用于对话意图预测的特征向量更加准确,从而提高对话意图识别的准确率。
36.请参看图2,图2为本发明实施例提供的一种基于上下文注意流的对话意图识别方法流程示意图。
37.在一种实施方式中,本发明还提供了一种用于上述对话意图识别系统的基于上下文注意流的对话意图识别方法,其具体内容如下所述。
38.s1.将包含若干个单词的输入语句进行编码处理,得到对应的表征向量;所述输入语句包括若干个历史对话语句和当前语句;s2.将当前语句的表征向量与各个历史对话语句的表征向量进行拼接后进行计算,得到融合了问题信息的上文语句表示向量;然后根据所述上文语句表示向量进行特征融合,得到融合了历史对话上下文信息的上下文句子表示向量;最后根据当前语句的表征向量和所述上下文句子表示向量进行点积运算,获得用于意图识别的特征向量;s3.通过前馈神经网络对所述特征向量进行处理后输入所述多任务学习模块;s4.通过多任务学习模块根据系统的总损失函数对所述特征向量进行优化;s5.根据优化后的特征向量分析得到当前语句的意图。
39.通过上述过程,提高了对话意图识别的效率和准确率。
40.进一步地,为了解决对话上文依赖的意图识别,目前业界采用nli(自然语言推理)方式,记忆网络等方法进行分析。本发明对比分析了如下方法:lbert

nli:采用业界先进的自然语言模型bert作为句子编码器,将对话上文句子拼接为单句话,与当前对话句子一起送入bert,然后采用bert的池化向量做为特征向量,进行意图识别。
41.le2emem:一种端对端的记忆网络,可以形成输入、记忆更新、输出闭环参数更新。
42.ldmn:动态记忆网络,采用一种动态门控算法更新记忆状态,不断更新网络内部记忆模块。
43.lkvnet:一种参数key哈希的键

值网络,能够大幅度扩大事实的检索范围和提高检索融合精度。对话中可以将对话上文视为事实,当前对话语句视为检索请求。
44.ldanet:一种深度对话历史语句融合网络,基于注意力机制,可以将对话上文信息融入到当前对话语句的表示中,提高对话意图识别精度。
45.为了测试准确率,我们从淘宝上获取了90万左右个对话,进行了人工意图标注(对话意图,对话上文类型,对话意图相关事实),然后使用其中90%的作为训练集,10%作为测试集合,对本发明的方法(acflow)和上述5类业界方法做了训练和测试,实验结果如表1所示。从表1可以看出,本发明所提供的方法高出这些代表方法6~7%左右的准确率。
46.表1综上所述,本发明实施例提供一种基于上下文注意流的对话意图识别系统及方法,包括输入编码模块、自相关系数分析模块、前馈神经网络和多任务学习模块;输入编码模块用于将包含若干个单词的输入语句进行编码处理,得到对应的表征向量;输入语句包括对话样本中已知对话意图和对话类型的若干个历史对话语句和当前语句;自相关系数分析模块用于将当前语句的表征向量与各个历史对话语句的表征向量进行拼接后进行计算,得到融合了问题信息的上文语句表示向量;然后根据上文语句表示向量进行特征融合,得到融合了对话上下文信息的上下文句子表示向量;最后根据当前语句的表征向量和上下文句子表示向量进行点积运算,获得用于意图识别的特征向量;前馈神经网络用于对特征向量进行处理后输入多任务学习模块;多任务学习模块通过系统的总损失函数对特征向量进行优化;提高了对话意图识别的效率和准确率。
47.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1