本发明涉及聊天机器人领域以及人工智能对话系统领域,尤其涉及一种基于对话系统的在线学习方法及装置。
背景技术:
随着人工智能技术的不断发展,用于人机进行交流的对话系统也需要进行适应性地发展,以提升用户与对话系统进行交流时的交互体验,从而提高用户对对话系统的信任度。现有的对话系统,针对用户输入的对话信息,通常是直接从语料库中匹配出语句进行应答,这导致对于不同的用户输入的同样内容的对话信息,对话系统所做出的应答往往是一样的,也就是说,现有的对话系统不能够根据用户本身的不同而做出相应的调整,灵活性不高,不够智能。
技术实现要素:
本发明要解决的技术问题是提供一种基于对话系统的在线学习方法及装置,针对用户输入的对话信息,动态地对对话系统中的应答决策器进行更新,以适应不同用户的对话习惯,可以实现提高对话系统的对话灵活性。
为解决上述技术问题,本发明提供的技术方案是:
一方面,本发明提供一种基于对话系统的在线学习方法,包括,
获取用户输入的当前对话信息,以及获取前N轮的历史对话信息;
根据当前对话信息,以及历史对话信息对预先构建的应答决策器进行更新;
根据当前对话信息以及更新后的应答决策器,确定当前应答输出。
进一步地,根据当前对话信息,以及历史对话信息对应答决策器进行更新,具体包括,
将当前对话信息输入预先构建的应答决策器,以生成第一回复R1,并将第一回复R1输入应答决策器以生成第二回复R2,依此,循环m次,以生成一个模拟对话段落R,其中,R={R1,R2,…,Ri…Rm};
采用预先构建的奖励函数,分别对前N轮的历史对话信息和模拟对话段落进行评分,以分别获取历史评分和当前评分;
根据历史评分与当前评分的差值对应答决策器进行更新。
进一步地,奖励函数进行评分的计算规则为,采用A、B、C中的至少一种方式获取评分,其中,
A、计算句与句之间的相互信息熵;
B、通过预先构建的评分模型直接进行评分;
C、统计对话中断的信号次数。
进一步地,应答决策器为序列到序列循环神经网络。
另一方面,本发明提供一种基于对话系统的在线学习装置,包括,
信息获取模块,用于获取用户输入的当前对话信息,以及获取前N轮的历史对话信息;
决策器更新模块,用于根据当前对话信息,以及历史对话信息对预先构建的应答决策器进行更新;
应答输出模块,用于根据当前对话信息以及更新后的应答决策器,确定当前应答输出。
进一步地,决策器更新模块,具体用于,
将当前对话信息输入预先构建的应答决策器,以生成第一回复R1,并将第一回复R1输入应答决策器以生成第二回复R2,依此,循环m次,以生成一个模拟对话段落R,其中,R={R1,R2,…,Ri…Rm};
采用预先构建的奖励函数,分别对前N轮的历史对话信息和模拟对话段落进行评分,以分别获取历史评分和当前评分;
根据历史评分与当前评分的差值对应答决策器进行更新。
进一步地,奖励函数进行评分的计算规则为,采用A、B、C中的至少一种方式获取评分,其中,
A、计算句与句之间的相互信息熵;
B、通过预先构建的评分模型直接进行评分;
C、统计对话中断的信号次数。
进一步地,应答决策器为序列到序列循环神经网络。
本发明提供的基于对话系统的在线学习方法及装置,针对用户输入的对话信息,动态地对对话系统中的应答决策器进行更新,以适应不同用户的对话习惯,可以实现提高对话系统的对话灵活性。
附图说明
图1是本发明实施例提供的基于对话系统的在线学习方法的流程图;
图2是本发明实施例提供的基于对话系统的在线学习方法的又一流程图;
图3是本发明实施例提供的模拟对话段落生成图;
图4是本发明实施例提供的基于对话系统的在线学习装置的框图。
具体实施方式
下面通过具体的实施例进一步说明本发明,但是,应当理解为,这些实施例仅仅是用于更详细具体地说明之用,而不应理解为用于以任何形式限制本发明。
实施例一
结合图1,本实施例提供的基于对话系统的在线学习方法,包括,
步骤S1:获取用户输入的当前对话信息,以及获取前N轮的历史对话信息;
步骤S2:根据当前对话信息,以及历史对话信息对预先构建的应答决策器100进行更新;
步骤S3:根据当前对话信息以及更新后的应答决策器100,确定当前应答输出。
本发明实施例提供的基于对话系统的在线学习方法,针对用户输入的对话信息,动态地对对话系统中的应答决策器100进行更新,以适应不同用户的对话习惯,可以实现提高对话系统的对话灵活性。
优选地,如图2所示地,步骤S2具体包括,
步骤S2.1:将当前对话信息输入预先构建的应答决策器100,以生成第一回复R1,并将第一回复R1输入应答决策器100以生成第二回复R2,依此,循环m次,以生成一个模拟对话段落R,其中,R={R1,R2,…,Ri…Rm};
步骤S2.2:采用预先构建的奖励函数,分别对前N轮的历史对话信息和模拟对话段落进行评分,以分别获取历史评分和当前评分;
步骤S2.3:根据历史评分与当前评分的差值对应答决策器100进行更新。
本实施例中,对于每一条用户输入的对话信息,都将进行一次应答决策器100的更新。针对当前对话信息,先进行m次的循环输入输出,即,如图3所示地,首先将当前对话信息输入进行应答决策器100,以获得第一回复R1,之后,将所生成的第一回复R1,作为输入,返回给应答决策器100以生成第二回R2,如此进行循环,并循环m次,以获得一个模拟对话段落R,且R={R1,R2,…,Ri…Rm}。由于该模拟对话段落与当前对话信息的相关性极大,也就是说,能够较好地拟合出用户的独特性,如此,可以使得对话系统更好地掌握该用户的对话习惯,从而提高对话系统的对话灵活性。需要说明的是,本实施例中,m的取值较为关键,若m的取值太小,则会降低奖励函数对计算结果的稳定性,若m的取值太大又将加大计算复杂度,增加不必要的耗时,降低系统性能。此外,m的取值需要结合实际需要进行设定,且需要经过多次试验获得,本实施例不作具体限定。
本实施例中,通过采用预先构建的奖励函数,分别对前N轮的历史对话信息和模拟对话段落进行评分,以分别获取历史评分和当前评分,然后再根据历史评分与当前评分的差值对应答决策器100进行更新。具体地,假定奖励函数为F,且计算获得当前评分为f1,以及历史评分为f1’,则历史评分与当前评分的差值loss=f1’-f1。本实施例中,采用loss,即历史评分与当前评分的差值对应答决策器100运用向后传导(back propagation)算法进行参数更新,继而实现对应答决策器100的更新。本实施例中,优选地,N的取值为1,即只考虑前一轮的历史对话,且当没有前一轮历史对话时,即当前对话即为第一轮对话时,则默认f1’=0,且loss=0。
进一步优选地,奖励函数进行评分的计算规则为,采用A、B、C中的至少一种方式获取评分,其中,
A、计算句与句之间的相互信息熵;
B、通过预先构建的评分模型直接进行评分;
C、统计对话中断的信号次数。
本实施例中,句与句之间的相互信息熵可以刻画两个句子之间的关联程度;预先构建的评分模型可以刻画句与句之间的流畅程度;对话中断也是对流畅程度的另一种描述方式。此外,本实施例中,采用预先训练好的中断分类器统计对话中断的信号次数。具体地,中断分类器的输入是一对句子,输出是0或者1,其中,0代表第一句和第二句之间产生了中断,1代表没有产生中断。优选地,中断分类器为卷积神经网络。
进一步优选地,应答决策器100为序列到序列循环神经网络。本实施例中,应答决策器100的选择需要符合输入为句子且输出也为句子这一输入输出特征。此外,应答决策器100为序列到序列循环神经网络仅为本实施例的一个优选方案,也可以是其他的神经网络,本实施例不作具体限定。此外,需要说明的是,本实施例中所提及的句子,是指一个任意长度的字符串。
实施例二
结合图4,本实施例提供一种基于对话系统的在线学习装置,包括,
信息获取模块1,用于获取用户输入的当前对话信息,以及获取前N轮的历史对话信息;
决策器更新模块2,用于根据当前对话信息,以及历史对话信息对预先构建的应答决策器100进行更新;
应答输出模块3,用于根据当前对话信息以及更新后的应答决策器100,确定当前应答输出。
本发明实施例提供的基于对话系统的在线学习装置,针对用户输入的对话信息,动态地对对话系统中的应答决策器100进行更新,以适应不同用户的对话习惯,可以实现提高对话系统的对话灵活性。
优选地,决策器更新模块2,具体用于,
将当前对话信息输入预先构建的应答决策器100,以生成第一回复R1,并将第一回复R1输入应答决策器100以生成第二回复R2,依此,循环m次,以生成一个模拟对话段落R,其中,R={R1,R2,…,Ri…Rm};
采用预先构建的奖励函数,分别对前N轮的历史对话信息和模拟对话段落进行评分,以分别获取历史评分和当前评分;
根据历史评分与当前评分的差值对应答决策器100进行更新。
本实施例中,对于每一条用户输入的对话信息,都将进行一次应答决策器100的更新。针对当前对话信息,先进行m次的循环输入输出,即,如图3所示地,首先将当前对话信息输入进行应答决策器100,以获得第一回复R1,之后,将所生成的第一回复R1,作为输入,返回给应答决策器100以生成第二回R2,如此进行循环,并循环m次,以获得一个模拟对话段落R,且R={R1,R2,…,Ri…Rm}。由于该模拟对话段落与当前对话信息的相关性极大,也就是说,能够较好地拟合出用户的独特性,如此,可以使得对话系统更好地掌握该用户的对话习惯,从而提高对话系统的对话灵活性。需要说明的是,本实施例中,m的取值较为关键,若m的取值太小,则会降低奖励函数对计算结果的稳定性,若m的取值太大又将加大计算复杂度,增加不必要的耗时,降低系统性能。此外,m的取值需要结合实际需要进行设定,且需要经过多次试验获得,本实施例不作具体限定。
本实施例中,通过采用预先构建的奖励函数,分别对前N轮的历史对话信息和模拟对话段落进行评分,以分别获取历史评分和当前评分,然后再根据历史评分与当前评分的差值对应答决策器100进行更新。具体地,假定奖励函数为F,且计算获得当前评分为f1,以及历史评分为f1’,则历史评分与当前评分的差值loss=f1’-f1。本实施例中,采用loss,即历史评分与当前评分的差值对应答决策器100运用向后传导(back propagation)算法进行参数更新,继而实现对应答决策器100的更新。本实施例中,优选地,N的取值为1,即只考虑前一轮的历史对话,且当没有前一轮历史对话时,即当前对话即为第一轮对话时,则默认f1’=0,且loss=0。
进一步优选地,奖励函数进行评分的计算规则为,采用A、B、C中的至少一种方式获取评分,其中,
A、计算句与句之间的相互信息熵;
B、通过预先构建的评分模型直接进行评分;
C、统计对话中断的信号次数。
本实施例中,句与句之间的相互信息熵可以刻画两个句子之间的关联程度;预先构建的评分模型可以刻画句与句之间的流畅程度;对话中断也是对流畅程度的另一种描述方式。此外,本实施例中,采用预先训练好的中断分类器统计对话中断的信号次数。具体地,中断分类器的输入是一对句子,输出是0或者1,其中,0代表第一句和第二句之间产生了中断,1代表没有产生中断。优选地,中断分类器为卷积神经网络。
进一步优选地,应答决策器100为序列到序列循环神经网络。本实施例中,应答决策器100的选择需要符合输入为句子且输出也为句子这一输入输出特征。此外,应答决策器100为序列到序列循环神经网络仅为本实施例的一个优选方案,也可以是其他的神经网络,本实施例不作具体限定。此外,需要说明的是,本实施例中所提及的句子,是指一个任意长度的字符串。
尽管本发明已进行了一定程度的描述,明显地,在不脱离本发明的精神和范围的条件下,可进行各个条件的适当变化。可以理解,本发明不限于所述实施方案,而归于权利要求的范围,其包括所述每个因素的等同替换。