用于小样本意图识别的完型填空式的数据增强方法

文档序号:32494781发布日期:2022-12-10 04:16阅读:27来源:国知局
用于小样本意图识别的完型填空式的数据增强方法

1.本发明属于意图识别技术领域,具体涉及一种用于小样本意图识别的完型填空式的数据增强方法。


背景技术:

2.意图识别旨在从用户的话语中识别出用户的潜在意图,这是面向任务的对话系统中的关键组成部分。然而,一个实际的挑战是意图类别的数量增长速度快于人工注释数据的速度,导致许多新的意图类别只有少量数据可用。这种数据缺乏导致传统深度神经网络在少量训练数据上过拟合,严重影响了实际应用。因此,一些研究人员提出了小样本学习来解决数据稀缺问题。一种有效的方法是文本数据增强,但它总是生成噪声或无意义的数据。
3.在现实世界的应用中,新的意图类别迅速出现,并且只有有限的标注完备的数据,因此很难直接应用于优化现有的深度神经网络。这些网络一般都会包含一个预训练语言模型作为其主干,以将文本数据编码为连续的低维向量,例如bert和roberta。这样的模型总是具有多层的复杂架构,因此具有的参数量非常可观。如果在传统训练范式的基础上,直接利用少量训练数据更新深度神经网络模型的参数,模型将只能捕捉到局部特征,导致泛化能力不足和过拟合问题,即在训练集上表现良好,在测试集上表现不佳。为了处理这样的问题,snell等人提出了少样本学习(fsl)策略来帮助模型仅在有限的数据中获得泛化能力。上述研究人员将小样本意图识别视为元学习问题。它通过一系列小的元任务来模拟小样本场景。这种方法广泛应用于关系分类、事件检测和意图检测等小样本文本分类任务领域。
4.一个主要的挑战是,基于元学习的小样本学习方法仍然很容易陷入因训练样本有限而导致的在偏差分布上过拟合的困境。一些研究人员试图通过数据增强方法来防止过拟合问题。其中一个关键思想是回译:将输入文本的其他语言表示翻译成初始语言。另一种常见的方法是利用外部知识库来获得与原始句子语义相似的表达。具体来说,dopierre等人引入了多个知识库来生成原始输入的不同释义句子,而不是重新排序句子中的单词。然而,虽然回译可以生成相同语义的不同表达,但它在短文本中表现不佳。它生成的表达通常与原始输入句子相似甚至相同。而关于释义生成方法,我们认为它并不适合所有领域的文本增强,因为并不总是可以找到相对应的外部知识库。且,先前的数据增强相关方法,例如liu等人提出的方法,训练效率低下,并且难以扩展到具有大量意图的任务。


技术实现要素:

5.本发明要解决的技术问题是提供一种用于小样本意图识别的完型填空式的数据增强方法,以解决现有技术存在的上述至少一个问题。
6.基于上述目的,本技术中一个或多个实施例提供了一种用于小样本意图识别的完型填空式的数据增强方法,内容包括:基于预训练语言模型构建完型填空式的意图识别任务用于数据增强,先采用无监督学习方法使得数据增强的结果在语义上与原始输入句子相似,然后再基于度量分类采用有监督的对比学习方法,使得同一类别的意图样本在嵌入空
间中更接近彼此,不同类别的意图样本更远离彼此,对比学习方法包括原型层面的对比学习和实例层面的对比学习。
7.基于本发明的上述技术方案,还可以作出如下改进:
8.可选的,所述无监督学习方法包括:以预训练语言模型作为特征提取器,采用标记来掩盖设定比例的输入词,根据输入句子的上下文的语义来预测这些被掩盖的标记;特征提取器通过加入两个特殊标记后,将完型填空式的意图识别任务中的句子编码为隐藏层向量表示,两个特殊标记分别表示完型填空式的意图识别任务中句子的开始和结束,该过程通过以下公式表示:
[0009][0010]
其中,f(
·
)为特征提取器,t为完型填空式模板,[mask]为被掩盖的单词的标记,pat(t,x)为数据增强模式,x是输入句子,表示隐藏层向量,[cls]和[sep]分别表示开始和结束;
[0011]
将隐藏层向量视为被掩盖的单词[mask]的表示,将看作是根据模式pat(t,x)生成的句子表示,其在语义上与输入句子x是相似的,所有输入样本上重复公式(1)得到相应的数据增强结果。
[0012]
可选的,通过损失函数对预训练语言模型进行约束,用于削弱与输入句子的语义不匹配的向量,最终获得恰当的数据增强结果。
[0013]
可选的,在不引入任何外部知识和标签的情况下,将输入句子x送入预训练语言模型中,获得其低维向量表示,将其表述为:
[0014][0015]
其中,隐藏层向量表示为整个句子x,通过以下损失函数:
[0016][0017]
用于缩小和之间的距离。
[0018]
可选的,完成无监督的完型填空式数据增强之后,采用基于度量的原型网络作为分类器来检验数据增强的效果。
[0019]
可选的,首先计算出同一类别下的样本的平均表示,并以此作为该类别的原型:
[0020][0021]
其中,ci表示类别i的原型表示,ki表示在当前元任务t下的支持数据集中类别i的样本数量,为类别i中第k个句子的表示;通过这种原型表示,同一类别的样本到其中心的平均距离可以最短;同样地,基于通过原型计算公式(4),可以得到增强的原型c
′i。
[0022]
可选的,为了使最终的原型更全面地覆盖其类别的共同特征,对输入样本的原型和数据增强的结果原型进行了加权,公式如下:
[0023][0024]
其中,α是一个加权系数,以控制来自原始输入数据和增强数据的相应贡献;
[0025]
给定一个分数函数s(
·

·
),原型网络通过计算查询嵌入向量和原型之间的相似度的softmax分布来预测查询实例的标签xq,公式如下所示:
[0026][0027]
其中,y是预测标签,xq是当前元任务的查询集q中的查询实例,j是真实标签,表示基于j类别的初始和增强数据的最终原型,选择余弦相似度作为s(
·

·
);学习通过最小化负对数概率:
[0028][0029]
来进行。
[0030]
可选的,为原型层面的对比学习引入基于对比学习的损失,以便于尽可能的将不同类别的原型分开,并使得不同类别的平均表征相互远离,通过以下公式表述:
[0031][0032]
其中,s(
·

·
)是与公式中相同的相似性度量函数,因此,s(ci,ci)的值是一个常数1,将公式(4)简化为以下形式:
[0033][0034]
其中,e是一个常数,为原型级的对比性损失。
[0035]
可选的,在基于原型层面的对比学习引入实例层面的对比学习,以使得同一类别的实例相互接近,通过以下公式表述:
[0036][0037]
其中,表示和的正例,包括原始语料的向量表示和增强的向量表示,它与它们属于同一类别,其中,同一类别的样本向量表示之间的相似度可以提高,而不同类别的样本向量的相似度则可以通过最小化损失来降低。
[0038]
本发明的有益效果是,本发明提供了一种用于小样本意图识别的完型填空式的数据增强方法,具体的说,提出了一种适用于短文本且无需任何基于知识的参与的数据增强方法。我们将预训练语言模型本身视为一个知识库,因为它已经在大型文本语料库上进行了训练,因此可以执行一些简单的任务。构建了一个与其预训练任务类似形式的完型填空任务用于数据增强,以充分利用预训练语言模型本身的知识。使用模型还原的“[mask]”标
记的隐状态向量作为输入句子的数据增强结果,而不是由一系列词组成的真实句子。此外,为了使数据增强的结果不是无意义的噪声,利用无监督学习方法使其在语义上与原始输入句子相似。之后,为了最大限度地利用元任务中的少量样本,采用有监督的对比学习策略,使同一类别的样本在嵌入空间中更接近彼此,不同类别的样本更远离彼此。在不破坏句法结构和增加噪音的情况下产生有意义的数据,充分利用了有限的数据并获得可分离的嵌入。在嵌入空间中获得更好的距离分布,从而改善基于度量的分类方法的性能。
附图说明
[0039]
图1为本发明实施例的一种用于小样本意图识别的完型填空式的数据增强方法的模型总体框架图。
[0040]
图2为本发明实施例的一种用于小样本意图识别的完型填空式的数据增强方法的不同模板在clinc-150和banking-77数据集上的“5-way 1-shot”和“5-way 5-shot”元任务中的性能示意图。
具体实施方式
[0041]
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
[0042]
需要说明的是,除非另外定义,本技术中一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本技术中一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
[0043]
参考图1和图2,本技术中一个或多个实施例的一种用于小样本意图识别的完型填空式的数据增强方法,包括基于预训练语言模型构建完型填空式的数据增强任务用于意图识别,先采用无监督学习方法使得数据增强的结果在语义上与原始输入句子相似,然后再采用有监督的对比学习方法进行基于度量的分类,使得同一类别的意图样本在嵌入空间中更接近彼此,不同类别的意图样本更远离彼此,对比学习方法包括原型层面的对比学习和实例层面的对比学习。
[0044]
作为一个可选的实施例,所述无监督学习方法包括:以预训练语言模型作为特征提取器,采用标记来掩盖设定比例的输入词,根据输入句子的上下文的语义来预测这些被掩盖的标记;特征提取器通过加入两个特殊标记后,将完型填空式的意图识别任务中的句子编码为隐藏层向量表示,两个特殊标记分别表示完型填空式的意图识别任务中句子的开始和结束,该过程通过以下公式表示:
[0045][0046]
其中,f(
·
)为特征提取器,t为完型填空式模板,[mask]为被掩盖的单词的标记,
pat(t,x)为数据增强模式,x是输入句子,表示隐藏层向量,[cls]和[sep]分别表示开始和结束;
[0047]
将隐藏层向量视为被掩盖的单词[mask]的表示,将看作是根据模式pat(t,x)生成的句子表示,其在语义上与输入句子x是相似的,所有输入样本上重复公式(1)得到相应的数据增强结果。
[0048]
引入了一个辅助的完型填空式的模板t来构建数据增强的模式pat,具体如下所示:
[0049]
t=the sentence:

__

means[mask].#
[0050]
pat(t,x)=the sentence:

x

means[mask]:#
[0051]
作为一个可选的实施例,预训练的语言模型并不总是能生成与输入句子的语义完全匹配的向量。因此,需要设计一种方法来约束模型,以削弱这种不匹配,最终获得恰当的数据增强结果。在不引入任何外部知识和标签的情况下,设计了一种无监督的学习方法,利用模型自身的语义理解能力,使它尽可能地产生合适的结果。通过损失函数对预训练语言模型进行约束,用于削弱与输入句子的语义不匹配的向量,最终获得恰当的数据增强结果。
[0052]
在不引入任何外部知识和标签的情况下,将输入句子x送入预训练语言模型中,获得其低维向量表示,将其表述为:
[0053][0054]
其中,隐藏层向量表示为整个句子x,通过以下损失函数:
[0055][0056]
用于缩小和之间的距离。
[0057]
作为一个可选的实施例,在无监督的完型填空式数据增强之后,采用基于度量的原型网络作为分类器来检验数据增强的效果。原型网络首先计算出同一类别下的样本的平均表示,以此作为该类别的原型:
[0058][0059]
其中,ci表示类别i的原型表示,ki表示在当前元任务t下的支持数据集中类别i的样本数量,为类别i中第k个句子的表示;通过这种原型表示,同一类别的样本到其中心的平均距离可以最短;同样地,基于通过原型计算公式(4),得到增强的原型c
′i。
[0060]
可选的,为了使最终的原型更全面地覆盖其类别的共同特征,对输入样本的原型和数据增强的结果原型进行了加权,公式如下:
[0061]
[0062]
其中,α是一个加权系数,以控制来自原始输入数据和增强数据的相应贡献;
[0063]
给定一个分数函数s(
·

·
),原型网络通过计算查询嵌入向量和原型之间的相似度的softmax分布来预测查询实例的标签xq,公式如下所示:
[0064][0065]
其中,y是预测标签,xq是当前元任务的查询集q中的查询实例,j是真实标签,表示基于j类别的初始和增强数据的最终原型,选择余弦相似度作为s(
·

·
);学习通过最小化负对数概率:
[0066][0067]
来进行。由于原型网络通过测量查询实例和原型之间的距离来预测标签,因此适当的距离分布对于提高意图识别性能至关重要。
[0068]
作为一个可选的实施例,考虑到原型是用当前元任务中相应类别的所有样本计算出来的,原型可以代表这个类别中样本的共同特征。同时,考虑到原型网络是基于度量的,提高分类精度的一个直观想法是增加嵌入空间中不同类别的原型之间的距离。
[0069]
因此,为原型级的学习引入了一个基于对比学习的损失,以便尽可能地将不同类别的原型分开。具体来说,目标是使不同类别的原型嵌入的相似度越小越好,这可以表述为:
[0070][0071]
其中,s(
·

·
)是与公式中相同的相似性度量函数,因此,s(ci,ci)的值是一个常数1,将公式(4)简化为以下形式:
[0072][0073]
其中,e是一个常数,为原型级的对比性损失。我们期望不同类别的原型可以相互远离。然而,直接在原型层面进行对比学习,只能使不同类别的平均表征相互远离。这样的方法并不能保证同一类别的样本是接近的,意图识别的准确性也就没有得到足够的提高。
[0074]
作为一个可选的实施例,为了进一步提高意图识别性能,引入了实例层面的对比学习。该策略不仅可以使不同类别的实例相互远离,而且可以使同一类别的实例相互接近,具体的公式如下:
[0075][0076]
其中,表示和的正例,包括原始语料的向量表示和增强的向量表示,它与它们属于同一类别,其中,同一类别的样本向量表示之间的相似度可以提高,而不
同类别的样本向量的相似度则可以通过最小化损失来降低。
[0077]
为对实施例的技术效果进行验证,设计了以下实验:
[0078]
实验设置
[0079]
使用两个公开的意图识别数据集来评估我们的模型和参与讨论的基线模型的能力,包括clinc-150和banking-77。clinc-150由来自10个日常生活领域的150个意图类别组成,每个类别有150个样本。此外,数据集中还有一些意图语句被标记为“超出范围”,这些意图语句被认为是具有多个未知类别的噪声。为了准确测试所讨论模型的性能,我们删除了这些标记为“超出范围”的样本,并且仅利用标注完备的样本进行训练和测试。banking-77是一个用于意图识别的单领域数据集,包含银行领域77个类别的13,083个样本。表1提供了clinc-150和banking-77的统计数据。
[0080]
表1数据集clinc-150和banking-77的统计数据
[0081][0082]
模型摘要
[0083]
通过与以下基线模型进行比较来验证我们提出模型的有效性:
[0084]
prototypical networks:一种基于度量的少样本分类模型,它利用嵌入空间中样本之间的距离来衡量它们的相似性。它将最接近查询样本的原型标签视为其类别的预测。
[0085]
gcn:用于小样本分类的基于图卷积网络的方法,它将小样本学习视作一种有监督的信息传递任务,并可使用一种端到端的方式进行训练。
[0086]
matching networks:一个小样本分类框架,它训练一个网络,将一个小的有标注的支持集和未标记的实例映射到它们的标签,并避免依赖微调来适应新的类别。
[0087]
问题设定
[0088]
rq1:我们提出的方法是否能在意图识别任务上优于具有这些竞争力的基线模型?
[0089]
rq2:我们提出的cda的哪个模块在提升识别准确率上的作用更大?
[0090]
rq3:不同的模板对于模型性能的影响是什么?
[0091]
模型设定
[0092]
按照小样本学习实验的常见做法,我们讨论了两种不同样本数量的元任务,包括“5-way1-shot”和“5-way 5-shot”。对于所有参与讨论的模型,我们应用相同的特征提取器(即,bert-base-uncased)来编码输入句子以保证性能比较的公平。
[0093]
基于rq1,在clinc-150和banking-77上考察了两类元任务的意图识别模型能力。所有讨论的模型的整体意图识别性能如表2所示。
[0094]
表2两种类型的元任务在测试集上的准确度(%)以及95%置信区间的总体表现。每一列中表现最好的人产生的结果加粗表示。最佳基线产生的结果用下划线表示。
[0095][0096][0097]
首先,我们可以发现无论是哪一个数据集,所有的模型在单个种类样本数量较多的情况下都能更好地完成元任务。这是因为随着单个种类样本数量的增加,模型可用的总样本数量也在增加,从样本中获得的共同特征更接近于真实的共同特征。
[0098]
而后,我们集中分析基线的性能。我们可以发现,matchnet在两个数据集上的“5-way1-shot”元任务中获得了最高的准确性,而protonet在两个数据集上的“5-way 5-shot”元任务中获得了最好的性能。matchnet在“1-shot”元任务上的优势可以解释为,临时的相似性匹配计算可以很好地提升模型性能。对于protonet来说,它在“5-shot”元任务中具有优势的原因是它可以融合同一类别中实例的特征以获得它们的共性。
[0099]
接下来,我们重点讨论我们提出的模型的性能。对比基线模型和cda模型,我们可以发现,在数据集clinc-150上,cda-pc和cda-ic的表现几乎都超过了所有讨论的基线模型。然而,在banking-77数据集上,cda-pc在“5-way 1-shot”和“5-way 5-shot”元任务上的表现分别弱于matchnet和protonet。这是因为clinc-150数据集中同一类别的样本是短句,比banking-77中的样本更相似。因此,数据增强的结果与初始输入的句子很接近,这有助于模型获得它们的共同特征。再者,由于banking-77数据集比clinc-150更专业,预训练语言模型掌握的相关知识比clinc-150少。如果直接用增强的样本来计算类别原型,就相当于引入了噪声,会削弱类别本身的特征从而降低识别性能。
[0100]
针对cda-pc应用中存在的问题,cda-ic利用实例级的对比学习策略,提高了小样本意图识别性能。cda-ic的优势可以解释为:实例级对比学习策略将初始数据和同一类别中的相应增强数据都视为正例。这样的方法使每个样本与更多的数据进行交互,不仅可以缩短同一类别的初始输入数据在空间上的距离,还可以使增强后的数据在语义上接近同一类别的原始数据。
[0101]
在clinc-150数据集上,cda-ic与最佳基线模型相比,在“5-way 1-shot”元任务中的准确率提高了4.36%,在“5-way 5-shot”元任务中提高了4.91%。在banking-77数据集上,“5-way 1-shot”元任务的精度提高了1.69%,“5-way 5-shot”元任务的精度提高了1.86%。
[0102]
消融实验
[0103]
为了回答rq2问题,我们通过分别删除cda-ic的两个基本组成部分,即实例级对比学习模块和无监督学习模块,分析不同模块在我们cda-ic模型中的重要性。消融实验的结
果如表3所示:
[0104]
表3cda-ic在clinc-150数据集和banking-77数据集上进行的“5-way1-shot”、“5-way 5-shot”元任务的消融实验。每一列中降幅最大的独立模块后用标记。
[0105][0106]
显然,去掉cda-ic的任何部分都会导致性能下降,这表明无监督学习模块和实例级对比学习模块在提高小样本意图识别能力方面起到很重要的作用。特别是,在两种类型的元任务中,无论何种数据集,去除实例级对比学习模块都会导致最严重的性能下降。例如,在clinc-150数据集上,没有实例级对比学习模块的cda-ic模型在“5-way1-shot”元任务和“5-way 5-shot”元任务中的表现分别下降了3.63%和3.82%。对于banking-77数据集,没有实例级对比学习模块的cda-ic模型在“5-way1-shot”元任务和“5-way 5-shot”元任务中分别获得了4.16%和4.44%的性能下降。
[0107]
此外,值得注意的是,每个模块都有其独特的贡献。具体来说,在“5-way1-shot”元任务中,去掉无监督学习模块造成的性能下降要比“5-way 5-shot”元任务中的性能下降更多,这说明在特征不足的情况下,无监督学习模块的作用更明显,更有利于提高小样本意向识别性能。另外,在“5-way 5-shot”元任务中,实例级的对比学习模块比“5-way1-shot”元任务发挥了更重要的作用。这一现象可以解释为,在这种情况下,限制性能的瓶颈不再是特征的缺乏,而是对同一类别的共性和不同类别的独特性的挖掘。实例级对比学习模块不仅可以缩短嵌入空间中同一类别的样本之间的距离,还可以增加不同类别的向量表示之间的距离,即挖掘同一类别的共性和不同类别的独特性。
[0108]
不同模板的影响
[0109]
为了回答rq3问题,我们设计了三种不同的模板,并将它们应用于数据增强的模式。所有讨论的模板类型见表4。
[0110]
表4用于完型填空式数据增强的三种模板
[0111][0112]
由于我们提出的模型基于预训练语言模型,它需要利用模板来生成语义相似的数据。因为不同的模板使用不同的单词和标点符号,即令牌,所以从预训练语言模型得到的语义向量也是不同的,具体情况见图2。
[0113]
图2体现了不同模板在clinc-150和banking-77数据集上的“5-way 1-shot”和“5-way5-shot”元任务中的性能。
[0114]
很明显,它表明不同的模板确实会导致模型性能的明显变化。具体来说,在clinc-150数据集上执行的“5-way 1-shot”元任务中,不同模板的性能差异接近1%。此外,如图2所示,在banking-77数据集上执行的“5-way 5-shot”元任务上,不同模板之间的性能差异甚至可以达到1.3%。
[0115]
从整体趋势来看,模板的长度与数据增量的效果没有直接关系。详细来说,尽管模板2是最短的,但它在clinc-150数据集上的表现并不是最差的。它在“5-way 1-shot”元任务上的表现与模板3的表现非常接近,比模板1好。值得注意的是,与其他两个模板相比,模板3在clinc-150和banking-77数据集的所有任务上表现最好。这一现象可以解释为,模板3对[mask]标记的语义指导最为明确。当原始输入句子被填入模板时,模板3明确指出,[mask]代表输入句子的意图。因此,生成的语义嵌入向量更具指向性。
[0116]
综上所述,模板的设计对数据增强的性能有明显的影响。一个好的模板可以提供适当的语义指导,有效提高数据增强的性能。
[0117]
我们提出了一个用于小样本意图识别的完型填空式数据增强(cda)模型。受预训练语言模型任务的启发,我们设计了一个基于模板的无监督的数据增强策略,希望在不破坏句法结构和增加噪音的情况下产生有意义的数据。此外,为了充分利用有限的数据并获得可分离的嵌入,我们在原始数据和增强的数据之间进行对比学习。因此,每个样本可以与所有剩余类别的样本进行互动,从而在嵌入空间中区分不同类别的嵌入。在clinc-150和banking-77数据集上进行的实验结果说明了对所有讨论的基线的有效性。此外,消融研究表明,对比性模块是整个模型中最重要的组成部分。
[0118]
技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
[0119]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术中一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
[0120]
本技术中一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术中一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1