首页> 中国专利> 领域和意图分层联合分类方法、装置、设备及存储介质

领域和意图分层联合分类方法、装置、设备及存储介质

摘要

本发明公开了一种领域和意图分层联合分类方法、装置、设备及存储介质。该方法包括:获取待测试语句对应的单词序列;将所述单词序列输入至训练好的预设分层联合分类模型中,以通过所述预设分层联合分类模型得到领域分类结果,并根据所述领域分类结果得到意图分类结果;获取所述意图分类结果对应的预测概率;判断所述预测概率是否小于预设阈值;在所述预测概率小于所述预设阈值时,得到所述待测试语句为意图范围外语句的分类结果。通过上述方式,在模型中引入分层结构,对单词序列的表示信息进行了进一步挖掘,在进行意图分类时考虑了单词序列包含的意图信息以及领域信息,基于阈值进一步对范围外意图进行区分,提高了范围外意图的分类精度。

著录项

  • 公开/公告号CN112597310A

    专利类型发明专利

  • 公开/公告日2021-04-02

    原文格式PDF

  • 申请/专利权人 深圳市声希科技有限公司;

    申请/专利号CN202011572775.8

  • 发明设计人 刘鹏飞;李坤;

    申请日2020-12-25

  • 分类号G06F16/35(20190101);

  • 代理机构44542 深圳市恒程创新知识产权代理有限公司;

  • 代理人刘冰

  • 地址 518000 广东省深圳市新安街道兴东社区留仙大道2号汇聚创新园2栋2710

  • 入库时间 2023-06-19 10:27:30

说明书

技术领域

本发明涉及自然语言处理技术领域,尤其涉及一种领域和意图分层联合分类方法、装置、设备及存储介质。

背景技术

用户在使用对话系统进行查询时,可能存在超出系统功能的范围,适当的系统响应有助于实现顺畅的人机对话流程。

意图分类是自然语言理解(Natural Language Processing,NLU)对话系统中的核心组件之一,其中NLU需要识别用户查询的领域、意图和槽值才能做出适当的响应。在面向任务的对话系统中,超出范围的用户查询是不可避免的,因为很难准确以及全面地向系统传达系统功能的范围。但是,由于缺乏公开可用的数据集,因此范围外意图分类的问题并没有得到积极研究。范围外意图分类旨在找出用户可能合理地进行的查询,但这些查询不在系统支持的意图范围之内。范围外问题涵盖了以下情况:对话系统不支持用户查询的意图,但查询的风格和主题与范围内查询相似;以及用户查询来自另一个数据集且与分布内查询有本质区别的表述形式,这实际上是分布外的问题。

现有的范围外意图分类方法包括:(1)两步方法,该方法首先对范围内和范围外进行二值分类,在前一种情况下,进一步对特定范围内的类别进行分类意图;(2)基于分类器的方法,将范围外查询作为其他意图类别,进一步将其扩展为每个范围内意图的分类概率阈值,并可选地增加范围外意图。

对于范围外意图分类的问题,现有技术中提出了基于BERT的方法,引入了150个意图数据集来评估意图分类系统的范围外预测性能,但是在识别范围外意图方面存在精度不高的问题。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

发明内容

本发明的主要目的在于提供一种领域和意图分层联合分类方法、装置、设备及存储介质,旨在解决如何提高范围外意图分类精度的技术问题。

为实现上述目的,本发明提供了一种领域和意图分层联合分类方法,所述方法包括以下步骤:

获取待测试语句对应的单词序列;

将所述单词序列输入至训练好的预设分层联合分类模型中,以通过所述预设分层联合分类模型得到领域分类结果,并根据所述领域分类结果得到意图分类结果;

获取所述意图分类结果对应的预测概率;

判断所述预测概率是否小于预设阈值;

在所述预测概率小于所述预设阈值时,得到所述待测试语句为意图范围外语句的分类结果。

可选地,所述将所述单词序列输入至训练好的预设分层联合分类模型中,以通过所述预设分层联合分类模型得到领域分类结果,并根据所述领域分类结果得到意图分类结果,包括:

将所述单词序列输入至训练好的BERT模型中,得到对应的隐藏状态,其中,所述预设分层联合分类模型包括:BERT模型、平均池层、分层联合层以及分类层;

将所述隐藏状态输入至平均池层,得到向量表示;

将所述向量表示输入至分层联合层,以根据所述向量表示得到域表示,并根据所述向量表示以及所述域表示得到意图表示;

将所述域表示输入至分类层,得到对应的域分类结果;

将所述意图表示输入至分类层,得到对应的意图分类结果。

可选地,所述将所述单词序列输入至训练好的预设分层联合分类模型中,以通过所述预设分层联合分类模型得到领域分类结果,并根据所述领域分类结果得到意图分类结果之前,所述方法还包括:

获取预设语句数据集;

根据所述预设语句数据集确定对应的训练序列;

创建原始分层联合分类模型;

将所述训练序列输入至所述原始分层联合分类模型,获取所述原始分层联合分类模型的损失值;

当所述损失值小于或者等于预设损失阈值时,得到训练好的预设分层联合分类模型。

可选地,所述将所述训练序列输入至所述原始设分层联合分类模型,获取所述原始分层联合分类模型的损失值,包括:

将所述训练序列输入至BERT模型中,得到对应的训练隐藏状态;

将所述训练隐藏状态输入至平均池层,得到目标向量表示;

将所述目标向量表示输入至分层联合层,得到训练域表示以及训练意图表示;

将所述训练域表示以及所述训练意图表示输入至分类层,得到对应的训练域分类结果以及训练意图分类结果;

根据所述训练域分类结果、训练意图分类结果以及预设语句数据集对应的预设域分类标签、预设意图分类标签确定所述原始分层联合分类模型的损失值。

可选地,所述将所述目标向量表示输入至分层联合层,得到训练域表示以及训练意图表示,包括:

对所述目标向量表示进行非线性变换处理,得到第一子空间表示;

对所述第一子空间表示进行残差连接和层归一化处理,得到对应的训练域表示;

获取所述目标向量表示与所述训练域表示的总和;

对所述目标向量表示与所述训练域表示的总和进行非线性变换处理,得到第二子空间表示;

对所述第二子空间表示进行残差连接和层归一化处理,得到对应的训练意图表示。

可选地,所述根据所述训练域分类结果、训练意图分类结果以及预设语句数据集对应的预设域分类标签、预设意图分类标签确定所述原始分层联合分类模型的损失值,包括:

根据所述训练域分类结果以及所述预设域分类标签确定对应的第一交叉熵损失值;

根据所述训练意图分类结果以及所述预设意图分类标签确定对应的第二交叉熵损失值;

根据所述第一交叉熵损失值以及所述第二交叉熵损失值的线性组合确定所述原始分层联合分类模型的损失值。

可选地,所述将所述训练序列输入至所述原始分层联合分类模型,获取所述原始分层联合分类模型的损失值的步骤之后,所述方法还包括:

当所述损失值大于预设损失阈值时,调整所述原始分层联合分类模型内的模型参数,得到调整后的原始分层联合分类模型;

根据所述调整后的原始分层联合分类模型执行将所述训练序列输入至所述原始分层联合分类模型,获取所述原始分层联合分类模型的损失值的步骤。

此外,为实现上述目的,本发明还提出一种领域和意图分层联合分类装置,所述领域和意图分层联合分类装置包括:

获取模块,用于获取待测试语句对应的单词序列;

分类模块,用于将所述单词序列输入至训练好的预设分层联合分类模型中,以通过所述预设分层联合分类模型得到领域分类结果,并根据所述领域分类结果得到意图分类结果;

所述获取模块,还用于获取所述意图分类结果对应的预测概率;

判断模块,用于判断所述预测概率是否小于预设阈值;

所述分类模块,还用于在所述预测概率小于所述预设阈值时,得到所述待测试语句为意图外语句的分类结果。

此外,为实现上述目的,本发明还提出一种领域和意图分层联合分类设备,所述领域和意图分层联合分类设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的领域和意图分层联合分类程序,所述领域和意图分层联合分类程序配置为实现如上文所述的领域和意图分层联合分类方法的步骤。

此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有领域和意图分层联合分类程序,所述领域和意图分层联合分类程序被处理器执行时实现如上文所述的领域和意图分层联合分类方法的步骤。

本发明通过获取待测试语句对应的单词序列;将所述单词序列输入至训练好的预设分层联合分类模型中,以通过所述预设分层联合分类模型得到领域分类结果,并根据所述领域分类结果得到意图分类结果;获取所述意图分类结果对应的预测概率;判断所述预测概率是否小于预设阈值;在所述预测概率小于所述预设阈值时,得到所述待测试语句为意图范围外语句的分类结果。通过上述方式,在模型中引入分层结构,对单词序列的表示信息进行了进一步挖掘,意图表示位于较高层学习较低层的领域表示,在进行意图分类时考虑了单词序列包含的意图信息以及领域信息,基于阈值进一步对范围外意图进行区分,提高了范围外意图的分类精度。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的领域和意图分层联合分类设备的结构示意图;

图2为本发明领域和意图分层联合分类方法第一实施例的流程示意图;

图3为本发明领域和意图分层联合分类方法一实施例的预设分层联合分类模型第一结构示意图;

图4为本发明领域和意图分层联合分类方法第二实施例的流程示意图;

图5为本发明领域和意图分层联合分类方法第三实施例的流程示意图;

图6为本发明领域和意图分层联合分类方法一实施例的预设分层联合分类模型第二结构示意图;

图7为本发明领域和意图分层联合分类装置第一实施例的结构框图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的领域和意图分层联合分类设备结构示意图。

如图1所示,该领域和意图分层联合分类设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对领域和意图分层联合分类设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及领域和意图分层联合分类程序。

在图1所示的领域和意图分层联合分类设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明领域和意图分层联合分类设备中的处理器1001、存储器1005可以设置在领域和意图分层联合分类设备中,所述领域和意图分层联合分类设备通过处理器1001调用存储器1005中存储的领域和意图分层联合分类程序,并执行本发明实施例提供的领域和意图分层联合分类方法。

本发明实施例提供了一种领域和意图分层联合分类方法,参照图2,图2为本发明领域和意图分层联合分类方法第一实施例的流程示意图。

本实施例中,所述领域和意图分层联合分类方法包括以下步骤:

步骤S10:获取待测试语句对应的单词序列。

可以理解的是,本实施例的执行主体为领域和意图分层联合分类设备,所述领域和意图分层联合分类设备可以是计算机、服务器以及云服务器等设备,也可以为芯片,本实施例对此不加以限制。

需要说明的是,单词序列表征为X=(X

步骤S20:将所述单词序列输入至训练好的预设分层联合分类模型中,以通过所述预设分层联合分类模型得到领域分类结果,并根据所述领域分类结果得到意图分类结果。

可以理解的是,预设分层联合分类模型可以为根据领域和意图之间的关联提出的具有层次结构的分类模型,在网络中引入层次结构的动机有两个方面:(1)与领域相比,意图的数量通常更多,因此,意图分类可能需要比领域分类更精细的用户查询语义理解;(2)意图分类通常可以从其他领域相关信息中受益。例如,在用户查询“我试图提款时,我的信用卡被ATM吞没了。我如何取回我的卡?”可以很容易地根据信用卡或ATM之类的词来将领域确定为银行业,但是需要一个更精细的理解模型来确定意图是“吞没了报告卡”而不是“取款”。此外,知道查询的领域是“银行业”会为意图分类提供更多信息。从表示学习的角度来看,本实施例提出的预设分层联合分类模型引入了层次偏差,其中高层代表意图信息,而较低层代表领域信息。这样的组织比领域和意图之间共享的扁平结构相比提供更好的知识表示,从而提高最终分类精度。

具体地,步骤S20,包括:将所述单词序列输入至训练好的BERT模型中,得到对应的隐藏状态,其中,所述预设分层联合分类模型包括:BERT模型、平均池层、分层联合层以及分类层;将所述隐藏状态输入至平均池层,得到向量表示;将所述向量表示输入至分层联合层,以根据所述向量表示得到域表示,并根据所述向量表示以及所述域表示得到意图表示;将所述域表示输入至分类层,得到对应的域分类结果;将所述意图表示输入至分类层,得到对应的意图分类结果。

需要说明的是,参照图3,图3为本发明领域和意图分层联合分类方法一实施例的预设分层联合分类模型第一结构示意图,预设分层联合分类模型包括BERT模型、平均池层、分层联合层以及分类层,分层联合层中包括域编码器以及意图编码器,其中,Trm为BERT模型中的Transformer层。BERT全称是来自变换器的双向编码器表征量(BidirectionalEncoder Representations from Transformers),是由Google公司于2018年末开发并发布的一种新型语言模型。

可以理解的是,参照图3的预设分层联合分类模型,又称BERT-Joint分层联合模型,对于待测试语句,将对应的单词序列X=(X

本实施例提供一种使用如图3所示的预设分层联合分类模型对意图分类的过程:将单词序列X=(X

步骤S30:获取所述意图分类结果对应的预测概率。

可以理解的是,在进行范围内意图分类时,根据携带有意图标签的训练集对预设分层联合分类模型进行训练,在对待测试语句进行测试时,通过Softmax层确定待测试语句对应的各意图的待定预测概率,选取待定预测概率中最大的预测概率对应的意图作为意图分类结果,将这一待定预测概率作为意图分类结果对应的预测概率。

步骤S40:判断所述预测概率是否小于预设阈值。

需要说明的是,本实施例的预设阈值可以设置为0.4,也可以设置为0.3,可以根据预设分层联合分类模型的实际使用场景进行确定,预设阈值取0.3在进行范围外分类时综合评价指标得分最高,预设阈值取0.4在进行范围外分类时总体精度最高。由于范围外的语句经常被归类为低概率的范围内的意图,因此设置预设阈值τ以改善范围外的分类性能。如果预测概率低于预设阈值τ,则基于阈值的预设分层联合分类模型会将待测试语句视为范围外。

通过试验确定预设阈值取值对预设分层联合分类模型的性能影响:

表1

参照表1,表1为在OOS验证集(V)和测试集(T)上使用不同阈值的性能比较结果表,从表1中可以看出,阈值τ影响V和T上的所有度量。

表1中,all表示总体精度,in表示范围内精度,P、R以及F

步骤S50:在所述预测概率小于所述预设阈值时,得到所述待测试语句为意图范围外语句的分类结果。

应当理解的是,在预测概率小于预设阈值时,判定该待测试语句不属于预设分层联合分类模型所能分类的范围,即待测试语句为意图范围外语句。意图范围外语句包括以下情况:对话系统不支持用户查询的意图,但查询的风格和主题与范围内查询相似;以及用户查询来自另一个数据集且与分布内查询有本质区别的表述形式,这实际上是分布外的问题。

本实施例通过获取待测试语句对应的单词序列;将所述单词序列输入至训练好的预设分层联合分类模型中,以通过所述预设分层联合分类模型得到领域分类结果,并根据所述领域分类结果得到意图分类结果;获取所述意图分类结果对应的预测概率;判断所述预测概率是否小于预设阈值;在所述预测概率小于所述预设阈值时,得到所述待测试语句为意图范围外语句的分类结果。通过上述方式,在模型中引入分层结构,对单词序列的表示信息进行了进一步挖掘,意图表示位于较高层学习较低层的领域表示,在进行意图分类时考虑了单词序列包含的意图信息以及领域信息,基于阈值进一步对范围外意图进行区分,提高了范围外意图的分类精度。

参考图4,图4为本发明领域和意图分层联合分类方法第二实施例的流程示意图。

基于上述第一实施例,本实施例领域和意图分层联合分类方法在所述步骤S20之前,还包括:

步骤S201:获取预设语句数据集。

可以理解的是,通过名为OOS的数据集对预设分层联合分类模型进行训练。OOS数据集该数据集包含10个域中的150个意图,以及许多不属于任何域或意图的范围外示例。该数据集与常规意图数据集的不同之处在于,它专注于范围外的意图分类。范围外的示例在主题或样式上与范围内示例相似,但不在150个范围内意图之内。

OOS数据集有三种变体,分别代表小型(small),不平衡型(Imbalanced)和大型(OOS+),代表着不同的场景。表2为OOS数据集变体中的示例数,表2中显示了OOS数据集的每个变体中的示例数量。所有变体都具有相同的测试集,该测试集具有1000个范围外示例和每个范围内意图30个示例。Full表示OOS数据集。

表2

步骤S202:根据所述预设语句数据集确定对应的训练序列。

需要说明的是,预设语句数据集中包含多条语句,每一条语句有与之对应的训练序列以及预设标签。

步骤S203:创建原始分层联合分类模型。

需要说明的是,参照图3,图3为本发明领域和意图分层联合分类方法一实施例的预设分层联合分类模型第一结构示意图,预设分层联合分类模型包括BERT模型、平均池层、分层联合层以及分类层,分层联合层中包括域编码器以及意图编码器,其中,Trm为BERT模型中的Transformer层。

步骤S204:将所述训练序列输入至所述原始分层联合分类模型,获取所述原始分层联合分类模型的损失值。

可以理解的是,将多条训练序列依次输入至BERT模型,得到BERT表示h,在BERT表示h上应用平均池操作,然后输入至域编码器和意图编码器,将域编码器以及意图编码器的输出值输入至随后的Softmax层,Softmax层分别用于域和意图分类,得到预测标签,根据预测标签与预设标签进行损失值的计算,从而确定原始分层联合分类模型在这一次训练之后对应的损失值。

可以理解的是,可以通过预测标签与预设标签之间的绝对值损失函数确定原始分层联合分类模型的损失值;也可以通过预测标签与预设标签之间的log对数损失函数确定所述原始分层联合分类模型的损失值;也可以通过预测标签与预设标签之间的交叉熵损失函数确定所述原始分层联合分类模型的损失值。可以将意图预测标签与预设意图标签作为损失值的计算参数,为了使原始分层联合分类模型的训练效果更好,本实施例在将意图预测标签与预设意图标签作为损失值的计算参数之外,还将领域预测标签以及预设领域标签作为损失值的计算参数。

进一步地,步骤S204之后,所述方法还包括:当所述损失值大于预设损失阈值时,调整所述原始分层联合分类模型内的模型参数,得到调整后的原始分层联合分类模型;根据所述调整后的原始分层联合分类模型执行将所述训练序列输入至所述原始分层联合分类模型,获取所述原始分层联合分类模型的损失值的步骤。

可以理解的是,BERT模型、平均池层、分层联合层以及分类层中包含各种权重矩阵、系数以及偏差等模型参数,在进行训练时,如果预测标签与预设标签之前的差距过大,根据预测标签与预设标签计算的损失值大于预设损失阈值,此时原始分层联合分类模型进行模型参数调整,使损失值向预设损失阈值靠拢。

步骤S205:当所述损失值小于或者等于预设损失阈值时,得到训练好的预设分层联合分类模型。

需要说明的是,当所述损失值大于预设损失阈值时,调整各网络层对应的网络参数,经过多次训练,直到所述损失值小于或者等于预设损失阈值,从而得到训练好的预设分层联合分类模型。

本实施例通过预设语句数据集对原始分层联合分类模型进行训练,通过调整模型参数使网络的损失值小于预设损失阈值,从而得到训练好的预设分层联合分类模型,提升了预设分层联合分类模型的精度和稳定性,通过训练好的预设分层联合分类模型对待测试语句进行领域和意图分类,基于阈值进一步对范围外意图进行区分,提高了范围外意图的分类精度。

参考图5,图5为本发明领域和意图分层联合分类方法第三实施例的流程示意图。

基于上述第一实施例和第二实施例,本实施例领域和意图分层联合分类方法的所述步骤S204,包括:

步骤S2041:将所述训练序列输入至BERT模型中,得到对应的训练隐藏状态。

可以理解的是,参照图6,图6为本发明领域和意图分层联合分类方法一实施例的预设分层联合分类模型第二结构示意图,预设分层联合分类模型包括BERT模型、平均池层、分层联合层以及分类层,分层联合层中包括域编码器以及意图编码器,域编码器以及意图编码器分别包含子空间向量提取层以及归一化层,如图6中,Subspace层为子空间向量提取层,Add&Norm层为归一化层,在具体实现中,训练序列记为X=(X

步骤S2042:将所述训练隐藏状态输入至平均池层,得到目标向量表示。

需要说明的是,根据公式(1)对隐藏状态进行计算,得到对应的目标向量表示

其中,

步骤S2043:将所述目标向量表示输入至分层联合层,得到训练域表示以及训练意图表示。

可以理解的是,分层联合层包括域编码器和意图编码器,在网络中引入一个结构偏差,以模拟意图分类需要额外的域信息,并且需要比域分类更多的层来学习意图表示的假设。将目标向量表示分别输入至域编码器,得到训练域表示d,将目标向量表示和训练域表示d输入至意图编码器,得到训练意图表示t。

具体地,为了在训练过程中提供域相关信息给意图表示,从而提高意图分类的精度,步骤S2043,包括:对所述目标向量表示进行非线性变换处理,得到第一子空间表示;对所述第一子空间表示进行残差连接和层归一化处理,得到对应的训练域表示;获取所述目标向量表示与所述训练域表示的总和;对所述目标向量表示与所述训练域表示的总和进行非线性变换处理,得到第二子空间表示;对所述第二子空间表示进行残差连接和层归一化处理,得到对应的训练意图表示。

需要说明的是,根据训练好的预设分层联合分类模型中对应的模型参数权重矩阵W

其中,s

通过公式(3)对第一子空间表示s

其中,s

可以理解的是,在本实施例提出的预设分层联合分类模型中,域和意图在最低层共享相同的BERT表示,因此假设它们与BERT表示具有不同的子空间向量表示。

类似地,计算域表示d与目标向量表示

其中,

通过公式(5)对第二子空间表示s

t=LayerNorm(s

其中,s

步骤S2044:将所述训练域表示以及所述训练意图表示输入至分类层,得到对应的训练域分类结果以及训练意图分类结果。

可以理解的是,分类层包括两个单独的softmax层,将训练域表示以及训练意图表示输入至对应的softmax层,从而得到预测结果。通过公式(6)和公式(7)确定训练域分类结果以及训练意图分类结果:

p

p

其中p

步骤S2045:根据所述训练域分类结果、训练意图分类结果以及预设语句数据集对应的预设域分类标签、预设意图分类标签确定所述原始分层联合分类模型的损失值。

需要说明的是,根据训练域分类结果以及预设域分类标签确定域损失值,根据训练意图分类结果以及预设意图分类标签确定意图损失值,在具体实现中,可以单独对两个损失值分别进行计算以及训练,为了保在模型训练的过程保持领域和意图之间的关联,可以将两个损失值组合在一起进行训练。

具体地,为了使领域和意图分类具备联合学习的功能,步骤S2045,包括:根据所述训练域分类结果以及所述预设域分类标签确定对应的第一交叉熵损失值;根据所述训练意图分类结果以及所述预设意图分类标签确定对应的第二交叉熵损失值;根据所述第一交叉熵损失值以及所述第二交叉熵损失值的线性组合确定所述原始分层联合分类模型的损失值。

可以理解的是,通过公式(8)和公式(9)确定域损失值以及意图损失值,通过公式(10)确定预设分层联合分类模型的总损失值:

L=λL

其中,L

将对应的交叉熵损失值进行线性组合,通过总损失值共同优化领域和意图分类,其中权重λ与其他模型参数(例如W

对本实施例提出的预设分层联合分类模型的精度进行评估,具体实验过程如下:

采用名为OOS的数据集对预设分层联合分类模型进行训练。OOS数据集该数据集包含10个域中的150个意图,以及许多不属于任何域或意图的范围外示例。该数据集与常规意图数据集的不同之处在于,它专注于范围外的意图分类。范围外的示例在主题或样式上与范围内示例相似,但不在150个范围内意图之内。主要从以下几个评估指标确定模型的精度:总体精度(all)和范围内精度(in)。对于范围外的示例,为范围外精度(P),召回率(R)和综合评价指标(F1)。

对于初始话语表示,采用未训练的bert-base的预训练BERT模型。为了进行微调,使用AdamW优化器,并将预热步骤的比例设置为0.1,学习率设置为4e-5。除OOS+外,所有实验的最大纪元数均设置为10,OOS+具有最多的训练示例,并且使用5个纪元可获得最佳性能。为了加快训练速度并避免过度拟合,如果在3个纪元内意图分类的准确性没有提高,提前停止训练。使用PyTorch框架实施模型,并在所有实验中固定随机种子以确保可重现的结果。对于softmax层的输出进行基于阈值的后处理,选取预设阈值为0.4。

表3为本实施例提出的预设分层联合分类模型与现有的两个模型之间的对比结果,与现有的方法相比,所提出的BERT-Joint模型获得了最佳的总体精度,范围外的召回率和综合评价指标,并且在BERT-Joint模型中应用基于阈值的后处理方法可以获得更好的分类精度。

表3

表4

进一步在OSS数据集的变体上对BERT-Joint模型进行试验,表4为在使用OOS的不同数据集变体时BERT和BERT-Joint之间的性能比较结果表,根据表4可知,在总体精度,范围外召回率和综合评价指标方面,BERT-Joint在所有数据集变体上的分类效果始终优于BERT。BERT*的结果来自第一模型。

表5

本实施例提出的领域和意图联合建模方法可以灵活地支持各种平面或分层模型结构。表5为BERT和BERT-Joint的变体之间的性能比较结果表,其中涵盖了四种不同的BERT-Joint变体模型结构。其中,F表示域和意图在网络中并排放置,例如

根据表5可知:由于BERT-Joint模型利用了附加的领域信息进行意图分类,BERT-Joint的所有变体都优于基线BERT模型;

由于S

本实施例通过在网络中引入分层结构,将意图表示建立在域表示的基础上,捕获了域和相应意图之间的依赖关系,通过域表示为后续意图表示提供信息基础,从而使训练好的模型能够对文本的语义有更深入的理解,在训练过程中,将领域分类的损失值与意图分类的损失值组合起来训练,得到性能更好的预设分层联合分类模型,提升了预设分层联合分类模型的精度和稳定性,通过训练好的预设分层联合分类模型对待测试语句进行领域和意图分类,基于阈值进一步对范围外意图进行区分,提高了范围外意图的分类精度。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有领域和意图分层联合分类程序,所述领域和意图分层联合分类程序被处理器执行时实现如上文所述的领域和意图分层联合分类方法的步骤。

参照图7,图7为本发明领域和意图分层联合分类装置第一实施例的结构框图。

如图7所示,本发明实施例提出的领域和意图分层联合分类装置包括:

获取模块10,用于获取待测试语句对应的单词序列。

需要说明的是,单词序列表征为X=(X

分类模块20,用于将所述单词序列输入至训练好的预设分层联合分类模型中,以通过所述预设分层联合分类模型得到领域分类结果,并根据所述领域分类结果得到意图分类结果。

可以理解的是,预设分层联合分类模型可以为根据领域和意图之间的关联提出的具有层次结构的分类模型,在网络中引入层次结构的动机有两个方面:(1)与领域相比,意图的数量通常更多,因此,意图分类可能需要比领域分类更精细的用户查询语义理解;(2)意图分类通常可以从其他领域相关信息中受益。例如,在用户查询“我试图提款时,我的信用卡被ATM吞没了。我如何取回我的卡?”可以很容易地根据信用卡或ATM之类的词来将领域确定为银行业,但是需要一个更精细的理解模型来确定意图是“吞没了报告卡”而不是“取款”。此外,知道查询的领域是“银行业”会为意图分类提供更多信息。从表示学习的角度来看,本实施例提出的预设分层联合分类模型引入了层次偏差,其中高层代表意图信息,而较低层代表领域信息。这样的组织比领域和意图之间共享的扁平结构相比提供更好的知识表示,从而提高最终分类精度。

具体地,所述分类模块20,还用于将所述单词序列输入至训练好的BERT模型中,得到对应的隐藏状态,其中,所述预设分层联合分类模型包括:BERT模型、平均池层、分层联合层以及分类层;将所述隐藏状态输入至平均池层,得到向量表示;将所述向量表示输入至分层联合层,以根据所述向量表示得到域表示,并根据所述向量表示以及所述域表示得到意图表示;将所述域表示输入至分类层,得到对应的域分类结果;将所述意图表示输入至分类层,得到对应的意图分类结果。

需要说明的是,参照图3,图3为本发明领域和意图分层联合分类方法一实施例的预设分层联合分类模型第一结构示意图,预设分层联合分类模型包括BERT模型、平均池层、分层联合层以及分类层,分层联合层中包括域编码器以及意图编码器,其中,Trm为BERT模型中的Transformer层。BERT全称是来自变换器的双向编码器表征量(BidirectionalEncoder Representations from Transformers),是由Google公司于2018年末开发并发布的一种新型语言模型。

可以理解的是,参照图3的预设分层联合分类模型,又称BERT-Joint分层联合模型,对于待测试语句,将对应的单词序列X=(X

本实施例提供一种使用如图3所示的预设分层联合分类模型对意图分类的过程:将单词序列X=(X

所述获取模块10,还用于获取所述意图分类结果对应的预测概率。

可以理解的是,在进行范围内意图分类时,根据携带有意图标签的训练集对预设分层联合分类模型进行训练,在对待测试语句进行测试时,通过Softmax层确定待测试语句对应的各意图的待定预测概率,选取待定预测概率中最大的预测概率对应的意图作为意图分类结果,将这一待定预测概率作为意图分类结果对应的预测概率。

判断模块30,用于判断所述预测概率是否小于预设阈值。

需要说明的是,本实施例的预设阈值可以设置为0.4,也可以设置为0.3,可以根据预设分层联合分类模型的实际使用场景进行确定,预设阈值取0.3在进行范围外分类时综合评价指标得分最高,预设阈值取0.4在进行范围外分类时总体精度最高。由于范围外的语句经常被归类为低概率的范围内的意图,因此设置预设阈值τ以改善范围外的分类性能。如果预测概率低于预设阈值τ,则基于阈值的预设分层联合分类模型会将待测试语句视为范围外。

通过试验确定预设阈值取值对预设分层联合分类模型的性能影响:

参照表1,表1为在OOS验证集(V)和测试集(T)上使用不同阈值的性能比较结果表,从表1中可以看出,阈值τ影响V和T上的所有度量。

表1中,all表示总体精度,in表示范围内精度,P、R以及F

所述分类模块20,还用于在所述预测概率小于所述预设阈值时,得到所述待测试语句为意图外语句的分类结果。

应当理解的是,在预测概率小于预设阈值时,判定该待测试语句不属于预设分层联合分类模型所能分类的范围,即待测试语句为意图范围外语句。意图范围外语句包括以下情况:对话系统不支持用户查询的意图,但查询的风格和主题与范围内查询相似;以及用户查询来自另一个数据集且与分布内查询有本质区别的表述形式,这实际上是分布外的问题。

应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。

本实施例通过获取待测试语句对应的单词序列;将所述单词序列输入至训练好的预设分层联合分类模型中,以通过所述预设分层联合分类模型得到领域分类结果,并根据所述领域分类结果得到意图分类结果;获取所述意图分类结果对应的预测概率;判断所述预测概率是否小于预设阈值;在所述预测概率小于所述预设阈值时,得到所述待测试语句为意图范围外语句的分类结果。通过上述方式,在模型中引入分层结构,对单词序列的表示信息进行了进一步挖掘,意图表示位于较高层学习较低层的领域表示,在进行意图分类时考虑了单词序列包含的意图信息以及领域信息,基于阈值进一步对范围外意图进行区分,提高了范围外意图的分类精度。

需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。

另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的领域和意图分层联合分类方法,此处不再赘述。

在一实施例中,所述领域和意图分层联合分类装置还包括训练模块,所述训练模块,用于获取预设语句数据集;

根据所述预设语句数据集确定对应的训练序列;

创建原始分层联合分类模型;

将所述训练序列输入至所述原始分层联合分类模型,获取所述原始分层联合分类模型的损失值;

当所述损失值小于或者等于预设损失阈值时,得到训练好的预设分层联合分类模型。

在一实施例中,所述训练模块,还用于将所述训练序列输入至BERT模型中,得到对应的训练隐藏状态;

将所述训练隐藏状态输入至平均池层,得到目标向量表示;

将所述目标向量表示输入至分层联合层,得到训练域表示以及训练意图表示;

将所述训练域表示以及所述训练意图表示输入至分类层,得到对应的训练域分类结果以及训练意图分类结果;

根据所述训练域分类结果、训练意图分类结果以及预设语句数据集对应的预设域分类标签、预设意图分类标签确定所述原始分层联合分类模型的损失值。

在一实施例中,所述训练模块,还用于对所述目标向量表示进行非线性变换处理,得到第一子空间表示;

对所述第一子空间表示进行残差连接和层归一化处理,得到对应的训练域表示;

获取所述目标向量表示与所述训练域表示的总和;

对所述目标向量表示与所述训练域表示的总和进行非线性变换处理,得到第二子空间表示;

对所述第二子空间表示进行残差连接和层归一化处理,得到对应的训练意图表示。

在一实施例中,所述训练模块,还用于根据所述训练域分类结果以及所述预设域分类标签确定对应的第一交叉熵损失值;

根据所述训练意图分类结果以及所述预设意图分类标签确定对应的第二交叉熵损失值;

根据所述第一交叉熵损失值以及所述第二交叉熵损失值的线性组合确定所述原始分层联合分类模型的损失值。

在一实施例中,所述训练模块,还用于当所述损失值大于预设损失阈值时,调整所述原始分层联合分类模型内的模型参数,得到调整后的原始分层联合分类模型;

根据所述调整后的原始分层联合分类模型执行将所述训练序列输入至所述原始分层联合分类模型,获取所述原始分层联合分类模型的损失值的步骤。

此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

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

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号