面向人机对话意图分类的混合神经网络模型∗

2019-12-11 04:27周俊佐朱宗奎何正球陈文亮
软件学报 2019年11期
关键词:意图编码向量

周俊佐, 朱宗奎, 何正球, 陈文亮, 张 民

(苏州大学 计算机科学与技术学院 人工智能研究院,江苏 苏州 215008)

近年来,随着数字虚拟人技术、移动终端和语音识别处理的快速发展,人与计算机直接对话与问答的人机交互形式变得越来越重要.目前,许多数字虚拟人能逼真地朗读出用户给定的内容、理解用户的查询意图、回答用户信息查询信息以及购物问题等等[1].国内外各个机构和组织纷纷开发了自己的人机对话系统,例如2011年苹果公司推出的siri、2013 年科大讯飞的灵犀语音助手、2014 年微软的cortana、2015 年百度的度秘和微软的小冰以及最近谷歌提出的google assistant 等.它们有的属于聊天机器人,注重于与用户闲聊;有的属于语音助手,注重于知识服务和事物的处理.在实验室和市场环境的帮助下,这些系统都取得了巨大的进步.这些人机对话系统都包含意图分类这一核心模块.意图分类是自然语言理解中的基础任务.在人机对话领域中,通常的做法是,先将用户语音通过语音识别技术转换成文本,然后再通过意图分类算法将其识别到相应类型下的具体意图.这样可以识别出用户输入到对话系统执行某个动作之间的一个映射关系,达到识别和理解用户要表达的意图.

尽管目前语音识别技术在书面语的识别上表现优异,但是在口语语音识别上,由于口语自身特性以及用户口语随意性的影响,很容易导致语音识别系统输出错误,使得意图分类系统无法正确理解用户的意图.这会导致对话系统无法正确回答用户的问题,严重情况下,会使得人机自然对话被迫中断.这些情况在很大程度上降低了人机对话的流畅度.伴随着深入研究发现,人机交互过程中,对用户进行正确意图分析能够有效提高人机交互的自然度[2,3].意图分类应用范围广泛,从智能问答到对话系统,近几年也逐渐成为研究热点.

在人机对话过程中,我们通过意图分类判断用户意图,再触发相应的业务类型.在本文的意图分类数据上,意图分类任务中,业务类型包括查询类、办理类和咨询类这3 种,每个业务类型下还有多种不同的用户意图.表1 给出了一个例子,表示客服和用户的语音对话记录,其中,1 为客服语音文本,2 为客户语音文本.

Table 1 An example of intention classification表1 一个意图分类的例子

和大多的短文本分类任务不同,在人机对话意图分类中,主要存在这样一些问题.

•其一是受限于语音识别性能和用户不同的口音、语义表达喜好和对网络流行用语的使用程度导致的文本不规范问题,容易出现不规则特征词和未登录词,导致文本表示方法不够准确.

•其二是人类对话文本以寒暄和多轮询问式对话为主,文本通常只包含极少实际有意义的词语,导致内容具有特征稀疏性问题,增加了抽取有效特征的难度.

•其三是不同人的语言表达喜好和语义精简能力有较大差异性,会造成文本长度分布不均匀,影响系统性能.

随着文本表征和深度学习技术的发展,研究者对文本分类任务进行了大量的研究,提出了许多有效的模型.但是不同的模型各有优异,且在不同的语料上表现差异也较大,难以确定哪种模型最好.其中主要的原因在于,在不同语料甚至同一份语料上的文本长度分布和内容差异太大,而在模型设计上过于注重在短文本或者长文本上的单方面优化,导致模型的鲁棒性不高[4-6].本文首先在本文的意图分类数据上验证了这些模型的有效性,分析各个模型的特点.为了进一步提高意图分类性能,受启发于GoogLeNet 的Inception 结构[7],我们提出一种混合模型网络结构,综合利用在长文本或短文本上表现优异的多个模型,提升网络模型的整体效果,同时增加了鲁棒性.在此基础上,我们验证了语言模型在意图分类任务上的有效性,通过在混合模型网络结构上增加了ELMo[8],系统性能得到进一步的提升,并在本文数据的公开评测上取得了最优的性能.

本文的主要贡献包括:

(1)比较了多种分类模型在人机对话意图分类任务上的性能,并分析了模型在不同条件下的表现;

(2)验证了语言模型词向量在意图分类任务上的有效性;

(3)提出了一种新的混合神经网络模型,并加入ELMo 进一步加强语义表示,取得目前最优性能.

本文第1 节对相关工作进行介绍.第2 节介绍本文提出的混合模型及其算法.第3 节通过实验并进行实验分析证明了该方法的有效性.最后总结本文工作,并提出了可改进的方面.

1 相关工作

本文的研究工作主要涉及文本表示和意图分类算法两个方面.因此,本节将从这两个角度来总结相关研究工作.

1.1 文本表示

文本表示在早期的流行方法主要是One-Hot 独热编码[9],但是这个方法会随着语料与词表的增大,导致特征空间过大,因此它有严重的数据稀疏问题.近年来,神经网络和表征学习[10]带来了解决数据稀疏性问题的新思路,主流做法主要将词作为语义单元再通过词向量训练方法(如word2vec[11]、GloVe[12])来表示文本.长期以来,词向量是自然语言处理领域的核心表征技术,但是它也有缺陷:词向量只包含模型的第1 层先验知识,网络的其余部分依然需要从头训练,属于表达性不足的浅层方法.伴随着ULMFiT[13]、ELMo 及BERT[14]等语言模型的兴起,我们看到了解决词向量如语义消歧等语义问题的新方法.语言模型主要是将词向量仅仅初始化模型第1 层的方式改为用分层表示的方式,并对模型进行预处理.它已被证明能够为下游任务捕捉很多语言相关的属性,例如层级关系、情感语义和长期依赖性关系等[8].为了验证词向量与语言模型在意图分类任务上的差别与优劣,我们选择word2vec 词向量与ELMo 语言模型进行对比分析.

1.2 意图分类

意图分类问题属于一种特殊的文本分类问题.文本分类算法目前大致经历了传统机器学习结合人工特征、深度学习算法与语言模型词向量编码表征这3 个阶段.传统的文本分类工作主要集中在特征工程、特征选择和使用不同的机器学习算法模型这3 个方面上.比如,传统的分类通常用稀疏词法特征,或者其他人工特征表示文本,然后使用线性模型或者核模型分类[15].伴随着神经网络的兴起,越来越多的研究表明,神经网络的效果远远优于传统方法.伴随着数据与算力的增加,人工特征的方法成本过高,现有研究者较少用设计人工特征和过滤文本信息的方法对分类性能进行改善.

神经网络的一大优势是表述学习,可以自动从图像、语音、文字抽取特征.结合使用循环神经网络(recurrent neural network,简称RNN)或卷积神经网络(convolutional neural network,简称CNN)[16]对文本信息建模分类.针对RNN 和CNN 不断暴露的缺陷,学术界也有非常多的优化模型出现.

传统的循环神经网络在训练过程中会随着递归深度增加,误差传播会不断增大或者减小,这被称为梯度弥散[17]问题.Hochreiter 等人提出的长短时记忆(long short-term memory,简称LSTM)[18]结构与Cho 等人提出的门循环单元(gated recurrent unit,简称GRU)[19]结构是目前最受研究者青睐并且能够有效地解决递归神经网络梯度弥散的问题.

CNN 网络在图像识别领域上的成功是带动神经网络流行的重要因素之一,它也被大量使用在自然语言处理任务中.但是研究者发现,CNN 是一种空间不敏感的方法,在一定程度上受限于保存单词的位置信息、语义信息、语法结构以及丰富的文本结构.特别是在意图分类任务中,文本口语化且语音识别处理存在一定错误率,CNN 难以有效地对文本进行编码.最近,Hinton 等人提出的Capsule 网络[20]用神经元向量代替传统神经网络的单个神经元节点,以Dynamic Routing 的方式去训练这种全新的神经网络,有效地改善了上述方法的缺点.

注意力机制是近年十分成功的网络,其最先应用于图像领域[21],后逐步应用到自然语言处理领域,在情感分析[22]、机器翻译[23]和问答领域[24]都有成功的应用.针对文本中句子的编码,为了更好地突出长句子中的重点词信息,我们也在意图分类模型中混合该结构.

基于以上的研究工作,许多研究者在文本分类领域提出了许多优异的模型.我们选取了目前在各个语料上都有较好效果的几个模型,并应用在意图分类任务上作为对比方案.其中包括:Lai 等人提出的RCNN[5]模型,通过引入一个递归的卷积神经网络来自动抽取特征再进行分类;等人提出的DPCNN[25]模型,通过深度CNN 抽取文本深度特征再进行分类;李超等人则提出了LSTM-MFCNN[6],通过不同窗口粒度的卷积核提取特征;Yang 等人提出的HAN[4]完全保留了文章的结构信息,首先进行句编码,再进行全文编码,基于Attention 结构,也有很强的解释性.我们将这些优异模型作为我们的对比方案,并根据任务特点,对这些模型进行有针对的优化处理.

2 混合模型及算法介绍

本节主要是在特征编码和模型组合优化方向上对意图分类进行研究,尝试发掘适合意图分类任务的分类模型.

2.1 混合模型框架

图1 所示为混合了Capsule、MFCNN 和Attention 这3 种优异网络层的混合模型框架图.网络主要由词编码层、句子编码层和混合特征抽取层组成.

Fig.1 Architecture of the proposed hybrid network图1 本文采用的混合模型框架

2.2 词编码层(word encoding layer)

词编码层适用于任何词向量训练方法,本文分别讨论了word2vec 和ELMo 方法.我们首先对语料分词,然后分别使用word2vec 和ELMo 预训练方式生成对应的向量词典与语言模型权重.word2vec 通过查表方式获得对应语义词的向量表示作为该层输出;ELMo 则通过查表的输出与语言模型输出相结合的方式作为该层输出.

2.3 句子编码层(sentence encoding layer)

我们把句子中的词经过词编码层获得对应语义词向量;再经过一个随机Dropout[26]层,防止模型过拟合;最终得到了本层的输入特征.在LSTM-MFCNN 模型中,句子编码使用单向LSTM 网络.在HAN 模型中,句子编码使用单层双向GRU 网络.而根据经验和研究结果表明,在大部分任务上,双向RNN 模型优于单向,两层类RNN结构效果一般优于单层类RNN 结构.因此,我们选择使用双向LSTM 加上双向GRU 结构对句子进行编码.图2所示为我们的句子编码层结构.

Fig.2 Structure of sentence encoding layer图2 句子编码层结构

假设LSTM 层和GRU 层的隐藏层单元分别为h1,h2,它们控制对特征编码的输出维度.对网络任意t时刻LSTM(⋅)函数表示如下:

其中,⊙为按元素乘法操作,σ表示sigmoid 函数,tanh 表示双曲正切函数,xt为t时刻的输入,为输入门,为遗忘门,为输出门,为隐藏单元状态,为记忆细胞单元状态.经过双向LSTM 编码,获得第t个词的LSTM 编码全局信息,其中,⊕为拼接操作,为前向LSTM 表示,为后向LSTM表示.LSTM 层后的GRU(⋅)函数表示如下:

2.4 混合网络层

随着神经网络的发展,研究者提出了许多不同的网络层.其中,注意力机制已经被成功运用于各种自然语言与图像任务中,并取得优异的效果[21].针对CNN 固定窗口的缺点,研究人员提出了类似于n-gram 特征提取的多粒度卷积核神经网络层[6].从另一个角度,Hinton 提出了一种新的向量输入(vector-in)与向量输出(vector-out)的传递方案Capsule[20].这种方案在分类任务上具有很好的性能表现与解释性.

2.4.1 注意力机制模型注意力机制受启发于人类观察事物过程中的视觉注意力机制,人类观察图像总是注意在局部上而不是看到图像上的每个位置.与此类似,在阅读长文本时,人们通常不会关注全文,而是结合自身认识捕捉文本中重要的局部信息,以便快速分析内容.本文采用标准的注意力机制,从句子编码层的输出中提取对句子作用较大的特征,通过对特征自动加权的方法,可以有效地从长文本中捕捉到的重要的特征信息.对X∈ℝL×K,其中,L为最大语义词数,K为特征维度.计算公式如下:

其中,W∈ℝK×A,b∈ℝL×A,V∈ℝA×1表示网络中需要训练的参数,A为超参数.该层最终输出为Q1.

2.4.2 多粒度卷积核神经网络(MFCNN)模型在文本分类任务中,传统CNN 的隐藏层只使用单一粒度的卷积核.MFCNN 提出了在单粒度上扩展成多个粒度卷积核的方法,通过不同的卷积域,抽取句子中不同位置的n-gram 特征.假设X∈ℝL×K表示输入的句子,L为句长,K为特征维度.xi∈ℝK对应于句子中第i个词的K维特征.卷积操作卷积核为Wh∈ℝh×K,h为卷积核窗口大小,作用于句子上抽取新的特征.传统的CNN 使用固定窗口值的多个卷积核,假设为H,则CNN 单个卷积核生成的特征ci表示为

其中,⋅为内积操作,f为激活函数,i=1,…,L+1-H,b∈ℝ为偏差项.卷积核对句子{X1:H+1,X2:H+1,…,XL-H+1:L}生成特征如下:

再使用max-pooling 提取特征:

为了减轻因为卷积层参数误差造成的估计均值偏移,我们在公式(6)的基础上额外加入mean-pooling,即

其中,⊕为拼接操作.MFCNN 使用多个窗口卷积核,对窗口大小a=1,…,B的卷积核,抽取特征为

最终得到输出Q3.这是单个卷积核的工作流程,在实验中,我们使用的卷积核个数为m1.MFCNN 的主要步骤是卷积与池化.我们通过不同宽度的卷积核在整个句子上滑动,每个卷积核都能得到n个激活值.CNN 更多的是关注关键词对应的特征,因此容易丢失结构化信息,不注意子结构之间的关系,难以发现长文本中的依存转折等复杂的关系.其优点是可以从不同的n-gram 级别中抽取不同的特征,然后通过池化层提取出激活值中最重要的特征,为后级分类器提供分类依据.在短文本上效果卓越.

2.4.3 Capsule 模型

Capsule 将标量输入与标量输出特征替换成向量输入与向量输出特征,并用动态路由算法代替反向传播算法.在自然语言处理中,可以用以表征如单词的长度、本地顺序或者语义等特征,改善CNN 在表征上的局限性.我们假设capsules 数量为m,d为capsule 维度.我们在capsules 的第1 层中用宽度为c的卷积核Wc∈ℝc×K对上一层的表示X∈ℝL×K进行卷积操作.其中,L为句长,K为上一层句子表示的向量维度,卷积核个数为|m×d|,所有卷积核结果为

其中,f为激活函数,p=1,…,L+1-c,b∈ℝ为偏差项.然后,通过reshape 操作分发给各个capsule:

其中,i=1,…,m,j=1,…,d.其他层capsules 的所有输入sj为的加权和:

我们的向量输出与hinton 的不同在于,我们只对模长进行了归一化处理:

其中,耦合系数cij由算法1 给出的动态路由算法决定.

算法1.动态路由算法.

最后,我们对Capsule 得到的vj∈ℝL×m×d做一次压缩操作,得到Q2∈ℝL×|m×d|作为capsule 网络层的输出.

Softmax 预测层通过混合层我们得到文本最终的特征表示,通过映射得到总的类别得分:

其中,L为句长,Kf为最终特征维度,N为类别数.各个类别的概率为

其中,si表示S中第i类得分.我们使用交叉熵损失函数,训练的目标是最小化损失函数:

通过小批量随机梯度下降反向传播算法更新权重,其中,yi表示正确分类结果.

3 实 验

本节先介绍实验数据,然后介绍实验设置与评价方法,最后介绍实验结果与分析.实验中比较的模型包括Yang 等人提出的HAN[4]、Lai 等人提出的RCNN[5]、等人提出的DPCNN[25]、李超等人提出的LSTMMFCNN[6]以及本文提出的混合模型.

3.1 数据集

本文实验数据来自于CCL 2018-Task1:中国移动客服领域用户意图分类评测赛事(http://www.cips-cl.org/static/CCL2018/call-evaluation.html)初复赛数据语料,属于客服领域对话文本,我们可以将其视为含有若干对话句的段落.该数据共有两个省份的真实数据集,由于不同省份的标注规范与质量的差别,官方将其分为数据集A与数据集B.每个数据集为2 万条真实客服对话标注数据,我们将其随机打乱,通过8:1:1 比例划分,分别分为训练、开发和测试集.除此之外,还有5 万条真实客服对话未标注数据,我们将其与相应训练集合并,用以训练Word2Vec 和ELMo 词向量.对于类别标签,我们将业务类型与用户意图合并,合并后数据集共有35 种类别.表2给出了业务类型与用户意图的种类.

Table 2 Type of business and user intent表2 业务类型种类与用户意图种类

由于文本内容长度对分类效果有一定的影响,因此我们对极少数较长文本进行截断,截断后文本最大长度为所有文本长度占比为95%的数值.考虑到RNN 隐藏层初始化为0 的冷启动问题,我们对于长度不足的文本,在句首补齐占位符.表3 和表4 分别给出了数据集A和数据集B的相关统计信息.

Table 3 Statistics of dataset A表3 数据集A 统计数据

Table 4 Statistics of dataset B表4 数据集B 统计数据

3.2 实验设置

词编码层以词作为语义单元,以各自的训练集和5 万条未标注数据作为预训练语料.设置最大段长为600,Word2Vec 维度为300,窗口为5,最小词频为5.ELMo 采用原论文默认参数[8],数据集A上迭代80 100 个batch,混乱度(preplexity)为7.991;数据集B上迭代82 000 个batch,混乱度为8.423.句子编码层LSTM 与GRU 隐藏层h1,h2为128 与100.多粒度卷积核神经网络层卷积核窗口大小为1、2、3、4,卷积核个数m1为64.胶囊网络层设置m为10,d为16.注意力层设置A为300.

3.3 评价方法

官方评价指标为

其中,|A|代表预测集总数;|G1|代表一级类别正确识别总数;|G1∩G2|表示一级类别正确情况下,二级类别正确识别总数.因为在不同任务中,层级类别权重的不确定性会导致官方评价指标有一定的局限性,因此,我们选择更有泛化意义的准确率评价指标:

其中,|A|代表预测集总数,|G∩A|代表预测集与合并标签完全匹配的结果总数.

3.4 实验结果与分析

在本节中,我们在数据集A和B上分别进行实验.我们共有Baseline、Single、Hybrid 和Hybrid ELMo 这4种实验组,实验中如没有特殊说明,则表示采用Word2Vec 词向量.其中,+Capsule 表示在Baseline 中加入Capsule层,+Attention 在Baseline 中加入Attention 层,+MFCNN 在Baseline 中加入MFCNN 层,+ELMo 替换Word2vec词向量为ELMo 词向量.表5 给出了我们的所有模型的实验结果.从实验结果可以看出:

•通过Single 组看出,在意图任务上,MFCNN 逊色于capsule,证明了向量输出优于标量输出方法.

•对比Hybrid 与Single 组实验结果,在word2vec 词向量上,任意混合优异网络层的网络,在两个数据集上都能达到很好的效果,说明了混合模型的有效性.

•对比Hybrid ELMo 与Hybrid 组实验结果,我们验证了语言模型词向量在意图任务上的有效性.在同样的模型上,语言模型在数据集A和数据集B上能够分别取得2.0%和2.2%的性能提升,并能结合混合模型取得目前最佳的效果.

Table 5 Result of experiment表5 实验结果

3.5 长中短文本意图分类对比分析

为了进一步验证混合模型的鲁棒性和有效性,我们将官方数据集A和官方数据集B的测试集按照长度从短到长排序,按比例为3:4:3 划分成短、中、长文本.使用不同的模型依次对其进行对比实验,实验结果见表6,图3是对应的直方图.

Table 6 Intention classification score of long,medium and short text表6 长、中、短文本意图分类得分结果

Fig.3 Intention classification score of long,medium and short text图3 长、中、短文本意图分类得分结果

从实验结果可以看出:

•3 种网络的性能都满足短文本>中文本>长文本;

•在短文本上,性能满足Capsule>MFCNN>Attention;

•在中文本上,3 种模型效果持平;

•在长文本上,性能满足Attention>Capsule>MFCNN.

MFCNN 主要是在单窗口大小卷积核CNN 模型的基础上增加不同卷积核窗口,类似于对不同n-gram 的特征提取.而每个卷积核都是为了抽取出文本中和卷积核窗口大小相等的最重要的特征,因此,MFCNN 几乎不受非重要词特征的影响,所以在文本较短的语料上效果优异.但是其缺点在于难以考虑到词之间的关联和不同词特征的重要程度,从而在文本较长的语料上效果基本不如Attention 网络.Capsule 在自然语言处理中可以用以表征如单词长度、本地顺序或者语义等特征,改善CNN 在局部表征上的局限性,在中等长度文本上有优异表现.三者相互合作具有一定的bagging[27]效果.避免混合模型在短文本和长文本的极端情况下可能出现的性能剧烈波动情况,从而增强混合模型的鲁棒性和性能.

3.6 与其他工作的对比

我们将本文提出的方法与其他先进的方法进行了对比,结果见表7.其中,Hybrid 对应表5 中Hybrid 组最佳模型,Hybrid ELMo 对应表5 中Hybrid ELMo 组最佳模型.通过对比看出,我们的Hybrid 模型能取得了相对于其他模型更好的效果.相对于最优的HAN 模型,在数据集A和数据集B上分别有0.95%和1.65%的性能提升,证明了混合模型的有效性.同时,结合语言模型词向量在两个数据集上相对于HAN 模型取得了2.95%和3.85%的性能提升.我们最终将所有表现优异的模型进行融合[28],获得了表8 中官方评分Rank 1 的成绩.

Table 7 Comparison with other methods表7 与其他方法的对比

Table 8 Official ranking表8 官方排名

4 结论与未来的工作

本文提出一种混合神经网络层的模型,结合MFCNN 和Capsule 在短文本特征处理和Attention 在长文本特征处理上的优势,混合使用Capsule、Attention 与MFCNN 层.在此基础上,结合语言模型词向量ELMo,将语言模型拥有的语义挖掘能力应用到混合网络中.实验结果表明,本文提出的新模型对客服领域的意图分类有较好的性能表现,并在CCL 2018 中国移动客服领域用户意图分类评测任务中取得第1 名.

本文使用的神经网络层和特征编码词向量还有一定的局限性,我们准备从下述几个方面进行改进.

(1)探究更多、更好的短文本和长文本处理优异模型的结合方式.

(2)在特征编码词向量上,在语义单元上可以考虑字级别特征以及字级别与词级别的结合.

(3)我们也可以使用迁移学习,比如通过百度百科或者维基百科语料来预训练语言模型,再通过相应的训练语料进行微调(finetune).

(4)最近提出的语言模型BERT[14],其效果在多个任务上优于ELMo,在后续的研究中,我们也会主要对其进行尝试.

猜你喜欢
意图编码向量
原始意图、对抗主义和非解释主义
陆游诗写意图(国画)
向量的分解
生活中的编码
聚焦“向量与三角”创新题
制定法解释与立法意图的反事实检验
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
Genome and healthcare
向量垂直在解析几何中的应用