具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1为本发明实施例提供的一种基于强化学习的客服机器人对话方法的流程示意图,该方法可以包括步骤S101~S104:
S101、获取用户在对话过程中输入的上一轮的第一文本信息,并根据所述第一文本信息选择对应的行动策略并基于所述行动策略进行回复;
在本步骤中,根据对话过程中用户输入的第一文本信息的内容,从而判断用户的意图,以此选择对应的行动策略进行回复。
在一具体实施例中,所述步骤S101包括:
利用自然语言处理技术对所述第一文本信息进行答案提取;
判断提取到的答案是否有多个;
若提取到的答案有多个,则向用户发送引导语句,以确认对应答案;
若提取到的答案仅有1个,则向用户发送提取到的答案;
若提取到的答案为0个,则向用户发送安抚语句。
在本实施例中,利用自然语言处理技术(即NLP)提取答案,根据提取到的答案数量选择不同的回复。
具体的,可以采取以下三种技术思路来获取答案:答案检索型、答案生成型以及两者混合型。就答案检索型而言,通过计算语义相似度从客服机器人知识库中找出对应答案;就答案生成型而言,采用编码-解码机制,通过各种神经网络模型生成对应答案;两者混合型则是结合了两者的特点,获取对应答案。客服机器人根据自身采用的NLP算法决定对用户的回复。当提取到的答案仅有1个时,直接向用户发送该答案作为回复;而当提取到的答案有多个时,则需要向用户发送引导语句,引导用户从多个答案中选择其中对应的答案;而当无法提取到对应答案时,需要向用户进行安抚,回复安抚语句。对于上述三种情况,除了明确只有1个答案,可以直接将答案作为回复发送给用户外,其余情况均需要提前设置回复话术集合,客服机器人通过随机选择或者通过算法选择的方式,从回复话术集合中选择对应的回复话术,对用户进行回复。
在一具体实施例中,所述若提取到的答案为0个,则向用户发送安抚语句包括:
将所述第一文本信息输入到已训练的安抚程度分类模型,输出得到对应的安抚程度;其中,所述安抚程度包括轻度安抚、中度安抚以及重度安抚;
基于所述安抚程度,从话术集合中选择对应的安抚语句,并向用户发送。
在本实施例中,通过已训练的安抚程度分类模型,获取对应的安抚程度,基于所述安抚程度获取对应安抚语句进行回复。采集每种安抚类别样本数据,训练一个机器学习安抚程度分类模型,在采取安抚回复时,根据模型决定采取何种程度的安抚。其中,安抚程度可以分为轻度安抚、中度安抚以及重度安抚。
S102、获取用户对所述行动策略反馈的第二文本信息,利用预训练的情绪分类模型对所述第二文本信息进行情绪分类,获取用户针对上一轮的行动策略的情绪;
在本步骤中,利用预训练的情绪分类模型对用户反馈的第二文本信息进行情绪分类,以获取用户对上一轮的行动策略的情绪。在本步骤中,对用户的情绪进行了定义,具体是:选取主流的OCC(OCC是第一个以计算机实现为目的而发展起来的情感模型)情感理论中定义的7种情绪类别,包括:希望、失望、满足、感激、愤怒、喜欢、厌恶;另外对于目前难以判别的无明显倾向的情绪,定义为平静,总共8种情绪,并将它们归类到二级类别。再将以上8种情绪归属为正面情绪:希望、满足、感激、喜欢;中性情绪:平静以及负面情绪:失望、愤怒、厌恶,正面情绪、负面情绪以及中性情绪归类为一级类别。
在一具体实施例中,所述步骤S102包括:
从客服机器人的后台日志数据库中提取历史对话记录,并对情绪类别进行标注;
利用标注后的历史对话记录对预训练的情绪分类模型进行模型训练和参数调整,得到训练后的情绪分类模型;
将所述第二文本信息输入至所述情绪分类模型,获取用户针对上一轮的行动策略的情绪。
在本实施例中,将提取的历史对话记录进行标注并对预训练的情绪分类模型进行模型训练和参数调整得到情绪分类模型,然后将第二文本信息输入至所述情绪分类模型,即可获得用户对上一轮的行动策略的情绪。本实施例中可以选择Bert模型(Bert模型的是利用大规模无标注语料训练、获得文本的包含丰富语义信息的Representation,即:文本的语义表示,然后将文本的语义表示在特定NLP任务中作微调,最终应用于该NLP任务)或者XLNet模型(XLNet是一种通用的自回归预训练方法)等目前主流的预训练语言模型作为所述预训练的情绪分类模型,然后通过微调的方式从客服机器人的后台日志数据库中提取一定数量的历史对话记录,并标注情绪类别。在预训练模型的基础上保持原有网络结构(层数、隐藏层维度等指标),通过调整少量参数的值,得到一个训练后的情绪分类模型。
S103、基于所述用户针对每一轮的行动策略的情绪,根据最大期望算法计算得到回复价值总得分;
在本步骤中,每一轮对话过程中,通过获取的用户针对每一轮的行动策略的情绪,计算回复价值总得分。客服机器人在与用户的对话过程中,每一轮用户反馈后,客服机器人会采取不同的行动策略进行回复,每次回复后根据用户的反馈对客服机器人的表现给予分数。
在一具体实施例中,所述步骤S103包括:
对所述第二文本信息进行意图识别,并根据意图识别结果判断用户意图是否改变;
根据用户意图是否改变、用户针对上一轮的行动策略的情绪以及上一轮的行动策略,从预设得分矩阵中查询针对上一轮的行动策略的回复价值得分;
对每一轮的回复价值得分进行汇总,得到回复价值总得分。
在本实施例中,在客服机器人采取回复后,根据用户反馈的第二文本信息进行意图识别,判断当前用户意图是否改变,并结合用户对客服机器人上一轮回复的情绪以及客服机器人上一轮采取的行动策略,从预设得分矩阵获取上一轮行动策略回复价值得分,通过将每一轮的回复价值得分进行汇总,获得回复价值总得分。具体的:
设客服机器人每轮回复后的回复价值得分为St,当客服机器人每次给出回复后,在一段时间内若用户没有输入,视为本次对话终止,回复价值得分为0。从第二轮对话开始,每一轮对话后结合三个因素:该轮用户意图是否改变、用户针对上一轮的行动策略的情绪以及上一轮的行动策略,给予客服机器人在上一轮采取不同回复对应的回复价值得分。在本实施例中,设置回复价值得分矩阵时可遵循以下原则:
原则(1):当用户意图未改变,最近一轮用户回复的客户情绪分类队列中排名最高的类别为负面情绪时,说明上一轮客服机器人的行动策略没有产生积极正面的效果。因此,对采取行动策略为:向用户发送安抚语句的回复不予奖励和惩罚;对采取行动策略为:向用户发送提取到的答案的回复给予中度惩罚;对采取行动策略为:向用户发送引导语句,以确认对应答案的回复给予重度惩罚。
原则(2):当用户意图未改变,最近一轮用户回复的客户情绪分类队列中排名最高的类别是中性情绪时,对采取行动策略为:向用户发送安抚语句的回复给予低级奖励;对采取行动策略为:向用户发送提取到的答案的回复给予轻度惩罚;对采取行动策略为:向用户发送引导语句,以确认对应答案的回复给予中度惩罚。
原则(3):当用户意图未改变,最近一轮用户回复的客户情绪分类队列中排名最高的类别是正面情绪时,对采取行动策略为:向用户发送安抚语句的回复给予中级奖励;对采取行动策略为:向用户发送提取到的答案的回复给予高级奖励;对采取行动策略为:向用户发送引导语句,以确认对应答案的回复给予微度惩罚。
原则(4):当用户意图已改变,最近一轮用户回复的客户情绪分类队列中排名最高的类别是负面情绪时,对采取行动策略为:向用户发送安抚语句的回复不予奖励和惩罚;对采取行动策略为:向用户发送提取到的答案的回复给予重度惩罚;对采取行动策略为:向用户发送引导语句,以确认对应答案的回复给予中度惩罚。
原则(5):当用户意图已改变,最近一轮用户回复的客户情绪分类队列中排名最高的类别是中性情绪时,对采取行动策略为:向用户发送安抚语句的回复不予奖励和惩罚;对采取行动策略为:向用户发送提取到的答案的回复不予奖励和惩罚;对采取行动策略为:向用户发送引导语句,以确认对应答案的回复给予轻度惩罚。
原则(6):当用户意图已改变,最近一次用户回复的客户情绪分类队列中排名最高的类别是正面情绪时,对采取行动策略为:向用户发送安抚语句的回复给予低级奖励;对采取行动策略为:向用户发送提取到的答案的回复给予中级奖励;对采取行动策略为:向用户发送引导语句,以确认对应答案的回复给予中级奖励。
本实施例可以采取如下矩阵作为客服机器人行动策略的回复价值得分矩阵:
表1客服机器人行动的回复价值得分矩阵
需要说明的是,该表给出的具体分值只是一个示例说明,并不代表该矩阵包含的6种得分原则中某种行动类型的获得奖励或惩罚的分值一定高于另一种原则中的同一指标。例如,用户意图未改变和改变两种情形中,客服机器人采取向用户发送安抚语句的行动策略后,情绪分类队列排名最高为正面情绪时,各自的回复价值得分后者也可高于前者。
在一具体实施例中,所述对每一轮的回复价值得分进行汇总,得到回复价值总得分包括:
通过如下公式计算回复价值总得分:
其中,γ为衰减系数,n为对话总轮数,i=1~(n-1),St为第t轮的回复价值得分。
在本实施例中,通过上述公式对回复价值总得分进行计算。当n=1时,即当前对话仅有一轮时,由于用户并没有对客服机器人回复的行动策略进行反馈,因此回复价值总得分S=0。当n>1时,即表明用户对客服机器人回复的行动策略进行了反馈,通过公式
进行计算。例如,当n=2时,S=S
2+γS
1;当n=3时,S=S
3+γ
2S
2+γS
1。
强化学习的本质决定了每一轮对话后得到的回复价值得分会对客服机器人选择行动类型产生影响(会引导客服机器人选择可以得到回复价值得分更高的行动策略),且这种影响随着对话轮数增加会逐渐衰减。
在本实施例中,采用最大期望算法(即Expection-Maximum算法)计算衰减系数。具体的:设定初始γ值,利用标注后的历史对话记录对预训练的情绪分类模型进行模型训练,以判断用户情绪类别,根据每一轮客服机器人的回复,求出该轮的回复价值得分;通过迭代调整γ值(每一次增加或减少Δγ值,该值为提前设置的超参数)实现最大化S;当γ值基本不变时,视为收敛,结束训练。
S104、将用户输入的每一轮的文本信息转化为文本向量,并将所述文本向量输入至多层神经网络进行强化学习,得到选择对应的行动策略的概率,并根据所述回复价值总得分与行动策略的概率,对所述多层神经网络进行优化,得到客服机器人回复模型。
在本步骤中,通过将文本信息转化为文本向量输入至多层神经网络进行强化学习,得到选择每一种行动策略的概率,结合回复价值总得分对多层神经网络进行优化,得到最终的客服机器人回复模型。
在一具体实施例中,所述步骤S104包括:
将对话过程中用户输入的每一轮的文本信息通过词嵌入向量转换为文本向量;
将所述文本向量输入针对所有行动策略的多层神经网络中,以获得每一轮选择的行动策略的概率。
将所述回复价值总得分与行动策略的概率的乘积的负值作为优化目标,对所述多层神经网络进行优化,得到客服机器人回复模型。
在本实施例中,通过词嵌入向量进行文本向量的转换,通过多层神经网络获取获得每一轮选择的行动策略的概率,将所述回复价值总得分与行动策略的概率的乘积的负值对多层神经网络进行优化,得到客服机器人回复模型。
在本实施例中,可以采用词嵌入向量进行文本向量的转换,也可以通过TF-IDF或者词袋模型将文本信息换换为文本向量。本实施例采用词嵌入向量中的doc2vec模型生成的向量作为用户每次输入的表征向量v。
训练一个对应上述三种回复策略的多层神经网络。输入表征向量v,设隐藏层权重矩阵为w1,采用relu激活函数,偏置量为b1,输出o1=relu(w1*v+b1);设第二隐藏层权重矩阵为w2,偏置量为b2,输出o2=relu(w2*o1+b2),再通过softmax层得到o3,o3即客服机器人每一轮选择的行动策略的概率。
请参阅图2,图2为本发明实施例提供的一种基于强化学习的客服机器人对话系统的示意性框图,该基于强化学习的客服机器人对话系统200包括:
行动策略回复单元201,用于获取用户在对话过程中输入的上一轮的第一文本信息,并根据所述第一文本信息选择对应的行动策略并基于所述行动策略进行回复;
情绪获取单元202,用于获取用户对所述行动策略反馈的第二文本信息,利用预训练的情绪分类模型对所述第二文本信息进行情绪分类,获取用户针对上一轮的行动策略的情绪;
回复价值得分计算单元203,用于基于所述用户针对每一轮的行动策略的情绪,根据最大期望算法计算得到回复价值总得分;
回复模型获取单元204,用于将用户输入的每一轮的文本信息转化为文本向量,并将所述文本向量输入至多层神经网络进行强化学习,得到选择对应的行动策略的概率,并根据所述回复价值总得分与行动策略的概率,对所述多层神经网络进行优化,得到客服机器人回复模型。
在一实施例中,所述行动策略回复单元201包括:
答案提取单元,用于利用自然语言处理技术对所述第一文本信息进行答案提取;
答案判断单元,用于判断提取到的答案是否有多个;
答案确认单元,用于若提取到的答案有多个,则向用户发送引导语句,以确认对应答案;
答案发送单元,用于若提取到的答案仅有1个,则向用户发送提取到的答案;
安抚语句发送单元,用于若提取到的答案为0个,则向用户发送安抚语句。
在一实施例中,所述安抚语句发送单元包括:
安抚程度确认单元,用于将所述第一文本信息输入到已训练的安抚程度分类模型,输出得到对应的安抚程度;其中,所述安抚程度包括轻度安抚、中度安抚以及重度安抚;
安抚语句选择单元,用于基于所述安抚程度,从话术集合中选择对应的安抚语句,并向用户发送。
在一实施例中,所述情绪获取单元202包括:
情绪类别标注单元,用于从客服机器人的后台日志数据库中提取历史对话记录,并对情绪类别进行标注;
情绪分类模型训练单元,用于利用标注后的历史对话记录对预训练的情绪分类模型进行模型训练和参数调整,得到训练后的情绪分类模型;
第二文本信息训练单元,用于将所述第二文本信息输入至所述情绪分类模型,获取用户针对上一轮的行动策略的情绪。
在一实施例中,所述回复价值得分计算单元203包括:
用户意图识别单元,用于对所述第二文本信息进行意图识别,并根据意图识别结果判断用户意图是否改变;
得分矩阵查询单元,用于根据用户意图是否改变、用户针对上一轮的行动策略的情绪以及上一轮的行动策略,从预设得分矩阵中查询针对上一轮的行动策略的回复价值得分;
回复价值得分汇总单元,用于对每一轮的回复价值得分进行汇总,得到回复价值总得分。
在一实施例中,所述回复价值得分汇总单元包括:
公式计算单元,用于通过如下公式计算回复价值总得分:
其中,γ为衰减系数,n为对话总轮数,i=1~(n-1),St为第t轮的回复价值得分。
在一实施例中,所述回复模型获取单元204包括:
文本向量转换单元,用于将对话过程中用户输入的每一轮的文本信息通过词嵌入向量转换为文本向量;
选择概率获取单元,用于将所述文本向量输入针对所有行动策略的多层神经网络中,以获得每一轮选择的行动策略的概率。
回复模型获取单元,用于将所述回复价值总得分与行动策略的概率的乘积的负值作为优化目标,对所述多层神经网络进行优化,得到客服机器人回复模型。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的一种基于强化学习的客服机器人对话方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的一种基于强化学习的客服机器人对话方法。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。