融合多约束条件的意图和语义槽填充联合识别*

2020-09-13 13:53侯丽仙李艳玲李成城
计算机与生活 2020年9期
关键词:意图语义神经网络

侯丽仙,李艳玲,林 民,李成城

内蒙古师范大学计算机科学技术学院,呼和浩特 010022

1 引言

口语理解是对话系统中至关重要的一部分,其性能直接影响整个对话系统的性能[1-2],意图识别和语义槽填充是口语理解的两个子任务[3-4]。意图识别任务主要分析理解输入语句中用户话语行为,语义槽填充任务主要解决特定领域关键词以及属性的标注问题,口语理解通过完成两个任务并将意图和关键词用语义框架表示出来,有助于后续对话系统的研究。

解决意图识别任务的传统方法包括支持向量机(support vector machine,SVM)[5]、朴素贝叶斯(naive Bayes,NB)[6]、决策树(decision tree,DT)[7]等。解决语义槽填充任务的传统方法包括条件随机场(conditional random fields,CRF)[8]、隐马尔可夫(hidden Markov model,HMM)[9]模型、最大熵(maximum entropy,ME)[10]模型等。

对于口语理解任务,通过上下文获取用户表达中词汇的语义信息以及全局语法信息至关重要。近年来,由于深度神经网络可以自主学习输入文本的特征,以及在训练过程中能捕获更深层次语义信息等优点,因此在口语理解任务中被广泛应用。由于双向长短时记忆网络(bidirectional long short-term memory,BLSTM)可以捕获上下文信息,CRF可以根据标签间的关系进行结果调整,使得标注结果更为准确,因此有学者将BLSTM神经网络模型与CRF语言模型相结合应用于不同领域的命名实体识别任务[11-13]。

意图识别和语义槽填充两个任务相互依赖,例如一个短文本的意图是“查阅书籍”,那么该短文本很可能包含“作者”及“书名”等相关语义槽类型;而一个短文本的意图是“预定机票”时,那么该短文本可能包含“出发城市”“到达城市”以及“出发日期”等相关语义槽类型。即不同的意图,对应的语义槽类型也是不同的,说明意图和语义槽填充具有很强的关联关系。意图识别和语义槽填充任务的执行策略有并联型和级联型[4]。并联方式将两个任务看作独立任务进行解决,该方式无法实现输入的词与词之间的特征共享;级联方式将两个任务顺序执行,前一个任务的结果作为后续任务的先验知识,但是会出现误差累积的问题,因此联合识别成为当前口语理解的主流方法[14-16]。

2 相关工作

由于意图识别和语义槽填充具有相关性,而独立建模和级联方式建模等都无法利用两者的相关性提升对话系统的性能,因此相关领域的研究者纷纷采用联合建模方法。Jeong等人采用三角链条件随机场(triangular-chain CRF)模型,解决意图识别和语义槽填充任务,共同捕获两者的内在联系[17]。该模型虽然在联合识别上作出了一定的贡献,但是仍存在传统统计机器学习的不足,费时费力,而且需要足够多的训练语料。

2013年微软的Xu等人使用卷积神经网络(convolutional neural networks,CNN)和三角链条件随机场(CNN-TriCRF)用于意图和语义槽填充的联合识别[18]。Xu的贡献在于使用CNN学习文本特征,而不是人工提取特征,对于语义槽填充任务,采用TriCRF分析数据在全局的分布,解决了局部标注偏置问题,得到全局最优解。但是较传统方法而言,模型训练的参数变多,模型更为复杂。

微软研究院的Guo等人提出使用递归神经网络(recursive neural network,RecNN)和Viterbi算法联合解决意图识别和语义槽填充任务[14]。在该方法中,语义槽填充被看作是序列标注任务,即在给定用户话语x以及所有语义槽类型空间的条件下,取最大概率对应的语义槽类型作为当前词的语义标注类型,尽管性能有所提升,但是会产生信息损失。

继RecNN之后,北京大学计算语言研究所的Zhang等人提出使用门控循环单元(gated recurrent unit,GRU)和CNN联合解决意图识别和语义槽填充任务[19],通过GRU学习词的表示,预测语义槽的标签。同时,利用最大池化层捕获句子的全局特征,进行意图分类,模型被两个任务共享。模型虽然在性能上有一定的提升,但是仍有需要改进的地方。由于该模型采用的数据集——中文问答理解数据集(Chinese question understanding dataset,CQUD)由网上收集而成,实验是以字作为分词的最小单位,数据采用手工标注,而没有经过相关领域专家的定义,对实验结果有一定的影响。同时,对于意图识别任务,该模型采用最大池化进行意图分类,会产生一定的信息损失。

随后,Liu等人采用注意力机制解决意图识别和语义槽填充任务[20],该方法虽然较其他联合识别模型在公有数据集ATIS(airline travel information systems)[21]上的性能有所提升,但是该模型没有将意图识别的结果作用于语义槽填充任务,在Liu提出模型的基础上,Goo等人使用slot-gated机制将意图识别的结果作用于语义槽填充任务[22],该模型在公有数据集ATIS上有所提升,但是对于语义槽填充任务,由于没有考虑序列在全局的概率,导致出现了如连续标注B-Person、I-Organization等不合理标注结果。

综上所述,在联合建模研究中,意图识别和语义槽填充任务具有较强的相关性,意图识别的结果可以有效地作用于语义槽填充任务,并且CRF可以对神经网络得到的序列标注进行结果调整。本文采用BLSTM作为基本单元,对意图识别和语义槽填充任务分别加入注意力机制,捕获全局的语法信息及更优的语义信息,解决前人研究中采用最大池化产生局部最优解的问题,并通过加入slot-gated机制表明意图识别和语义槽填充之间的关系,通过实验验证两个任务的相关性,同时由神经网络和slot-gated得到语义槽填充结果后,加入CRF模型,其作用是根据标签间的关系进行结果后处理,使得标注结果更为准确,有助于性能的提升。

本文的改进如下:第一,对意图识别和语义槽填充进行联合建模,达到优化语义框架的目的;在BLSTM得到隐藏层状态后,对于意图识别和语义槽填充任务加入注意力机制,达到不同时刻对所有输入序列的聚焦式学习。第二,对于航空信息领域以及SMP语料(SMP中文人机对话技术评测(Evaluation of Chinese Human-Computer Dialogue Technology,SMP2019-ECDT)任务1——自然语言理解评测,本评测任务针对自然语言理解模块,主要包括领域分类、意图识别和语义槽填充三个子任务。本实验只进行意图和语义槽填充联合识别。http://conference.cipsc.org.cn/smp2019/),在模型中加入slot-gated机制,将意图识别的结果作用于语义槽填充任务,可以更好地捕获两个任务之间的关联性,并在语义槽填充任务中加入CRF模型。

3 相关模型

这部分首先介绍长短时记忆网络(long short-term memory,LSTM)、BLSTM神经网络模型,其次介绍注意力机制、slot-gated机制以及本研究的实验模型。

3.1 LSTM及BLSTM模型

深度神经网络通过训练,实现对输入特征的表示学习,从而完成特定任务,如词性标注、语义槽填充等,属于端到端(end to end)的学习方式。神经网络的输入是向量表示,该向量由大量的包含语义信息的词语训练得到。向量表示方法有One-hot、Word2Vec[23]等,One-hot编码无法表示语义相近的两个词[24],而Word2Vec是通过其上下文捕获当前词的语义信息,语义相近的词汇可以通过向量空间中距离相近的向量表示,如v(“国王”)-v(“王后”)约等于v(“男”)-v(“女”)[25],Word2Vec解决了One-hot维度爆炸以及向量稀疏的问题,得到的是低维度的稠密向量。

随着社会经济的高速发展,各个行业对机械产品的需求也相应的大大增加,按照传统的机械制造工艺进行生产已经无法满足市场的需求,而现代机械制造工艺利用各种先进高新技术,使得生产效率大大提升,能够进行大批量的生产,满足市场的需求,而且现代机械制造工艺生产的产品不仅数量能够得以保证,而且产品质量更加的稳定,体现现代机械制造工艺高强度的稳定性。

实验过程采用Word2Vec进行词向量化。输入分词后的数据序列为X=(x1,x2,…,xT),对应的词向量为E=[e1,e2,…,eT],经过神经网络的变换得到隐藏层状态H=[h1,h2,…,hT],其中T表示输入数据的长度,即词的个数。设ν为词汇表,d为词向量维度,有xt∈ν,隐藏层状态H∈Rd×T。

虽然RNN(recurrent neural networks)在解决自然语言处理任务中已经表现出良好的性能,但是存在“梯度消失”问题,LSTM通过加入输入门、输出门和遗忘门解决了这一问题[26]。遗忘门可以选择性地记忆重要的历史信息,丢弃一些语义无关的信息,使模型很容易学习和捕捉到词与词之间的长距离依赖关系,有利于模型对有效信息的长期保存。

式(1)~式(5)为LSTM各个门的计算公式,t时刻,给定输入xt和前一时刻的隐藏层状态ht-1,LSTM通过内部循环和更新,计算当前时刻的隐藏层状态ht,Wi、Wf、Wo、Wc表示xt和ht-1的权重矩阵,bi、bf、bo、bc表示偏移向量,σ表示sigmoid激活函数:

语义语法信息由词的上下文共同得到,LSTM无法捕获上下文语义语法信息,BLSTM可以捕获到词的上下文语义语法信息[27],不同时刻的隐藏层状态由前向LSTM的隐藏层状态以及反向LSTM的隐藏层状态共同决定,即,本文采用BLSTM神经网络。

3.2 注意力机制

现实世界中,人们对文本和图像理解时,并不是使用相同的注意力关注文本中的每一个词或者图像中的每一部分,而是关注一些关键部分,对于非关键部分,投入的注意力较少。因此如果通过加入注意力来表达文本或者图像各个部分的重要程度,对于理解文本和图像是非常有帮助的。

2015年,Bahdanau等人提出了注意力机制[28],对不同输入xi赋予不同的权重,然后作用于输出。注意力机制一般作用于编解码模型中,用来提升LSTM或GRU的性能。将深度神经网络(如LSTM或GRU)得到的所有隐藏层状态值与输出Y进行概率分布计算,然后将概率分布值与所有的隐藏层状态进行加权求和得到当前时刻的语义编码[29],再将其作为输出,从而提高模型的性能。

在意图识别和语义槽填充任务中,采用注意力机制理解文本序列丰富的语义信息。对于意图识别任务,加入注意力机制,可以关注到所有输入数据序列对于意图识别的影响;对于语义槽填充任务,加入注意力机制,可以关注到不同时刻所有数据序列对于语义槽类型的影响。

式中,aij表示第i时刻不同隐藏层状态值对应的权重向量,其值由式(7)和式(8)计算得到,上面的计算过程实现了由初始隐藏层向注意力层的变换,权重系数aij或ai反映了当前时刻不同输入序列对输出的影响力大小。图1为实验中注意力机制的结构示意图。

Fig.1 Attention mechanism图1 注意力机制

3.3 Slot-Gated机制

由于之前的联合识别模型都只是共享模型的参数,隐式地说明意图和语义槽填充的相关性,本文采用Goo等人提出的slot-gated机制[22],关注两个任务之间的关系。该机制先将含有意图信息的注意力参数cI与所有的语义槽填充注意力参数加权计算,然后使用一个正相关的激活函数得到包含意图信息的参数g,再将g作用于各个时刻的语义槽填充,用意图识别的结果影响语义槽填充任务。其中,cI包含整个输入序列的语义信息,将意图识别的结果作用于语义槽填充任务,证明意图识别和语义槽填充的相互依赖关系。slot-gated机制对应的计算公式如式(12)~式(16)所示[22]:

3.4 基于slot-gated和CRF的BLSTM模型

本文采用BLSTM神经网络模型,为提高模型的性能,加入注意力机制,同时使用slot-gated机制将意图识别的结果作用于语义槽填充任务。在神经网络训练的过程中,输出层的误差可以指导输入层参数的学习,根据模型的输出与真实结果之间的误差,使用梯度下降法调整神经网络的参数。

对于深度神经网络模型,输出已经是各个标签取值的概率,但是直接使用神经网络模型输出的标签没有考虑连续标签之间的依赖关系,比如连续标注B-Person,I-Organization就是一个不合理的序列标注,这样会影响语义槽填充任务的性能,CRF可以考虑标签前后的依赖关系,将人工特征补充到神经网络模型的输出,根据已经生成的标签间的关系进行结果后处理,使得标注结果更为准确。因此,本研究在slotgated模型后加入CRF,使得序列标注更为准确。

CRF是判别式与生成式的综合模型,其联合条件概率是在给定输入序列x下,计算标注序列y的概率,计算公式如下:

式中,Z(x)是归一化因子,tk和sk表示两种特征函数,λk和μk表示特征函数对应的权重系数,tk表示转移函数,与相邻的隐藏层节点yi-1、yi有关;sk表示特征函数,当满足特征条件时特征函数取1,否则取0。

本文的联合识别模型如图2所示。xi表示分词后的数据序列,首先将词语xi进行词向量化,再将词向量输入到神经网络BLSTM中,通过BLSTM得到隐藏层状态值hi,对于意图识别和语义槽填充两个任务,分别加入注意力机制。对于意图识别任务,注意力机制得到的上下文向量cI直接作用于意图结果。对于语义槽填充任务,除了注意力机制,同时加入slotgated机制,将意图识别的结果作用于语义槽填充任务,最后在语义槽填充任务的输出层加入CRF模型。

Fig.2 Joint recognition model图2 联合识别模型

联合识别的性能由两个任务的结果共同决定。意图识别和语义槽填充的联合计算公式如下[22]:

4 实验

4.1 实验数据集

本实验采用的数据集包括航空信息领域和SMP中文人机对话技术评测数据集。

收集的句子存在指代不明确问题,如“它有去天津的航班吗”,“它”指代不明确,不确定是从哪个城市出发去天津,还存在口语化、语序颠倒等问题,如“北京周二去武汉”。因此,首先对收集得到的句子进行整理,去口语化,调整语序;其次利用Jieba进行分词,在分词的过程中由于机场名称与城市名称有重叠词、时间的不规范性等问题导致分词出错,因此将专有名词放入用户词典,使专有名词在分词过程中不被错误切分。由于模型是有监督的训练,因此需要对分词后的词语进行标注,标注过程采用Begin/In/Out(BIO)标签进行标注。

本实验收集到关于航空信息领域的短文本语句5 871条,并将数据分为训练集、测试集以及开发集三部分,其中训练集包含4 478条,测试集包含893条,开发集包含500条;SMP人机对话比赛数据集共包含2 579条短文本语句,并将数据按7∶2∶1分为训练集、测试集以及开发集三部分,其中训练集包含1 805条,测试集包含517条,开发集包含257条,实验数据集对应的意图类别和语义槽类别如表1所示。

4.2 实验设置

实验中BLSTM用于记忆和存储过去状态的节点个数为64,神经网络中的所有参数进行随机初始化,在训练过程中进行微调。

dropout用于解决模型训练过程中的过拟合问题,它是按照一定的比例随机去掉神经网络中的某些神经单元,然后利用模型训练,提高模型的泛化能力,本实验中dropout为0.05。

4.3 实验评价指标

实验中意图识别使用意图准确率作为评价指标;语义槽填充使用F1值作为评价指标,计算公式如下:

4.4 实验结果及分析

表2为不同模型在航空信息领域数据集下的意图识别性能结果和语义槽填充性能结果。从表2可以看出,BLSTM模型在意图识别和语义槽填充任务中性能优于LSTM,加入注意力机制模型性能优于不加注意力机制的模型,BLSTM可以捕获序列数据长距离依赖关系,更好地获取全局语义信息,同时加入slot-gated机制的模型在性能上优于不加slot-gated机制模型,slot-gated机制可以更好地说明意图识别对于语义槽填充任务的影响。模型对于意图识别和语义槽填充任务均采用注意力机制,即slot-gated(full attention),模型的性能优于仅在意图识别中使用注意力机制slotgated(intent_only attention)模型的性能,原因是对于意图识别任务,关注所有输入序列对于意图的影响cI,避免局部最优化,对于语义槽填充任务,将包含全局信息的意图和不同时刻输入对语义槽任务的影响共同作用,提高模型的性能。本实验的BLSTM+attention+slot-gated+CRF模型,是在意图识别和语义槽填充两个任务上都加入注意力机制的情况下进行实验,从结果可以看出,在加入CRF模型后,实验结果最优。对于语义槽填充任务,可以有两部分的信息来源,其一是可以将意图识别的信息作为参考,其二是由CRF模型提供的标签前后的依赖关系作为参考。

Table 1 Experimental data表1 实验数据

Table 2 Performance comparison of joint recognition on different models(flight information field)表2 不同模型联合识别的性能对比(航空信息领域)

表3为不同模型在SMP数据集下的意图识别和语义槽填充的性能对比。从表3可以看出,不同模型在SMP数据集下BLSTM+attention+slot-gated+CRF模型达到了最好的性能,原因如下:首先,加入注意力机制,可以更好地理解话语语义;其次,加入slot-gated机制用于语义槽填充任务,可以更好地捕捉两个任务之间的关联性,同时加入CRF模型,可以考虑到标签序列前后的依赖关系,使得标注结果更为准确。但是相比询问航空信息的数据集,相同的联合识别模型在SMP数据集下,语义槽填充的性能明显低于在航空信息领域数据集下的性能,主要是由于SMP数据集的语句比较少,模型很难通过少量数据捕获深层次的语义信息,同时该数据集的语义槽类型相比航空信息领域数据集较多,不同意图对应的句子数目差距比较大,数据分布不均衡。

Table 3 Performance comparison of joint recognition on different models(SMP)表3 不同模型联合识别的性能对比(SMP)

表4为影响语义槽填充性能的类型举例。从表4可以看出,该数据集中包含“发短信”“翻译”“查询”这三类意图,这些意图对应的语义槽类型包含“Bcontent”和“B-name”,语义槽值分别为“发短信内容”“翻译内容”以及“小说内容”,语义槽值的内容较长。后续会将该语义槽值在分词过程正常切分,并将语义槽标签标注为B-content、I-content等。除此以外,由于该数据集包含不同的领域,不同领域对应不同的意图,而本研究不考虑领域,只将文本的意图和语义槽填充联合识别,因此实验性能有所影响。

5 结束语

本文针对口语理解中的两个任务联合建模,在BLSTM隐藏层上对意图识别和语义槽填充任务分别加入注意力机制,可以捕获不同时刻输入序列对输出的影响;同时加入slot-gated机制,更有力地说明意图识别和语义槽填充任务的相关性,并在神经网络的输出层加入CRF模型,有效地考虑标签前后的依赖关系,提高语义槽填充的性能。模型在航空信息领域和SMP人机对话比赛数据集上进行实验,证明了模型的有效性。实验结果表明,加入slot-gated和CRF模型优于其他联合识别模型。

在自然语言处理领域,高质量的语料以及大规模的预训练词向量对于模型的性能有很大的影响,下一步会将语料进行扩充,并获取大规模的预训练词向量训练更优的向量表示;本研究只验证了意图识别对语义槽填充任务的影响,后续会进行语义槽填充对意图识别影响的实验;由于在现实的人机交互过程中,用户会涉及多意图的交互,不同的意图会对应不同的语义槽类型,后续会进一步研究多意图文本对语义槽填充任务的影响;由于BERT(bidirectional encoder representations from transformers)模型在训练过程可以随机屏蔽输入中的一些字段,使得模型的泛化能力增强[30],且BERT在多项自然语言处理任务中表现出良好的性能,而本实验数据集比较小,为增强模型的泛化能力,下一步拟采用BERT模型用于口语理解中意图和语义槽填充的联合识别。

Table 4 Examples of types of SMP dataset semantic slot filling with low F1 score表4 SMP数据集语义槽填充F1值偏低的类型举例

猜你喜欢
意图语义神经网络
原始意图、对抗主义和非解释主义
真实场景水下语义分割方法及数据集
基于高速公路的驾驶员换道意图识别
基于神经网络的船舶电力系统故障诊断方法
陆游诗写意图(国画)
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
“吃+NP”的语义生成机制研究
汉语依凭介词的语义范畴