Press "Enter" to skip to content

【交易技术前沿】海通证券智能外呼应用研究

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

本文选自《交易技术前沿》总第四十五期文章(2021年6月)

 

金鑫鑫、任荣、王东、王洪涛 / 海通证券股份有限公司

 

林金曙、齐海丰、梅锦 / 恒生电子股份有限公司

 

近年来,以大数据、自然语言处理为代表的新型信息技术迅猛发展,促进了人工智能的发展,并逐步进入商业领域应用。在金融行业中,智能客服发展较为成熟,已广泛应用在智能在线客服、智能语音导航、智能外呼等场景。

 

传统的人工客户服务,主要依赖对客服人员的培训和客服中心知识库的维护,实现对客户的主动和被动服务。根据实践,在这些服务场景下,大部分的客户咨询、业务问题是存在很大比例重合的,将人工智能应用于客户服务领域,实现大量简单、重复的工作交由智能客服来完成,不仅可以降低人工成本,也可以提升客户服务的标准化和效率,促进客户服务的智能化转型。

 

本文在简介智能化应用场景的基础上,具体阐述海通证券智能外呼场景下,语义引擎应用实践所面临的痛点及解决方案。

 

一、概述

 

结合客服中心的业务现状,目前主要有三种应用场景与智能客服结合比较紧密:1、智能在线客服、智能语音导航、智能外呼,场景简介如下:

 

1)智能在线客服:该在线客服主要依托e海通财App、微信公众号展开。客户可以在“在线客服”服务中,唤起智能客服,建立与客服的对话。用户发起会话后,系统通过意图识别判断是否需要调用智能知识库,若是则进入智能回复模式,通过多轮对话尝试解决客户的业务问题。若遇到机器人无法回复的问题,也提供转人工服务的选项,用户选择后跳转至人工服务。

 

2)智能语音导航:客户通过拨打客服电话后,可触发智能导航系统。该系统采用ASR语音识别及TTS语音合成技术,基于既定的业务场景应答模型,支持客户通过自然语言交互的方式直接在电话中与机器人进行沟通,机器人根据智能知识库关键字快速定位客户需求,直接进行业务回复,或将用户导航至特定功能节点。并对接传统IVR,实现导航菜单的扁平化,缓解传统IVR导航菜单层层嵌套用户等待时间长的问题,并在智能导航时保留转人工服务的选项,提升电话接通率和客户满意度。

 

3)智能外呼:通过智能外呼服务,实现用机器人来模拟真人坐席,按模型设计回访话术、应对技巧,对投资者进行业务通知类回访,引导投资者获取通知及风险揭示,减轻人工回访工作压力,提高回访覆盖率。同时为了提升客户体验,可设置相关回访策略,以支持语音中断后转人工、发散性问题回复及主流程返回引导等功能。

 

关于智能外呼应用场景,在证券行业主要包括中签通知、状态过期通知、适当性回访、办理业务回访等业务类型。客户回访作为客户服务的重要组成部分,一方面是客户服务的重要手段和形式,另一方面也长期面临着服务资源匮乏和客户回访量大的两难问题。

 

随着证券业务的快速发展,新股发行常态化,及内外部管理要求的细化,分支机构一线人员及客服坐席的客户服务压力陡增。这些大量且逻辑简单的外呼工作,恰恰可以由整个智能外呼系统来完成,相比传统人工外呼,智能外呼机器人有着并发支持外呼量大、无需休息、工作状态稳定、训练成本低等优点。同时根据业务场景扩展,持续优化智能外呼机器人模型,保证智能外呼服务的持续稳定高效运行。

 

二、证券智能外呼现状

 

当今证券智能外呼系统大都已经结合深度学习、语音识别、自然语言处理等AI技术,基本解决了传统外呼单纯依靠人工带来的诸多问题。然而,伴随着使用人工智能外呼客服,业务人员对现有的语义智能引擎相关的服务也有了更高的要求,同时对相应的AI技术也有了更大的挑战。

 

语义相似度匹配是智能客服领域[1]普遍使用的技术手段,也是NLP领域研究的热点话题。语义相似度匹配最早经常被视为一个二分类问题进行解决,比如文章[2]采用孪生循环网络解决二分类问题;之后,有研究者使用三元组形成triplet-loss的做法进行训练,目的区分相似与非相似的句子,比如文章[3]采用卷积网络解决三元组问题。然而,这两种方法都有一个很严重的问题:负样本采样严重不足,导致效果提升非常慢。

 

同样在外呼场景,系统也需要计算客户的回答与知识库中已经配置好的待匹配回答之间的文本相似度,从而在知识库中识别出与客户回答最相近的意图,并给出对应回复话术。其中,主要难点在于为知识库中配置多个语义相同的扩展问,工作量繁重;其次,训练满足上线使用要求的相似度模型,准确率低、泛化性弱、容易过拟合。

 

因此,目前证券智能外呼面临的主要痛点为:

 

1)语义相似性模型不能在新的特定业务场景中发挥很好的作用,容易失效,准确率低。由于业务粒度及要求不同或业务人员配置策略不同,两个句子是否相似或是否属于同一个意图也是不一样的,见下表。

如表所示,“找我干嘛”、“找他干嘛“在场景A中属于一个意图,而在场景B中不属于一个意图,需要区分;因此不同的场景,句子相似的粒度也会发生变化,需要采用不同的相似性模型解决。

 

2)语义相似性训练语料准备工作效率低,比较耗时耗力。外呼业务场景众多且更替频繁,随着场景的变化,相似性模型需要高效的语料准备工作以及模型的快速迁移。

 

3)扩展问配置效率低质量差。业务人员往往配置的扩展问数量有限、结构单一,不能满足客户回答的多样性,配置效率以及质量都无法满足上线要求,最终导致外呼回访的成功率明显下降。

 

4)特定业务场景下的语料较少,模型极容易陷入过拟合的状态,丧失语义相似性的通用能力。

 

三、文本匹配算法及预训练模型介绍

 

(一)文本匹配算法

 

在智能外呼系统中,需要通过计算客户回答文本与知识库中的配置文本之间的语义相似度从而匹配到对应相似文本。这种计算文本之间的相似度的算法称为文本匹配算法。随着自然语言处理发展到深度学习阶段,文本匹配算法也步入到新的台阶,即“深度文本匹配”。深度文本匹配算法弥补了了统计学习模型在计算语义相似度时语义的缺失信息,进一步挖掘两个文本直接的语义相似度,因此效果更好。深度文本匹配方法主要分为表示型深度文本匹配模型和交互型深度文本匹配模型。表示型模型是先将两段文本转换成一个语义向量,然后计算两向量的相似度,其更侧重对语义向量表示层的构建,它的优势是结构简单、解释性强,且易于实现,是深度学习出现之后应用最广泛的深度文本匹配方法。基于交互式的匹配模型的思路是,假设文本之间的匹配度受到文本内局部特征匹配度的影响,因此在模型输入层就对文本编码表示做交互、对比,从而利用到了两个文本之间的局部特征结构信息。

 

1. 首先介绍表示型深度文本匹配模型,表示型深度文本匹配模型一般采用Siamese网络结构(即所有文本共享同一个模型网络参数),通过将文本经过深度网络模型编码成同一个尺度空间的向量,从而计算文本之间的相似度。典型的Siamese模型架构如下图所示:

根据Sister Network的不同,典型的表示型文本匹配模型主要有DSSM、SiamLSTM、Multi-View、Sentence-BERT等模型。

 

1.1 DSSM文本匹配模型。DSSM的全称是Deep Structured Semantic Models,是匹配模型的鼻祖,由微软研究院在2016年提出。模型结构主要分为输入层、表示层、匹配层。输入层时将文本映射到一个向量空间中并输入到深度神经网络中。表示层是使用模型结构对输入层输入的向量做抽象抽取,得到一系列的特征向量来表示输入的文本。在匹配层,通过将表示层得到的向量做相似度匹配,进而利用极大似然估计构造损失函数。DSSM模型的优点在于采用有监督的训练方法,准确度高,同时单个词或单个字处理不依赖切词的正确与否。缺点在于词向量的表示使用词袋模型,不考虑词语之间的位置信息,损失了很多语义信息。

 

1.2 SiamLSTM模型在Siamese模型架构中采用LSTM作为Encode模型,通过共享权重的LSTM编码,将文本映射为同一空间中的向量,并采用Manhattan距离计算损失。SiamLSTM模型通过使用LSTM网络,将文本中字词之间的结构信息加入到文本的表示向量中,使得文本向量表示语义更丰富。

 

1.3 百度在EMNLP2016中针对多轮对话的文本匹配问题,提出了Multi-view的Q-A匹配方式,输入的query是历史对话的拼接,分别编码了word sequence view和utterance sequence view两种表示。词级别的计算和SiamLSTM差不多,都是用RNN的最后一步输出做Q-A匹配,而句子级别的会对RNN每步输出做max pooling得到句子表示,然后再将句子表示输入到GRU中,取最后一步作为带上下文的表示与回答文本匹配计算。

 

1.4 Sentence-Bert模型。Sentence-Bert分别采用孪生网络双塔结构和三胞胎网络来更新模型参数(三个模型共享参数),通过将预训练语言模型Bert引入到模型训练中作为模型的Encoder部分,进一步丰富语义向量的表达,提高文本特征提取的能力。Sentence-Bert的优点是将预训练语言模型和孪生网络架构相结合,进一步丰富文本的向量表达。

 

2. 下面介绍基于交互式的深度文本匹配模型。表示型的模型更侧重于对表示层的构建,缺点是分别从两个文本对象中单独提取特征,很难捕获文本之间的局部结构关联信息。交互型的深度语义匹配模型将文本的局部特征信息提前进行交互对比生成交互特征,从而提高匹配准确度。交互型匹配模型的主要算法有ARC-II、MatchPyramid、ESIM等。

 

2.1 在ARC-II模型中,将文本中的每个词表示为词向量后,每个句子构成一个矩阵,通过滑动窗口在矩阵中选择一个或多个词的向量组成词向量组。将两个文本中选择的向量组做卷积操作,通过两两组合的卷积操作构造成一个2D向量矩阵。以这个2D矩阵为基础在进行多次卷积和池化操作,最后得到一个表达两个文本之间关联度的向量并输入到MLP中来综合这个向量的每个维度得到的匹配值。ARC-II模型考虑了句子中词的顺序和交互信息,但是缺乏对细微匹配关系的捕捉,匹配精准度上存在缺陷。

 

2.2 MatchPyramid模型重新定义了两段文本的交互方式,即重新构造模型中的匹配矩阵。MatchPyramid模型的核心思想是使用层次化思想构造匹配矩阵。类似于CNN在图像处理方面的原理,CNN通过提取图像中像素、区域的相关性从而提取图像中的特征,MatchPyramid模型将每个词语当作一个像素,对于两个单词数为K,V大小的句子,构造出一个大小为K*V的相似度矩阵。在匹配矩阵构造中,采用三种匹配矩阵构造方法:a.在相似度矩阵中,对于两个序列中词相同的值置为1,不相同置0。b.使用预训练的词向量将词转换为词向量并计算两个序列中每个词语之间两两的cosine相似度,填充到相似度矩阵中对应的位置。c.与b类似,计算两个序列中两两词语向量之间的点积距离作为相似度矩阵中对应位置的值。对于得到的相似度矩阵,采用两层CNN对相似度矩阵进行特征提取,最后用两层全连接层对CNN得到的特征结果进行转换,进而使用softmax函数得到分类概率构造损失函数。MatchPyramid模型的特点是采用多层的卷积,能够在单词或者句子级别自动捕获重要的特征。

 

2.3 ESIM模型综合使用了BiLSTM和注意力机制,包含四个部分:输入层、交互层、聚合层和预测层。ESIM的输入层采用与训练好的词向量或者初始化embedding层,然后接BiLSTM结构对词向量做特征提取。然后再用attention机制计算文本a中某一个单词和文本b中各个单词的相似度权重,再将权重赋给b中的各个单词的词向量,从而用加权后的b中各个单词的词向量来表征a中该单词,从而对a文本形成一个新的向量表征序列,文本b依然。简单理解是,假设a中有个单词“开户“,首先分析这个词语与文本b中各个词语直接的联系,计算得到的结果标准化之后作为权重,利用文本b中各个词语的词向量结合权重来去表征单词”开户“。对得到的新的向量序列做差异分析,判断两个句子之间的关系是否足够大,在模型上通过将得到的a的新向量序列和b的新向量序列分别与原来a的向量序列和b的向量序列做差和积操作,并将得到的结果和原向量序列做拼接,形成新的向量序列。在聚合层对得到的新序列向量再用一次BiLSTM编码,将新序列的信息融合起来。模型的预测层是将聚合层的输出做pooling操作,并将pooling后的结果做拼接输入到分类器中做预测。

 

通过上面深度匹配算法模型的相关介绍可知,表示型的深度匹配模型更侧重于对表示层的构建,其特点是对将要匹配的两个句子分别进行编码与特征提取,最后进行相似度交互计算。缺点是分别从两个对象单独提取特征,很难捕获匹配中的结构信息。交互型的深度匹配模型在字词粒度对两个句子的特征做交互关联匹配,能够更精细的捕捉句子之间的关联关系。在工业生产环境应用中,多采用表示型深度匹配模型来作为文本匹配相似度的计算。受制于模型结构的影响,交互型的深度匹配模型无法满足系统实时性响应,因为交互型的深度匹配模型需要同时将待匹配的两个或者多个文本同时输入到模型中,而表示型深度匹配模型由于孪生网络结构共享参数的机制,可以提前将待匹配的所有文本的模型表征向量提前缓存到内存中,从而能够满足系统实时性的响应要求。本文提出的文本匹配改进算法也是属于表示型的深度文本匹配模型。

 

(二)预训练语言模型

 

在NLP研究领域中,随着计算机算力的增强,预训练语言模型不断的涌现出来,并形成一种新的NLP范式,即使用大规模文本语料库进行预训练得到预训练语言模型,然后再针对特定的下游任务对训练好的预训练语言模型做微调,从而避免了从零开始训练模型的步骤,降低了NLP任务的模型训练难度的同时也提高了NLP任务的模型性能。预训练模型的发展可以分为两个时代:1.旨在学习词嵌入的预训练模型,这些模型往往采用浅层网络,如word2vec、Glove等。这些模型虽然可以捕捉词的语义,但是由于未基于上下午环境,不能捕捉到更深层次的概念。2.第二代预训练模型是专注于学习上下文的词嵌入的预训练语言模型,如ELMO、BERT、Albert等。有别于第一代模型,第二代预训练模型参数更多,结构更复杂,能够捕捉语料中的上下文关系,文本中的位置结构关系等。同时训练好的模型可以直接拿来做下游任务的训练。本文所提出来的深度文本匹配算法就是在Albert预训练语言模型的基础上做的改造创新,下面介绍一下本文涉及到的预训练语言模型BERT、Albert模型。

 

1. BERT预训练语言模型。BERT模型是Google在2018年提出的一种NLP模型,成为最近几年NLP领域最具有突破性的一项技术。在11个NLP领域的任务上都刷新了以往的记录。下面从模型结构、训练方法及任务、优缺点等方面展开介绍。

 

1.1 BERT模型结构介绍。BERT模型是在Vaswani提出的多层双向Tranformer模型结构上发展而来,利用了Transformer模型的Encoder模型结构部分,但是比原始Transformer结构更深。Transformer的Encoder模块包含6个Encoder block,BERT-base模型包含12个Encoder block,BERT-large包含24个Encoder block。下图是BERT模型训练的结构图,左侧的图表示了预训练的过程,右边的图是对具体任务的微调过程。

BERT的输入可以表示一个单独的文本序列,也可以表示一对文本序列。另外,BERT在训练时增加了一些有特殊作用的标志位:[CLS]标志放置在第一个句子的首位,经过BERT得到的表征向量可以用于后续的分类任务;[SEP]标志用于分开两个输入句子,例如输入句子A和B,要在句子A和B后面增加[SEP]标志;[MASK]标志用于遮盖句子中的一些单词,将单词用[MASK]遮盖后,再利用BERT输出的[MASK]向量预测单词是什幺,属于BERT的一个预训练任务。例如给定两个句子 “my dog is cute” 和 “he likes palying” 作为输入样本,BERT会转为“[CLS] my dog is cute [SEP] he likes play ##ing [SEP]“。BERT里面用了WordPiece方法,会将单词拆成子词单元(SubWord),所以有的词会拆出词根,例如 “palying” 会变成 “paly” + ”##ing”。BERT得到要输入的句子后,要将句子的单词转成 Embedding,Embedding用E表示。与Transformer不同,BERT的输入 Embedding由三个部分相加得到:Token Embedding,Segment Embedding,Position Embedding。如下图所示:

其中,Token Embedding代表词的Embedding向量,通过模型学习而来。Segment Embedding用于区分每个单词属于句子A还是句子B,也是通过学习而来。Position Embedding用来编码单词的位置信息,与Transformer使用固定的公式计算不同,BERT的Position Embedding也是通过模型学习得到的。

 

1.2 BERT模型预训练。在BERT模型的预训练阶段,BERT采用两个无监督预训练任务:Masked LM预测被mask的单词的训练任务和NSP(Next Sentence Prediction)预测下一个句子的训练任务。Mask操作是语言模型训练的常规操作,在Word2Vec中,CBOW通过单词i的上下文信息来预测被mask的单词i,不过这种训练方式不考虑语序,采用的是词袋模型。语言模型ELMO在训练时使用BiLSTM,在预测被mask掉的单词i时,对于i后面的单词,前向LSTM会全部mask掉,只使用i前面的前向LSTM信息来预测单词i。同时i前面的单词被后向LSTM mask掉,只使用后向LSTM的信息来预测单词i。因此ELMO是将上下文信息分隔开进行预测的,而不是同时利用上下文信息进行预测。而BERT的作者认为在预测单词时,要同时利用单词的上文和下文信息才能更好的预测,因此提出在Transformer Encoder结构上训练出一种深度双向模型,直接使用上下文信息来预测被mask掉的单词。但是在后续使用预训练模型时,由于句子中并不会出现[mask]的单词,为了防止模型性能的下降,在做训练时采用随机mask的策略。随机选择句子中15%的单词进行Mask,在选择为Mask的单词中,有80%真的使用[Mask]进行替换,10%不进行替换,剩下10%使用一个随机单词替换。以上就是BERT的第一个预训练任务Masked LM。BERT的第二个预训练任务是Next Sentence Prediction (NSP),即下一句预测,给定两个句子A和B,要预测句子B是否是句子A 的下一个句子。BERT使用这一预训练任务的主要原因是,很多下游任务,例如问答系统(QA),自然语言推断(NLI)都需要模型能够理解两个句子之间的关系,但是通过训练语言模型达不到这个目的。BERT在进行训练的时候,有 50% 的概率会选择相连的两个句子A和B,有50%的概率会选择不相连得到两个句子A和B,然后通过[CLS]标志位的输出来预测句子A的下一句是不是句子B。

 

1.3 BERT的优缺点。相较于以前的预训练模型,BERT能够捕捉到真正意义上的上下文信息。缺点是做生成任务时因为和预训练过程不一致导致生成任务时表现不佳,而且由于输入噪声[MASK]造成预训练和精调阶段的不一致影响到模型性能表现。

 

2. Albert模型简介。Bert提出后,提高了很多nlp任务的baseline,但是由于bert参数量巨大,导致在工业生产环境中做模型推断时耗时很大。为了解决上述问题,Albert应运而生。Albert模型结构与Bert无异,但是Albert使用一个新的自监督loss函数,提出的新的SOP预训练任务更能学习到句子间的内部特征。并且Albert提出两种模型参数机制缩小了预训练模型的参数量。

 

2.1 Albert模型参数压缩方法。原始的BERT模型以及各种基于Transformer的预训练语言模型都有一个共同特点,及Embedding的维度E和隐藏层的维度H相同,一旦增加了H,E的维度也增大了,最终导致参数量呈平方级的增加。Albert模型将E和H进行解绑,提出向量参数分解法,将一个非常大的词汇向量矩阵分解为两个小的矩阵。例如词汇量大小是V,向量维度为E,隐藏层向量为H,则原始词汇向量参数大小为V*H。Albert不直接将one-hot向量映射到隐藏层,而是将V*H分解为两个矩阵,因此原来的参数量V*H变为了V*E+E*H,E是一个远远小于H的维度。这做法大幅降低了模型参数的参数量。在BERT模型中,模型的参数有20%在word embedding映射层,80%的参数量都在transformer模块中。为了减少模型参数量,Albert在提出另一种模型参数缩减的方法,即参数共享,由于BERT模型是由多层Transformer的encode部分堆叠而来,模型参数随着Transformer层数的增加而增加。Albert提出在多层transformer单元共享参数,避免了模型随着深度的增加带来参数量的增大。

 

2.2 新的预训练任务SOP。从上文可知,BERT模型训练的loss由两个预训练任务组成,即mask LM和NSP,maskLM通过预测mask掉的词语来实现真正的双向transformer,NSP类似于语义匹配的任务,预测句子A和句子B是否匹配,是一个二分类的任务,其中正样本从原始语料获得,负样本随机负采样。NSP任务可以提高下游任务的性能,比如句子对的关系预测。但是NSP任务太过简单,导致模型没有真正学习到句间的关联关系,Albert提出一个新的预训练任务SOP(sentence-order prediction)。SOP关注句子间的连贯性,而非句子间的匹配性。SOP正样本也是从原始语料中获得,负样本是原始语料的句子A和句子B交换顺序。举个例子说明NSP和SOP的区别,原始语料句子A和B,NSP任务正样本是AB,负样本是AC;SOP任务正样本是AB,负样本是BA。可以看出SOP任务更加难,学习到的东西更多了(句子内部排序)。

 

2.3 通过上面的介绍可知,Albert克服了BERT模型参数量大、预训练任务简单等缺点。实验表明,在大幅缩减模型参数的情况下,Albert模型的性能相较于BERT仅仅下降1-2个点,但是模型推理速度却提高了一个数量级。

 

四、方案流程设计

 

针对目前智能外呼的痛点,本文在Albert的基础上设计了一个兼相似性检索与生成的语义相似性(预训练)模型框架,并采用few-shot learning的训练方法,通过弱监督信号对特定业务场景进行微调,既达到上线要求的准确率与泛化性,也满足模型快速迁移的需求。

 

方案流程见下图。

方案流程主要包括三个步骤。

 

步骤1:利用预训练的生成能力,通过beam-search方法,结合人工勾选或修改,快速形成特定场景的知识库。

 

步骤2:利用特定场景的知识库,在预训练模型的基础上快速微调,训练出适合该特定场景的相似性模型。

 

步骤3:利用知识库以及微调模型,对用户提问进行相似性计算,准确识别意图。

 

该方案流程的构思创新点:

 

1)预训练模型利用构造特殊的Attention-Mask,在相似性任务的基础上,增加生成任务,充分利用文本相似与生成任务[4]之间的关联性,增加训练难度,可以明显提高相似性的准确率,也可以为业务人员提供大量多样性的扩展问。

 

2)微调模型结合few-shot learning[5]训练方法,采用弱监督信号,允许在特定业务场景语料少量的情况下,快速训练相似性模型,可以避免模型过拟合而失去相似性通用能力的问题。

 

3)在预训练模型中,每个batch数据有特别设计,按照一定比例加入了金融语料与通用语料,再次增加训练难度。恒生收集的FAQ、外呼等金融场景的语料共50万组,通用语料共712万组。

 

4)整体方案流程节省大量计算资源以及人力成本,可根据特定业务场景快速迁移,灵活方便。假设一个业务场景5个问题,则从语料准备到训练出可上线模型所花费成本,与传统分类、传统相似性方案相比见下表。

五、算法设计

 

(一)预训练模型

 

考虑到模型推理的性能问题,模型框架在Albert[6]基础上进行改造。

 

Albert模型结构采用BERT作为backbone,对嵌入字向量参数进行因式分解以及encoder跨层参数共享,参数量缩小为1/18,并采用SOP(Sentence-Order-Prediction)训练任务,用于解决原版BERT中NSP(Next-Sentence-Prediction)任务损失低效的问题,因此Albert在不失精度的情况下可以保证快速的推理能力。

 

假如输入“你是谁”,相似句为“哪位你”,那将这两个句子拼成一块:“[CLS]你是谁[SEP]哪位你[SEP]”,则对应的Attention-Mask为:

其中“[CLS]你是谁[SEP]”这几个token之间是双向的Attention,而“哪位你[SEP]”这几个token则是单向Attention,从而允许递归地预测“哪位你[SEP]”这几个token,所以它具备文本生成能力,生成过程见下图。

其中生成任务中的损失函数为:

上述公式中,指预测第几个字,指预测的第个字。

 

其次,“[CLS]你是谁[SEP]”这几个token只在它们之间相互Attention,与“哪位你[SEP]”没有关系,因此“[CLS]”对应的向量编码代表着“[CLS]你是谁[SEP]”的句向量。利用句向量,可以把整个batch内的“[CLS]“向量取出来,得到一个句向量矩阵V,然后两两做内积,得到的相似度矩阵,并mask掉对角线部分,最后每一行进行am-softmax,如下图:

上图一个batch中6个样本,1代表相似、0代表不相似,则将相似性问题转化为分类问题,当一个batch的数量较大时,即把batch内所有的非相似样本都作为负样本,这样就可以解决之前负样本采样不足的问题。

 

设为权重向量,则利用am-softmax得到相似度任务的损失函数为:

其中,为第个样本的真实标签,为目标标签,为比例缩放参数,默认值为30,为一正数,默认值为0.35。

 

Loss=Gen f loss+Sim f loss。

 

最终在近760万组相似性数据中,预训练模型训练近4周,模型在10万条测试数据中,top1、top2、top3的准确率分别为0.939、0.945、0.974。

 

(二)微调模型

 

在外呼场景中,一个意图下的扩展问语料有时不具有语义层面的相似性,比如“忙”这个意图,扩展问有“开车呢”、“正在打比赛”、“单位忙着呢”等;如果在微调模型中,使用强监督信号训练语义相似性,势必会严重破坏预训练模型中的文本语义相似结构,导致微调模型效果不佳。

 

因此,本文微调模型采用few-shot learning的训练方式,通过弱监督信号,对特定场景的少量语料进行快速训练,旨在防止过拟合的前提下,有效学习不同意图之间的差异。

 

few-shot learning算法研究主要集中在小样本图像识别的任务上,目标不是识别图像的类别,而是识别出不同图片之间的差异;近年来,在自然语言处理领域也开始出现few-shot learning的场景,比如问答领域的意图识别。few-shot的训练集通过构建support set以及对应的query完成训练任务。这里support set包含5个类别(即5个意图),每个类别下含有5到20个样本,即训练时采用5-way 20-shot的方式,之后选取这5个类别中的一个样本作为query(不在support set中),以这种方式,构造一系列的episode来训练网络,最后由softmax层获取训练误差,过程见下图。

图中Encoder指句子向量编码层,Class指不同的意图类别,Relation指各意图的扩展问与Query进行相似性计算,分别得到每个意图的最大相似性,损失函数如下:

其中Class i 指第个意图,core i 指意图与Query的最大相似性,y i 指是否属于该意图(属于为1,不属于为0)。

 

利用此微调模型,可以在不破坏相似性通用性的情况下,区分“找我干嘛”、找他干嘛以及”我同意”、“我不同意”等细分意图。

 

六、总结与展望

 

本文对证券智能外呼客服的现状以及痛点进行了系统的梳理与阐述,根据智能语义引擎中的应用实践,提出预训练+微调的相似性方案,赋予预训练模型相似句生成的能力,并对微调模型采用few-shot lerning的训练方式,通过弱监督信号在样本少量的情况下,快速训练出特定业务场景的相似性模型。

 

通过模型的持续训练结合业务场景挖掘,目前海通证券智能外呼服务已先后上线6个服务场景,最大并发达到150路,累积执行任务数超过200万次,剔除无人接听、忙线、错号等情况,平均成功率可达到90%。在人工成本节省上,根据外呼电话时长核算,平均每个交易日可节省25个专职人员的工作量,有效的实现了释放分支机构一线人员和坐席资源到高级客户服务及客户拓展。

 

在人工智能技术不断发展完善的大背景下,基于外呼效果持续跟踪和用户需求不断迭代模型,优化知识训练和应答逻辑,提升智能外呼机器人的准确度和效率;持续扩展外呼场景,进一步提升回访成功率和业务覆盖率,实现客户与公司的双赢。

 

参考文档

 

【1】程广兵.运营商问答系统融入AI打造智能客服[J].通信世界,2018(14):45-47.

【2】Neculoiu P , Versteegh M , Rotaru M . Learning Text Similarity with Siamese Recurrent Networks[C]

Repl4NLP workshop at ACL2016. 2016.

2015 IEEE Workshop on Automatic Speech Recognition and Understanding (ASRU). IEEE, 2015: 813-820.

【4】Sutskever I , Vinyals O , Le Q V . Sequence to Sequence Learning with Neural Networks[J]. Advances in neural information processing systems, 2014.

【5】Sung F , Yang Y , Zhang L , et al. Learning to Compare: Relation Network for Few-Shot Learning[C]

2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. IEEE, 2018.

 

【6】Lan Z , Chen M , Goodman S , et al. ALBERT: A Lite BERT for Self-supervised Learning of Language Representations[J]. 2019.

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注