1.一种基于有监督对比学习的开放服务意图检测方法,其特征在于,包括以下步骤:S1:对原始数据集中的意图事件文本分类,将数据集分为域内样本IND和域外样本OOD;
S2:对数据集进行数据预处理,删除文本中多余的空格和标点符号;
S3:将步骤S2预处理得到的IND样本进行BERT编码,得到整个文本的句向量表示;
S4:基于步骤S3得到的句向量表示,通过线性分类层,利用交叉熵损失函数Softmax‑Loss来捕获同一类的特征,得到交叉熵损失S5:基于步骤S3得到的句向量表示,使用有监督对比学习,扩大不同类的特征差异和缩小同一类的特征差异,得到监督对比学习损失S6:基于步骤S4和步骤S5分别得到的交叉熵损失和监督对比学习损失,相加得到微调阶段的整体损失,进行训练优化,得到具有区分度的特征提取器模型;
S7:基于步骤S2得到的预处理后的IND样本,通过Mix‑up操作构造出人工合成的OOD样本;
S8:嵌入表示,把已知IND样本、已知OOD样本和步骤S7中人工合成的OOD样本这三部分数据输入步骤S6得到的特征提取器,得到每个样本的句嵌入向量表示;
S9:多任务联合优化,包括两个部分,第一部分是多分类任务,从步骤S8输入的样本中筛选出IND样本,利用SoftMax交叉熵损失进行优化,得到任务损失;第二部分是置信度学习任务,得到一个样本归属于新事件的置信度损失;将两部分损失相加训练得到开放意图检测模型。
2.根据权利要求1所述的基于有监督对比学习的开放服务意图检测方法,其特征在于,步骤S1所述的意图事件文本分类,具体为:原始数据集中的意图事件文本都属于域内样本,使用随机删除的方式,删除一定比例的域内样本标签,并把对应的意图事件文本重新标记为域外样本;得到剩下的域内样本和重新标记过的域外样本。
3.根据权利要求1所述的基于有监督对比学习的开放服务意图检测方法,其特征在于,步骤S3具体为:给定一个文本s,对于文本中的每一个单词Ti输入到BERT模型中:xj=mean‑pooling(BERT(CLS,T1,T2…,TN))
其中CLS表示下游任务的分类标签,N表示文本的长度,mean‑pooling表示对BERT得到的每个词的语义进行均值处理,最后得到xj表示整个文本的句向量表示。
4.根据权利要求1所述的基于有监督对比学习的开放服务意图检测方法,其特征在于,步骤S4具体为:使用交叉熵损失函数优化BERT的参数,为了学习每个事件类型的标签信息,使用已知的标签信息作为先验知识来微调模型,并使用一个损失为Softmax‑loss的线性分类器,得到交叉熵损失
5.根据权利要求1所述的基于有监督对比学习的开放服务意图检测方法,其特征在于,步骤S5具体为:对于一个有C个类的多分类任务来说,一个批次内包含M个样本,表示为其中di表示输入的事件文本,yi表示该事件文本所属的事件类型,通过监督对比学习得到该任务的监督对比损失其中A(i)={1,…,M}\{i}表示所有的锚点样本的集合,P(i)={p∈A(i):yi=yp}是事件标签为i的样本集合,τ是温度超参数,zi表示BERT模块得到的特征表示,za表示不同锚点的特征表示,zp表示事件标签为i的样本的特征表示。
6.根据权利要求1所述的基于有监督对比学习的开放服务意图检测方法,其特征在于,ood步骤S7中,通过Mix‑up操作构造出人工合成的OOD样本的方法为:合成的OOD样本x 是通过对两个不同类别的已知类样本加权求和计算产生的:ood
x =α*xi+(1‑α)*xj
其中xi和xj是来自不同IND事件类型的两个事件文本的句向量表示,α是一个从0到1的均匀分布。
7.根据权利要求1所述的基于有监督对比学习的开放服务意图检测方法,其特征在于,步骤S9中所述的这两个部分接收相同的输入,即来自BERT的输出;然后两个部分经过不同的多层感知机MLP;置信度学习任务的最后一层使用一个sigmoid激活函数在0‑1之间调整置信度ci。
8.根据权利要求7所述的基于有监督对比学习的开放服务意图检测方法,其特征在于,步骤S9中的多分类任务具体为:挑选出所有IND样本,然后使用交叉熵CE(…)来计算任务损失其中Li表示样本的真实标签,pi表示概率向量,n为IND样本的数量。
9.根据权利要求7所述的基于有监督对比学习的开放服务意图检测方法,其特征在于,步骤S9中的置信度学习任务具体为:利用置信度进行OOD检测:其中ci是由sigmoid激活函数产生的置信度;对于OOD样本,用1减去ci,得到目标置信度c′i,否则保留ci作为c′i;然后使用c′i的负似然对数 作为置信度损失训练完模型后, 将归于0,它使IND样本的ci接近于1,OOD样本的ci接近于0;在实际应用中,预先设定一个置信度阈值θ,如果样本的置信度ci小于置信度阈值θ,则将其认为是OOD样本,反之则为IND样本。