吴俊江 腾讯客服高级算法工程师作者

基于多任务学习的智能客服下文检测方法

1.引言

下文关系检测是智能客服机器人重要的功能,也非常具有技术挑战性。在智能客服领域,用户的诉求隐含在与客服多轮交互的会话文本中,那么在确定用户意图的情况下,如何确定下文与意图的关联关系成为本文探索的主要课题。举个例子,如图1所示,假设我们给定了意图为“信誉分被扣”,如“为什么扣我分”、“莫名其妙扣分”、“为什么扣除我的信誉分”、“我没有违规怎么会扣我信誉分”,用户接下来可能会咨询什么呢?,图中“中途有事退出了”,“该怎么恢复”这两句在真实场景中出现的概率会比较大,但是继续咨询 “能不能送个英雄呀”,“我已经成年了怎么还没解除限制”的可能性极小。

                                                                     图1 下文检测例子

目前大多的语义匹配方法并没有考虑到意图信息,只考虑了句子间关系,这不符合智能客服下文关系检测的需求。因此,本文基于多任务学习思想,同时实现意图识别和语义匹配两种任务,从而使得模型具有下文关系检测的能力。

2.下文关系检测方案

我们从数据获取和模型构建两个方面详细阐述本文所提出的基于多任务学习的智能客服下文关系检测算法。

2.1数据获取

经过近几年客服机器人的运营,我们已经积累了大量高质量的意图识别的数据,但意图与下文的语句对还不够充分。我们对大量的线上用户会话数据进行分析挖掘,发现大部分会话具有三大特性:

1)交互轮次较少的会话往往意图比较单一,并且首句能确定用户意图的概率较高;

2)当会话确定用户意图后,剩余的会话主要是围绕意图进行,会话之间基本无下文关系,因而只需要检测意图句和其余会话的关联关系。

3)相同意图下,用户意图句可以具有相同的下文集合。如图2所示

图2 下文关系图

如图2中a所示,对具有相同意图Intent1的会话进行分析,抽取了三个意图句与下文的句子对,但是这种收集方法使样本不够充分,可能会忽略某些情况如Sent1_1->Context1_2句子对。因此我们按照b所示的方式构建了下文检测的数据集,即,相同意图的Intent1下所有的意图句{Sent1_1,Sent1_2,Sent1_3}都具有下文集合{Context1_1,Context1_2,Context1_3}。

针对线上数据的三个特性,我们选择首句能确定用户意图的会话来构造我们的训练数据,随后经人工复核的方式对数据进行修正。具体数据构造流程图如图3所示:

图3 数据集构造流程图

我们通过图3流程构建了下文关系检测的正负样本集,其中用户意图的下文正样本为会话中真实的关联下文,下文负样本为其他意图的关联下文。通过对线上会话数据进行会话筛选、数据预处理、意图样本均衡采样、按1:5划分正负样本等流程,在5896个用户意图下共构建了700w正负样本对。

2.2模型构建

获取下文关系训练数据后,我们使用联合分类任务的多任务语义匹配模型Multi-task Semantic Match (MTSM)对数据进行建模训练。其结构如图4所示:

图4 模型结构图

如图4所示,该模型整体为联合语义匹配和文本分类的多任务深度学习模型,两个任务共享Sent1的编码向量,该模型主要分为输入层,编码层(Encoder layer)、匹配层(Match layer)、分类组合层(Classifier Aggregate Layer)、语义组合层(SemanticAggregate Layer)、输出层等几个模块,具体介绍如下:

2.2.1输入层

对于用户意图输入X,下文输入C,我们使用腾讯客服会话数据通过Ngram2vec[1]训练得到的词向量进行词语的Embedding,其中X,C是在相同的领域语料中,具有相同的数据分布,因此采用相同的词向量,分别得到用户意图及其下文的词向量特征为:

2.2.2编码层

使用Transformer编码器[1]XE和CE进行编码,在对XE和CE分别使用权重不共享的两层Transformer结构,每一层又有两个子层。第一个子层是一个Multi-headAttention层,第二个子层是一个简单的全连接前馈网络。在两个子层外面都添加了一个residual的连接,然后进行了Layer Normalization的操作。模型所有的子层以及Embedding层的输出维度都是一样的,经编码层分词得到XE和CE的编码向量:

2.2.3匹配层

在匹配层中,用户意图和下文编码向量需要进行充分交互来提升对句子的关键信息的捕获能力,本模型从表征交互和匹配矩阵交互两个层次构建多种匹配模式,以此进一步解决模型匹配不充分问题,具体匹配模式图5和图6所示。

                                                            图5 AttentionInteraction模式

如图5所示,对两种编码后的词向量通过Attention 方式进行交互,模型中使用论文[2]中提出的Multi-head Attention方式进行交互,通过式1和式2得到两个句向量

在Multi-headAttention中Q,K和V会经过式4的一次线性变换,随后作为式5的dot-attention的输入,这种操作要进行h次,即论文中的Multi-head,每次Q,K,V进行线性变换的参数W是不一样的.最后将h次的Dot-attention结果进行拼接并再经线性变换得到Multi-head Attention的值,模型中h设为8。除了使用Multi-head Attention对句子间进行交互,模型同时使用多个句子匹配矩阵方式进行句子间交互,如图6所示:

图6 多层SentenceMatchMatrix结构

在基于如论文[3]Sentence 匹配矩阵的交互模式中,通常是构建词之词间的匹配矩阵,考虑的也只是词与词之间的相似度关系,而本模型中考虑词与词ngram特征间的匹配关系,在下文词向量中使用多个卷积操作,提取其局部特征,并把每类局部特征与意图词向量构建匹配矩阵,最后对所有的匹配矩阵进行卷积、池化操作,得到每个匹配句子的向量表征,其具体步骤如下:

2.2.4组合层

经匹配层后得到两个Attention交互向量XSE_att和CSE_att以及L个匹配矩阵向量OPi,利用如图7所示的aggregate层将匹配层得到的向量进行组合,并通过2层MLP映射都输出层。

                                                              图7 Aggregate Layer结构图

如图7所示,对于XSE_att和CSE_att使用如下式所示的Self-attention结构进行组合,将词向量组转换为句向量XSE_out、CSE_out:

在得到XSE_out和CSE_out,通过连接方式与OPi,进行连接,得到组合向量:

最后经过两层MLP层得到语义匹配的输出向量S_out以及对应的损失值S_loss。

2.2.5分类层

本模型是一个多任务模型[4],分类任务和语义匹配任务共享用户意图的编码向量XSE,使得向量XSE即具有语义特征信息又具有分类特征信息,分类层的结构图8所示:

如图8所示,对意图编码向量采用self-attention以及单层MLP,得到意图的分类句向量XSE_Cout以及对应的损失值C_loss。

3.实验对比

为了证明本文提出的模型有效性,我们进行了大量对比实验,首先我们从智能客服历史对话语料中按照2.1所描述的语料构建方法,构建了700w的训练语料集,正负样本比例为1:5,测试样本数据为2W条,正负样本比为1:9,与DSSM[5]、ARC-I[6]、ARC-II[6]、MatchPyramid[3]、QACNN、MV-LSTM[7]、ABCNN-3[8]等模型进行对比实验,本模型在准确率有所提升,具体结果如表1所示:

                                                                  表1智能客服下文关系检测效果图

模型

Accuracy

F1

DSSM

0.863

0.284

ARC-I

0.864

0.271

ARC-II

0.933

0.629

MatchPyramid

0.926

0.633

MV-LSTM

0.943

0.641

ABCNN-3

0.936

0.630

MTSM(Ours Model)

0.954

0.723

通过表1中的实验结果发现,本文提出的语义匹配模型和结合分类任务的多任务语义匹配模型MTSM均比常用的语义匹配模型效果有所提高,特别是本文提出的多任务学习匹配模型能够在F1上有7%左右的提升。

4.总结

本文针对智能客服场景中下文检测的难点,创新性的融合了语义匹配模型和意图识别任务,使得意图句具有类别的表征信息,从而更加精准的理解句子语义,并通过多层次的匹配交互方式优化了语义匹配模型,充分的捕获了句子间的语义信息,提升了智能客服下文关系检测能力。在客服领域数据上经模型对比测试分析表明,本文提出的模型具有最优效果在F1值上能提升7%左右。

参考文献

[1]Zhe Zhao, Tao Liu, Shen Li, Ngram2vec: Learning Improved Word Representations from Ngram Co-occurrence Statistics[J]. 2017.

[2]Vaswani A, Shazeer N, Parmar N, et al. Attention Is All You Need[J]. 2017.

[3]Pang L , Lan Y , Guo J , et al. Text Matching as Image Recognition[J]. 2016.

[4]Zhang Y , Yang Q . An overview of multi-task learning[J]. National Science Review, 2018, v.5(01):34-47.

[5]Huang P S , He X , Gao J , et al. Learning deep structured semantic models for web search using clickthrough data[C]// Proceedings of the 22nd ACM international conference on Conference on information & knowledge management. ACM, 2013.

[6]Hu B , Lu Z , Li H , et al. Convolutional Neural Network Architectures for Matching Natural Language Sentences[J]. 2015.

[7]Wan S , Lan Y , Guo J , et al. A Deep Architecture for Semantic Matching with Multiple Positional Sentence Representations[J]. 2015.

[8]Yin W , Schütze, Hinrich, Xiang B , et al. ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs[J]. Computer Science, 2015.

云智服前沿
云智服前沿

智能引领服务,服务创造价值。

工程下文检测对话系统语义匹配注意力机制深度学习自然语言处理智能对话智能客服云智服
147
大神,内容很赞,对交互方式做了很多优化,准备放在语义匹配上参考一下
1
图文并茂,提升了客服场景中语义识别的准确率,优化客服服务
这个文章值得推荐,在多轮对话上有一些新的启发
智能客服先锋
模型介绍得非常详细,根据应用场景做的优化也很特别~赞!
大神我最近也在研究上下文的论文,有几个问题想请求,求联系方式
是在cpu还是GPU上训练的,700w的数据训练一个epoch需要多长时间?
1