发明内容
本说明书一个或多个实施例描述了一种确定对话文本对应的标准问句的方法和装置,能够在确定对话文本对应的标准问句时,满足用户述求。
第一方面,提供了一种确定对话文本对应的标准问句的方法,方法包括:
获取目标用户与机器人之间的第一对话文本;
将所述第一对话文本作为第一状态输入第一神经网络模型,通过所述第一神经网络模型输出第一动作,所述第一动作对应于第一标准问句;
获取所述目标用户针对所述第一标准问句的第二对话文本;
将所述第二对话文本作为第二状态,根据所述第二状态,确定所述第一状态和所述第一动作组成的状态动作对的奖励;
根据所述奖励对所述第一神经网络模型进行强化训练,强化训练后的所述第一神经网络模型用于确定后续的对话文本对应的标准问句。
在一种可能的实施方式中,所述方法还包括:
获取所述目标用户的预设历史行为的行为特征;和/或,
获取用于指示所述目标用户的行为轨迹的序列数据;
将所述行为特征和/或所述序列数据输入所述第一神经网络模型。
进一步地,所述第一神经网络模型包括:
第一网络,用于对所述第一对话文本进行特征提取,得到第一特征向量;
第二网络,用于对所述行为特征进行特征提取,得到第二特征向量;
第三网络,用于对所述序列数据进行特征提取,得到第三特征向量;
分类网络,用于对所述第一特征向量、所述第二特征向量和所述第三特征向量拼接后得到综合特征向量,根据所述综合特征向量确定所述第一标准问句。
进一步地,所述第一网络包括:
长短期记忆网络(long short-term memory,LSTM),用于对所述第一对话文本进行特征提取,得到第一特征子向量;
深度神经网络(deep neural networks,DNN),用于对所述第一对话文本进行特征提取,得到第二特征子向量;
卷积神经网络(convolutional neural networks,CNN),用于对所述第一对话文本进行特征提取,得到第三特征子向量;
拼接网络,用于对所述第一特征子向量、所述第二特征子向量和所述第三特征子向量拼接后得到速搜第一特征向量。
进一步地,所述第二网络包括:
深度神经网络DNN,用于对所述行为特征进行特征提取,得到所述第二特征向量。
进一步地,所述第三网络包括:
长短期记忆网络LSTM,用于对所述序列数据进行特征提取,得到所述第三特征向量。
在一种可能的实施方式中,所述确定所述第一状态和所述第一动作组成的状态动作对的奖励,包括:
当所述第二对话文本为用于否认所述第一标准问句的文本时,确定所述第一状态和所述第一动作组成的状态动作对的奖励为预先设定的负数。
进一步地,所述确定所述第一状态和所述第一动作组成的状态动作对的奖励,包括:
当所述第二对话文本为用于确认所述第一标准问句的文本时,确定所述第一状态和所述第一动作组成的状态动作对的奖励为之前对话文本的累计奖励与预先设定的对话总轮数阈值之和。
在一种可能的实施方式中,所述根据所述奖励对所述第一神经网络模型进行强化训练,包括:
根据所述奖励调整所述第一神经网络模型输出各标准问句的各概率;
根据调整后的各概率对所述第一神经网络模型进行强化训练。
在一种可能的实施方式中,所述根据所述奖励对所述第一神经网络模型进行强化训练,包括:
根据所述状态动作对和所述奖励,利用时间差分法对所述第二神经网络模型进行训练,所述第二神经网络模型用于确定当前状态下采取目标动作后会获得的未来的奖励的期望;
将所述状态动作对输入训练后的所述第二神经网络模型,根据训练后的所述第二神经网络模型的输出,以最大化奖励为目标对所述第一神经网络模型进行强化训练。
第二方面,提供了一种确定对话文本对应的标准问句的装置,装置包括:
获取单元,用于获取目标用户与机器人之间的第一对话文本;
确定单元,用于将所述获取单元获取的第一对话文本作为第一状态输入第一神经网络模型,通过所述第一神经网络模型输出第一动作,所述第一动作对应于第一标准问句;
所述获取单元,还用于获取所述目标用户针对所述确定单元得到的第一标准问句的第二对话文本;
奖励单元,用于将所述获取单元获取的第二对话文本作为第二状态,根据所述第二状态,确定所述第一状态和所述第一动作组成的状态动作对的奖励;
训练单元,用于根据所述奖励单元确定的奖励对所述第一神经网络模型进行强化训练,强化训练后的所述第一神经网络模型用于确定后续的对话文本对应的标准问句。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,首先获取目标用户与机器人之间的第一对话文本;然后将所述第一对话文本作为第一状态输入第一神经网络模型,通过所述第一神经网络模型输出第一动作,所述第一动作对应于第一标准问句;接着获取所述目标用户针对所述第一标准问句的第二对话文本;再将所述第二对话文本作为第二状态,根据所述第二状态,确定所述第一状态和所述第一动作组成的状态动作对的奖励;最后根据所述奖励对所述第一神经网络模型进行强化训练,强化训练后的所述第一神经网络模型用于确定后续的对话文本对应的标准问句。由上可见,本说明书实施例,采用强化学习建模多轮对话,状态对应于对话文本,动作对应于根据当前状态猜测的标准问句,根据动作作用于环境后的状态确定奖励,用强化学习框架将前后对话关联起来,从而能够在确定对话文本对应的标准问句时,满足用户述求。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及确定对话文本对应的标准问句,其中,上述对话文本具体为用户与机器人之间的多轮对话中用户的对话文本。参照图1,第一阶段,进行的是用户跟机器对话,也就是说,由机器人回答用户问题,其中,机器人具体可以为机器人客服。第二阶段,进行的是用户跟小二对话,可以理解的是,小二即人工客服,也就是说,由人工客服回答用户问题。在第一阶段,用户与机器人之间的多轮对话的轮数达到预先设定的对话总轮数阈值时,会进入第二阶段,由人工客服回答用户问题。
可以理解的是,可以预先针对用户跟机器对话的轮数设定阈值,例如,设定阈值为3,第一阶段,当用户跟机器对话的轮数达到3轮,且用户仍然表示机器确定的标准问句不满足其述求时,由第一阶段切换为第二阶段,由人工客服回答用户问题。
图2示出根据一个实施例的针对多轮对话的处理方法流程图,该方法涵盖了图1所示的第一阶段和第二阶段的处理过程。在第一阶段,引导用户说出需求,机器跟用户对话,详细分析用户需求,进行问题识别,也就是确定对话文本对应的标准问句。当问题识别不成功时,进入第二阶段,智能派单,小二跟用户对话并且标注用户问题,其中,智能派单即确定多轮对话对应的人工客服技能组,标注用户问题即标注对话文本对应的标准问句。
在一个示例中,机器在接收到用户问句后,针对用户问句,确定该用户问句对应的标准问句,并将确定的标准问句展示给用户,由用户确认该标准问句是否满足其述求,如果用户确认该标准问句不满足其述求,则由用户补充部分描述,机器会针对与用户之间的多轮对话,再次确定该多轮对话对应的标准问句。当机器与用户之间的对话轮数达到预设阈值,并且仍然不满足用户述求时,确定多轮对话对应的人工客服技能组,由人工客服跟用户对话并且标注多轮对话对应的标准问句。
本说明书实施例,多轮对话对应的标准问句即对话文本对应的标准问句,当用户与机器人之间已经进行了多轮对话时,可以将用户的各轮对话的对话文本结合起来确定用户述求,也就是说,将用户的各轮对话的对话文本结合起来确定标准问句。
本说明书实施例,各轮对话的对话文本之间具有时间上的先后顺序,因此可以采用强化学习框架将前后对话关联起来,状态之间有前后关系。
强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。其灵感来源于心理学中的行为主义理论,即有机体(agent)如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。强化学习与其他机器学习算法不同的地方在于:其中没有监督者,只有一个奖励(reward)信号;反馈是延迟的,不是立即生成的;时间在强化学习中具有重要的意义;有机体的行为会影响之后一系列的数据。
本说明书实施例,通过强化学习建模多轮对话,做问题识别。
图3示出根据一个实施例的确定对话文本对应的标准问句的方法流程图,该方法可以基于图1所示的应用场景。如图3所示,该实施例中确定对话文本对应的标准问句的方法包括以下步骤:步骤31,获取目标用户与机器人之间的第一对话文本;步骤32,将所述第一对话文本作为第一状态输入第一神经网络模型,通过所述第一神经网络模型输出第一动作,所述第一动作对应于第一标准问句;步骤33,获取所述目标用户针对所述第一标准问句的第二对话文本;步骤34,将所述第二对话文本作为第二状态,根据所述第二状态,确定所述第一状态和所述第一动作组成的状态动作对的奖励;步骤35,根据所述奖励对所述第一神经网络模型进行强化训练,强化训练后的所述第一神经网络模型用于确定后续的对话文本对应的标准问句。下面描述以上各个步骤的具体执行方式。
首先在步骤31,获取目标用户与机器人之间的第一对话文本。可以理解的是,若目标用户与机器人之间已经进行了多轮对话,则第一对话文本可以为最后一轮对话中目标用户的对话文本,或者,第一对话文本可以为各轮对话中目标用户的对话文本拼接后的对话文本。
然后在步骤32,将所述第一对话文本作为第一状态输入第一神经网络模型,通过所述第一神经网络模型输出第一动作,所述第一动作对应于第一标准问句。可以理解的是,可以仅将对话文本作为第一神经网络模型的输入,或者,为了使第一神经网络模型的分类结果更为准确,还可以将目标用户的其他特征作为第一神经网络模型的输入,结合目标用户的其他特征来确定标准问句。
在一个示例中,获取所述目标用户的预设历史行为的行为特征;和/或,获取用于指示所述目标用户的行为轨迹的序列数据;将所述行为特征和/或所述序列数据输入所述第一神经网络模型。
进一步地,所述第一神经网络模型包括:
第一网络,用于对所述第一对话文本进行特征提取,得到第一特征向量;
第二网络,用于对所述行为特征进行特征提取,得到第二特征向量;
第三网络,用于对所述序列数据进行特征提取,得到第三特征向量;
分类网络,用于对所述第一特征向量、所述第二特征向量和所述第三特征向量拼接后得到综合特征向量,根据所述综合特征向量确定所述第一标准问句。
进一步地,所述第一网络包括:
长短期记忆网络(long short-term memory,LSTM),用于对所述第一对话文本进行特征提取,得到第一特征子向量;
深度神经网络(deep neural networks,DNN),用于对所述第一对话文本进行特征提取,得到第二特征子向量;
卷积神经网络(convolutional neural networks,CNN),用于对所述第一对话文本进行特征提取,得到第三特征子向量;
拼接网络,用于对所述第一特征子向量、所述第二特征子向量和所述第三特征子向量拼接后得到速搜第一特征向量。
进一步地,所述第二网络包括:
深度神经网络DNN,用于对所述行为特征进行特征提取,得到所述第二特征向量。
进一步地,所述第三网络包括:
长短期记忆网络LSTM,用于对所述序列数据进行特征提取,得到所述第三特征向量。
图4示出根据一个实施例的第一神经网络模型的结构示意图,该结构适应于仅将对话文本作为第一神经网络模型的输入。参照图4,所述第一神经网络模型包括LSTM、DNN和CNN;其中,所述LSTM用于对对话文本进行特征提取,得到第一特征子向量41;所述DNN用于对对话文本进行特征提取,得到第二特征子向量42;所述CNN用于对对话文本进行特征提取,得到第三特征子向量43;所述第一特征子向量41、所述第二特征子向量42和所述第三特征子向量43拼接后得到第一特征向量44。
图5示出根据另一个实施例的第一神经网络模型的结构示意图,该结构适应于将对话文本和用户的其他特征作为第一神经网络模型的输入。参照图5,该第一神经网络模型包括第一网络51、第二网络52和第三网络53。其中,第一网络51用于输入对话文本,即用于接收短文本输入(short text input);第二网络52用于输入行为特征,即用于接收因子输入(factor input);第三网络53用于输入序列数据,即用于接收行为输入(behaviorinput)。分类网络,用于对第一网络51、第二网络52和第三网络53输出的特征向量拼接后得到综合特征向量,最后由分类器(例如softmax)根据所述综合特征向量确定标准问句。
本说明书实施例,LSTM可以替换为循环神经网络(recurrent neural networks,RNN)或门控循环单元(gated recurrent unit,GRU)。
接着在步骤33,获取所述目标用户针对所述第一标准问句的第二对话文本。可以理解的是,目标用户与机器人的对话过程是一个多轮交互的过程,首先目标用户输入第一对话文本,机器人输出第一标准问句,目标用户输入第二对话文本,也就是说,第一对话文本和第二对话文本在时间上有先后顺序,并且,通常地,第二对话文本用于确认或否认所述第一标准问句。
再在步骤34,将所述第二对话文本作为第二状态,根据所述第二状态,确定所述第一状态和所述第一动作组成的状态动作对的奖励。可以理解的是,奖励作为一种反馈,可以用于对第一神经网络模型进行训练。
在一个示例中,当所述第二对话文本为用于否认所述第一标准问句的文本时,确定所述第一状态和所述第一动作组成的状态动作对的奖励为预先设定的第一数值;当所述第二对话文本为用于确认所述第一标准问句的文本时,确定所述第一状态和所述第一动作组成的状态动作对的奖励为预先设定的第二数值,其中,第一数值小于第二数值。例如,第一数值为-1,第二数值为+1。这种奖励的设定方式比较简单,并且能够体现状态动作对是否匹配。
在另一个示例中,当所述第二对话文本为用于否认所述第一标准问句的文本时,确定所述第一状态和所述第一动作组成的状态动作对的奖励为预先设定的负数。进一步地,当所述第二对话文本为用于确认所述第一标准问句的文本时,确定所述第一状态和所述第一动作组成的状态动作对的奖励为之前对话文本的累计奖励与预先设定的对话总轮数阈值之和。例如,预先设定的对话总轮数阈值为4,机器人在前两轮对话中均猜错了标准问句,在第三轮对话中猜对了标准问句,则第三轮对应的状态动作对的奖励为-2+4,也就是奖励为+2。这种奖励的设定方式结合了对话轮数,能够让第一神经网络模型尽快猜对用户的问题,对话轮数越少越好。
最后在步骤35,根据所述奖励对所述第一神经网络模型进行强化训练,强化训练后的所述第一神经网络模型用于确定后续的对话文本对应的标准问句。可以理解的是,经过强化训练后,第一神经网络模型会表现的越来越好。
在一个示例中,根据所述奖励调整所述第一神经网络模型输出各标准问句的各概率;根据调整后的各概率对所述第一神经网络模型进行强化训练。具体地,可以采用策略梯度(policy gredient,PG)算法。
在另一个示例中,根据所述状态动作对和所述奖励,利用时间差分法对所述第二神经网络模型进行训练,所述第二神经网络模型用于确定当前状态下采取目标动作后会获得的未来的奖励的期望;将所述状态动作对输入训练后的所述第二神经网络模型,根据训练后的所述第二神经网络模型的输出,以最大化奖励为目标对所述第一神经网络模型进行强化训练。具体地,可以采用玩家(actor)-评委(critic)算法,比如深度确定性的策略梯度(deep deterministic policy gradient,DDPG)算法和深度增强学习(proximal policyoptimization,PPO)算法。对于actor-critic算法,其中actor部分,输入是状态,输出是动作,上述动作具体为标准问句,actor可以采用图4或图5所示的模型;其中critic部分,输入是状态动作对,输出是该状态动作对的价值,critic可以采用模型或函数。
通过本说明书实施例提供的方法,首先获取目标用户与机器人之间的第一对话文本;然后将所述第一对话文本作为第一状态输入第一神经网络模型,通过所述第一神经网络模型输出第一动作,所述第一动作对应于第一标准问句;接着获取所述目标用户针对所述第一标准问句的第二对话文本;再将所述第二对话文本作为第二状态,根据所述第二状态,确定所述第一状态和所述第一动作组成的状态动作对的奖励;最后根据所述奖励对所述第一神经网络模型进行强化训练,强化训练后的所述第一神经网络模型用于确定后续的对话文本对应的标准问句。由上可见,本说明书实施例,采用强化学习建模多轮对话,状态对应于对话文本,动作对应于根据当前状态猜测的标准问句,根据动作作用于环境后的状态确定奖励,用强化学习框架将前后对话关联起来,从而能够在确定对话文本对应的标准问句时,满足用户述求。
根据另一方面的实施例,还提供一种确定对话文本对应的标准问句的装置,该装置用于执行本说明书实施例提供的确定对话文本对应的标准问句的方法。图6示出根据一个实施例的确定对话文本对应的标准问句的装置的示意性框图。如图6所示,该装置600包括:
获取单元61,用于获取目标用户与机器人之间的第一对话文本;
确定单元62,用于将所述获取单元61获取的第一对话文本作为第一状态输入第一神经网络模型,通过所述第一神经网络模型输出第一动作,所述第一动作对应于第一标准问句;
所述获取单元61,还用于获取所述目标用户针对所述确定单元62得到的第一标准问句的第二对话文本;
奖励单元63,用于将所述获取单元61获取的第二对话文本作为第二状态,根据所述第二状态,确定所述第一状态和所述第一动作组成的状态动作对的奖励;
训练单元64,用于根据所述奖励单元63确定的奖励对所述第一神经网络模型进行强化训练,强化训练后的所述第一神经网络模型用于确定后续的对话文本对应的标准问句。
可选地,作为一个实施例,所述获取单元61,还用于获取所述目标用户的预设历史行为的行为特征;和/或,获取用于指示所述目标用户的行为轨迹的序列数据;
所述确定单元62,还用于将所述获取单元61获取的所述行为特征和/或所述序列数据输入所述第一神经网络模型。
进一步地,所述第一神经网络模型包括:
第一网络,用于对所述第一对话文本进行特征提取,得到第一特征向量;
第二网络,用于对所述行为特征进行特征提取,得到第二特征向量;
第三网络,用于对所述序列数据进行特征提取,得到第三特征向量;
分类网络,用于对所述第一特征向量、所述第二特征向量和所述第三特征向量拼接后得到综合特征向量,根据所述综合特征向量确定所述第一标准问句。
进一步地,所述第一网络包括:
长短期记忆网络LSTM,用于对所述第一对话文本进行特征提取,得到第一特征子向量;
深度神经网络DNN,用于对所述第一对话文本进行特征提取,得到第二特征子向量;
卷积神经网络CNN,用于对所述第一对话文本进行特征提取,得到第三特征子向量;
拼接网络,用于对所述第一特征子向量、所述第二特征子向量和所述第三特征子向量拼接后得到所述第一特征向量。
进一步地,所述第二网络包括:
深度神经网络DNN,用于对所述行为特征进行特征提取,得到所述第二特征向量。
进一步地,所述第三网络包括:
长短期记忆网络LSTM,用于对所述序列数据进行特征提取,得到所述第三特征向量。
可选地,作为一个实施例,所述奖励单元63,具体用于当所述第二对话文本为用于否认所述第一标准问句的文本时,确定所述第一状态和所述第一动作组成的状态动作对的奖励为预先设定的负数。
进一步地,所述奖励单元63,还用于当所述第二对话文本为用于确认所述第一标准问句的文本时,确定所述第一状态和所述第一动作组成的状态动作对的奖励为之前对话文本的累计奖励与预先设定的对话总轮数阈值之和。
可选地,作为一个实施例,所述训练单元64,具体用于:
根据所述奖励调整所述第一神经网络模型输出各标准问句的各概率;
根据调整后的各概率对所述第一神经网络模型进行训练。
可选地,作为一个实施例,所述训练单元64,具体用于:
根据所述状态动作对和所述奖励,利用时间差分法对所述第二神经网络模型进行训练,所述第二神经网络模型用于确定当前状态下采取目标动作后会获得的未来的奖励的期望;
将所述状态动作对输入训练后的所述第二神经网络模型,根据训练后的所述第二神经网络模型的输出,以最大化奖励为目标对所述第一神经网络模型进行训练。
通过本说明书实施例提供的装置,首先获取单元61获取目标用户与机器人之间的第一对话文本;然后确定单元62将所述第一对话文本作为第一状态输入第一神经网络模型,通过所述第一神经网络模型输出第一动作,所述第一动作对应于第一标准问句;接着获取单元61获取所述目标用户针对所述第一标准问句的第二对话文本;再由奖励单元63将所述第二对话文本作为第二状态,根据所述第二状态,确定所述第一状态和所述第一动作组成的状态动作对的奖励;最后训练单元64根据所述奖励对所述第一神经网络模型进行强化训练,强化训练后的所述第一神经网络模型用于确定后续的对话文本对应的标准问句。由上可见,本说明书实施例,采用强化学习建模多轮对话,状态对应于对话文本,动作对应于根据当前状态猜测的标准问句,根据动作作用于环境后的状态确定奖励,用强化学习框架将前后对话关联起来,从而能够在确定对话文本对应的标准问句时,满足用户述求。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。