一种通过预训练和对比学习发现新意图的方法与流程

未命名 09-29 阅读:159 评论:0


1.本发明涉及定位、导航技术领域,尤其涉及一种通过预训练和对比学习发现新意图的方法。


背景技术:

2.新意图发现(nid)的研究围绕两个基本研究问题展开:
3.(1)如何学习语义话语表示以提供适当的聚类线索;
4.(2)如何更好地聚类特征空间中的嵌入话语。
5.对于第一个问题,由于可以根据语言风格、相关主题甚至句子长度等不同方面来表征话语,因此学习话语的语义表征以提供适当的聚类线索非常重要。简单地应用一个普通的预训练语言模型(plm)来生成话语表征不是一个可行的解决方案,这会导致nid性能不佳,最近的一些工作建议利用。目前存在一些工作建议利用已知意图和标记话语为表征学习提供先验知识,这些算法严重依赖于大量已知意图和每个意图的足够标记话语的存在。但是这些不总是可用的,尤其是在早期开发阶段。
6.对于第二个问题,现有方法通常采用伪标记方法进行聚类。这些方法的一个主要缺点是伪标签通常存在大量噪声,并且可能导致错误传播。此外,这些方法忽略了伪标记数据中丰富的自我监督信号,然而这些信号对无监督学习存在有益作用。
7.因此,现有技术存在缺陷,需要改进。


技术实现要素:

8.本发明的目的是克服现有技术的不足,提供一种通过预训练和对比学习发现新意图的方法。
9.本发明的技术方案如下:提供一种通过预训练和对比学习发现新意图的方法,包括如下步骤:
10.步骤1:准备一组期望意图ck={ci}
i=1tk
以及一些带标注的话语d
knownlabeled
={(xi,yi)∣yi∈ck},完成部署后,系统会遇到话语d
semiunlabeled
={xi∣yi∈{ck,cu}};
11.步骤2:采用一个两阶段的框架模型,在框架的第一阶段,执行多任务预训练,联合优化标记数据的交叉熵损失和未标记数据的自监督损失;
12.步骤3:在第二阶段,首先为每个实例挖掘前k个最近邻,然后通过最近邻对比学习进行进一步微调表征;
13.步骤4:经过框架模型进行训练学习后,使用简单的非参数聚类算法,根据表征进行查找聚类分配。
14.进一步地,对话语表征,使用bert作为主干,将话语编码到表征空间中,f:x

h,具体的,将bert的最后一个隐藏层中的词元[cls]标记为:
[0015][0016]
其中d=768是特征向量的维数,将原始的预训练bert表示为f0。
[0017]
进一步地,在第一阶段中,提出一个多任务预训练阶段,该阶段结合了已标记数据的分类任务和未标记数据的自监督任务,具体的:
[0018]
采用有效联合训练前损失,损失包括来自任务域的标记数据的交叉熵和未标记数据的掩码语言模型损失:
[0019][0020]
其中θ代表模型参数,
[0021]dtaskunlabeled
={x
knownlabeled
,x
semiunlabeled
}表示任务数据集中的所有话语。
[0022]
进一步地,在第二阶段中,提出一种对比损失,将相邻的实例聚集在一起,以提高表征空间中聚类的紧凑性,具体的:
[0023]
首先用f1对d
taskunlabeled
的话语进行编码;然后,在表征空间中搜索与每个实例xi的内积的前k个最近邻,以形成邻域ni;然后在小批量实例上优化对比损失;在训练之前,首先从邻域ni为每个实例均匀地采样一个邻域xi′
,并从xi和xi′
中获取随机数据增强和将和视为xi的两个视图,并最大化二者之间的互信息,然后将增广为并投影到表征空间h;为构造了一个邻接矩阵

,它是一个2
×
2二元矩阵,其中1表示近邻或在半监督nid中具有相同的标注;因此,可以将损失写为:
[0024][0025][0026]
其中ci≡{j∈{1,

,2m}∣a
i,j

=1}表示的所有可能的正实例,|ci|是它的基数。当被设置为更小的值时,鼓励表征空间更均匀的温度sim(
·
,
·
)是相似度函数,通常是一对归一化特征向量sim(h1,h2)=h
1t
h2/||h1||2||h2||2之间的点积;将第二阶段获得的模型表示为f2;通过在f2上应用任何非参数聚类算法来获取聚类分配,从而执行评估。
[0027]
采用上述方案,本发明通过将领域关系的概念引入对比学习,可以将相似的实例拉在一起,并将不相似的实例推开,以使聚类更加紧凑;利用表征空间中的邻近性,而不是分配有噪声的伪标签;直接优化表征空间,而不是对logits进行聚类;通过构建邻接矩阵自然地合并已知意图。
附图说明
[0028]
图1为数据集统计表。
[0029]
图2为无监督的新意图发现性能表。
[0030]
图3为具有不同已知分类比率的半监督新意图发现表。
[0031]
图4为stack overflow上嵌入的可视化示意图。
[0032]
图5为半监督nid上更强的基准比较表。
[0033]
图6为无监督nid上clnn最近邻数的消融研究示意图。
[0034]
图7为无监督nid上clnn最近邻数量的消融比较表。
具体实施方式
[0035]
以下结合附图和具体实施例,对本发明进行详细说明。
[0036]
请参阅图1,本发明提供一种通过预训练和对比学习发现新意图的方法,包括如下步骤:
[0037]
步骤1:为了开发意图识别模型,准备一组期望意图ck={ci}
i=1tk
以及一些带标注的话语d
knownlabeled
={(xi,yi)∣yi∈ck},完成部署后,系统会遇到话语d
semiunlabeled
={xi∣yi∈{ck,cu}}。不仅来自期望意图,还来自未知意图cu={ci}
i=1tu
。新意图发现(nid)的目的是识别d
semiunlabeled
中的新兴意图。
[0038]
nid可以被视为分布外(ood)学习的直接扩展,不仅要识别ood示例,还要发现底层集群。nid也不同于零样本学习,因为不假定在训练期间访问任何类型的分类信息。
[0039]
步骤2:采用一个两阶段的框架模型,以赋予该模型解决提到的两个研究问题的能力。在框架的第一阶段,执行多任务预训练mtp,联合优化标记数据的交叉熵损失和未标记数据的自监督损失。
[0040]
步骤3:在第二阶段,首先为每个实例挖掘前k个最近邻,然后通过最近邻对比学习clnn进行进一步微调表征。
[0041]
步骤4:经过框架模型进行训练学习后,使用简单的非参数聚类算法,根据表征进行查找聚类分配。
[0042]
话语表征:
[0043]
使用bert作为主干,将话语编码到表征空间中,f:x

h,具体的,将bert的最后一个隐藏层中的词元[cls]标记为:
[0044][0045]
其中d=768是特征向量的维数,将原始的预训练bert表示为f0。
[0046]
第一阶段:多任务预训练
[0047]
为了在已知意图和标注不足的情况下学习更好的话语表征,提出了一个多任务预训练阶段,该阶段结合了已标记数据的分类任务和未标记数据的自监督任务,以充分利用手头的可用数据。具体的:
[0048]
采用有效联合训练前损失,损失包括来自任务域的标记数据的交叉熵和未标记数据的掩码语言模型mlm损失:
[0049][0050]
其中θ代表模型参数,
[0051]dtaskunlabeled
={x
knownlabeled
,x
semiunlabeled
}表示任务数据集中的所有话语。
[0052]
直观地,提取标注话语d
labeled
内的意图识别的先验知识。同时,利用了
未标记话语中丰富的任务语义。这两个损失函数一起构成了多任务损失它整合了来自标记话语和未标记话语的知识。
[0053]
对于等式(2)中的d
labeled
,首先按引入一个公开可用的具有多样领域和高质量标注的意图数据集。通过这种方式,将意图识别的先验知识注入到模型中,以获得更好的初始化。然后,使用任务数据集中d
knownlabeled
作为d
labeled
,将模型转移到任务域中。对于无监督的nid,可以简单地省略第二步。将第一阶段预训练的模型表示为f1。
[0054]
第二阶段:最近邻对比学习
[0055]
为了更好的话语聚类,提出了一种对比损失,将相邻的实例聚集在一起,以提高表征空间中聚类的紧凑性。具体的:
[0056]
首先用f1对d
taskunlabeled
的话语进行编码;然后,在表征空间中搜索与每个实例xi的内积的前k个最近邻,以形成邻域ni;然后在小批量实例上优化对比损失;在训练之前,首先从邻域ni为每个实例均匀地采样一个邻域xi′
,并从xi和xi′
中获取随机数据增强和将和视为xi的两个视图,并最大化二者之间的互信息,然后将增广为并投影到表征空间h;为构造了一个邻接矩阵

,它是一个2
×
2二元矩阵,其中1表示近邻或在半监督nid中具有相同的标注;因此,可以将损失写为:
[0057][0058][0059]
其中ci≡{j∈{1,

,2m}∣a
i,j

=1}表示的所有可能的正实例,|ci|是它的基数。当被设置为更小的值时,鼓励表征空间更均匀的温度sim(
·
,
·
)是相似度函数,通常是一对归一化特征向量sim(h1,h2)=h
1t
h2/||h1||2||h2||2之间的点积;将第二阶段获得的模型表示为f2;通过在f2上应用任何非参数聚类算法来获取聚类分配,从而执行评估。在一些实施例中,采用k-means。
[0060]
数据扩充在对比学习中起着重要的作用。本发明所提供的方法是基于一个观察,即一个话语只需要一个词的子集就可以表达其意图。例如,对于下面的话语,通过突出显示的单词,可以推断出其意图:
[0061]
你接受所有的卡和币种吗?
[0062]
我的visa卡多久过期?
[0063]
你能推荐一家泰国餐馆吗?
[0064]
因此,可以使用随机单词替换,以概率p=0.25从话语中均匀地采样单词,然后用来自字典的随机单词进行替换。
[0065]
通过将领域关系的概念引入对比学习,可以将相似的实例拉在一起,并将不相似的实例推开,以使聚类更加紧凑;利用表征空间中的邻近性,而不是分配有噪声的伪标签;
直接优化表征空间,而不是对logits进行聚类;通过构建邻接矩阵自然地合并已知意图。
[0066]
本发明提供一个具体的实施例,在三个基准数据集上对本发明所提出的方法进行评估。banking是对话中手机的细粒度数据集,stackoverflow是从线查询中收集的大规模数据集,m-cid是为covid-19服务收集的小规模数据集。选择clinc150数据集,因其具有足够的标注和多样性。统计数据汇总在图1的表格中。
[0067]
采用pytorch实现模型,并且采用预训练bert-base-uncased模型。对于多任务预训练,使用评估集在d
knownlabeld
上对20个epoch的patient采用早停法进行训练,以避免过度拟合。对于对比学习,使用两个线性层将原始的768-d特征向量压缩到128-d表征空间。默认情况下,温度t设置为0.07.对于模型优化,使用为所有训练阶段提供的adamw。对于挖掘最近邻,使用内积方法。领域大小k可通过无监督的度量轮廓系数进行搜索。在这项工作中,为banking和m-cid设置k=50,为stackoverflow设置k=500,使用经验试探法,即最优k应该大约是每个分类平均训练样本大小的一半。所有实验都在一张rtx-3090显卡上运行10个不同的种子。
[0068]
已知类占所有类的比例tk/(tk+tu)称为“已知类比率”kcr,每个已知类中标记示例的比例定义为“标记比率”lar。将fen分别展示kcr={0%,25%,50%,75%}和lar={10%,50%}之间组合的实验结果。当kcr=0%时,为无监督聚类,其中没有可用的已知类。从验证集中删除了所有未知类。
[0069]
采用三种流行的聚类评估指标:归一化互信息nmi、调整兰德指数ari和准确度acc。预测类和真实类在测量acc、基准和模型变量之前是一致的。在本实施例的实验中,总结了无监督和半监督nid的基准模型。
[0070]
无监督基准包括:glove-km和glove-ag基于glove嵌入,并分别使用k-means和凝聚聚类进行评估,bert-km和sae-km使用k-means对bert嵌入和堆叠自编码器进行评估,深度嵌入聚类sae-dec迭代优化聚类和特征表征,深度聚类网络(sae-dcn)结合了降维和k-means。
[0071]
半监督基准包括:bert-kcl和bert-mcl采用成对相似性任务来训练模型,bert-dtc通过先验知识转移发现新类别,cdac+采用自我标记范式,最后进行聚类细化阶段,深度对齐聚类dac受到深度聚类的启发,并通过迭代之间的对齐来改进。同时还利用已知类的监督预训练来进一步提高性能。
[0072]
对于本发明所提供的方法及模型,展示了第一阶段mtp和第二阶段mtp-clnn的k-means评估。
[0073]
结果分析:
[0074]
在图2的表格中,展示了无监督nid在三个基准数据集上的比较结果。从结果中可以得出三个结论:(1)bert-km在nid上的表现比glove-km和sae-km差,这意味着在没有适当的聚类提示的情况下理解语义并不能保证更好的性能。(2)mtp大大提高了基准的性能,这表明我们的方法不依赖于任务数据集中的标记意图来获得更好的性能。(3)mtp-clnn进一步将mtp的nmi提高了5%,ari提高了10%,acc提高了10%。
[0075]
半监督nid的比较结果如图3所示,从结果中总结出四点启示:(1)mtp在所有设置中始终优于基准。(2)此外,基准对kcr更敏感(例如,dac的nmi结果在banking上从70%到80%不等),这使得它们在资源不足的情况下不太实用,而mtp显示不同设置的差异较小
(80%~85%)。(3)mtp-clnn可以改进mtp,尤其是在kcr较小的情况下。(4)对于mtp和mtp-clnn变得不那么重要了。例如,在m-cid上,kcr={25%,50%}的性能并未超过无监督nid的性能。当lar=50%时,本发明所提供的方法仍然可以优于基准。
[0076]
为了更好的进行比较,本发明采用t-sne将图4中10类stackoverflow上的聚类可视化。使用本发明所提出的方法,可以很容易地观察到,聚类有的更加紧凑有的更分散。
[0077]
mtp的消融研究
[0078]
对多任务预训练的重要性进行消融研究,运行了另一组实验,仅在d
labeled
上进行监督预训练,称为sup-clnn。当kcr=0%时,根本没有sup-clnn的预训练。(1)首先,对于所有设置,mtp始终可以带来比sup更好的性能。(2)此外,我们观察到,当kcr减小时,两组实验之间的差距会增大。(3)kcr=0%的性能与sup-clnn接近。但是,由于mtp能够充分利用未标记数据和公共意图数据集中的知识,因此性能大大提高。还观察到,对于像m-cid这样的小规模数据集,直到kcr》50%性能才开始提升,这在开发的早期阶段很难获取。
[0079]
clnn的消融研究
[0080]
dac与本发明所提供的方案之间不匹配的预训练方案可能导致不公平的比较。因此将本发明所提出的mtp与dc相接合,形成更强的基准,从而进一步证明clnn的有效性。根据图5的表格所示,可以观察到,本发明所提供的模型仍然显示出优于mtp-dac的持续优势。
[0081]
请参阅图6,对图6中的领域大小k进行消融研究,尽管很难仅用未标记的数据来进行交叉验证k,但展示了一种有效的经验估计,即选择k作为每个类的平均训练样本大小的一半。在图6中,表明当k从0变化到200时,性能将首先急剧增加,然后再达到最佳值后略微下降。当k=0时,表示没有常规的近邻对比学习。因此,将领域引入对比学习通常是有益的。此外,可以容易观察到,为banking选择k≈60为m-cid选择k≈40位于最佳区域,符合本发明中所提出的经验估计。
[0082]
还将数据扩充与nlp中用于对比学习的其他两种方法进行比较,即即dropout noise和shuffling position ids。图7中的结果表明,本发明所提出的数据扩充比其他两个更有效,具有更强的随机性。
[0083]
综上所述,本发明通过将领域关系的概念引入对比学习,可以将相似的实例拉在一起,并将不相似的实例推开,以使聚类更加紧凑;利用表征空间中的邻近性,而不是分配有噪声的伪标签;直接优化表征空间,而不是对logits进行聚类;通过构建邻接矩阵自然地合并已知意图。
[0084]
以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种通过预训练和对比学习发现新意图的方法,其特征在于,包括如下步骤:步骤1:准备一组期望意图c
k
={ci}
i=1tk
以及一些带标注的话语d
knownlabeled
={(x
i
,y
i
)|y
i
∈c
k
},完成部署后,系统会遇到话语d
semiunlabeled
={x
i
|y
i
∈{c
k
,c
u
}};步骤2:采用一个两阶段的框架模型,在框架的第一阶段,执行多任务预训练,联合优化标记数据的交叉熵损失和未标记数据的自监督损失;步骤3:在第二阶段,首先为每个实例挖掘前k个最近邻,然后通过最近邻对比学习进行进一步微调表征;步骤4:经过框架模型进行训练学习后,使用简单的非参数聚类算法,根据表征进行查找聚类分配。2.根据权利要求1所述的通过预训练和对比学习发现新意图的方法,其特征在于,对话语表征,使用bert作为主干,将话语编码到表征空间中,f:x

h,具体的,将bert的最后一个隐藏层中的词元[cls]标记为:其中d=768是特征向量的维数,将原始的预训练bert表示为f0。3.根据权利要求1所述的通过预训练和对比学习发现新意图的方法,其特征在于,在第一阶段中,提出一个多任务预训练阶段,该阶段结合了已标记数据的分类任务和未标记数据的自监督任务,具体的:采用有效联合训练前损失,损失包括来自任务域的标记数据的交叉熵和未标记数据的掩码语言模型损失:supervised self-supervised其中θ代表模型参数,d
taskunlabeled
={x
knownlabeled
,x
semiunlabeled
}表示任务数据集中的所有话语。4.根据权利要求1所述的通过预训练和对比学习发现新意图的方法,其特征在于,在第二阶段中,提出一种对比损失,将相邻的实例聚集在一起,以提高表征空间中聚类的紧凑性,具体的:首先用f1对d
taskunlabeled
的话语进行编码;然后,在表征空间中搜索与每个实例x
i
的内积的前k个最近邻,以形成邻域n
i
;然后在小批量实例上优化对比损失;在训练之前,首先从邻域n
i
为每个实例均匀地采样一个邻域x
i

,并从x
i
和x
i

中获取随机数据增强和将和视为xi的两个视图,并最大化二者之间的互信息,然后将增广为并投影到表征空间h;为构造了一个邻接矩阵

,它是一个2
×
2二元矩阵,其中1表示近邻或在半监督nid中具有相同的标注;因此,可以将损失写为:
其中c
i
≡{j∈{1,...,2m}|a
i,j

=1}表示的所有可能的正实例,|c
i
|是它的基数。当被设置为更小的值时,鼓励表征空间更均匀的温度sim(
·

·
)是相似度函数,通常是一对归一化特征向量sim(h1,h2)=h
1t
h2/||h1||2||h2||2之间的点积;将第二阶段获得的模型表示为f2;通过在f2上应用任何非参数聚类算法来获取聚类分配,从而执行评估。

技术总结
本发明公开一种通过预训练和对比学习发现新意图的方法。本发明通过将领域关系的概念引入对比学习,可以将相似的实例拉在一起,并将不相似的实例推开,以使聚类更加紧凑;利用表征空间中的邻近性,而不是分配有噪声的伪标签;直接优化表征空间,而不是对logits进行聚类;通过构建邻接矩阵自然地合并已知意图。通过构建邻接矩阵自然地合并已知意图。通过构建邻接矩阵自然地合并已知意图。


技术研发人员:林润生 张峪玮 张昊德 展黎明 吴晓明
受保护的技术使用者:深圳市有光科技有限公司
技术研发日:2023.06.30
技术公布日:2023/9/23
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐