一种基于自然语言提示机制的持续小样本意图识别方法

文档序号:33187499发布日期:2023-02-04 07:05阅读:30来源:国知局
一种基于自然语言提示机制的持续小样本意图识别方法

1.本发明属于自然语言处理领域,具体涉及持续学习和提示学习在持续学习场景下的小样本意图识别任务上的应用。


背景技术:

2.意图识别是任务型对话系统的核心环节之一。它旨在了解用户话语背后的目的并将其准确分类为不同的意图。传统的意图识别系统使用大量标记数据进行训练,以识别一组预定义的意图类别。然而,在实际场景中系统往往面临着连续不断的意图识别需求。同时,属于不同领域的新意图的标注数据往往比较稀少。检测新意图的一种简单方法是重新收集注释数据并重新训练模型,这对于部署中的对话系统来说既耗时又不切实际。因此,在实际场景中亟待构建一种意图识别系统,该系统可以通过很少的标记数据持续识别新意图。
3.现有的技术往往局限在持续学习场景或者小样本场景下,还未曾有技术考虑持续学习场景下新意图数据的稀疏性和领域多样性。在这一实际场景中,其核心问题在于如何在准确识别新意图的同时缓解灾难性遗忘现象。


技术实现要素:

4.本发明目的是针对持续学习场景下小样本意图识别这一新颖而实际的问题,提供一种基于自然语言提示机制的持续小样本意图识别方法。
5.受提示学习的启发,本发明设计了结合参数化的自然语言提示及重放策略的原型网络架构,并利用知识蒸馏策略来解决持续学习过程中的负知识迁移问题,实现学习新任务和防止旧任务遗忘之间的动态平衡。
6.本发明具体采用的技术方案如下:
7.一种基于自然语言提示机制的持续小样本意图识别方法,其步骤如下:
8.s1:在意图识别场景的新任务上,初始化一个与学生模型结构相同的教师模型;所述学生模型和教师模型均采用simcse-roberta作为原始编码器,并在原始编码器内部的每个多头注意力层中引入可学习的前缀提示参数并与原有的键值表征进行连接从而形成前缀提示引导的多头注意力层,同时在原始编码器内部的每层前馈层后插入可学习的适配器结构;在新任务对应的意图识别任务数据集基础上基于对比学习方式对所述教师模型进行训练,且训练过程中需冻结原始编码器参数,仅微调相对于原始编码器新引入的网络结构;
9.s2:冻结s1中训练好的教师模型,并基于新任务对应的意图识别任务数据集,利用该教师模型对已在旧任务上训练得到的学生模型执行知识蒸馏,得到教师模型和学生模型对于相同样本输出的不同表征之间的均方误差损失;
10.s3:在对学生模型进行新任务训练时,利用从旧任务中缓存的数据在当前学生模型上执行对比学习方式的内存重放,计算得到基于对比学习的内存重放损失;所述旧任务中缓存的数据为所述学生模型在该旧任务上训练结束后保存下来的每个类别中距离对应
类别表征在余弦距离上最近和最远的两个样本;
11.s4:同时通过s2的知识蒸馏和s3的内存重放任务对所述学生模型进行新任务的迭代训练,训练的总损失为所述均方误差损失和所述内存重放损失的加权和;
12.s5:在新任务训练结束后,将该新任务中每个类别的所有训练样本送入编码器并输出样本表征,将每个类别中所有样本表征的平均值作为这个类别的表征;将每个类别中距离该类别表征在余弦距离上最近和最远的两个样本缓存起来,用于进行下一次新任务训练时的内存重放;
13.s6:在测试或实际应用时,将用户的查询文本输入到当前最新的学生模型中通过编码得到查询表征,将查询表征分别与所有类别表征计算余弦相似度,并将与查询表征最相似的类别作为预测的意图类别。
14.作为优选,所述s1中,在微调所述教师模型相对于原始编码器新引入的网络结构过程中,对于每个迭代步,均需随机采样n个类别,每个类别随机采样k条用户话语文本样本,采样得到的n*k个用户话语文本样本送入教师模型中,得到n*k条样本表征,利用对比学习方式拉近同类别的样本表征,并拉远不同类别的样本表征。
15.作为优选,所述s2中,在知识蒸馏过程中,对于每个迭代步,均需在新任务对应的意图识别任务数据集上随机采样n个类别,每个类别采样k条用户话语文本样本,采样得到的n*k个用户话语文本样本分别送入教师模型和学生模型中,各自得到样本表征,并计算同一样本在不同模型中的输出表征之间的均方误差损失。
16.作为优选,所述s3中,在对学生模型进行新任务训练过程的每个迭代步中,需随机采样一个旧任务,并从缓存中随机选择n个类别,每个类别取出各自保存的两条用户话语文本样本,并将采样得到的n*2个用户话语文本样本送入学生模型中,利用对比学习方式拉近同类别的两条样本表征,并拉远不同类别的样本表征,并计算得到基于对比学习的内存重放损失。
17.作为优选,所述学生模型和教师模型的模型结构中,每个多头注意力层中引入的可学习的前缀提示参数为引入的两个参数simcse-roberta中原有的多头注意力层的键值表征进行连接,形成前缀提示引导的多头注意力层:
[0018][0019]
其中:headi表示前缀提示引导的多头注意力层中第i个注意力头,x∈rm×d为输入的文本序列表示,和是参数矩阵;l表示前缀提示参数的长度,dh为每个注意力头的隐藏层维度,d表示多头注意力层的隐藏层维度。
[0020]
作为优选,所述学生模型和教师模型的模型结构中,在前馈层之后插入的可学习的适配器结构由下投影矩阵w
down
∈rd×r、非线性激活函数relu(
·
)以及上投影矩阵w
up
∈rr×d构成,模型中每层前馈层插入可学习的适配器结构之后的输出h

表示为:
[0021]h′←
h+relu(hw
down
)w
up
[0022]
其中:h表示simcse-roberta中原始的前馈层输出,r为一个维度超参数。
[0023]
作为优选,所述意图识别任务数据集中,每条用户话语文本样本表示为x=w1w2w3…
,每条样本均通过增加[cls]和[sep]预处理为相同的输入格式[cls]w1w2w3…
[sep];将其输入到所述教师模型或学生模型后,取出[cls]位置的表征作为该样本的样本
表征f(x)。
[0024]
作为优选,所述s1中,在新任务对应的意图识别任务数据集基础上基于对比学习方式对所述教师模型进行训练时,采用的对比学习损失l
sim
计算公式如下:
[0025][0026]
其中表示教师模型,xi表示第i条用户话语文本样本,表示第j个类别的类别表征,其通过将每个类的k条样本表征平均得到;sim(
·
)是余弦相似度函数,τ是温度超参数;i(
·
)是指示函数,括号内的等式成立时取1,否则取0。
[0027]
作为优选,所述s2中,均方误差损失l
dis
计算公式如下:
[0028][0029]
其中表示学生模型;
[0030]
所述s3中,基于对比学习的内存重放损失计算公式如下:
[0031][0032]
作为优选,所述s4中,对编码器模型进行训练时采用的总损失函数的计算公式为:
[0033]
l=λ
dis
l
dis

mem
l
mem
[0034]
其中λ
dis
和λ
mem
分别表示均方误差损失l
dis
和内存重放损失l
mem
的权重值;在每个迭代步中,两个权重值均需要通过求解帕累托最优解的方式动态确定。
[0035]
相对于现有技术而言,本发明的有益效果如下:
[0036]
和现有技术相比,本发明将自然语言提示融入到持续学习中,并通过知识蒸馏策略缓解知识负迁移现象,在意图识别准确率和缓解灾难性遗忘层面都有较大提升。同时在持续学习过程中,模型微调参数量大大减少,且只需维护一个模型副本,使得训练过程更加高效,存储成本大大降低。
附图说明
[0037]
图1为基于自然语言提示机制的持续小样本意图识别方法的步骤示意图;
[0038]
图2为本发明方法的框架图。
具体实施方式
[0039]
下面结合附图和具体实施例对本发明做进一步阐述和说明。
[0040]
如图1所示,在本发明的一个较佳实施例中,提供了一种基于自然语言提示机制的持续小样本意图识别方法,其步骤如s1~s6所示:
[0041]
s1:在意图识别场景的新任务上,初始化一个与学生模型结构相同的教师模型;所述学生模型和教师模型均采用simcse-roberta作为原始编码器,并在原始编码器内部的每个多头注意力层中引入可学习的前缀提示参数并与原有的键值表征进行连接从而形成前
缀提示引导的多头注意力层,同时在原始编码器内部的每层前馈层后插入可学习的适配器结构;在新任务对应的意图识别任务数据集基础上基于对比学习方式对所述教师模型进行训练,且训练过程中需冻结原始编码器参数,仅微调相对于原始编码器新引入的网络结构。
[0042]
在本实施例中,上述学生模型和教师模型的模型结构中,每个多头注意力层中引入的可学习的前缀提示参数为引入的两个参数simcse-roberta中原有的多头注意力层的键值表征进行连接,形成前缀提示引导的多头注意力层:
[0043][0044]
其中:headi表示前缀提示引导的多头注意力层中第i个注意力头,x∈rm×d为输入的文本序列表示,和是参数矩阵;l表示前缀提示参数的长度,dh为每个注意力头的隐藏层维度,d表示多头注意力层的隐藏层维度。
[0045]
在本实施例中,上述学生模型和教师模型的模型结构中,在前馈层之后插入的可学习的适配器结构由下投影矩阵w
down
∈rd×r、非线性激活函数relu(
·
)以及上投影矩阵w
up
∈rr×d构成,模型中每层前馈层插入可学习的适配器结构之后的输出h

表示为:
[0046]h′←
h+relu(hw
down
)w
up
[0047]
其中:h表示simcse-roberta中原始的前馈层输出,r为一个维度超参数。
[0048]
需注意的是,由于本发明中的学生模型是不断在不同任务上持续学习的,因此引入的适配器和前缀提示参数在每个任务间共享,并在持续学习过程中均需要保持原始编码器的参数冻结。
[0049]
在本实施例中,上述s1中,在微调所述教师模型相对于原始编码器新引入的网络结构过程中,对于每个迭代步,均需随机采样n个类别,每个类别随机采样k条用户话语文本样本,采样得到的n*k个用户话语文本样本送入教师模型中,得到n*k条样本表征,利用对比学习方式拉近同类别的样本表征,并拉远不同类别的样本表征。
[0050]
在本实施例中,上述s1中,在新任务对应的意图识别任务数据集基础上基于对比学习方式对所述教师模型进行训练时,采用的对比学习损失l
sim
计算公式如下:
[0051][0052]
其中表示教师模型,xi表示第i条用户话语文本样本,表示第j个类别的类别表征,其通过将每个类的k条样本表征平均得到;sim(
·
)是余弦相似度函数,τ是温度超参数(本实施例中设为0.07);i(
·
)是指示函数,括号内的等式成立时取1,否则取0。
[0053]
在本实施例中,每个任务均对应于一个新的意图识别任务数据集,因此可将每个任务对应的意图识别任务数据集中每条用户话语文本样本表示为x=w1w2w3…
,每条样本均通过增加[cls]和[sep]预处理为相同的输入格式[cls]w1w2w3…
[sep];将其输入到所述教师模型或学生模型后,取出[cls]位置的表征作为该样本的样本表征f(x)。本发明中,意图识别任务数据集中每条用户话语文本是任务型对话系统中的一条用户话语文本。
[0054]
s2:冻结s1中训练好的教师模型,并基于新任务对应的意图识别任务数据集,利用该教师模型对已在旧任务上训练得到的学生模型执行知识蒸馏,得到教师模型和学生模型
对于相同样本输出的不同表征之间的均方误差损失。
[0055]
在本实施例中,上述s2中,在知识蒸馏过程中,对于每个迭代步,均需在新任务对应的意图识别任务数据集上随机采样n个类别,每个类别采样k条用户话语文本样本,采样得到的n*k个用户话语文本样本分别送入教师模型和学生模型中,各自得到样本表征,并计算同一样本在不同模型中的输出表征之间的均方误差损失。
[0056]
在本实施例中,上述均方误差损失l
dis
计算公式如下:
[0057][0058]
其中表示学生模型;
[0059]
s3:在对学生模型进行新任务训练时,利用从旧任务中缓存的数据在当前学生模型上执行对比学习方式的内存重放,计算得到基于对比学习的内存重放损失;所述旧任务中缓存的数据为所述学生模型在该旧任务上训练结束后保存下来的每个类别中距离对应类别表征在余弦距离上最近和最远的两个样本。
[0060]
在本实施例中,上述s3中,在对学生模型进行新任务训练过程的每个迭代步中,需随机采样一个旧任务,并从缓存中随机选择n个类别,每个类别取出各自保存的两条用户话语文本样本,并将采样得到的n*2个用户话语文本样本送入学生模型中,利用对比学习方式拉近同类别的两条样本表征,并拉远不同类别的样本表征,并计算得到基于对比学习的内存重放损失。
[0061]
在本实施例中,上述基于对比学习的内存重放损失计算公式如下:
[0062][0063]
s4:同时通过s2的知识蒸馏和s3的内存重放任务对所述学生模型进行新任务的迭代训练,训练的总损失为所述均方误差损失和所述内存重放损失的加权和。
[0064]
在本实施例中,上述s4中,对编码器模型进行训练时采用的总损失函数的计算公式可表示如下:
[0065]
l=λ
dis
l
dis

mem
l
mem
[0066]
其中λ
dis
和λ
mem
分别表示均方误差损失l
dis
和内存重放损失l
mem
的权重值;在每个迭代步中,两个权重值均需要通过求解帕累托最优解的方式动态确定。
[0067]
s5:在新任务训练结束后,将该新任务中每个类别的所有训练样本送入编码器并输出样本表征,将每个类别中所有样本表征的平均值作为这个类别的表征;将每个类别中距离该类别表征在余弦距离上最近和最远的两个样本缓存起来,用于进行下一次新任务训练时的内存重放。
[0068]
需要说明的是,在s5步骤中新任务训练结束后各类别都缓存了两个样本,这两个样本会在下一轮新任务训练中,作为前述s3步骤中用于内存重放的“旧任务中缓存的数据”。
[0069]
s6:在测试或实际应用时,将用户的查询文本输入到当前最新的学生模型中通过编码得到查询表征,将查询表征分别与所有类别表征计算余弦相似度,并将与查询表征最
相似的类别(余弦相似度最高的类别)作为预测的意图类别。
[0070]
由此可见,上述s1~s6步骤中,学生模型可以不断地在新任务上进行持续学习,其中原始编码器中引入的适配器和前缀提示参数在每个任务间共享,而原始编码器中原始预训练得到的参数在持续学习过程中保持冻结。
[0071]
下面将上述s1~s6所述的基于自然语言提示机制的持续小样本意图识别方法应用至一个具体实例中,以展示其具体实现方式和技术效果。
[0072]
实施例
[0073]
本实施例主要应用在一个由9个任务组成的持续学习小样本意图识别基准数据集中,每个任务包含一个小样本意图识别数据集,其中每个数据集的每个类别包含5条或10条训练样本(记为5-shot和10-shot设定),其细节见表1。
[0074]
表1数据集基本信息(5-shot/10-shot)
[0075][0076]
如图1所示,本实施例在每个任务上按照上述s1~s6所述的流程进行训练和测试。在每个任务上训练后,同时在之前见过的所有任务上评估测试准确率。为了衡量每个时间步上的模型表现,本实施例还额外采用三种定量指标来评估:在第t个任务上训练后的平均准确率a
t
、平均遗忘率f
t
和学习准确率la
t
指标。令a
t,i
表示训练第t个任务后第i个任务上的测试准确率,这些指标定义如下:
[0077][0078][0079]
其中,a
t
衡量了所有先前看到的任务的平均性能。f
t
衡量了模型在学习第t个任务后忘记了所有先前看到的任务的程度。la
t
衡量了模型看到新任务时的学习能力。
[0080]
在训练完9个任务后,本实施例对之前访问的所有任务性能进行了评估,结果如表2所示。其中lc表示采用roberta作为编码器,在顶层添加linear和softmax层执行分类的方法,l-dnnc是小样本意图识别中的经典方法,其将类别名和查询文本拼接送入分类模型执行二分类,表示是否属于同一类。l-pn则是小样本学习中的基于匹配的原型网络基线,pn-agem则表示采用了经典防遗忘基线agem的原型网络基线。pn-joint则存储来自所有见过的先前任务的所有数据,并在学习新任务时用所有数据训练整个原型网络,是该设定的性能上界。
[0081]
表2训练9个任务后的每个任务的测试准确率
[0082][0083]
如表2所示,相比于其他基线方法,本方法在所有任务的平均测试准确率方面优于之前的基线(5-shot和10-shot设置下分别为85.61%和88.16%)。同时,在较早访问的任务中本方法仍然取得了更好的性能,这证明了该方法在避免灾难性遗忘方面的优越性。
[0084]
本实施例还针对每个时间步上的性能表征,评估了每个任务训练后的性能指标,结果如表3所示。其中ple表示本方法,而sc、s-pn和s-ple表示针对每个任务单独训练一个模型的单任务训练方式。
[0085]
表3每个时间步的平均准确率,平均遗忘率和平均学习准确率
[0086][0087]
如表3所示,本方法在平均准确率和平均遗忘率方面,在5-shot设置中优于以前的基线,同时在10-shot设置中也具有竞争性能,并且比其他基线有更少遗忘现象。
[0088]
此外,本实施例对模型的不同组成部分进行了消融研究。其中w/o prefix表示去除前缀提示,w/o memory表示不采用内存重放策略,w/o tkt表示不采用知识蒸馏策略,w/o psr表示随机采样旧任务的数据进行缓存而w/o dwr则表示采用固定两个任务权重的方式进行优化,例如:λ
dis
=0.9,λ
mem
=0.1。消融实验结果如表4所示。
[0089]
表4.消融实验结果(5-shot/10-shot)
[0090][0091]
从表4可以看到,尽管去除前缀提示或者内存重放策略或者知识蒸馏策略,在某一方面能够达到更好的性能,但是在其他方面的性能都会严重下降。然而,结合这些组件以后,本方法能够在所有定量指标上都取得不错的效果。
[0092]
以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有
关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1