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

一种针对小语种的小样本意图识别方法

2022-07-02 15:14:03 来源:中国专利 TAG:


1.本发明涉及对话系统意图识别应用领域,尤其涉及一种针对小语种的小样本意图识别方法。


背景技术:

2.意图识别旨在从对话或自然语言中获取人类意图,是语句分析的重要技术手段,在商业上用途广泛。例如,在手机语音助手中,在与用户对话时,能够准确识别用户意图可以及时回复用户问题并给予帮助。现有的意图识别方法主要面向广泛使用的英语和汉语等大语种,并且要求每个意图具有海量标记的语料。这些方法通常利用深度学习技术,例如卷积神经网络、递归神经网络、bert来学习整个句子的表示。但是由于小语种语料的缺乏,每个意图的标记数据都十分有限,因此基于传统监督学习的意图识别方法并不适用于小语种意图识别。
3.(1)意图识别概述
4.早期的意图识别基于语句规则进行分类,由人工预先制定规则模板,支持的检测对象仅局限在高度符合模板的用户语句,无法适应自然对话。随着统计学方法以及机器学习方法的研究,大量比较成熟的分类模型,例如朴素贝叶模型,支持向量机模型等,都被用于意图识别领域,并取得了比较好的效果。2014年,陈浩辰在“基于微博的消费意图挖掘”中,针对消费意图检测任务使用朴素贝叶斯模型和支持向量机模型在微博语料分别进行了测试,两种方法均取得了出色的测试结果。为了应对标准分类模型对较复杂语句的识别错误情况,研究人员试图通过优化单词嵌入和预先提取特征来辅助进行意图识别。但是,这种基于统计的机器学习方法较为依赖人工经验确定的特征和训练数据集,并没有考虑到会话语句的上下文信息。
5.近年来,深度学习方法较多地被应用于意图识别领域。与传统机器学习方法相比,深度学习方法可以通过单词序列更好地提取对话语句特征。2014年,kim等人提出将卷积神经网络应用于文本分类任务,随后,刘龙飞等人提出使用卷积神经网络提取文本特征,并用于用户情感分析。卷积神经网络(cnn)在图像检测领域已经得到了广泛应用,其并行性高,能够通过窗口的位置变化识别局部特征。但是卷积神经网络难以捕获长距离特征,而且卷积神经网络中的池化层非常不利于语言中重要序列信息的保留。
6.不同于卷积神经网络,循环神经网络(rnn)采用线性序列结构,能够在一定程度上捕获序列信息,也是一种在提取文本特征中取得较好效果的神经网络。但是由于循环神经网络的反向传播路径比较长,一方面,网络前期输入的信息对结果的影响可能微乎其微,另一方面也会随之产生梯度消失,梯度爆炸等问题。为了解决上述问题,hochreiter等人对循环神经网络(rnn)进行了改进,提出了长短期记忆网络(lstm),通过门机制给予信息选择性传输的能力,长短期记忆网络更加类似人类的记忆模式,在文本特征提取任务取得了比较好的效果。最近,在cnn与rnn(lstm)的基础上,产生了很多变体,可以针对特定需求解决特征提取问题,例如门控循环单元(gru)模型。
7.最近,

bert:pre-training of deep bidirectional transformers for language understanding.in conference of the north american chapter of the association for computational linguistics’中,提出预训练模bert,它可以解决众多自然语言处理问题,它是在transformer架构基础上构建的一种优秀的深度模型。模型参数通过预测输入中的随机掩蔽词来进行训练。训练好的模型可以用于文本分类、单词嵌入表示学习、意图识别等任务。
8.神经网络模型的一个重要优点是解决特征工程问题。非神经网络的自然语言处理方法通常严重依赖离散的人工特征,然而神经网络通常利用低维且密集的向量表征语言的句法和语义特征。在特定的自然语言处理任务中,模型可以学习到不同的向量表示,因此,神经网络使得搭建不同的自然语言处理系统更加简单。
9.(2)小样本意图识别概述
10.在传统的意图识别中,深度神经网络模型通常需要利用大量的训练数据来取得能够真实应用的效果。此外,深度神经网络的参数量是巨大的,因此它在小数据集上容易发生过拟合,在实践中不能具有良好的泛化能力。但在真实的应用场景下,大量的标注数据集是非常昂贵的并且不容易实现,同时,随着时间的推进,应用场景可能会出现变化,新的意图标签会出现。尤其在小语种语料获取的初期阶段,标注的数据是非常稀少的,并且会不断出现新的意图。模型如何适应数据量少并且不断出现新的类别是一个非常重要的研究方向。在数据量受限的情况下,数据驱动的传统深度学习技术难以解决过拟合以及泛化能力弱的问题。
11.现有研究中主要有以下几种方法可以解决标记数据稀缺的问题。数据扩充是一种比较直接的方式,它主要使用数据增强技术来缓解标记数据不足,提高数据的多样性。数据扩充的常见方法是利用无标签数据,使用半监督学习来对未标记数据进行标记,从而实现标记数据的扩充;或者采用对标记数据进行变换、加噪声,以及利用生成对抗网络(gan)生成数据等方式进行标记数据扩充。模型微调是另一种借助其它领域的数据知识来缓解当前领域标记样本有限的方法。它主要是利用某一相关领域的数据训练一个模型,然后对训练好的模型参数在本领域上进行微调来获取新的训练模型。但是,这些方式都是在传统分类的基础上,通过弥补小样本数据量不足的缺点进行的局部改进,并不是从根本上直接适应小样本分类的方法。不同于上述方法,小样本学习受人类学习范式的启发,借助从以前的类别中学习到的先验知识,实现对少量标记的类别(意图)进行预测。
12.目前,在机器学习和人工智能领域,小样本学习技术逐渐兴起。小样本学习的优势在于它可以在每类只有少量甚至个位数标记数据的情况下实现类别预测,因此能有效突破小语种语料不足的障碍。目前的小样本学习方法主要基于元学习的思想,即在训练时模拟标记数据缺失的测试场景,将训练数据拆分成大量只包含很少标记数据的任务;然后利用这些任务训练模型,并将模型迁移到新类的预测中。这些方法根据类型可以划分为基于模型的方法和基于度量的方法。
13.基于模型的方法主要通过大量不同的任务训练学习器的模型,最后学习到一个较好的模型参数。例如,mann提出使用记忆增强的方法来解决小样本学习任务。该方法基于神经网络图灵机的思想,因为神经网络图灵机的能通过外部存储进行短时记忆,并能通过缓慢权值更新来进行长时记忆,神经网络图灵机的可以学习将表达存入记忆的策略,以及如
何用这些表达来进行预测。maml的核心思想是学习模型的初始化参数使得在一步或几步迭代后在新任务上的精度最大化。它学的不是模型参数的更新函数或是规则,它不局限于参数的规模和模型架构。它本质上也是学习一个好的特征使得可以适合很多任务(包括分类、回归、增强学习),并通过模型微调来获得好的效果。
14.基于度量的方法希望为所有任务学习一个统一的距离度量,确保类内样本距离较小,而类间样本距离较大。例如,匹配网络提出为支持集和测试集分别学习不同的编码器,然后构造一个支持样本与测试样本之间的距离度量,利用类似knn分类策略来预测测试数据的类标签。原型网络提出每个类别都存在一个原型表达(类中心),该类的原型是支持样本在嵌入空间中的均值,然后通过距离度量计算测试数据与原型之间的距离来进行分类。关系网络提出度量方式也是分类中非常重要的环节,需要对其进行建模,因此该网络不满足单一且固定的距离度量方式,而是训练一个网络来学习(例如cnn)距离的度量方式。此外,关系网络在损失函数方面也有所改变,考虑到关系网络更关注测试数据和各类原型之间的关联值,这更像一种回归问题,而非分类问题,所以该方法使用了最小化平方误差来代替交叉熵损失。
15.虽然关于小样本学习方法的研究获得了越来越多的关注,但是汪航等在《基于小样本学习的sar图像识别》中指出,现有小样本学习方法主要针对计算机视觉领域的图像识别,对于自然语言处理领域的意图识别方面的研究还非常匮乏。这主要是由于在计算机视觉领域,低级模式(例如像素)很容易在任务之间共享和迁移。但是在自然语言处理中,任务之间缺乏共享的低级模式,因为在某个任务中具有类别区分能力的单词可能在其它任务中没有意义。robusttc考虑到任务之间的差异性,将任务通过聚类方式划分成组,针对不同组的任务分别训练预测模型。inductionnet在每个类学习一个原型(类中心)时,特别引入了动态路由算法,为每类的数据自动分配权重,避免了前期方法——原型网络只能通过求平均的粗暴方式来学习原型。
16.(3)小样本意图识别缺点分析
17.从应用层面上,这些小样本意图识别方法都是针对英文或中文数据进行意图识别,还没有针对小语种数据的意图识别。从技术层面上,这些方法只用单一的向量对用户会话进行刻画,忽略了用户意图表达多样化对意图识别的干扰。小语种意图识别的难点之一在于因为语料较少且相关研究很少,因此单词的嵌入表示较难获取,而单词嵌入表示是意图识别的必备项。另一个难点在于一个语句中的单词重要性通常是不同的,而现有小样本意图识别方法将所有单词一视同仁,这种缺乏针对性的学习不利于意图预测。此外,一个意图通常是由多个语义一起决定的,而现有小样本意图识别方法只是简单地将这些语义混合起来,只为每个语句学习一个向量表示,这很容易混淆意图,而且不符合人类思维方式。


技术实现要素:

18.目前的意图识别方法主要集中在英语和汉语等大语种的研究中,还没有关于小语种的研究工作。本发明目的在于,克服小语种数据有限的不足,针对以文字形式呈现的小语种对话语句,提出一种针对小语种的小样本意图识别方法,用于离线的小语种意图识别。
19.一种针对小语种的小样本意图识别方法,包括如下步骤,
20.(一)、数据预处理;
21.s1:选取小语种,进行小语种语料的收集;收集的小语种对话语句附加小语种意图标签的最终格式为“小语种意图#小语种对话语句”;
22.s2:利用分词器对小语种对话语句分词,分离词性不同的相连单词;
23.s3:收集无意图标签标记的小语种语料,预训练bert模型,采用bert模型通过双向循环神经网络模型建立学习单词嵌入表示矩阵;
24.给定一具有t个单词的语句x={w1,w2,

,w
t
},其中,代表第t个单词的词向量,词向量由bert预训练模型得到;每个单词的词向量使用一个双向循环神经网络模型进一步编码;
[0025][0026][0027]
其中,lstm
fw
和lstm
bw
分别对应前向和后向lstm,和分别对应单词w
t
从lstm
fw
和lstm
bw
学习到的隐藏状态;是单词w
t-1
从lstm
fw
学习到的隐藏状态,是单词w
t-1
从lstm
bw
学习到的隐藏状态;单词w
t
对应的总向量是该语句的隐藏状态矩阵即单词嵌入表示矩阵是
[0028]
s4:对步骤s1收集的由小语种意图标签标记的数据进行小样本任务划分;
[0029]
采用c-wayk-shot任务划分方式对收集的对话语句进行小样本任务划分;在每个小样本任务中,数据由c类构成,每个类包含k个数据;
[0030]
(二)、方法设计;
[0031]
s5:通过自注意力机制和非线性激活函数构建单词重要性学习模型,输出单词重要性;
[0032]
通过自注意力机制和softmax非线性激活函数,从单词嵌入表示矩阵获取语句中单词的重要性权重:
[0033]
a=softmax(f2relu(f1h)),
[0034]
其中,和是分别自注意力机制的模型参数,是权重分配矩阵;relu是线性整流函数;r代表语句包含的语义个数;当r=1时,单词重要性权重a由一个向量构成,表示单词在语句中的权重;当r>1时,会获得r个单词重要性权重向量,即把一个语句分解为r个语义表示,每个语义表示都对应一个单词重要性权重向量;
[0035]
s6:提出层次化的多语义特征提取模型,进行多语义学习;
[0036]
给定一个包含t个单词的句子,通过步骤s5获得其单词与语义间的权重分配矩阵a,a(r,i)代表第i个单词对于第r个语义的重要程度;根据单词与语义的权重分配矩阵获得句子的对话层面的多语义特征表示:
[0037]
m=ha
t

[0038][0039]
从对话层面的多语义特征表示中进一步抽取z个意图层面的多语义特征表示;
[0040]
针对对话层面的多语义特征表示运用映射矩阵,获得映射后的对话层面的多语义特征表示;
[0041][0042]
其中,为第z个意图语义空间的映射矩阵;
[0043]
第z个意图层面的多语义特征表示通过对r个映射后的对话层面的多语义特征表示进行加权求和:
[0044]
lz=mz(αz)
t

[0045]
其中,lz为第z个意图层面的多语义特征表示;代表r个对话层面语义与第z个意图层面语义之间的权重向量;
[0046]
通过单头注意力机制自动计算第z个意图层面语义对应的权重向量;
[0047]
αz=softmax(aztanh(gzm)),
[0048]
其中,是单头注意力机制的模型参数,tanh是非线性激活函数;
[0049]
重复z次单头注意力机制,获取z个意图层面的多语义特征表示;
[0050][0051]
s7:构造语句和原型之间的关联网络,实现对测试语句的意图识别;
[0052]
每个小样本任务分为支持集和查询集;支持集指示类别的特有信息,查询集用于指导关联网络模型的意图预测;
[0053]
每个测试语句通过步骤s6获取多语义特征,每个小样本任务的支持集由多语义特征表示,支持集数据为每个类学习一个多语义原型,每类有k个由小语种意图标签标记的样本;根据支持集中语句的多语义特征表示获取每个类原型;构建学习测试语句与类原型间相关程度的关系网络;相关程度最大的类原型对应的类别为该测试语句的预测意图;
[0054]ⅰ.多语义原型学习
[0055]
代表第c个类的支持集,分别代表第k个数据及其意图标签;代表的意图层面语义特征表示,第c个类的支持集中k个数据的第z个意图层面的语义特征表示为
[0056][0057]
其中,代表的第z个意图层面的语义特征表示;
[0058]
支持集有c个类原型每个类原型pc由z个意图层面语义特征构成,第c个类的第z个意图层面的语义特征表示构成原型
[0059][0060][0061]
其中,为原型计算的模型参数,为k个数据计算原型的权重向量;
[0062]
重复计算z次获得第c个类的原型;
[0063][0064]ⅱ.语句与原型间关系网络
[0065]
测试语句属于第c个类的概率通过计算其语义表示和第c个类的原型间关联值获
取;
[0066]
d(lq,pc)=sigmoid(v
t
sc o),
[0067]
其中,lq为测试语句的语义特征表示,v和o均为关联函数d(lq,pc)的模型参数,是lq和pc之间在所有z个意图语义上的权重向量,是lq和pc之间在第z个意图语义上的关系权重;
[0068]
计算lq和第c个类的原型pc在第z个意图层面语义特征表示上的关系权重;
[0069][0070]
其中,lq(z)和pc(z)表示lq和pc的第z列,是lq(z)和pc(z)之间的平方欧几里得距离;
[0071]
s8:设计损失函数,包括最大化互信息分类损失、引入意图描述来约束多语义特征、语义权重正交化的去冗余机制;
[0072]ⅰ.最大化互信息分类损失,目标函数为;
[0073][0074]
其中,d代表关联函数d(lq,pc)和中的模型参数集合,g代表生成测试语句和原型的特征表示模型参数集合;代表期望,lq或是随机变量q的观察,分别代表数据q和的意图层面多语义特征表示,pc是随机变量p的观察,代表第c个类的原型;q是查询数据的索引,q∈{1,2,

,n},c代表类标签,c∈{1,2,

,c},yq是查询数据q的类标签;是查询数据的类标签;pc是第c个类的支持集的多语义原型;
[0075]ⅱ.引入意图描述来约束多语义特征;
[0076]
测试语句i的类标签描述特征表示为ei,该测试语句在第z个意图层面的语义特征表示为(lz)i,约束公式为;
[0077][0078]
将约束公式作用在支持集数据上,得到小样本任务的意图描述约束公式
[0079][0080]
其中,m是每个小样本任务中支持集数据的个数;
[0081]ⅲ.语义权重正交化的去冗余机制;
[0082]
语义权重正交化包括两部分,
[0083]
第一部分确保每个语句的不同语义特征由不同的单词构造;
[0084][0085]
其中,‖‖f是矩阵的f范数;
[0086][0087]
其中,ai代表第i个语句的单词和语义特征之间的权重矩阵,通过s5计算得到;m n是支持集和查询集中所有数据的个数;是小样本任务在语句层面的语义权重正交化约束公式;
[0088]
第二部分是确保每个语句意图层面的多语义特征多样性;
[0089][0090]
其中,γ=[α1,α2,

,αz];
[0091][0092]
其中,γi=[α1,α2,

,αz]代表第i个语句在语句层面和意图层面的语义特征之间的权重矩阵,通过s6计算得到;m n是支持集和查询集中所有数据的个数;是小样本任务在意图层面的语义权重正交化约束公式;
[0093]
由最大化互信息分类损失、引入意图描述来约束多语义特征、语义权重正交化的去冗余机制三部分损失函数整合成的最终损失函数为:
[0094][0095]
其中,γ1、γ2和γ3是权衡各部分损失函数的超参数。
[0096]
与现有技术相比,本发明的有益效果在于:小样本学习可以在每类只有少量甚至个位数标记数据的情况下实现类别预测,因此能有效突破小语种语料不足的障碍。同时发现了用户意图表达多样化对意图识别的干扰,从多语义的角度对对话语句进行特征建模和关系建模,确保了语句语义特征更接近真实意图特征,提高了小语种意图识别的准确性。
附图说明
[0097]
图1为针对小语种的小样本意图识别方法内容概览图。
[0098]
图2为针对小语种的小样本意图识别方法整体研究方案图。
[0099]
图3为针对小语种的小样本意图识别方法设计方案图。
[0100]
图4为单词重要性学习框架图。
[0101]
图5为多语义学习框架图。
[0102]
图6为多语义学习计算过程图。
[0103]
图7为意图识别预测框架图。
[0104]
图8为意图识别计算过程图。
具体实施方式
[0105]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0106]
本发明旨在采用小样本学习的方法对小语种对话进行意图识别,并将以日语为例进行技术验证。
[0107]
一种针对小语种的小样本意图识别方法,包含如下步骤:
[0108]
s1:选取日语小语种进行小语种语料的收集;
[0109]
s2:利用mecab分词器对日语对话语句分词;
[0110]
s3:收集无意图标签标记的小语种语料,预训练bert模型,采用bert模型通过双向循环神经网络模型建立学习日语单词嵌入表示矩阵;
[0111]
s4:对步骤s1收集的由小语种意图标签标记的数据进行小样本任务划分
[0112]
s5:通过自注意力机制和非线性激活函数构建单词重要性学习模型,输出单词重要性;
[0113]
s6:提出一个层次化的多语义特征提取模型来进行多语义学习;
[0114]
s7:构造一个语句和原型之间的关联网络,实现对测试语句i的意图识别;
[0115]
s8:设计损失函数;
[0116]
s9:小样本训练任务选取;
[0117]
s10:选用adam优化器对模型进行训练;
[0118]
s11:模型训练满足特定条件时自动保存模型参数;
[0119]
s12:根据多个性能评价指标评估小样本意图识别模型的测试性能。
[0120]
所述的步骤s5是针对语句中单词对于意图识别的作用不同,提出自动学习语句中单词重要性这一思想,具体实现如下:输入由bert预训练模型得到的对话,双向lstm模型可以对对话的单词特征进行一系列变换和降维,得到单词的词向量,然后输入特征表示、自注意力机制为每个单词学习出一个重要性权重。
[0121]
所述的步骤s6是针对语句中包含多种语义的现实问题,提出层次化多语义特征提取模型,具体实现如下:根据句子的单词与语义权重分配矩阵a获得句子的对话层面的多语义特征表示m,通过aa
t
=i保证每个单词对应一个语义,然后在m上应用一个映射矩阵gz得到mz,接着通过对mz进行加权求和计算得出第z个意图层面的多语义特征表示lz,对于z个意图层面特征表示的权重向量分别运用多头注意力机制获得z个意图层面的多语义特征表示。
[0122]
所述步骤s8提出一种最大化互信息损失函数,最大化同类未标记数据和已标记数据的交互信息,最小化异类未标记数据和已标记数据的交互信息,以最大化利用训练数据。引入额外的类标签描述信息,确保语句多语义特征更接近真实意图特征。对注意力权重进行正交约束,为多语义特征表示学习提供去冗余机制,语义权重正交化由两部分组成,第一部分用以确保每个语句的对话层面的多语义特征的多样性,即不同的语义特征倾向于由不同的单词构造,第二部分来确保每个语句的意图层面的多语义特征的多样性。
[0123]
针对小语种的小样本意图识别方法的实施包括数据预处理、方法设计、模型训练、模型测试四个阶段。如图1中所示,在对小语种对话语句进行意图识别的初始阶段,需要先进行数据预处理操作,即获取小语种对话语料和对语句进行意图标记,然后对自然语言进行一系列数字化处理,以便计算机可以读取对话语句。在进行数据预处理之后,就需要针对小语种对话进行方法设计,鉴于小语种标记数据有限,提出采用小样本学习技术来处理该问题。在小样本意图识别模型设计完成后,即可进入模型训练阶段。在模型训练过程中,需要在每次迭代过程中,根据训练性能,保存质量较好的模型。接下来是模型测试阶段,该阶
段主要测试模型在真实情况下测试未知意图的能力。
[0124]
如图2中所示,第一行是数据预处理部分,包括收集小语种语料、利用mecab库进行单词分词、利用大规模语料库预训练bert模型来学习单词嵌入表示、将数据标记并按c-wayk-shot设定模式划分多个小样本任务。随后,在小样本任务划分基础上,进行小样本意图识别的主体设计。第二行是小样本意图识别的主体部分,包括方法设计、模型训练、模型测试。其中方法设计部分可以进一步细化,包括单词重要性学习、多语义学习、意图识别、损失函数设计。损失函数设计中包括最大化互信息分类损失、引入意图描述来约束多语义特征、语义权重正交化的去冗余机制等。具体如图3所示,其中涉及多个模块,每个模块有具体的技术路线和方案,下面将对它们进行详细介绍。
[0125]
1.数据预处理
[0126]
(1)小语种语料收集
[0127]
依照研究目标收集日语小语种语料。语料涉及与人类衣食住行息息相关的对话语句,语句的意图是以整句话为单位进行标注的。考虑到直接定义意图比较困难,在语料收集初始阶段,以收集中文对话语句为主。首先,一共收集5000个意图明确的且与衣食住行相关的对话语句,然后根据这5000个语句抽象出142个意图。这些意图涉及旅游、银行、美食、询问等日常对话主题。随后在这些意图基础上进一步扩展意图,用于日语对话语句生成。最终,收集了35061个日语对话,在筛出5005个意图不明确的日语对话语句之后,剩余30056个日语语句(涉及161个意图)用于模型训练和测试。
[0128]
在收集完成日语语句后,将对这些语句附加上日文意图标签。由于初始获取的日语对话语句比较粗糙,例如存在一些额外的字母和用词不正确的情况,还会对这些语句进行一次校正。
[0129]
每条语句用统一的格式进行呈现,格式为“日文意图#日语对话”。这里以本发明使用的一条对话语句为例进行说明:景勝地


ねる
#中国

自然

風景


しむのに

した
景勝地
はありますか
。其中,日语意图和日语对话语句参与到模型的训练和测试过程。
[0130]
(2)对语句分词
[0131]
日文与英文不同,英文语句天然带有空格,日语属于黏着语,它最大的特点是依靠在实词后面粘附虚词的手段来表示句中的语法关系。其次,日语的动词和形容词等有多种形态变化,但它们的语义是不变的,因此对这些词进行精确的词根和词缀分析是非常重要的。最后决定选择mecab分词器对日语对话语句进行分词。
[0132]
下面以日语对话为例,展示mecab分词后的语句。
[0133]
分词前:
[0134]
景勝地


ねる
#中国

自然

風景


しむのに

した
景勝地
はありますか

[0135]
分词后:
[0136]
景勝地


ねる
#中国

自然

風景


しむのに

した
景勝地
はありますか

[0137]
从上述分词效果可以看出mecab的分词质量良好,它能够将词性不同的相连单词有效分离。接下来,将在该分词基础上进行单词嵌入表示学习。
[0138]
(3)学习单词嵌入表示
[0139]
小语种语言缺少可用的单词嵌入表示。利用大规模语料库预训练bert模型来学习单词嵌入表示。语言预训练模型需要喂入一些自然语言语句,采用监督或无监督的方式进
行训练。由于小语种语句缺少标记信息,所以提出收集无标记的小语种语料来训练语言预训练模型,从而输出单词的嵌入表示。
[0140]
(4)划分小样本任务
[0141]
由于小样本意图识别方法是针对少量标记的数据设计的,因此不能像传统监督学习方法那样去处理数据。理想的方式是只喂给小样本学习模型少量标记数据,让模型从少量监督知识中获取意图识别的能力。因此本发明在设计方法前,还需将标记数据划分为若干个小样本任务,它是当前小样本学习的常见划分模式。具体来说,小样本学习采用常用的c-way k-shot任务划分方式对收集的对话语句进行任务划分。
[0142]
2.方法设计
[0143]
(1)单词重要性学习
[0144]
通过双向lstm模型和自注意力机制构建一个学习单词重要性的神经网络。如图4中所示,双向lstm模型可以对单词特征进行一系列变换和降维,自注意力机制可以为每个单词学习出一个重要性权重。
[0145]
在前述的数据预处理阶段,bert模型用于学习语句中每个单词的嵌入表示,单词嵌入表示是进行后续单词重要性学习的必要条件。但bert模型输出的单词维度较高,有768维,导致后面的模型参数较多,不适合对少量标记样本进行训练。因此需要构建网络对单词嵌入表示进行降维。在降维时,需要确保单词的上下文信息和句子的时序信息得以保留。双向lstm是一种专门处理自然语言的神经网络,它考虑了单词的上下文信息和句子的时序信息,为单词的特征映射和降维提供了更可靠的机制。
[0146]
给定一个具有t个单词的语句x={w1,w2,

,w
t
},其中代表第t个单词的词向量,它是由bert预训练模型得到的。每个单词的词向量使用一个双向循环神经网络lstm进一步编码得到,即:
[0147][0148][0149]
其中,lstm
fw
和lstm
bw
分别对应前向和后向lstm,和分别对应单词w
t
从lstm
fw
和lstm
bw
学习到的隐藏状态;是单词w
t-1
从lstm
fw
学习到的隐藏状态,是单词w
t-1
从lstm
bw
学习到的隐藏状态;单词w
t
对应的总向量是该语句的隐藏状态矩阵即单词嵌入表示矩阵是
[0150]
为了表示清晰,本发明使用d=2dh代表隐藏状态的维度,最终得到了整句话的单词嵌入表示矩阵通过上述公式,每个单词w
t
分别从前向单词和后向单词学习融合上下文信息的嵌入表示。此外lstm可以起到对单词进行特征映射和降维的作用。
[0151]
给定t个单词的特征映射后的表示h,通过如下自注意力机制和softmax非线性激活函数,可自动获取语句中单词的重要性权重:
[0152]
a=softmax(f2relu(f1h)),
[0153]
其中,和是分别自注意力机制的模型参数,是权重分配矩阵;relu是线性整流函数;r代表语句包含的语义个数;当r=1时,单词重要性权
重a由一个向量构成,表示单词在语句中的权重;当r>1时,会获得r个单词重要性权重向量,即把一个语句分解为r个语义表示,每个语义表示都对应一个单词重要性权重向量;
[0154]
这些单词重要性权重决定它们在表示整个语句的特征时所占的比例。权重越高,参与语句特征表示学习的程度越高。
[0155]
(2)多语义学习
[0156]
由于用户表达的多样性,具有相同意图的对话语句不可能具有完全相同的语义特征表示。因此,进一步从语句中抽取多语义特征。
[0157]
一段话中通常包含多个与意图相关的语义,传统的小样本意图识别方法只为每段话学习一个特征表示,这很容易将不同语义的信息混淆在一起,不利于学习高质量的特征表示。人类在分析语句的意图时,他们通常会采用层次化推理的策略,即首先从单词中抽取几个对话层面的多语义特征(将相关联的单词汇总为词组),然后进一步从词组推断意图层面的多语义特征。
[0158]
本发明提出一个层次化的多语义特征提取模型。如图5中所示,单词重要性权重会参与到多语义特征表示的学习中,意图层面的多语义特征是在初级的对话层面多语义特征之上学习到的。
[0159]
假设一个句子包含t个单词,r个初级语义,这个句子的单词与语义的权重分配矩阵为a,a(r,i)代表第i个单词对于第r个语义的重要程度,通过公式m=ha
t
可以获得句子的对话层面的多语义特征表示
[0160]
为了避免一个单词分配给多个语义,还需确保单词与语义的分配矩阵a是正交的,即aa
t
=i。通过这个操作,可以保证每个单词对应一个语义,避免学习到冗余的特征表示。
[0161]
假设每个对话语句有z个意图层面的多语义特征表示,针对每一个语句,本发明从对话层面的多语义特征表示m中进一步抽取z个意图层面的多语义特征表示。
[0162]
具体来说,为了获取第z个意图层面的多语义特征表示,首先在对话层面的多语义特征表示m上应用一个映射矩阵即然后第z个意图层面的多语义特征表示lz通过对r个映射后的对话层面的多语义特征表示mz进行加权求和来计算,具体计算公式为:
[0163]
lz=mz(αz)
t

[0164]
其中,代表r个对话层面语义与第z个意图层面语义之间的权重向量。
[0165]
对于第z个意图层面的特征表示的权重向量,它可以通过单头注意力机制自动计算。其计算公式如下:
[0166]
αz=softmax(aztanh(gzm)),
[0167]
其中,是单头注意力机制的模型参数,tanh是非线性激活函数。
[0168]
重复z次单头注意力机制,获取z个意图层面的多语义特征表示:
[0169][0170]
其中,l是最终学习到的语句多语义特征表示,图6描述了上述层次化多语义特征表示的计算过程。
[0171]
(3)意图识别
[0172]
在小样本学习中,每个任务都分为支持集和查询集。支持集指示类别的特有信息,
查询集用于指导模型的意图预测。由于语句是由多语义特征共同表示的,本发明提出一种多语义原型网络来处理意图识别问题,包括根据各类标记数据为每类学习多语义特征表示、构建关系模型来衡量测试数据的多语义特征表示与各类的多语义特征表示之间的关联程度,进而更精确地针对对话语句的意图展开分析。
[0173]
如图7中所示,每个测试语句根据多语义学习模块获取多语义特征,每个任务的支持集数据也由多语义特征表示,这些支持集数据可以进一步为每个类学习一个多语义原型,通过构造一个语句和原型之间的关联网络,即可对测试语句进行意图预测。
[0174]
在图7中,由于支持集采用c-wayk-shot的设定,即每类有k个标记样本,因此可以根据支持集中句子的多语义表示l获取每个类的原型(类中心)。然后构建一个关系网络学习测试语句与类原型之间的相关程度。相关程度最大的类原型对应的类别就是该测试语句的预测意图。
[0175]ⅰ.多语义原型学习
[0176]
对于一个训练任务和它的支持集,令代表第c个类的支持集,分别代表第k个数据及其意图标签。代表的意图层面语义特征表示,第c个类的支持集中k个数据的第z个意图层面的语义特征表示为
[0177][0178]
其中,代表的第z个意图层面的语义特征表示;
[0179]
因为每个任务有c个类,所以支持集有c个类原型每个类原型pc由z个意图层面语义特征构成,第c个类的第z个意图层面的语义特征表示构成原型其计算公式为:
[0180][0181][0182]
其中,为原型计算的模型参数,为k个数据计算原型的权重向量。
[0183]
重复计算z次获得第c个类的原型:
[0184][0185]ⅱ.语句与原型间关系网络
[0186]
假设现在有一个测试语句,其语义特征表示为lq,则语句属于第c个类的概率通过计算lq和第c个类的原型pc之间的关联值获取,具体公式为:
[0187]
d(lq,pc)=sigmoid(v
t
sc o),
[0188]
其中,v和o均为关联函数d(lq,pc)的模型参数,是lq和pc之间在所有z个意图语义上的权重向量,是lq和pc之间在第z个意图语义上的关系权重。通过sigmoid非线性激活函数,d(lq,pc)被限制在0到1之间。d(lq,pc)的计算过程本质上是一个逻辑回归。
[0189]
lq和第c个类的原型pc在第z个意图层面语义特征表示上的关系权由下式计算:
[0190][0191]
其中,lq(z)和pc(z)表示lq和pc的第z列,是lq(z)和pc(z)之间的平方欧几里得距离。
[0192]
语句的意图通过d(lq,pc)的计算获得,d(lq,pc)是语句q属于第c个类的概率,它的值越大说明语句越属于第c个意图。
[0193]
(4)损失函数设计
[0194]
本发明采用的损失函数包括三部分:最大化互信息分类损失、引入意图描述来约束多语义特征、语义权重正交化的去冗余机制。下面对这些子模块的实现进行详细介绍。
[0195]ⅰ.最大化互信息分类损失
[0196]
为了适应小样本学习任务,提出一种最大化互信息的分类损失函数,其目标公式如下所示:
[0197][0198]
其中,d代表关联函数d(lq,pc)和中的模型参数集合,g代表生成测试语句和原型的特征表示模型参数集合;代表期望,lq或是随机变量q的观察,分别代表数据q和的意图层面多语义特征表示,pc是随机变量p的观察,代表第c个类的原型;q是查询数据的索引,q∈{1,2,

,n},c代表类标签,c∈{1,2,

,c},yq是查询数据q的类标签;是查询数据的类标签;pc是第c个类的支持集的多语义原型。
[0199]
上述最大化互信息分类损失的目的是最大化同类中数据lq和原型pc的关联值,最小化类间未标记数据和原型pc的关联值。
[0200]
从信息论的角度,最大化互信息分类损失实际上是在最大化查询数据和原型之间的交互信息,即最大化两者之间的相关程度。这可以通过定理1证明。
[0201]
定理1:给定两个随机变量q和p,它们的观察点分别为查询数据和原型,其中lq和pc是它们的特征表示,则最大化损失函数等价于最大化随机变量q和p之间的交互信息,即
[0202][0203]
证明:损失函数能够被进一步用公式表示为:
[0204][0205]
其中,(q,p)代表一对查询数据和原型的观察点,是(q,p)的联合分布,是随机变量q和p的边缘分布的乘积。当查询数据q和原型p来源于同类时,(q,p)服从联合分布当查询数据和原型p来源于不同类时,(q,p)服从边缘分布
[0206]
根据生成对抗网络的理论分析,当判别器最优时,即损
失函数将最大化。这时最大化的损失函数可以被改写为
[0207][0208]
该式表明最大化损失函数等价于计算联合概率分布和边缘分布的乘积之间的杰森香农散度。由于kl散度与jsd散度之间具有相似的单调关系,因此最大化损失函数可以被近似估计为联合概率分布和边缘分布的乘积之间的kl散度,也就是
[0209][0210]
由于就是随机变量q和p之间的交互信息mi(q;p),因此可推导出
[0211][0212]
最终可得
[0213]ⅱ.引入意图描述来约束多语义特征
[0214]
考虑到每个任务中标记样本量十分有限,每个类只有k个标记样本,本发明引入类标签的描述信息来弥补标记样本量不足的问题。
[0215]
对于每个对话语句,为了使它的意图层次多语义特征表示尽可能接近它的真实意图特征,引入它的意图描述的嵌入表示。假设测试语句i的类标签描述特征表示为ei,该测试语句在第z个意图层面的语义特征表示为(lz)i,约束公式为:
[0216][0217]
其中,gz是一个特征映射矩阵,它能够将意图描述的特征表示映射到与语句相同的空间中。标签描述特征由描述单词的特征向量加和求平均获得的。描述中的单词首先通过bert模型学习获取,然后采用双向lstm模型进行降维。
[0218]
由于将约束公式作用在每个任务的所有数据上会导致支持集和查询集中的数据具有相似的多语义特征,这会弱化关系网络的判别能力。因此本发明只将约束公式作用在每个训练任务的支持集数据上,具体公式如下:
[0219][0220]
其中,m是每个训练任务中支持集数据的个数。
[0221]ⅲ.语义权重正交化的去冗余机制
[0222]
鉴于每个语句包括对话层面的多语义特征表示和意图层面的多语义特征表示,因此语义权重正交化由两部分构成。
[0223]
第一部分是确保每个语句的对话层面的多语义特征的多样性,即不同的语义特征倾向于由不同的单词构造。单词与语义层面的多语义特征的权重储存在矩阵a中,a的每一列代表每个单词与r个语义之间的权重。对话层面的语义特征的多样性可以通过对a的每一行进行正交约束实现,具体公式为:
[0224][0225]
其中,‖‖f是一个矩阵的f范数。将上述正交化公式应用在每个训练任务的所有支持集和查询集数据上,即可得到如下正交化约束项:
[0226][0227]
其中,ai代表第i个语句的单词和语义特征之间的权重矩阵,m n是支持集和查询集中所有数据的个数,是小样本任务在语句层面的语义权重正交化约束公式。
[0228]
第二部分是确保每个语句的意图层面的多语义特征的多样性。对于每个语句,r个语句层面的语义和第z个意图层面的语义特征表示存储在αz中。令γ=[α1,α2,

,αz],意图层面的语义特征的多样性通过对γ的每一列进行正交约束实现,具体公式为:
[0229][0230]
将上述正交化公式应用在每个训练任务的所有支持集和查询集数据上,得到如下正交化约束项:
[0231][0232]
其中,γi=[α1,α2,

,αz]代表第i个语句在语句层面和意图层面的语义特征之间的权重矩阵,m n是支持集和查询集中所有数据的个数,是小样本任务在意图层面的语义权重正交化约束公式。
[0233]
由最大化互信息分类损失、引入意图描述来约束多语义特征、语义权重正交化的去冗余机制三部分损失函数整合成的最终损失函数为:
[0234][0235]
其中,γ1、γ2和γ3是权衡各部分损失函数的超参数。
[0236]
3.模型训练
[0237]
(1)小样本训练任务选择
[0238]
根据小样本任务设定,训练任务和测试任务的类别是没有交集的,因此在模型训练前,需要设定好训练的类别集合。然后从训练类别集合中随机抽取c个类构造一个小样本任务,最终进行多次随机抽取用于构造多个小样本训练任务。在每个小样本任务中,每个类选取k个数据构成支持集,再从每个类剩余的数据中随机选取q个数据构成查询集。在训练任务中,查询集中数据的类别也是标记过的,支持集和查询集一起参与训练模型。在测试任务中,支持集中的数据是标记过的,查询集中的数据不用标记,本发明将它们标记是出于评估模型预测性能的需要。
[0239]
(2)优化器选择
[0240]
本发明采用adam优化器对模型进行训练,adam首先计算梯度方向的指数移动平均数,考虑之前时间的梯度动量。然后对梯度的平方进行加权平均。最后修正梯度均值,再修正梯度平方均值,结合学习率、梯度均值、梯度方差优化模型参数。
[0241]
(3)模型检查点保存条件
[0242]
由于训练一次数据集得不到想要的结果,所以需要对模型进行多次训练。在模型
训练时,需要设定训练的总次数。由于训练任务量庞大,所有任务不能一次全部加载到内存中,因此采用批量训练模式。但批量训练会导致损失函数值和准确率波动,因此需要根据损失函数值和准确率保留质量较好的模型参数。
[0243]
一般来说,训练准确率越高,损失函数值越小,模型性能通常越好。在模型训练时,只要满足以下两个条件之一,就会自动保存模型参数。
[0244]

随着迭代次数的增加,当训练准确率变大,同时损失函数变小。
[0245]

随着迭代次数的增加,当两次迭代的训练准确率小于0.0005,同时损失函数变小。
[0246]
如果上述条件均不满足,则说明模型性能存在变坏的风险。当上述条件连续不满足次数达到60,则模型停止训练。
[0247]
4.模型测试
[0248]
在模型测试阶段,本发明设置测试类别集合。从该测试类别集合中,随机抽取c个类构造一个小样本任务。在每个小样本任务中,每个类选取k个数据构成支持集,再从每个类剩余的数据中随机选取q个数据构成查询集。在测试任务中,查询集中数据的类别是未标记的。
[0249]
根据准确率、精确率、召回率和f值指标,在测试环节构造多个测试任务,首先将测试任务中的支持集输入整个模型中,用于计算多语义原型。然后将测试任务中的查询集(测试集)输入到整个模型中,进行意图预测。最后将预测的意图和真实意图进行性能指标计算。
[0250]
在30056条日语对话数据集上进行意图识别训练和测试。日语对话一共有161个意图,其中137个意图用于训练,生成10000个训练任务;24个意图用于测试,生成2000个测试任务。这里每个训练和测试任务包含5个意图,训练任务和测试任务之间的意图没有交集。当支持集中每类有10个标记对话,测试集中每类有20个未标记对话时,模型测试准确率为83.78%。
[0251]
5.消融实验
[0252]
为了验证本发明提出的小样本意图识别方法在日语小语种数据集上的有效性,本发明对该方法的各模块进行测试评估。
[0253]
首先测试多语义学习的必要性,本程序将对话层面和意图层面的语义个数均设置为1,将本版本称为our-single。
[0254]
然后测试损失函数中各约束项的作用,将不引入意图描述特征的版本称作our(γ1=0),将不对对话层面的注意力权重进行正交化约束的方法称作our(γ2=0),将不对意图层面的注意力权重进行正交化约束的方法称作our(γ3=0)。最后,对于本发明提出的小样本意图识别方法our,它的主要参数设置如下表所示。
[0255]
表1各参数设置示意表
[0256][0257]
本实验一共有161个意图,其中24个意图用于测试评估,它们分别是:
[0258]
datasetting['unseen_class']=[['
エアコンを
設置
する
'],['歴史的

出来事'],['睡眠

質'],['靴

修理
する
'],['服



'],['散髪'],['
セーターを


'],['手作

'],['海外



'],['
タイマーを
設定
する
'],['人生

意味'],['
コインを

げる
'],['銀行
コード
'],['支払

期限'],['
レストランを
提案
します
'],['休暇申請'],['
オイル
交換'],['材料'],['
ガス
'],['面白

事実'],['
カードが
拒否
されます
'],['
プレイリストに
追加
する
'],['車


りる
'],['詐欺

報告
する
']]。
[0259]
本发明从其余137个意图中构建10000个小样本训练任务对模型进行训练,然后从上述24个意图中生成2000个小样本测试任务,利用训练好的模型对这些小样本测试任务进行性能评估,评估标准包括准确率、精确率、召回率、f值,然后计算这些测试任务的平均性能。
[0260]
本方法的其它版本与本发明提出的方法(our)的性能结果展示如下。
[0261]
表2各方法关键参数对比
[0262][0263]
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人
员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
再多了解一些

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

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

相关文献