一种基于聚类预分析的多意图与语义槽联合识别方法与流程

专利2022-05-09  82


本发明涉及自然语言处理领域,尤其涉及人机对话系统中的自然语言语义分析方法。



背景技术:

随着人工智能的快速发展,人们对许多应用场景智能性的要求日益增加,要满足智能性的要求,良好的人机交互是必不可少的。目前,人机交互的方式呈现多样化,其中,最方便的方式莫过于使用自然语言。因此,利用自言语言实现人机对话的呼声也越来越高,人机对话系统受到了学术界和工业界的广泛关注,具有非常广泛的应用场景。

要实现人机对话系统中离不开自然语言语义分析技术。语义分析的好坏将直接影响人机交互的效果。由于自然语言的复杂性、抽象性以及词语的多义性等,这都增加了自然语言语义分析的难度。语义分析分为意图识别与语义槽填充两个基本子任务。对于这两个子任务,传统的研究方法是将这两个任务看做两个独立的问题去解决,之后再将两个任务的结果进行连接。但实际上,意图识别是对用户需求类型的判断,而语义槽填充是将用户需求具体化。因此,用户意图和待识别的槽位是强相关的,意图识别的目的是为了更好的进行语义槽的填充。而传统的单独建模的方法没有充分考虑两个任务之间的联系,使得语义信息没能得到有效的利用。此外,人机对话系统中常面临多意图识别问题,即用户输入的意图文本可能不仅只包含一种意图,也可能会出现多种意图。目前对于意图识别问题的研究主要集中在单意图的识别上,多意图识别相对于单意图识别来说,识别起来不仅更为复杂而且对语义理解的程度要求更高。

综上所述,针对人机对话系统中的语义分析问题,如何在现有技术的基础上提出有效解决多意图识别与语义槽填充的联合建模方法,也就成为了本领域内技术人员亟待解决的问题。



技术实现要素:

鉴于人机对话系统中的语义分析存在上述问题,本发明提出了一种基于聚类预分析的多意图与语义槽联合识别方法,用于解决人机对话中多意图识别与语义槽填充的联合识别问题,所述方法具体过程如下:

步骤1,实时获取当前用户输入的多意图文本并进行预处理;

步骤2,基于聚类预分析构建多意图识别模型,用来识别用户的多个意图;

步骤3,基于slot-gated关联门机制构建bilstm-crf语义槽填充模型,充分利用意图识别的结果指导语义槽的填充;

步骤4,对构建的多意图识别与语义槽填充的联合模型进行优化,并利用优化后的模型进行识别。

步骤1中,对当前用户输入的多意图文本进行预处理,就是将多意图文本进行向量化表示,以便输入神经网络模型中进行语义特征提取。本文的向量化表示方法为,首先使用同领域海量中文无监督语料预训练bert模型。然后,利用得到的bert预训练模型来对多意图文本进行向量化表示。

步骤2中,构建基于聚类预分析的多意图识别模型的目的是为了指导语义槽的填充,多意图识别的准确与否会直接影响语义槽的填充。为了提高多意图识别的准确率,针对用户输入的意图的不确定性,提出了一种基于聚类预分析的方法,即在意图识别之前先对意图文本进行分析,判断意图属于单意图还是多意图。

整个意图识别分为两个阶段:首先第一阶段用k-means聚类算法对输入的意图文本进行判断。一般情况下意图主要分为单意图和多意图两种,因此,聚类中心k为两个;第二阶段,根据判断的意图个数分别进行分类。

当判断意图文本包含多个意图时,使用多意图分类器进行分类,即在bert预训练模型后面增加全连接层,全连接层的每一个结点都与上一层的所有结点相连,用来把前面提取的语义特征融合起来;然后将bert模型输出的意图文本向量,输入sigmoid分类器中,用分类器在每个标签上进行二分类,输出多个意图标签。sigmoid分类器设置的阈值为0.6,经过试验验证,当取该值是可以获得最佳的分类效果。当概率大于设置的阈值时,输出该标签;当概率小于设置的阈值时,不输出该标签。标签预测的计算公式如下所示:

yi=sigmoid(wic bi)。

式中yi表示意图的预测输出,wi表示权重矩阵,c表示输入的文本向量,bi表示偏置。

当判断意图文本为单意图时,采用softmax分类器,直接将bert输出第一个标志为([cls])的句向量c输入分类器中进行分类,根据下面的公式可得到预测的意图标签:

yi=softmax(wic bi)。

在使用k-means聚类算法对多意图文本进行预分析的过程中,需要判断意图文本之间的语义相似度。语义相似度的衡量对于聚类结果的准确性至关重要。对于文本语义相似度的衡量,常用的方式是计算余弦相似度。余弦相似度可以体现空间中两个向量间的差异性。但是余弦相似度对绝对数值不敏感,无法衡量同一方向上的差异性。而欧氏距离在计算相似度时,对绝对数值敏感,可以很好的衡量同一方向上的差异性。因此本发明在余弦相似度和欧氏距离的基础上,综合二者的特点,提出了一种新的度量方法,如下所示:

其中,f1指余弦相似度,f2指欧氏距离,fsim(xi,xj)表示意图文本向量xi和意图文本向量xj之间的距离,f1(xi,xj)表示意图文本向量xi和意图文本向量xj之间的余弦相似度,f2(xi,xj)表示意图文本向量xi和意图文本向量xj之间的欧氏距离。当计算得到的fsim值越大,说明数据对象之间的相似度越大,当计算得到的fsim值越小,说明数据对象之间的相似度越小,使用该度量方法可以更好的衡量文本之间的相似度。

步骤3中,基于slot-gated关联门机制的bilstm-crf语义槽填充模型的构建方法,具体如下所示:

slot-gated关联门机制,它可以把意图识别任务与语义槽填充任务联系起来。即将意图识别的意图向量与用于语义槽填充的意图文本向量加权求和。然后通过激活函数tanh,得到意图-语义槽联合特征向量g,计算方法如下:

其中,表示语义槽向量,ci表示意图向量,和ci的维度相同,v和w分别是可训练的向量和矩阵。

之后,将意图-语义槽联合特征向量g,输入bilstm神经网络中,目的是提取文本的语序特征并捕获深层次的上下文语义信息。然后在bilstm网络后面添加一层线性层,对神经网络输出向量的维度进行映射,用于语义槽解码。最后使用crf作为解码单元,输出序列中每个词对应的槽标签,计算方法如下:

其中,表示输入文本序列中第i个字的语义槽预测输出,为权重矩阵。

步骤4中,对构建的多意图识别与语义槽填充的联合模型进行优化,具体如下所示:

联合识别模型的性能由两个子任务共同决定,多意图识别和语义槽填充的联合概率如下所示:

其中,表示在输入多意图文本序列x的前提下,多意图识别yi和语义槽填充的联合条件概率。

在联合模型训练中,训练的目标是最大化输出多意图识别和语义槽填充的联合概率。为了提高语义分析的能力,充分利用意图语义信息指导语义槽的填充,对联合识别模型进行优化。在模型训练时,改变了传统的只是将多个任务损失函数简单相加的方式。基于迭代思想,提出了一种联合多意图识别与语义槽填充的分步迭代训练方式:①利用训练文本对bert模型和多意图识别模型进行训练,更新bert模型和多意图识别模型的参数;②将①中多意图识别模型的输出传送至slot-gated,利用与①中相同的训练文本对①中更新后的bert模型和语义槽填充模型进行训练,更新bert模型和语义槽填充模型的参数;③迭代执行①和②,直到达到训练目标(最优)。多意图识别与语义槽填充两个任务在训练时共享bert模型底层参数,即训练一个模型时以另外一个模型的训练结果进行底层模型的初始化。而上游任务则分别训练,同时将意图识别的结果传送给语义槽填充任务,以提高语义槽填充的准确率。

损失函数对于模型参数更新非常重要。若损失函数选择的不合理,模型再强大最后的结果也不好。

联合识别模型中的多意图识别损失函数lossintent,计算公式如下所示:

lossintent=(lossmulti)k(losssingle)1-k

其中,k表示意图文本的类别,当意图文本包含多个意图时k为1,当意图文本为单意图时k为0。lossmulti为多意图识别的交叉熵,losssingle为单意图识别的交叉熵。具体计算如下所示:

式中,yi为意图的预测输出,yintent为真实意图,t是训练文本数。

联合识别模型中语义槽填充任务损失函数lossslot,计算如下所示:

其中,表示训练文本序列中第i个字的语义槽预测输出,表示训练文本序列中第i个字的真实语义槽,t是训练文本数,m表示训练文本序列长度。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

本发明充分考虑了意图识别与语义槽填充之间的联系,构建了联合识别模型,将两个语义分析子任务合并为一个任务,共享bert底层语义特征。然后,利用slot-gated关联门生成意图-语义槽联合特征向量,再将其用于语义槽填充任务。在语义槽填充的任务中,使用bilstm捕获文本的语序特征,获取上下文语义信息;使用crf作为解码器,考虑标签前后的依赖关系,使得语义槽标注的更合理。此外,为了提升联合模型的整体性能,在多意图识别过程中,针对用户输入意图的不确定性,提出了一种基于聚类预分析的算法,用来判断意图的数量,在该算法中对传统的语义相似度的度量方法进行了改进,提出了新的度量方式,新的度量方式可以更加有效的衡量意图文本之间的相似度,提高意图个数判断的准确度,提高算法的鲁棒性。为了提高语义分析的能力,充分利用意图语义信息指导语义槽的填充,基于迭代思想,提出一种通过分步迭代的训练方式,可以充分利用意图与语义槽之间的相互关系,在提高语义槽填充准确性的同时提高多意图识别模型的准确性,从而提高语义分析的效果。

附图说明

为了使本发明的目的、技术方案和技术效果更加清楚,本发明提供如下附图进行说明:

图1为本发明的联合建模方法整体结构框图;

图2为本发明的基于聚类预分析的多意图识别流程图;

图3为本发明的语义槽识别模型结构图;

图4位本发明的联合识别模型的分步迭代训练方式示意图。

具体实施方式

如图1所示,本发明揭示了一种基于聚类预分析的多意图与语义槽联合识别方法,包括如下步骤:

步骤s101,实时获取当前用户输入的多意图文本并进行预处理;

对当前用户输入的多意图文本进行预处理,就是将多意图文本进行向量化表示,以便输入神经网络模型中进行语义特征提取。本文的向量化表示方法为,首先使用同领域海量中文无监督语料训练bert模型。然后,利用得到的bert预训练模型来对多意图文本进行向量化表示。

步骤s102,基于聚类预分析构建多意图识别模型,用来识别用户的多个意图;如图2所示。

构建基于聚类预分析的多意图识别模型的目的是为了指导语义槽的填充,多意图识别的准确与否会直接影响语义槽的填充。为了提高多意图识别的准确率,针对用户输入的意图的不确定性,本文提出了一种基于聚类预分析的方法,即在意图识别之前先对意图文本进行分析,判断意图属于单意图还是多意图。具体如下:

整个意图识别分为两个阶段。首先第一阶段用k-means聚类算法对输入的意图文本进行判断。一般情况下意图主要分为单意图和多意图两种,因此,聚类中心k为两个。第二阶段,根据判断的意图个数分别进行分类。当判断意图文本包含多个意图时,使用多意图分类器进行分类。即在bert预训练模型后面增加全连接层,全连接层的每一个结点都与上一层的所有结点相连,用来把前面提取的语义特征融合起来。然后将bert模型输出的意图文本向量,输入sigmoid分类器中,用分类器在每个标签上进行二分类,输出多个意图标签。标签预测的计算公式如下所示:

yi=sigmoid(wic bi)

当判断意图文本为单意图时,采用softmax分类器,直接将bert输出第一个标志为([cls])的句向量c输入分类器中进行分类,根据下面的公式可得到预测的意图标签。

yi=softmax(wic bi)

在使用k-means聚类算法对多意图文本进行预分析的过程中,需要判断意图文本之间的语义相似度。语义相似度的衡量对于聚类结果的准确性至关重要。对于文本语义相似度的衡量,常用的方式是计算余弦相似度。余弦相似度可以体现空间中两个向量间的差异性。但是余弦相似度对绝对数值不敏感,无法衡量同一方向上的差异性。而欧式距离在计算相似度时,对绝对数值敏感,可以很好的衡量同一方向上的差异性。因此本发明在余弦相似度和欧式距离的基础上,综合二者的特点,提出了一种新的度量方法,如下所示:

其中,f1指余弦相似度,f2指欧式距离,当计算得到的fsim值越大,说明数据对象之间的相似度越大,当计算得到的fsim值越小,说明数据对象之间的相似度越小。使用该方法可以更好的衡量文本之间的相似度。

步骤s103,基于slot-gated关联门机制构建bilstm-crf语义槽填充模型,充分利用意图识别的结果指导语义槽的填充,如图3所示。

slot-gated关联门机制,它可以把意图识别任务与语义槽填充任务联系起来。即将意图识别的意图向量与用于语义槽填充的意图文本向量加权求和。然后通过激活函数tanh,得到意图-语义槽联合特征向量g。计算方法如下:

其中,表示语义槽向量,ci表示意图向量,和ci的维度相同,v和w分别是可训练的向量和矩阵。

之后,将意图-语义槽联合特征向量g,输入bilstm神经网络中,目的是提取文本的语序特征并捕获深层次的上下文语义信息。然后在bilstm网络后面添加一层线性层,对神经网络输出向量的维度进行映射,用于语义槽解码。最后使用crf作为解码单元,输出序列中每个词对应的槽标签。计算方法如下:

其中,表示输入文本序列中第i个字的语义槽预测输出,为权重矩阵。

步骤s104,对构建的多意图识别与语义槽填充的联合模型进行优化。如图4所示。

联合识别模型的性能由两个子任务共同决定。多意图识别和语义槽填充的联合概率如下所示:

其中,表示在输入多意图文本序列x的前提下,多意图识别yi和语义槽填充的联合条件概率。

在联合模型训练中,训练的目标是最大化输出多意图识别和语义槽填充的联合概率。为了提高语义分析的能力,充分利用意图语义信息指导语义槽的填充,对联合识别模型进行优化。在模型训练时,改变了传统的只是将多个任务损失函数简单相加的方式。基于迭代思想,提出了一种联合多意图识别与语义槽填充的分步迭代训练方式:如图4所示,首先,将训练数据输入联合识别模型中,训练时,先训练一轮多意图识别模型,通过反向传播更新多意图识别模型参数及底层bert模型参数;然后利用更新过的模型将多意图识别结果的语义特征传送给slot-gated,通过slot-gated关联门将意图特征与采用更新过的bert模型而生成的语义槽特征相融合,生成意图-语义槽联合特征向量,将其用于语义槽填充模型的训练。训练时,通过反向传播更新语义槽填充模型参数及底层bert模型参数;重复训练直到达到最优。

多意图识别与语义槽填充两个任务在训练时共享bert模型底层参数,即训练一个模型时以另外一个模型的训练结果进行底层模型的初始化。而上游任务则分别训练,同时将意图识别的结果传送给语义槽填充任务,在提高语义槽填充的准确率的同时提高多意图识别模型的准确率。

损失函数对于模型参数更新非常重要。若损失函数选择的不合理,模型再强大最后的结果也不好。

联合识别模型中的多意图识别损失函数lossintent,计算公式如下所示:

lossintent=(lossmulti)k(losssingle)1-k

其中,k表示意图文本的类别,当意图文本包含多个意图时k为1,当意图文本为单意图时k为0。lossmulti为多意图识别的交叉熵,losssingle为单意图识别的交叉熵。具体计算如下所示:

式中,yi为意图的预测输出,yintent为真实意图。

联合识别模型中语义槽填充任务损失函数lossslot,计算如下所示:

其中,表示训练文本序列中第i个字的语义槽预测输出,表示训练文本序列中第i个字的真实语义槽,t是训练文本数,m表示训练文本序列长度。

本发明还提供一种于聚类预分析的多意图与语义槽联合识别系统,包括:存储器和处理器;所述存储器上存储有计算机程序,当所述计算机程序被所述处理器执行时,实现上述的多意图与语义槽联合识别方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的多意图与语义槽联合识别方法的步骤。该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

应当指出,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也在本申请权利要求的保护范围内。


技术特征:

1.一种基于聚类预分析的多意图与语义槽联合识别方法,其特征在于,包括以下步骤:

步骤1,实时获取当前用户输入的文本,利用bert模型将文本进行向量化表示;

步骤2,基于聚类预分析构建多意图识别模型,识别用户的多个意图;

步骤3,基于slot-gated关联门机制构建bilstm-crf语义槽填充模型,利用意图识别的结果指导语义槽的填充;

步骤4,对由bert模型、多意图识别模型以及语义槽填充模型构成联合模型进行优化训练,利用优化训练完成的联合模型进行识别。

2.根据权利要求1所述的一种基于聚类预分析的多意图与语义槽联合识别方法,其特征在于,步骤2中多意图识别模型的识别方法包括两个阶段:

第一阶段:用k-means聚类算法,将输入的意图文本向量分为单意图和多意图两类;

第二阶段:对单意图类别的意图文本向量,采用softmax分类器进行分类识别;对多意图的意图文本向量,采用sigmoid分类器进行分类识别。

3.根据权利要求2所述的一种基于聚类预分析的多意图与语义槽联合识别方法,其特征在于,k-means聚类算法中的距离函数为:

其中,fsim(xi,xj)表示意图文本向量xi和意图文本向量xj之间的距离,f1(xi,xj)表示意图文本向量xi和意图文本向量xj之间的余弦相似度,f2(xi,xj)表示意图文本向量xi和意图文本向量xj之间的欧氏距离。

4.根据权利要求1所述的一种基于聚类预分析的多意图与语义槽联合识别方法,其特征在于,步骤4中采用联合多意图识别与语义槽填充的分步迭代训练方式进行优化训练:①利用训练文本对bert模型和多意图识别模型进行训练,更新bert模型和多意图识别模型的参数;②将①中多意图识别模型的输出传送至slot-gated,利用与①中相同的训练文本对①中更新后的bert模型和语义槽填充模型进行训练,更新bert模型和语义槽填充模型的参数;③迭代执行①和②,直到达到训练目标。

5.根据权利要求4所述的一种基于聚类预分析的多意图与语义槽联合识别方法,其特征在于,多意图识别模型的损失函数lossintent如下所示:

lossintent=(lossmulti)k(losssingle)1-k

其中,k表示意图文本的类别,当意图文本包含多个意图时k为1,当意图文本为单意图时k为0;为多意图识别的交叉熵损失,为单意图识别的交叉熵损失,yi为意图的预测输出,yintent为真实意图,t是训练文本数。

6.根据权利要求4所述的一种基于聚类预分析的多意图与语义槽联合识别方法,其特征在于,语义槽填充模型的损失函数lossslot如下所示:

其中,表示训练文本序列中第i个字的语义槽预测输出,表示训练文本序列中第i个字的真实语义槽,t是训练文本数,m表示训练文本序列长度。

7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一所述的多意图与语义槽联合识别方法。

8.一种于聚类预分析的多意图与语义槽联合识别系统,其特征在于,包括:存储器和处理器;所述存储器上存储有计算机程序,当所述计算机程序被所述处理器执行时,实现如权利要求1至6中任一所述的多意图与语义槽联合识别方法。

技术总结
本发明提出了一种基于聚类预分析的多意图识别与语义槽填充联合建模方法:实时获取当前用户输入的多意图文本并进行预处理;基于聚类预分析构建多意图识别模型,用来识别用户的多个意图;基于Slot‑Gated关联门机制构建BiLSTM‑CRF语义槽填充模型,充分利用意图识别的结果指导语义槽的填充;对构建的多意图识别与语义槽填充的联合模型进行优化。本发明充分考虑了意图识别与语义槽填充之间的联系,提出了一种联合建模的方法,将两个语义分析子任务合并为一个语义分析任务,在提高多意图识别准确性的同时也提高语义槽填充的准确性,从而提高自然语言语义分析的质量;在实际应用中,可以有效提升人机对话中机器理解人类语言的能力,提高解决问题的能力和人机对话的体验。

技术研发人员:张晖;李吉媛;赵海涛;孙雁飞;朱洪波
受保护的技术使用者:南京邮电大学
技术研发日:2021.03.26
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-7838.html

最新回复(0)