GRS:一种面向电商领域智能客服的生成-检索式对话模型

2020-12-07 05:57郭晓哲彭敦陆张亚彤彭学桂
关键词:自然语言处理

郭晓哲 彭敦陆 张亚彤 彭学桂

摘要:目前大多数智能聊天系统的实现主要有两种方式。检索式得到的回复准确且有意义,但回复内容和回复类型却受限于所选择的语料库。生成式可以获得语料库中没有的回复,更具灵活性,但是容易产生一些错误或是无意义的回复内容。为了解决上述问题,本文提出一种新的模型GRS(Generative-Retrieval-Score),此模型可以同时训练检索模型和生成模型,并用一个打分模块对检索模型和生成模型的结果进行打分排序,将得分最高的回复作为整个对话系统的输出,进而巧妙地将两种方法的优点结合起来,使最终得到的回复具体多样,且生成的回复形式灵活多变。在真实的京东智能客服对话数据集上的实验表明,本文提出的模型比现有的检索式模型和生成式模型在多轮对话建模上有着更优异的表现。

关键词:对话系统:数据中台:自然语言处理:智能电商客服

中图分类号:TP391 文献标志码:A DOI:10.3969/j.issn。1000-5641.202091010

0引言

近年来,在各行各业的数字化转型过程中,数据中台(Data Platform)建设已成为其中最基础和最关键的一项任务。数据中台的核心功能是提供统一、便利的数据集成、数据管理、数据分析和服务能力。人机对话系统将对话数据进行分析处理,服务化之后提供给各类人机对话场景下的业务系统,如电商领域的智能客服,可以取代人工工作中高度重复的标准化客户咨询,有着广阔的商业前景。

根据应用领域的不同,人机对话系统主要被分为开放领域闲聊式的对话系统和以完成特定任务为目标的任务型对话系统。开放领域的对话系统并没有特定的目标,更像一个朋友去陪伴用户进行聊天。任务型对话系统主要是通过对话的方式去帮助用户完成特定的一些操作,用来解决人们特定领域的问题,比如手机上搭载的智能语音助手,可以通过对话的方式去播放音乐、拨打电话等。

对话系统的实现方式主要有基于检索式和基于生成式两种。Isbellet和ji等人提出基于检索式的对话系统,会预先准备大量的对话数据集,用户输入问题(查询)后,系统首先从整个对话数据集中检索出一系列可能相关的候选对话,然后再在这个小范围的候选集内进行重新排序,并挑选出最适合的一句作为回复。但是基于检索式的对话系统并不产生新的回复语句,只能在现有对话数据集中去挑选句子回答用户的问题,其回复类型和回复内容都受到了所选对话数据集的限制。一旦用户所提出的问题和语料库并不匹配,那么检索式的对话系统将无法准确地回答用户提出的问题。

为了使对话系统生成更符合用户问题的回复,更好的办法是让对话系统自动生成一句回复。随着深度学习的蓬勃发展,基于生成的对话系统也在快速发展。基于生成的对话系统可以生成一个新的句子作为回复,从而更具灵活性。Sordoni和Serban等人提出了seq2seq模式,用两个递归神经网络(RNN)来实现编码器和解码器。编码器用一个或几个词嵌入向量去获得用户输入问题的语义,解码器用于对查询词嵌入向量的解码。为了解决RNN中的梯度爆炸和梯度消失问题,HochreiterN提出LSTM(Long Short Term Memory)cho提出GRU(Gated Recurrent Units)可以进一步增强RNN的能力从而编码更长语句。基于生成式的对话系统的优点在于可以产生灵活而且有针对性的回答。但是生成式对话系统也面临很多问题。首先,SerbanM提出生成式对话系统容易生成“万金油”类型的回复,如“是的”/“我也这么认为”/“我不知道”等。这些回复看似可以接上用户的问题,但这些回复对于用户来说并没有实质性的帮助。其次,生成式对话系统采用Encoder-Decoder框架的生成式对话模型通常采用End-to-End的方式进行训练,这种方式虽然训练简单,但受限于背后深度学习技术本身的特性,这会使得最终模型缺乏足够的可控性和可解释性。最后,由于训练数据源噪音和自然语言本身的特性导致生成式对话模型的鲁棒性欠佳。

如表1所示,针对两种方式各自的利弊,本文希望结合两种方式的优点尽可能地解决两者的缺点,因而提出了一种新的模型GRS,将检索式模型和生成式模型进行了融合,然后通过一个打分模块,针对用户所提出的问题,对检索模块得到的回复和生成模块得到的回复进行打分,选择一个得分最高的句子作为最终输出。在打分模块中为了弥补CNN在分类过程中特征之间忽略空间关系的问题,使用基于动态路由算法的胶囊网络确定哪些低层特征将被传输到高层特征,并使用胶囊的长度代表对应关系类别的概率。模型充分汲取了检索式对话系统和生成式对话系统的优点,并且通过打分模块解决两种模型各自存在的问题。本文的主要贡献如下:

(1)提出了一种新的模型GRS,该模型通过打分模块将生成式对话系统和检索式对话系统进行了融合,充分结合了两种方式的优点而尽可能解决了两者的缺点。

(2)首次将胶囊网络应用于人机对话系统任务中,因为CNN在分类过程中特征之间忽略空间关系的问题,所以胶囊网络只需要少量的训练语料库即可获得CNN中用大量语料库获得的结果。

(3)在京东智能客服对话数据集上的实验表明,提出的模型比现有的检索式模型和生成式模型在多轮对话建模上有着更优异的表现。

1相关工作

基于检索式的对话系统可以保证句子的流暢性和多样性,因此被广泛应用于很多商业聊天机器人。比如,Microsoft的聊天机器人XiaoIce以及阿里巴巴集团的电子商务助手AliM。Isbell等人使用信息检索技术去搜索相关的查询问题及回复。Yan使用手工构建特征和深度神经网络去进行查询一回复的匹配。Wu提出了一种顺序匹配网络,该网络在多粒度级别上与对话上下文进行匹配。Yang考虑在对话系统中利用外部知识来实现多回合响应排序。Li提出了随机游走算法对候选回复进行排序。

基于生成式的对话系统正在快速发展。Gao对生成式对话系统领域的神经对话模型做了全面调查。Ritter用基于短语的机器翻译进行查询和回复。Zoph在编码器中使用了两个RNN,在解码器中使用了一个RNN,可以将一个句子翻译成两种不同的语言。随着神经网络的再度兴起,Sutskever等人将RNN用于对话系统。Serban采用可变编码器去获取查询信息分布,采用随机向量从该分布中去生成回复。而现在,基于生成式的对话系统采用的普遍结构是由Sordoni等人提出的seq2seq,其中包括一个编码器和一个解码器。但原始的seq2seq模型在编码器中将整个对话上下文编码成一个单一的语义向量,会丢失很多重要信息。为了解决这个问题,Dzmitry等人提出了带注意力机制的attention-seq2seq模型,让解码器在每一步去重点关注最相关的输入。之后,Ashish等人提出完全基于注意力机制的Transformer模型,能够捕捉输入和输出语句句内和句间的语义信息,且训练速度快。Transformer取得了巨大的成功,Jacob等人提出了基于Transformer的大型预训练模型BERT,在11项重要任务上都取得了当时最好的性能表现,向人们展示了在NLP领域中使用迁移学习的可能性和高效性。

CNN由于其出色的特征提取能力,已被广泛应用于图像和文本分析领域。但是,在图像分析领域中,CNN忽略了低级特征和高级特征之间的空间关系。此外,在其池化操作中丢失了大量有价值的信息。针对这一缺点,Sabour等人提出了一种基于动态路由算法的胶囊网络模型,该模型克服了CNN低层特征向高层特征传输时忽略空间特征的局限性,并通过在MNIST数据集上进行实验来验证其在图像分析领域的有效性。与输出单个标量的传统神经元不同,胶囊是一组神经元,它们利用矢量来表示实体的特征。向量的每个维度均代表对象的特征,向量的长度可以表示实体所属类别的概率。目前,胶囊网络通常应用于分类模型体系结构的最后一层,以取代最大池化层来完成分类任务。Zhao将其应用于文本分类任务,6个文本分类基准实验的结果表明胶囊网络在文本分类上取得了很好的效果。Zhang[221利用胶囊网络对多实例多标签关系进行分类,在NYT数据集上的结果表明,他们提出的模型可以有效地提高预测关系的准确性。

2问题定义和数据集

2.1问题定义适程度。

2.2数据集

本文采用JDDC数据集来评估提出的模型性能,该数据集为京东构建的一个大型的真实场景中的中文电子商务对话数据集,里面的所有对话都是发生在京东商城的真实用户和客服之间的对话,包含超过一百万段多轮对话、两千万轮句子以及一百五十万个单词。该数据集反映了人与人对话的多个不同特征,比如对话是目标驱动的,而且存在需要从历史对话上下文中获取信息的长期依赖问题;并且涵盖了多种对话类型,比如任务导向型对话、闲聊型对话以及问答型对话。

表2[23]展示了该对话数据集的一些统计信息,从表中可以看到,该数据集总共包含1 024 196段对话、20 451 337条对话语句、150 716 172个单词。此外,这些对话中最长的对话达到了83轮,而最短的对话只有2轮,对话的平均轮数为20轮,且对话语句的平均单词数为7.4个单词。图1123]为数据集中对话轮数的分布直方图,从图中可以看到,大部分对话都在9轮到30轮之间,而且轮数为14的对话在数据集中占有最大的比例,这表明该数据集要求模型必须能够很好地捕捉文本上下文中的长期依赖关系。

3模型描述

本節介绍针对多轮对话建模提出的模型GRS的实现细节。图2展示了该模型的整体结构。整个模型分为3个模块,检索模块主要负责计算从语料库中抽取得到的候选回复的匹配分数并按分数对其进行排序,取分数最高的候选回复作为该模块的回复输出;生成模块主要负责根据输入的历史对话上下文和当前轮的问题,直接去生成对应该问题的回复;最后,打分模块负责对检索模块和生成模块得到的两个回复进行打分,取分数较高的回复作为整个模型的最终输出。下面将分别介绍各个模块的详细内容。

3.2生成模块

生成模块采用Transformer来生成与对话上下文对应的回复,如图3所示,Transformer是一种采用Encoder-Decoder架构,且第一个提出只用注意力机制来进行编码和解码的模型。编码阶段用多头自注意力Encoder-Self-Attention来编码输入上下文对话句内的语义信息,解码阶段用多头自注意力Decoder-Self-Attention来提取输出句内的语义信息,而在decoder端还有一个和encoder端的输出相连接的Encoder-Decoder-Attention模块,此模块用来让两端进行交互,提取输入和输出之间的相关性信息。经过堆叠的编码和解码过程后,最后一个模块的输出经过线性转换和softmax后输出概率,根据概率分布在输出词典中找到对应的单词,这些单词最后组成句子,作为与输入上下文对应的回复。由于Transformer中向量级的运算是以矩阵的形式并行进行的,所以该模型的执行效率非常高。

3.2.1编码阶段

首先通过词嵌入对句子中的单词进行向量化,再利用位置嵌入来获得词与词之间的相对位置关系,通过Encoderself-Attention计算输入的句子中每个词与其他所有词的相互关系,这样就能获得句子中更多的上下文信息,此时attention中的Q、K、y矩阵是相同的。然后再利用这种相互关系调整每个词的权重来获得每个词新的语义表示,这个新的表示不但蕴含了该词本身的含义,还蕴含了其他词与这个词的关系,因此和单纯的词向量相比是一个更加全面的表达。最后经过正则化和前馈神经网络将编码后的信息输入解码块中。

3.2.2解码阶段

首先对上一时刻的输出进行向量化,同样加上位置嵌入,然后经过Decoder-Self-Attention编码输出语句句内单词的相互关系,该模块的输出以及encoder端的输出经过Encoder-Decoder-Attention模块编码输入与输出之间的匹配信息,这种做法使得在生成回复的时候不仅只关注解码器本身的输出,同时还能让解码器的输出和编码器编码的输入信息有“软对齐”的效果。

3.3打分模块

打分模块是一个通过capsule(胶囊)训练的分类器,其将对检索模块和生成模块的输出分别进行打分,选取概率值最大的作为整个模型的最终输出结果。

然后将经典胶囊网络最后一层的多分类层改为二分类层,也就是最后一层输出两个c印sule。通过将构造的正负样本输入胶囊网络中进行训练,令阈值为0.5,使得最后一层向量长度大于等于该阈值的capsule记为正样本,小于该阈值的capsule记为负样本。经过训练得到该分类器后,将检索和生成的response输入该分类器进行打分,最后选取分数值最大的作为整个模型的输出。

4实验

本节说明模型的实验设置、论文实验所采用的评价指标、用来对比的其他基线模型以及论文提出的模型在JDDC多轮对话数据集上与其他基线模型的对比实验结果。

4.1实验设置

将对话数据集按照8:1:1的比例划分为训练集、验证集和测试集,且过滤掉一些太短或太长的对话。其中,训练集中真实的正样本回复和随机采样的负样本回复的比例为1:1.对于模型的参数设置,将单词的向量编码表示维度设为200,用于提取匹配特征的CNN中的卷积核和池化核的大小为(3,3),步长分别为(1,1)和(3,3),卷积核的数量为32,GRU中的隐藏层单元维度设为200,初始学习率为0.0005且随着训练逐渐衰减,dropout系数为0.2,数据集分为50一批,然后分批输入模型进行训练。模型采用常用的交叉熵损失函数进行训练。实验结果及分析将在4.4节和4.5节中给出。

4.2评价指标

BLEU:比较输出回复与真实样本的n-gram的重合程度,重合程度越高则分数越高。unigram用于衡量生成单词的准确性,高阶的n-gram用于衡量生成句子的流畅性。

Rough-L:计算输出回复与真实样本的最长公共子序列的长度,长度越长则分数越高。

Distinct-1/2:通过计算在输出回复中唯一的unigram和bigram所占的比例来评估输出回复的多样性。

4.3对比模型

4.3.1基于检索的模型

BM25:是一种在信息索引领域用来计算query和文档相似度的经典算法,是一种基于概率检索模型的算法,它所计算的相似度分数是由query中的单词得到的,主要包括3个部分:单词和文档之间的相似度、单词和query之间的相似度以及每个单词所占的权重。这里使用BM25来从语料库中检索出20个候选回复作为后续匹配的输入,排行第一的候选回复作为此对比模型用来评估的输出。

BERT-Retrieval:上面的检索算法只用了一种单词特征来计算相似度,所以为了捕捉更多的语义信息,对BERT预训练模型进行微调,再加上全连接层和softmax作为分类器来获取语义相似度分数。然后用BERT分數来重排20个候选回复,最终输出分数最高的回复。

4.3.2基于生成的模型

Vanilla Seq2Seq:此模型为原始的Sequence-to-Sequence模型,每个编码器和解码器都有512个单元的4层双向LSTM网络。

Attention-based Seq2Seq:此模型是在上面的原始Seq2Seq模型的基础上,加入了注意力机制得到的。

Attention-based Seq2Seq with Copy:输入的历史对话上下文以及当前轮的问题通常都比较长,而且包含很多特有名词,比如“京东白条”,这种单词通常都不在输出词表内,所以在上面带注意力机制的模型的基础上,加入了复制机制,进而可以直接从输入中复制这些超出词表范围的单词。

以上用来对比的baseline模型的结果都是取自JDDC论文,表3所示为自动评估的对比实验结果。

4.4结果分析

从表3所示的实验结果可以得到以下两条主要结论。

(1)从整体上看,生成模型对比检索模型,在BLEU和Rough-L这两个评价指标上表现更好,而检索模型在Dist-1/2这两个评价指标上更加优秀,说明生成模型输出的回复与真实样本更加吻合,而且更加倾向于生成一些通用的、重复的回复,检索模型则从语料库中检索回复,所以得到的回复更具有多样性。

(2)论文提出的GRS模型在BLEU和Rough-L这两个评价指标上能够达到生成模型的高度,同时在Dist-1/2这两个评价指标上又不比检索模型差太多,说明GRS模型这种将检索模型和生成模型相结合的方式,能够有效地结合两种模型的优点,进而提高多轮对话建模的效果,既保证了回复的具体性、多样性,又能拥有生成回复的灵活性,提升了整体回复的质量。

4.5模型可视化

为了研究注意力机制在GRS模型中是如何帮助模型去捕捉句内或句间单词的语义信息的,本文对注意力模块的权重进行了可视化。图4是对模型中的注意力模块权重的可视化结果,从图中可以看到,“送货员”这个词和“他”这个指代送货员的代词重叠位置的注意力分数值较高,同样地,“上来”和“楼下”对应的分数值也较高,即它们之间通过注意力机制是有一个“软对齐”的效果的,这也解释了注意力机制是如何促进多轮对话建模的效果,因为这种“软对齐”对于共指消解任务非常有用。

5结论

本文针对面向任务的多轮对话建模问题,分析了基于检索的方法和基于生成的方法各自的优缺点后,提出了一个将两种方法结合起来的多轮对话模型。该模型同时训练检索模型和生成模型,并用一个打分模块对检索模块和生成模块的输出结果进行打分排序,取得分高的结果作为模型的最终输出。模型巧妙地将两种方法的优点结合起来,最终得到的回复内容具体多样,且生成的回复形式灵活多变,弥补了两种方法的不足。在一个大型的真实多轮对话数据集上的实验结果表明,论文提出的模型能够很好地提升面向任务的多轮对话建模效果。表示增强在很多不同的NLP任务上都有所使用,在接下来的工作中,需要研究如何利用检索模型的输出来增强生成模型的输出效果,反之亦然。

猜你喜欢
自然语言处理
基于LSTM自动编码机的短文本聚类方法
自然语言处理与司法案例
国外基于知识库的问答系统相关研究进展及其启示
基于依存句法的实体关系抽取
基于组合分类算法的源代码注释质量评估方法
面向机器人导航的汉语路径自然语言组块分析方法研究
词向量的语义学规范化
汉哈机器翻译中的文字转换技术研究
HowNet在自然语言处理领域的研究现状与分析