具体实施方式
下面结合附图对本发明实施例提供的设备与方法及进行详细说明。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。以下以在线提供客服话术为例来阐述本发明的构思与实施例。
图1示出根据本发明的一个实施例的可用于提供在线话术的推荐设备100。推荐设备100包括会话捕获模块101、话术预测模块102、话术推荐模块103。会话捕获模块101捕获用户在与客服的会话过程中的当前咨询问题REQt以及当前咨询问题所对应的会话上下文Contextt。
话术预测模块102利用经过训练的话术预测模型,如图1中200所示,处理当前咨询问题REQt以及会话上下文Contextt,从而预测针对当前咨询问题REQt的可用话术推荐概率。在一个示例中,这里的可用话术推荐概率包括指示对于当前咨询问题存在可用话术的第一推荐概率,以及指示针对当前咨询问题推荐多个可用话术的多个第二推荐概率。这里的话术预测模型200既可以作为推荐设备100的一部分位于本地,也可以位于推荐设备100的外部并由话术预测模块102调用。话术推荐模块103基于话术预测模块102预测出的可用话术推荐概率确定出多个可用话术中的至少一个可用话术作为推荐话术。由此,客服利用该推荐话术对用户的咨询问题REQt进行答复。在本发明一个示例中,话术预测模型200是根据服务历史日志挖掘生成的训练样本训练得到的。图2A与2B分别示出了根据本发明的多个实施例的话术预测模型200的结构示意图。
如图2A所示,话术预测模型200包括长文本神经网络层201与分类层202,其中,长文本神经网络层201利用经过训练的长文本神经网络模型LongText-NN处理由前咨询问题REQt以及会话上下文Contextt以输出长文本特征向量dV;分类层202基于长文本特征向量dV生成针对当前咨询问题REQt的可用话术推荐概率。在本发明的一个示例中,分类层202利用与长文本神经网络模型LongText-NN联合训练得到的分类神经网络模型NN1与分类神经网络模型NN2处理长文本特征向量dV以提供多个可用话术推荐概率OUT1~OUTN+1,其中,分类神经网络模型NN1提供的多个推荐概率OUT1~OUTN中的每个指示了针对咨询问题REQt推荐多个可用话述中的一个可用话术的概率,而分类神经网络模型NN2输出的推荐概率OUTN+1指示对于当前咨询问题REQt存在可用话术的概率。例如模型NN1的第一输出端对应于第一话术、第二输出端对应于第二话术,以此类推,第N个输出端对应于第N话术。因此,第一输出端提供的可用话术推荐概率OUT1表示推荐第一话术的概率,第二输出端提供的可用话术推荐概率OUT2表示推荐第二话术的概率,以此类推。由此话术推荐模块103可选择OUT1~OUTN中具有最大概率值的输出端所对应的可用话术作为推荐话术,或者也可以选择概率值最高的前三个输出端所对应的可用话术作为针对当前咨询问题REQt的推荐话术。分类神经网络模型NN2的输出值OUTN+1指示了存在可推荐话术的概率,例如当NN2的输出值OUTN+1大于某一概率阈值PMAX时,则表示存在可推荐话术的可能性很高。按照本发明的一个实施例,当OUTN+1大于或等于概率阈值PMAX时,话术推荐模块103在输出存在可推荐话术的提示的同时,还可选择OUT1~OUTN中具有最大概率值或概率值最高的前三个所对应的话术作为推荐话术;而当OUTN+1小于概率阈值PMAX时,话术推荐模块103可选择只输出例如不存在可推荐话术的提示信息,或者进一步提示在线咨询的用户给出更进一步的信息。在本发明的另一实施例中,NN2的输出可设定为二个即OUTN+1与OUTN+2,例如,其中OUTN+1表示存在可推荐的话术的概率,而OUTN+2表示不存在可推荐话术的概率,显然,OUTN+1与OUTN+2的和基本等于1。
在上述实施例中,虽然示出了分类层包括分类神经网络模型NN1与分类神经网络模型NN2,但显然本发明并不限于此,也可以仅包括分类神经网络模型NN1,用于产生针对当前咨询问题的N个可用话术推荐概率OUT1~OUTN,并且话术推荐模块103可以直接将这N个推荐概率中具有最大概率值或概率值最高的前三个所对应的话术确定为推荐话术。
图2B示出了根据本发明另一个实施例的话术预测模型200。如图2B所示,该话术预测模型200包括长文本神经网络层201与由多任务神经网络实现的分类层202,与图2A实施例类似,长文本神经网络层201利用长文本神经网络模型LongText-NN处理前咨询问题REQt以及会话上下文Contextt以输出长文本特征向量dV;分类层202利用多任务神经网络模型MultiTask-NN处理长文本特征向量dV以输出多个可用话术推荐概率OUT1~OUTN+1。与图2A类似,其中,OUT1~OUTN中的每个输出指示了针对当前咨询问题推荐对应的N个话术中的一个可用话术的概率,其中,OUT1表示推荐第一话术的概率,OUT2表示推荐第二话术的概率,以此类推。而OUTN+1指示了对于当前咨询问题REQt存在可用话术的概率。在一个示例中,多任务神经网络模型MultiTask-NN可以是FastText类型全连接神经网络模型。
与2A所示实施例相同,话术推荐模块103可以基于多任务神经网络模型MultiTask-NN输出的OUTN+1的值而选择输出可用话术。例如,当OUTN+1大于或等于概率阈值PMAX时,话术推荐模块103在输出存在可用话术的指示的同时,还选择输出OUT1~OUTN中具有最大概率值或概率值最高的前三个可用话术推荐概率所对应的话术作为推荐话术给客服。而当OUTN+1小于概率阈值PMAX时,话术推荐模块103可选择只输出例如不存在可推荐话术的提示信息。
图3A示出按照本发明的另一实施例的在线话术推荐设备100的示意图。如图所示,除了会话捕获模块101、话术预测模块102、话术推荐模块103之外,还进一步包括句子分割模块104。当提供话术服务时,会话捕获模块101实时捕获当前客服与用户的对话并确认用户正在提出一个咨询REQt时,会话捕获模块101捕获当前咨询REQt以及所对应的会话上下文Contextt并组成一个长文本。
句子分割模块104将会话上下文Contextt与咨询问题REQt构成的长文本按照句子出现时序划分成多个句子,从而句子分割模块104将会话中的各句子从会话中按照时间特征分割出来以便以句子为单位分别处理。在本例中,句子分割模块104将会话上下文与当前咨询问题构成的长文本[REQt+Contextt]按照在聊天过程中句出现时序划分成例如n个多个句子,以{S1、S2、Sn}所示,其中,每个句子包括按照词出现时序排列的词序列,例如对第一个句子S1,S1=(w1,w2,…wk),其中下标1~k代表各词w的按时间出现顺序。话术预测模块102利用话术预测模型200处理这些句子,图3B示出了在本例中话术预测模型200的结构。
如图3B所示,话术预测模型200包括长文本神经网络层与分类层,其中长文本神经网络层包括词向量处理层2011、词向量加权层2012、句向量处理层2013、以及句向量加权层2014。
词向量处理层2011利用双向循环神经网络模型BRNN1按照每一个句子中各词出现时序依次处理各句中相应的词w以生成该句子的词特征序列。双向循环神经网络模型BRNN的优点在于通过每层之间节点(即神经单元)的连接结构来记忆之前的信息,并利用这些信息来影响后面节点的输出,因此可以充分地挖掘序列数据中的时序信息以及语义信息,而这些信息对于准确地理解聊天语义所带来的影响很有意义。如图所示,在本实施例中,每个BRNN由GRU单元构成。以句子S1为例,双向循环神经网络模型BRNN1中的GRU首先处理第一个w1,其中计算w1的输出结果p1过程如下:
h1=GRU(E1)
h'1=GRU(E1)
p1=[h1,h'1]。
接下来,按照时序,处理下一个词即w2,并输出p2作为第二个词的预测输出,对于本领域人员不难理解,由于双向循环神经网络的特点,对第二个词w2的处理实际上考虑了前后二个词w1、w2之间的内容相关性及时序特性。以此方式,词向量处理层2011利用BRNN1可产生n个句子S1-Sn中的每个句子的输出词特征向量序列(p1、p2、p3、...pk)。
词向量加权层2012利用经过训练的注意力加权模型AM1对双向循环神经网络模型BRNN1依次处理得到词特征向量序列进行加权以生成n个句子S1-Sn的句特征向量[SV1~SVn]:其中
其中α表示加权因子。
句向量处理层2013利用双向循环神经网络模型BRNN2按照句子S1-Sn中各句的出现时序依次处理词向量加权层2012产生的相应的句特征向量SV。在本实施例中,仍以BRNN2由GRU单元构成为例予以说明,对于按照句时序特征排列的句特征向量序列[SV1~SVN],网络模型BRNN2首先处理第一个句特征向量SV1,其计算过程如下:
h1=GRU(SV1)
h'1=GRU(SV1)
SV'1=[h1,h'1]。
然后,按照句子出现时序,网络模型BRNN2接下来处理第二个句特征向量SV2。本领域人员不难理解,由于双向循环神经网络的特点,对第二个句子的处理结果SV'2考虑了前后二个句子S1、S2之间的内容相关性及时序特性。以此方式处理,直至网络模型BRNN2处理完最后一个句子Sn的句特征向量并产生对应的输出SV'n,从而得到句特征向量序列(SV'1、SV'2…SV'n)。
句向量加权层2014利用注意力模型AM2对BRNN2依次处理的句特征向量序列(SV'1、SV'2…SV'n)中的各句特征向量特征赋予不同的注意力权重以生成文本特征向量dVt:
由此,话术预测模型200中的分类层202对句向量加权层2014输出的文本特征向量dVt进行处理。如图3B所示,在该示例中,分类层202包括由标记2021所指示的分类神经网络模型NN1与由标记2022所指示的分类神经网络模型NN2,其中,模型NN1产生可用话术推荐概率OUT1~OUTN,分别指示将多个可用话术作为推荐话术的概率;模型NN2产生OUTN+1~OUTN+2二个输出,用于分别指示存在可用话术与不存在可用话术的概率。
根据本发明的一个或多个实施例,话术预测模型200是利用训练样本事先训练得到的,该训练样本可由客服与用户之间已经发生的在线服务的历史日志来生成。通过对线上客服的服务日志进行分析,可以发现用户关注的问题在一段时期例如最近一个月内的重复比例很高,即呈现高频性;并且在客服领域,针对用户的高频意图,客服的回复都是有一定规范。因此,本发明通过对线上海量会话的挖掘,构造出可供客服回复使用的高频话术。在辅助客服回复时候,通过对用户和客服上下文聊天进行识别分类找到相应的高频话术并提供给客服,从而辅助答疑。因此,在本发明的实施例中,通过对服务日志进行挖掘而确定用户问题或咨询(REQ)与回复(RES)分类之间的关系,进而利用人工智能神经网络学习这些知识,从而利用学习到的话术预测模型200来对用户当前咨询问题的可用回复进行实时预测,从而在线提供可推荐的话术。
图4A示出根据本发明一个实施例的用于训练话术预测模型200的训练设备400的示意图。如图所示,训练设备400利用来自日志库401的数据训练话术预测模型200,训练设备400包括数据挖掘模块402以及训练模块403。
在提供客服业务时,每天通过机器智能客服或人工客服解决的用户咨询问题非常多,特别是对于人工客服而言,用户的每个问题或咨询都会有客服相应回复,为了保证信息可追朔咨询,这些会话记录通常记录在日志库100中。在日志库100所保留的成千上万条会话中,针对不同的咨询问题或相同的咨询问题均含有大量的可用话术。而本发明利用数据挖掘模块402挖掘日志中会话的信息中体现的话术,从而建立每次会话与话术的映射关系。为此,如图4A所示,按照本发明的一个实施例,数据挖掘模块402包括过滤模块4021、聚类模块4022、话术生成模块4023及样本生成模块4024。
过滤模块4021用于从日志库100中提取会话,并通过对其中客服回复(RES)进行频率统计、排序和频率过滤,从而得到客服的高频回复数据。至于如何对客服回复进行过滤得到高频回复数据可以采用现有技术实现,这里不再赘述。这里一个完整的‘会话’是指客服每完成一次回复的整个聊天过程。需要指出的是,在接通在线服务的一次服务中,用户与客服之间可能存在多个问题与回复,这里将每次的回复称为一个会话结束,同时将该次回复所针对的用户问题及该用户咨询问题所对应的聊天内容统一称为‘上下文’或‘会话上下文’。因此,在本发明中,每个会话定义为包括用户问题或咨询(REQ)、与该咨询问题对应的会话上下文(Context)以及针对该咨询问题的实际回复内容(RES)。
聚类模块4022对过滤模块4021提供的高频回复进行分析,以确定这些高频回复之间具有相同或相似内容的回复。因为不同的客服在使用话术回复时候自己可能做了个性化修改,但实质内容大部分相同,而只是标点或者极个别的问候语不同,因此通过对这些高频回复进行聚类,可以找出针对相同或类似的咨询问题REQ,客服所提供的相同或类似的回复RES。这里可以采用现有技术已知的聚类技术来找出相同或类似的回复RES。例如,按照一个示例,聚类模块4022利用jarcard系数计算不同回复间的字面重合度,其中将重合度高的回复归为一类。例如设A、B分别表示客服所提供的高频回复中的二个任意回复,则AB的重复度可以写为
其中A∩B代表A与B的回复内容的交集,A∪B代表A与B的回复内容的并集。
在本发明的另一实施例中,还可以采用A与B的回复内容的编辑距离来计算二者的重复度x重复,即
其中E(A,B)表示A和B的编辑距离,L(A)和L(B)分别表示回复A和B的长度。编辑距离是现有技术中常用的计算文本差异程度的量测方式,针对二个字符串,量测方式是看至少需要多少次的处理才能将一个字符串变成另一个字符串。
由此,聚类模块4022通过计算任意二个回复之间重复度,从而将具有高重复度的回复分为一类目。这里假定根据过滤模块4021提供的高频回复,通过聚类模块4022可产生N个类目,其中N表示存在回复的类目的数量。
话术生成模块4023设计成针对每一个类目,生成可代表该类目内所有回复的类标题,这里的类标题作为一个标准话术(verbal trick,VT),可被客服用来提供针对用户咨询问题的回复。在一个示例中,话术生成模块4023使用密度聚类对所有的回复做聚类,并得到每个类目所对应的类标题VT,从而得到类标题和每个类目内各回复之间的映射,简记为VTi=(RESi1,RESi2,…RESiM),其RESi代表在类标题VTi下的各实际发生的回复,这里需要注意的是对于不同的类标题VTi,其所对应的实际回复数量M不一定相同。话术生成模块4023可以使用现有技术已知的任何聚类算法来实现密度聚类,例如DBSCAN(Density-Based SpatialClustering of Applications with Noise)算法。为便于说明,假定通过密度聚类,话术生成模块4023产生N个类标题即话术,即VT1~VTN。
在确定了类标题VTi和类内各回复(RESi1,RESi2,…RESiM)间的映射后,样本生成模块4024可利用这种映射生成用于训练话术预测模型200的训练样本集【VT,Context,REQ】,其中的每个样本包括每个会话中的会话上下文Context、咨询问题REQ以及该会话中的回复RES所属的话术VT,例如对于话术VTi,所生成的训练样本集的一个子集如下:
(VTi,Contexti1,REQi1),
(VTi,Contexti2,REQi2)
……
(VTi,ContextiM,REQiR)
其中REQi1表示在第1个会话中回复RESi1所针对的用户咨询,Contexti1则代表用户发出REQi1咨询所对应的在客服与用户之间发生的聊天即上下文。类似地,REQiM代表在第M个会话中回复RESiM所针对的用户咨询问题,而ContextiM则代表在用户发出REQiM咨询时所对应的在客服与用户之间发生的聊天。这里对于用户咨询REQi1~REQiM,均具有相同的话术标签VTi,即可用相同的话术VTi来回复用户的咨询问题REQi1~REQiM。
样本生成模块4024随后将训练样本集【VT,Context,REQ】提供给训练模块403以训练话术预测模型200。在本发明的一个实施例中,训练模块403利用上下文Contexti与用户咨询REQi构造一个长文本,以下Contexti+REQi来表示该长文本,并且将该长文本作为该话术预测模型200的输入来联合训练话术预测模型200中的长文本神经网络层201与分类层202。
具体地,对于图2A所示的话术预测模型200,按照本发明的一个示例,训练模块403将训练样本中会话上下文Contexti与咨询问题REQi提供给长文本神经网络模型LongText-NN,并将模型LongText-NN输出的文本特征向量dV同时提供给分类层202中的神经网络NN1与NN2,从而实现对长文本神经网络LongText-NN与神经网络NN1与NN2的联合训练。其中神经网络NN1输出多个可用话术推荐概率,其中每一个推荐概率指示了话术生成模块4023所产生的多个类标题或话术中的一个与用户当前咨询问题的匹配的概率,例如可设定NN1的第一输出端提供的推荐概率对应于话术VT1、第二输出端提供的推荐概率对应于话术VT2,以此类推,第N个输出端提供的推荐概率对应于话术VTN。神经网络模型NN2输出的推荐概率指示了存在可推荐话术的概率,即指示了对于当前样本存在对应的可用话术的概率。在本发明的一个实施例中,神经网络模型NN2提供二个输出OUTN+1和OUTN+2,其中OUTN+1表示对于当前输入的样本中的用户咨询问题存在可用的话术的概率,而OUTN+2表示对于当前输入的样本中的用户咨询问题不存在可用的话术的概率。
具体地,在联合训练时,对于话术为VT1的任一个训练样本Context+REQ,在训练神经网络模型NN1与NN2时,其输入均是利用同步训练的长文本神经网络模型LongText-NN对Context+REQ处理后得到的文档向量dV,但神经网络模型NN1输出值模式设定为(1,0,0,…),即只有对应VT1话术的第一输出端的输出目标值设定为1,其它输出端的值为0;同时神经网络模型NN2的输出设为1,表示对于当前输入的样本中的用户咨询存在可用的话术(在神经网络模型NN2提供二个输出OUTN+1和OUTN+2的情况下,在训练时可将其输出设置为(1,0)模式)。类似的,对于话术为VT2的训练样本Context+REQ,在训练神经网络模型NN1时,输出目标值模式则设定如下(0,1,0,…),即只有对应VT2话术的第二输出端的输出值设定为1,其它输出端的值为0;同时神经网络模型NN2的输出设为1,表示对于当前输入的样本中的用户咨询存在可用的话术。
对于图2B所示的话术预测模型200,其包括由长文本神经网络模型LongText-NN实现的长文本神经网络层201以及由例如全连接神经网络模型NNFT构成的分类层202。训练模块403可使用数据挖掘模块200提供的训练样本【VT,Context+REQ】对长文本神经网络模型LongText-NN以及全连接神经网络模型NNFT进行联合训练,其中长文本神经网络模型LongText-NN输出的文本特征向量dV提供给全连接神经网络模型NNFT。根据本发明的该实施例,全连接神经网络模型NNFT提供N+1个可用话术推荐概率,其中的N个推荐概率指示了推荐由聚类模块4022提供的N个可用话术的可能性,例如可设定模型NNFT的第一输出端对应于话术VT1、第二输出端对应于话术VT2,以此类推,第N个话术对应于类标题VTN。同时全连接神经网络模型NNFT的第N+1个推荐概率OUTN+1则指示了存在话术的可能性,即指示了对于当前样本存在对应的可用话术的概率。
图4B示出了根据本发明另一实施例的训练设备400的示意图。如图4B所示,除了数据挖掘模块402、训练模块403之外,根据该实施例的训练设备400还包括句子分割模块404。通常无论是在人工客服还是智能客服聊天过程中,每一次会话均可能包括了多个句子,显然随着对话的进行,这些句子及每个句子中的各词或词组均是随着时间逐步展开的,即具有一定的时间特征。这里以‘句时序特征’(sentence appearance timing)来表示每个句子随时间出现的顺序,而以‘词时序特征’(word appearance timing)来表示每个句子中的各词随时间出现的顺序。
句子分割模块104用于将会话中的各句子从会话中分割出来以便分别处理。具体地,句子分割模块104将输入的每个训练样本中由会话上下文与用户咨询问题构成的长文本【Contexti+REQi】按照在聊天过程中句出现时序划分成多个句子,例如以{S1、S2、Sn}所示,其中每个句子包括按照词出现时序排列的词序列,例如对第一个句子S1=(w1,w2,…wk)。
在训练时,话术预测模型200以句子为单位接收并处理训练样本,联合训练长文本神经网络层201与分类层202。如图3B所示,在本例中,话术预测模型200的长文本神经网络层201所使用的长文本神经网络模型LongText-NN包括词向量处理层2011、词向量加权层2012、句向量处理层2013、以及句向量加权层2014。
为便于说明长文本神经网络模型LongText-NN对训练样本中句子的处理,这里以句子S1为例说明。如图3B所示意的,在训练时,词向量处理层2011通过按照每一个句子中各词出现时序依次处理各句中相应的词w来对双向循环神经网络模型BRNN1进行训练。在一个优选实施例中,双向循环神经网络BRNN的各节点可选用长短期记忆(LSTM)神经网络、门控循环单元(GRU)神经网络,卷积神经网络CNN、字符级卷积神经网络(Char-CNN)等不同的单元来实现,在本实施例中,以每个BRNN由GRU单元构成为例予以说明,如图3B所示。双向循环神经网络BRNN1是由两个顺序RNN与逆序RNN上下叠加在一起组成的,而BRNN的输出则由这两个RNN的状态共同决定。具体地,如前所述,对于句子S1=(w1,w2,…wk),这里的词(w1,w2,…wk)是按照词时序特征排列的,因此首先处理第一个w1,计算w1的输出结果p1过程如下:
h1=GRU(E1)
h'1=GRU(E1)
p1=[h1,h'1]。
接下来,按照时序,双向循环神经网络模型BRNN1利用GRU神经元处理下一个词即w2,并输出p2作为第二个词的预测输出。以此方式,利用双向循环神经网络模型BRNN1处理完句子S1并得到k个输出结果(p1、p2、p3、...pk)。
由于在聊天对话中,不同词所包含的信息重要性是不一样的,例如某些直接涉及产品名称或特性的词的重要性明显要高于“今天”这样的一般性词。为了让重要的词特征能更好地用于预测准确话术的特征,得到更多的关注,本发明在词向量加权层2012处采用注意力机制加权模型AM1,其中注意力加权模型AM1对神经网络模型BRNN1生成的词特征向量序列(p1、p2、p3、...pk)中的不同词的pi赋予不同的注意力权重因子。作为一个实施例,通过如下方式计算注意力权重系数αi:
uij=tanh(wwpij+bw)
在上面公式中,tanh是双曲正切函数,利用其对每个词特征的计算结果来计算注意力模型AM
1对每个词施加的注意力权重因子α
i。常数w
w,b
w以及u
w在模型训练之前初始化并跟随模型训练而最终确定,
代表u
ij的转秩矩阵,由此可训练出注意力模型AM
1。这里需要指出的是,尽管上述实施例中应用的是tanh函数,但本发明并不限于此,可以利用现有技术中的其它技术实现,例如sigmoid函数等。
然后通过对加权的单词特征pi求和得到句子S1的句特征向量SV1:其中
如图3B所示,采用与句子S1的相同处理,通过双向循环神经网络模型BRNN1与注意力模型AM1对句子S2~Sn进行处理,从而得到当前样本的全部句句特征向量SV1~SVn。
句向量处理层2013利用各句特征向量SV1~SVN来训练双向循环神经网络模型BRNN2。双向循环神经网络模型BRNN2同样采用双向RNN实现,从而可以更充分地挖掘句子序列[S1~SN]中的时序信息以及语义信息。在一个优选实施例中,RNN的各节点仍选用LSTM、GRU、CNN、Char-CNN)等不同的神经元来实现,在本实施例中,仍以每个RNN由GRU单元构成为例予以说明。对于按照句时序特征排列的句特征向量序列[SV1~SVn],双向循环神经网络模型BRNN2中的GRU神经单元首先处理第一个句特征向量SV1,其计算过程如下:
h1=GRU(SV1)
h'1=GRU(SV1)
SV'1=[h1,h'1]。
然后,按照句子出现时序,双向循环神经网络模型BRNN2中的GRU接下来处理第二个句特征向量SV2。由此,利用双向循环神经网络模型BRNN2处理完全部n个句子并得到n个输出结果(SV'1、SV'2…SV'n)。
由于在聊天对话中,不同句式所包含的信息重要性是不一样的。因此为了让重要的句特征能更好地用于准确预测话术,按照本实施例,在处理句子时也采用了注意力机制。具体地,在句向量加权层2014,通过对句特征向量序列(SV'1、SV'2…SV'n)中的不同特征赋予不同的注意力权重来训练注意力机制加权模型AM2。作为一个实施例,通过如下方式计算注意力权重系数βi:
vi=tanh(ws·s_V′i+bs)
其中β
i为所述注意力模型AM
2针对每个句子所施加的注意力权重系数,W
s,b
s以及v
s为常数且在模型训练之前初始化并跟随模型训练而最终确定,
代表v
i的转秩矩阵,由此可训练出注意力模型AM
2。这里需要指出的是,尽管上述实施例中利用的是双曲正切tanh函数,但本发明并不限于此,可以利用现有技术中的其它技术实现,例如Sigmoid函数等。然后通过对加权的单词特征SV'
i求和得到第一个长文本样本(Context
1+REQ
1)的文档特征向量dV
1:其中
以此方式,可生成训练样本中的其它长文本样本的文档特征向量dV2~dVn。
由此,话术预测模型200中的分类层202利用句向量加权层2014训练输出的文本特征向量dVi来训练神经网络模型NN1与NN2,其中模型NN1产生OUT1~OUTN个输出,分别指出了将多个可用话术作为推荐话术的推荐概率;在本例中,模型NN2产生OUTN+1与OUTN+2二个输出,用于分别指示存在可用话术与不存在可用话术的概率。
以上公开了根据本发明的实施例训练话术预测模型的过程,不难理解,长文本神经网络层201中的各层模型与分类层202中的各模型均是采用同步联合训练得到的。
本发明通过对日志中用户与客服聊天会话信息挖掘,从而学习到话术并通过话术预测模型使得可以为客服提供适宜的话术,用于辅助回复用户的咨询。图5示出根据本发明一个实施例的离线数据挖掘与话术预测模型训练的流程图。
如图5所示,其分别示出数据挖掘过程与模型训练过程。其中对于数据挖掘过程,其包括:步骤501,从日志库中读取历史日志,并从读取的日志中提取在客户与用户之间发生的多个会话,并通过对这些会话中客服回复RES进行频率统计、排序和频率过滤处理,从而得到客服的高频回复信息。
在步骤502,对高频回复进行分析,以确定这些高频回复之间具有相同或相似内容的回复,从而使具有相同或相似内容的回复按照该内容聚类,例如可以确定N个具有不同回复内容的类目。
在步骤503,针对在步骤502确定的每一个回复类目,使用密度聚类等方式生成可代表该类内所有回复的共同特征即类标题或话术VT,从而得到每个类目下面的各自回复和类标题,建立类标题和类内各回复间的映射,简记为VTi=(RESi1,RESi2,…RESiM),这里i≤N,M为每个类目下即同一话术下所对应的多个回复。
在步骤504,针对所生成的每一个话术VTi,根据该类目下的各回复(RESi1,RESi2,…RESiM),将话术VTi与每个回复RESi所对应的用户咨询问题、该咨询问题所对应的上下文关联起来,即:
(VTi,Contexti1,REQi1),
(VTi,Contexti2,REQi2)
…
(VTi,ContextiR,REQiM)。
由此通过挖掘所形成的关联数据可用于训练话术预测模型200。如图5右侧示出利用关联数据来训练神话术预测模型200的示意图。
在步骤505,利用数据挖掘中获取的关联数据构建训练样本集。按照本发明的一个实施例,利用用户的咨询问题REQi及其上下文数据Contexti形成长文本,表示为Contexti+REQi。
然后在步骤506,将长文本Contexti+REQi与作为标签的对应话术VTi一起作为训练样本来训练神经网络预测模型200,并在步骤507输出经过训练的话术预测模型200的模型参数。在本发明的一个实施例中,可以将训练样本集中的一部分样本用来训练话术预测模型200,而将另一部分样本用于测试经过训练的线推荐模型200,以避免过拟合等。
图6示出了根据一个实施例的提供话术推荐的流程图。如图所示,在步骤601,推荐设备100利用会话捕获模块101实时捕获当前客服与用户的对话,并且随着对话的进行,捕获用户正在提出的咨询问题REQt与其对应的上下文。随后进程前进到步骤602。
在步骤602,将该当前咨询REQt连同上下文Contextt组成长文本并作为输入提供给话术预测模块102。
在步骤603,话术预测模块102利用经过训练的话术预测模型200对输入的长文本【Contextt+REQt】进行话术预测处理,并产生针对当前咨询问题REQt的多个可用话术推荐概率。在一个示例中,话术预测模型200对会话上下文Contextt和用户咨询问题REQt进行处理以得到长文本特征向量dV,然后基于长文本特征向量dV来得到针对当前咨询问题REQt的可用话术推荐概率。
随后在步骤604,话术推荐模块103根据步骤603产生的多个可用话术推荐概率,提供与当前咨询REQt相匹配的话术VTt。作为一个示例,如果话术预测模块102提供的多个可用话术推荐概率中指示对于当前咨询REQt存在可用话术的概率小于一阈值PMAX时,则向客服人员输出当前不存在可推荐话术的提示;而当存在可推荐话术时,话术推荐模块103选择所述多个可用话术推荐概率中概率值最高或概率值最高的前三个所对应的可用话术作为针对当前咨询问题REQt的推荐话术。
图7示出了根据本发明另一实施例的在线提供话术的流程图。如图7所示。在步骤701,话术推荐设备100实时监测当前客服与用户的会话,并当确认用户正在提出一个咨询问题REQt时,将该当前咨询REQt连同该咨询REQt所对应的上下文Contextt一起捕获。
随后在步骤702,将该当前咨询REQt与上下文CONTEXTt组成长文本,然后进到步骤703。在步骤703,推荐设备100利用句子分割算法将该长文本划分成n个句子,并作为输入提供给话术预测模型,由话术预测模型执行以下步骤704-708。
在步骤704,利用双向循环神经网络模型BRNN1对输入的各句进行处理后,生成每个句的词序列特征向量(p1,p2,…pk)并前进步骤705。在步骤705,利用注意力模型AM1对步骤704生成的各句的词序列特征向量进行注意力加权处理,从而生成各句的句特征向量sV,随后步骤前进到706。在步骤706,利用双向循环神经网络模型BRNN2对输入的各句特征向量sV进行处理,从而生成每个句的句特征向量sV’,并进入步骤707。在步骤707,利用注意力模型AM2对步骤706生成的各句的句特征向量sV’进行加权处理,从而生成当前长文本的文本特征向量dV,随后步骤前进到708。在步骤708,利用神经网络模型NN1与NN2对步骤708生成的文本向量dV进行处理。其中,通过神经网络模型NN2可输出指示对于当前咨询存在可用话术的概率;通过神经网络模型NN1输出对应于可用话术的多个推荐概率。随后进程前进到步骤709。
在步骤709,如果神经网络模型NN2的输出指示对于当前咨询REQt存在可用话术(例如其输出大于或等于阈值PMAX),推荐设备100将神经网络模型NN1产生的多个推荐概率中最高概率值所对应的话术或概率值最高的第一至第三个输出对应的话术输出,供在线客服参考使用。如果神经网络模型NN2输出的推荐概率小于阈值PMAX时,则向客服输出当前不存在可推荐话术的提示。
这里需要指出的是,虽然结合上述优选实施例描述了本发明,但显然本发明不限于此。此外,图1、3A、4A与4B中的各模块可以包括处理器、电子设备、硬件设备、电子部件、逻辑电路、存储器、软件代码、固件代码等,或者它们的任意组合。技术人员还将认识到的是,结合本文公开内容描述的各种说明性的逻辑方框、模块和方法步骤可以实现为电子硬件、计算机软件或二者的组合。以软件实现为例,作为一个逻辑意义上的设备,是通过处理器将非易失性存储器中对应的计算机程序指令读取内存中运行形成的。从硬件层面而言,如图8所示,在一种实现方式中,根据本发明的预测设备可以由一个或多个计算设备实现,除了图8所示的处理器、内存、网络接口以及非易失性存储器之外,实施例中实现话术推荐设备或话术预测模型训练设备的计算设备通常根据其实际功能,还可以包括其它硬件,对此不再赘述。
本发明另一实施例提供的机器可读介质上存储有机器可读指令,该机器可读指令在被计算机执行时,使计算机执行本文公开的前述的任一种方法。具体地,可以提供配有机器可读介质的系统或者装置,在该机器可读介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统的计算机读出并执行存储在该机器可读介质中的机器可读指令。在这种情况下,从机器可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的机器可读介质构成了本发明的一部分。
需要说明的是,上述各流程和设备的结构图中不是所有的步骤或模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。