一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于伪标签自训练和源域再训练的新对话意图识别方法与流程

2022-02-19 14:27:20 来源:中国专利 TAG:


1.本发明属于语言处理的技术领域,具体涉及一种基于伪标签自训练和源域再训练的新对话意图识别方法。


背景技术:

2.智能对话系统的核心模块是用户意图识别。新对话意图识别旨在根据已有的对话意图来发现新产生的对话意图,只利用少量有标注的已知意图数据,来从大量无标注数据中进行新意图的发现及分类。由于包含新意图的数据全部为未标记数据,因此现有的对话意图分类模型无法对其进行处理,从而导致用户意图识别错误,影响智能对话系统的后续响应。
3.为了解决上述问题,目前学术界主要采用两类方法:1.基于对比学习的方法,如lin等提出了基于对比相似度的自适应聚类模型,通过对比学习的方法选择高质量数据进行自标记并进行训练。2.基于深度聚类的方法,如zhang等提出了基于深度对齐聚类的新对话意图发现模型,通过聚类及对齐操作为未标注数据产生伪标签并进行模型训练。上述技术方案存在如下的缺点:第一,现有模型为未标注数据产生的伪标签粒度较粗,无法较好地训练模型进行新对话意图地发现。第二,现有模型仅利用标注数据进行模型初始化,而在训练过程中未能充分利用标注数据,使得知识迁移变得困难。第三,现有模型仅利用聚类模型产生最终预测,未考虑融合其它模型进行集成学习,使得模型的鲁棒性降低。


技术实现要素:

4.本发明的目的在于克服上述现有技术的缺点,提供一种基于伪标签自训练和源域再训练的新对话意图识别方法。
5.为达到上述目的,本发明采用以下技术方案予以实现:
6.一种基于伪标签自训练和源域再训练的新对话意图识别方法,包括以下步骤:
7.一、模型训练
8.1)使用模型net1和模型net2对输入进行特征提取,分别得到第i个输入的向量表示和对和进行加权组合得到第i个输入的最终表示
9.所述模型netl和模型net2为结构相同的bert模型;
10.2)使用聚类模型kmeans对输入的最终向量表示进行聚类操作,从而得到每个样本所属类别的伪标签
11.使用softmax分类器对输入的向量表示和分别进行分类操作,从而得到每个样本所属类别的另外两组伪标签和
12.对和进行线性变换,得到模型对第i个输入的预测概率分布向量和
13.采用自训练的方法,通过交叉熵损失计算预测概率分布向量与伪标签的差异,预测概率分布向量与伪标签的差异以及预测概率分布向量与伪标签的差异,对所有输入样本的损失进行求和,得到损失值对损失值进行加权组合得到伪标签自训练的最终损失值
14.3)使用有标注数据对模型net1和模型net2进行再训练,通过交叉熵损失函数计算模型预测值和与真实标签之间的差异,得到有标注训练的损失值
15.4)对和进行加权组合,得到最终的损失值通过反向传播不断更新模型参数,使得模型的预测与真实值的之差在预设范围内;
16.5)将待分类对话文本分别输入到模型kmeans、模型net1和模型net2进行标签预测,对得到的预测标签进行加权组合,最后使用softmax分类器对组合结果进行分类。
17.进一步的,步骤1)中的特征提取的具体操作为:
18.针对第i个输入文本si,使用模型net1和模型net2分别进行特征提取,得到向量表示和
[0019][0020][0021][0022][0023]
其中,meanpooling表示对bert模型最终的输出做平均池化,和为输入的隐藏层表示,σ表示relu激活函数,w
a
,b
a
为可学习参数。
[0024]
进一步的,步骤1)中求最终表示的操作为:
[0025]
对s
i
的两个向量表示进行加权组合,得到s
i
的最终向量表示
[0026][0027]
其中,λ
f
为超参数,为预设值,用于平衡两个向量表示所占的权重。
[0028]
进一步的,步骤2)的伪标签生成的具体操作为:
[0029]
将s
i
的最终向量表示输入到聚类模型kmeans中,得到其对应类别的伪标签
[0030]
[0031][0032]
其中,μ
j
为聚类过程中第j簇中心的向量表示,为指示函数,||.||2为欧式距离;
[0033]
利用softmax分类器对模型net1和模型net2提取到的输入向量和进行分类操作,从而得到每个样本所属类别的另外两组伪标签和
[0034][0035][0036]
通过一层线性层对输入向量和进行线性变换,得到模型net1和模型net2对于输入文本s
i
类别的预测向量及
[0037][0038][0039]
其中,w
c
,b
c
,w
m
,b
m
均为可学习参数。
[0040]
进一步的,步骤2)的自训练得到损失值的具体操作为:
[0041]
通过自训练的方法,利用交叉熵损失函数分别计算预测概率分布向量与伪标签的差异,预测概率分布向量与伪标签的差异以及预测概率分布向量与伪标签的差异,对所有输入样本的损失进行求和,得到损失值
[0042][0043][0044][0045]
其中,n为样本数量,exp()为指数函数;
[0046]
对损失值进行加权组合得到伪标签自训练的最终损失值
[0047]
[0048]
其中,λ
s1
和λ
s2
均为超参数,为预设值。
[0049]
进一步的,步骤3)中,得到有标注训练的损失值的具体操作为:
[0050]
通过交叉熵损失函数计算模型net1预测值与真实标签之间的差异,并对所有输入样本进行求和,得到损失值
[0051][0052]
通过交叉熵损失函数计算模型net2预测概率分布向量与真实标签之间的差异,并对所有输入样本进行求和,得到损失值
[0053][0054]
其中,m为有标注数据的数量;
[0055]
通过对模型net1和模型net2在有标注数据上再训练得到的损失和进行加权组合,得到有标注再训练的整体损失值
[0056][0057]
其中,λ
l1
为超参数,为预设值。
[0058]
进一步的,步骤4)中,使用反向传播更新模型参数的具体操作为:
[0059]
对伪标签自训练损失值和有标注训练损失值进行加权组合得到模型的整体损失
[0060][0061]
其中,λ
t
为超参数,为预设值,用于平衡损失和所占的权重;
[0062]
得到整体损失后,利用反向传播算法,不断更新模型net1和模型net2的参数,使得模型的预测与真实值的之差在预设范围内。
[0063]
进一步的,模型使用时预测输入类别的具体操作为:
[0064]
针对第i个训练数据,将其输入到训练好的模型net1、模型net2以及聚类模型kmeans中,分别得到预测标签及对得到的三个预测标签进行加权组合,得到最终的预测标签
[0065]
[0066]
使用softmax分类器对预测标签进行分类,取分类最大值y
i
作为最终的预测类别:
[0067][0068]
与现有技术相比,本发明具有以下有益效果:
[0069]
本发明的基于伪标签自训练和源域再训练的新对话意图识别方法,为包含新对话意图的未标注数据产生伪标签,并利用自训练的方法迭代更新模型参数,使得识别准确率不断提高;同时提出了一种再训练策略,使得知识可以更好地在源域和目标域间进行迁移,从而提高模型的表达能力;最后,本发明融合了三个模型的输出进行集成学习,提高了模型的鲁棒性。
附图说明
[0070]
图1为本发明中整体的网络结构图。
具体实施方式
[0071]
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0072]
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0073]
为了解决现有技术存在的问题,本发明提出了一种基于伪标签自训练和源域再训练的新对话意图识别方法,为包含新对话意图的未标注数据产生伪标签,并利用自训练的方法迭代更新模型参数,使得识别准确率不断提高;同时本发明提出了一种再训练策略,使得知识可以更好地在源域和目标域间进行迁移,从而提高模型的表达能力;最后,本发明融合了三个模型的输出进行集成学习,提高了模型的鲁棒性。
[0074]
下面结合附图对本发明做进一步详细描述:
[0075]
参见图1,图1为本发明的网络模型的示意图,本发明的网络模型包括一个聚类模型kmeans以及两个bert模型net1,模型net2。三个模型可以产生不同的伪标签,并利用得到的伪标签进行自训练,从而不断提升模型性能。训练结束后,对三个模型的输出进行组合,从而得到最终的预测值。
[0076]
一、模型训练:
[0077]
步骤1:使用两个结构相同的预训练模型bert(模型net1和模型net2)对输入进行
特征提取,分别得到第i个输入的向量表示和
[0078][0079][0080][0081][0082]
其中,meanpooling表示对bert模型最终的输出做平均池化,和为输入的隐藏层表示,σ表示relu激活函数,w
a
,b
a
为可学习参数。
[0083]
之后,对s
i
的两个向量表示进行加权组合,得到s
i
的最终向量表示
[0084][0085]
其中,λ
f
为超参数,提前设定,用于平衡两个向量表示所占的权重。
[0086]
步骤2:使用聚类模型kmeans对输入的最终向量表示进行聚类操作,从而得到每个样本所属类别的伪标签
[0087]
将si的最终向量表示输入到聚类模型kmeans中,得到其对应类别的伪标签
[0088][0089][0090]
其中,μ
j
为聚类过程中第j簇中心的向量表示,为指示函数,||.||2为欧式距离。
[0091]
步骤3:使用softmax分类器对输入的向量表示和分别进行分类操作,从而得到每个样本所属类别的另外两组伪标签和
[0092][0093][0094]
之后,通过对和进行线性变换,得到模型对第i个输入的预测概率分布向量和
[0095]
[0096][0097]
步骤4:通过自训练的方法,利用交叉熵损失函数分别计算预测概率分布向量与伪标签的差异,预测概率分布向量与伪标签的差异以及预测概率分布向量与伪标签的差异,并对所有输入样本进行求和,得到损失值
[0098][0099][0100][0101]
其中,n为样本数量,exp()为指数函数。
[0102]
之后,对损失值进行加权组合得到伪标签自训练的最终损失值
[0103][0104]
其中,λ
s1
和λ
s2
均为超参数,需要提前设定,用于平衡三个损失所占的权重。
[0105]
步骤5:使用有标注数据对模型net1和模型net2进行再训练,通过交叉熵损失函数计算模型预测概率分布向量和与真实标签之间的差异,得到有标注训练的损失值和
[0106][0107][0108]
其中,m为有标注数据的数量。
[0109]
之后,对模型net1和模型net2在有标注数据上再训练得到的损失和进行加权组合,得到有标注再训练的整体损失值
[0110][0111]
其中,λ
l1
为超参数,需要提前设定,用于平衡损失和所占的权重。
[0112]
步骤6:对伪标签自训练损失和进行加权组合,得到最终的损失值
[0113][0114]
其中,λ
t
为超参数,需要提前设定,用于平衡损失和所占的权重。
[0115]
步骤7:得到整体损失后,利用反向传播算法,不断更新模型net1和模型net2的参数,使得模型的预测值逐渐接近真实值。
[0116]
步骤8:模型训练
[0117]
使用adam优化器更新梯度,学习率设置为0.0001,adam的一阶动量参数为0.1,二阶动量参数为0.999,数据集训练迭代次数(epoch)设置为100次,预训练bert模型的参数固定,超参数根据模在型验证集上地表现进行选择。
[0118]
二、模型使用
[0119]
针对第i个训练数据,将其输入到训练好的模型net1和模型net2以及聚类模型kmeans中,分别得到预测标签及对得到的三个预测标签进行加权组合,得到最终的预测标签
[0120][0121]
最后,使用softmax分类器对预测标签进行分类,并取其最大值y
i
作为最终的预测类别:
[0122][0123]
为了衡量模型性能,在三个广泛使用的公开意图识别数据集上进行了对比试验,数据集的训练集,测试集划分及已知意图类别的数量和词典大小如表1所示。表2为对比实验的结果,与十五个常用模型在指标准确率(acc)和ari值以及nmi值上进行了对比,从表中可以看出,本发明的模型ptrn在全部数据集的全部指标上都取得了最好的结果,相较于目前最好方法在性能上有较大提升。
[0124]
表1 用于衡量模型性能的数据集的统计信息
[0125][0126]
表2为对比模型在不同数据集上的准确率(acc),ari值以及nmi值,其中ptrn为本发明的方法。
[0127]
表2 对比模型在不同数据集上的性能表现
[0128][0129]
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献