基于度量学习的意图识别和槽填充方法

2021-12-01 05:26衣景龙赵铁军
智能计算机与应用 2021年8期
关键词:胶囊向量意图

衣景龙,赵铁军

(1 哈尔滨工业大学 计算机科学与技术学院,哈尔滨 150001;2 哈尔滨工业大学 机器智能与翻译实验室,哈尔滨 150001)

0 引言

近年来,深度学习方法被广泛应用于计算机视觉以及人机对话等人工智能的多个领域[1],并极大地推动了这些领域的发展。但目前的深度学习方法都需要大量的标注训练数据,而在工业界应用的过程中,很难获得大规模标注好的数据。以任务型对话系统为例,在系统研发时很难获得大量的用户对话语料,若获取了大量的对话数据,也面临着人工标注成本高昂的窘境。同时,像任务型对话系统等类似的线上应用如百度的小度[2],用户的需求往往变化比较频繁,会导致数据标注和模型训练反复进行。因此,小样本场景下对自然语言理解技术的研究,成为本课题的重中之重。在目前的人机对话系统研究中,意图识别和槽填充任务的效果往往是影响人机对话系统性能的关键。小样本场景下的意图识别和槽填充任务面临着许多挑战:由于样本量不足,模型往往难以学到足够的语言知识;现有的基于原型向量的小样本下的分类方法,往往会损失信息。另外,还涉及到意图识别和槽识别任务如何结合等问题。

目前,小样本场景中的自然语言理解方法已经取得了不错的进展,文献[3]中提出了基于原型向量计算的非参学习的阈值调整方法用于小样本下的多意图分类,取得了较好的实验效果。阿里巴巴团队提出基于BERT 的预训练联合识别模型[4],用BERT 动态表征词的多义性,解决一词多义的问题,在ATIS 数据集上意图识别的准确率达到了97.5%,槽填充的F1 值达到了96.1%的结果。本文提出了加入预训练语言模型Fine-tune 方法和胶囊网络动态计算原型向量的方法,有效改善了小样本场景下的自然语言理解效果。

1 Fine-tune 方法

以BERT 为代表的预训练模型[5]是在海量数据上训练得到的,虽然含有大量的先验语言知识,可以在小样本场景下提高小样本学习的性能,但当应用于不同的数据集时,往往需要微调,来使表征向量更为贴合新数据集的语义。

由于BERT 的预训练过程与本文的模型训练过程不一致,BERT 中CLS向量虽然被视为句子的表示向量,但其在训练过程中,却是用来对句子对之前是否是顺序关系做判断,这与本文在训练过程中对句子进行分类过程并不一致。当面临多任务时,预训练过程与训练过程不一致导致的误差会被放大。对此,本研究对模型进行了微调,在BERT 后,链接两个全连接输出层,一个接在CLS向量之后,用以进行意图分类,一个接在token向量之后用以进行槽填充。具体实现过程如下:

(1)在海量数据集(wiki)上训练出BERT 模型(也可直接调用已经训练好的)。

(2)在改进的BERT 后加一个全连接层,其参数随机初始化生成,直接调用CLS向量和各个词向量进行意图和槽的分类,进行Fine tune。

(3)丢弃第二步中的全连接层,将现在的BERT作为新的模型的编码器,后面接入小样本的意图识别和槽填充模型。

整体模型框架如图1 所示。

图1 预训练过程图Fig.1 Pre-training process

在本文中,源模型采用哈尔滨工业大学社会信息与检索团队预训练的中文语言模型,将该模型进行改进,在其后直接加一个全连接层进行分类,依次来弥合小样本数据与源预训练数据的分布误差后,舍弃掉全连接层,在其后加入小样本训练模型,用于原型向量的计算和匹配分类。因为在Fine tune 方法中可能会存在“灾难性遗忘”问题,因此在训练时可以固定BERT 编码器的参数,只训练小样本模型。当选择Fine tune 编码器时,还采用了学习率预热方法warm up,即在训练开始时使用一个较小的学习率,训练了一定的epoch 或者step 之后,再修改为原来设置的学习率来进行学习。这是因为最开始的时候,若学习率较大,模型可能不稳定,通过warm up的方式,可以在一定程度上避免模型震荡。

2 基于度量学习方法的意图识别和槽填充

通过BERT 编码器,提取出句子和字的表示向量,在Support Set 中将不同的意图标签和槽标签所对应的向量通过取平均等方式作为原型向量ci,同时利用BERT 编码器获取Ouery Set 中语句和字的表示向量与原型向量计算相似度,通过最近邻的思想来确定每个语句的意图标签和每个字的槽标签。

最初求原型向量的做法是对每个意图或槽所对应的向量直接取平均[6],但在每个句子中可能存在一些与意图无关的干扰信息,如果直接加和或者取平均的方式很容易导致这些与意图或者槽无关的干扰信息累加,影响最终的效果。因此,本课题采用了胶囊网络的方式,去除从样本表示计算类别过程中的无关信息[7]。其模型架构如图2 所示。

图2 模型架构图Fig.2 Model architecture diagram

将支撑集的样本通过BERT 编码表示为向量之后,将这些表示向量视为输入的胶囊,输出的胶囊视为类别的语义特征表示,从输入胶囊到输出胶囊的过程中采取动态路由算法。

首先是对所有的句子(字)表示向量接一个前馈神经网络,这等同于做了一次矩阵转化,其意义在于从样本表示的语义空间转换到类比表示的语义空间。

式中,eij表示类别i中第j个样本的句子(词)向量表示,是转换后的表示。然后采用动态路由算法来过滤无关信息,提取类别的表示特征。在每次路由迭代的过程中,将其权重因子输入到softmax函数,确保其加和为1。

其中,bi为连接系数,初始化为0,等同于在最开始的时候采用平均化的操作。每一类的类别向量,是其转后候选类向量的加权之和。

为了保证每个类的向量模长不超过1,使用一个非线性的squash函数来对其进行处理。

每次迭代结束后,通过路由协议来调整不同胶囊之间的连接权重。如果产生类别表示的向量ci与该样本的候选向量在向量空间中较为相近,则增大该连接权重,否则减小该连接权重。

在本文模型中,经过实验,迭代次数设置为3次。

3 实验

3.1 实验数据

本文的实验数据为小样本数据集,数据来源主要有两个途径:一是SMP2020 中文人机对话技术评测(ECDT)TASK1;此外,少部分数据来源于SNIP 等公开数据集上进行翻译,设计脚本,抽取出小样本所需要的样本组织形式。数据规模为:

(1)训练集:查询城市、APP 问答、询问价格、翻译、查询天气、航班预订等在内的45 个领域。

(2)开发集:单词查询、垃圾分类、笑话、假期、温度查询5 个领域。

(3)测试集:时间规划、讲故事、虚拟查询、星座问答、戏剧问答等在内的9 个领域。共计:6 694 个句子,143 个意图及205 个槽位。

格式如下:

其中,text 是要查询的文本;domain 是领域;intent 是文本意图;slots 是文本中存在的词槽。本课题抽取了3-shot 和5-shot 的数据集进行研究。

3.2 实验结果

对于小样本意图分类任务,采用准确率(Accuracy)作为评价指标。对于小样本语义槽填充任务,采用F1- score作为评价指标,当预测槽位的一个槽和其值组合与标准答案的一个槽和槽值组合完全一致,视为一个正确预测。用句子准确率作为二者联合训练的评价指标。只要当该句子的意图识别和槽填充全部正确时,该样本才算一个正确样本。

实验结果见表1~表3。

表1 在3-shot 数据集上联合学习实验结果Tab.1 Joint learning experiment results on 3-shot dataset

表2 意图识别实验结果Tab.2 Intent detection experimental results

表3 槽填充实验结果Tab.3 Slot filling experimental results

由表1 可知,当意图识别和槽填充任务联合训练时,Fine-tune 的方法对槽识别任务效果提升明显。而胶囊网络的引入,虽然提高了意图识别的效果,但也造成了槽填充任务的效果下降。针对此,本文单独以胶囊网络对槽填充和意图识别的影响做了消融实验。

由表2 和表3 可以看出,胶囊网络对意图识别实验有明显的提升作用,但是在槽填充任务上并没有获得提升效果。其原因可能是对于细粒度的词级分类而言,并没有太多的无关信息,而胶囊网络的引入反而使最终的原型向量与对应的类别中特征平缓的单词更为相像,反而引入了误差和偏置;而对意图识别任务而言,其粒度是句子级,可能由于表述习惯不同,或者无关单词较多等原因,含有较多的与意图类别无关的干扰信息,此时引入胶囊网络,可以起到一个很好的消除干扰信息的作用。

4 结束语

本文对人机对话中的小样本学习场景下的意图识别和槽填充展开了研究,采用了基于度量学习(Metric based)的方法[8]。度量学习方法通过计算query set 中的样本与support set 中样本的距离,寻找距离最近的类别样本作为分类标签,同时将两个任务联合进行训练,用以提升模型的效果。从实验结果中可以得出,本文的Fine-tune 方法对意图识别和槽填充任务都有一定的帮助和提升,胶囊网络在意图识别中也起到了不错的效果,可以帮助去除一部分无关信息,但对槽填充任务的帮助不明显。因此下一步可以继续研究在词级别的原型向量计算上是否有更好的改进方法,能更准确的表征槽的类别向量,同时在Metric based 的小样本学习方法中可以看出,主要的改进方向有两个:一是对样本语义表征向量的计算;二是对原型向量的计算,这对以后的研究也是一个好的启发。

猜你喜欢
胶囊向量意图
基于高速公路的驾驶员换道意图识别
向量的分解
自然教育《小蚂蚁的生日会》教案
胶囊要用凉开水服
不打自招
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
燕山秋意图
我有一颗神奇胶囊
服用胶囊的小细节