基于N-GRAM和WFST模型的人工神经网络芯片及其应用方法与流程

文档序号:15096330发布日期:2018-08-04 14:39阅读:378来源:国知局

本公开涉及人工智能技术领域,尤其涉及一种基于深度神经网络的自动聊天方法及机器人。



背景技术:

近年来,随着人工智能的迅速发展,聊天机器人也受到了学术界和工业界的广泛关注。

但是,传统的聊天机器人也存在着面临着很多问题,例如对话无法产生具体的含义,前后文没有承接逻辑,无法满足使用需求。

特别是,目前我国正在快速进入老龄化社会。在未来社会,如何养老将会是一个巨大的社会与经济问题。现在的养老模式多采用护理人员陪伴老人聊天的方式,从而达到为老人提供陪伴聊天服务,提供老年人情感上的慰藉。而人工的去和老年人聊天将会占用大量的人力物力,如果将和老年人聊天这一服务使用聊天机器人完成,将会有巨大的经济和社会效益。然而传统的聊天机器人无法很好的满足老年人的情感需要。老年人会发现自己在和机器对话,从而不喜欢这些聊天。



技术实现要素:

(一)要解决的技术问题

为了解决或者至少部分缓解上述技术问题,本公开提供了一种基于深度神经网络的自动聊天方法及机器人。

(二)技术方案

根据本公开的一个方面,提供了一种基于深度神经网络的自动聊天方法,包括以下步骤:获取用户输入信息,并经深度神经网络编码器生成固定长度向量;所述固定长度向量输入attention模型之后输出分数;以及根据所述分数判定经由attention模型或自然模型生成与所述输入信息对应的答复信息;其中,若所述分数小于一分数阈值,则进入语言模型,经语言模型生成与所述输入信息对应的答复信息;反之,直接经由attention模型生成与所述输入信息对应的答复信息。

在一些实施例中,所述attention模型为包括一或多个神经网络层的深度神经网络,所述固定长度向量输入attention模型之后输出全部可能答复信息所对应的分数,选择最高分数所对应的答复信息作为最终答复信息。

在一些实施例中,所述attention模型中包括全连接层和softmax层;所述固定长度向量在attention模型中作向量/矩阵乘法和/或加法运算从而输出所述分数。

在一些实施例中,所述attention模型包括多个attention子模型,分别采用不同类别预料训练而成;该多个attention子模型并联连接,固定长度向量分别输入所述多个attention子模型中的神经网络后输出多个分数,若所述多个分数中的最高分数小于一分数阈值,则进入语言模型,经语言模型生成与所述输入信息对应的答复信息;反之,直接经attention模型生成与所述输入信息对应的答复信息。

在一些实施例中,所述多个attention子模型包括:第一attention子模型,其包括全连接层神经网络、softmax层神经网络及卷积层神经网络,采用日常生活类别语料进行训练;第二attention子模型,其包括卷积层、全连接层、池化层及batch norm层神经网络,采用时事新闻类别语料进行训练;第三attention子模型,其包括全连接层神经网络、池化层神经网络、softmax层神经网络及卷积层神经网络,采用心灵情感类别语料进行训练。

在一些实施例中,所述attention模型包括多个attention子模型;在经由attention模型生成与所述输入信息对应的答复信息时,对所述多个attention子模型输出的分数进行比较,选择最高分数所对应的attention子模型作为生成答复信息的最终模型。

在一些实施例中,利用N-GRAM、WFST生成所述语言模型;在语言模型中,使用A*搜索、束搜索生成与所述输入信息对应的答复信息。

在一些实施例中,所述自然模型以文字的形式生成答复信息,语言模型在每一次迭代中产生所有待选文字新的分数,由此迭代完成后会生成一个时间序列上的所有文字的搜索空间,在该搜索空间中根据编码器产生的固定长度向量得到最终唯一的输出结果。

根据本公开的另一个方面,提供了一种基于深度神经网络的自动聊天机器人,包括:预处理模块,用于获取用户输入信息,并通过一深度神经网络编码器对所述输入信息进行预处理,生成固定长度向量;处理模块:用于接收所述固定长度向量,并利用attention模型输出分数;以及判定及生成模块,用于根据所述分数判定经由attention模型或自然模型生成与所述输入信息对应的答复信息;其中,若所述分数小于一分数阈值,则进入语言模型,经语言模型生成与所述输入信息对应的答复信息;反之,直接经由attention模型生成与所述输入信息对应的答复信息。

在一些实施例中,所述attention模型为包括一或多个神经网络层的深度神经网络,所述固定长度向量输入attention模型之后输出全部可能答复信息所对应的分数,选择最高分数所对应的答复信息作为最终答复信息。

(三)有益效果

从上述技术方案可以看出,本公开基于深度神经网络的自动聊天方法及机器人至少具有以下有益效果其中之一:

(1)由于本公开自动聊天方法及机器人为基于深度神经网络的自动聊天机器人,因而可以通过训练过程中更新权值,保证了聊天过程中答复信息的准确性,使对话更加真实。

(2)本公开由于本公开自动聊天方法及机器人,根据attention模型输出的分数或判定经由attention模型或自然模型生成与所述输入信息对应的答复信息,充分考虑了聊天过程中输入信息的具体内容,并对其常用及生僻性进行区分,然后分别采用不同的模型来生成答复信息,使得聊天内容更切合实际。

(3)随着人工智能技术,特别是深度神经网络技术的发展,智能聊天机器人正逐步越来越多的活跃在人们的日常生活中,本公开将传统的人工陪伴聊天通过最新的人工智能计数将之自动化,有效的解决了人工成本的同时带来极高的经济效益,将传统需要人来完成的任务通过技术手段赋予了计算机聊天的功能。

(4)本公开充分考虑了聊天对象群体的聊天内容特点,例如针对老年人这一群体,可以结合老年人聊天的特点对其输入信息进行区分,引入了attention模型和语言模型共同处理LSTM神经网络处理后的固定长度向量;利用attention模型处理老年人聊天中较常出现的语料,使用语言模型处理老年人聊天中较少出现的语料,并使用分数作为使用attention模型还是语言模型的判定,使得聊天内容更切合实际;可以做到聊天过程中含有逻辑等具体含义的功能,更加满足老年人的情感需要,使他们愿意和聊天机器人对话。

附图说明

图1是本公开神经网络训练过程示意图。

图2是本公开自动聊天方法流程图。

图3是本公开自动聊天机器人方块图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开作进一步的详细说明。

需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。此外,以下实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本公开。

本公开提供了一种基于深度神经网络的自动聊天方法,所述基于深度神经网络的自动聊天方法包括以下步骤:

S1,获取用户输入信息,并经深度神经网络编码器生成固定长度向量;

S2,所述固定长度向量输入attention模型之后输出分数;以及

S3,根据所述分数判定经由attention模型或自然模型生成与所述输入信息对应的答复信息。

其中,若所述分数小于一分数阈值,则进入语言模型,经语言模型生成与所述输入信息对应的答复信息;反之,直接经由attention模型生成与所述输入信息对应的答复信息。

所述attention模型中可以为包括一或多个神经网络层的深度神经网络。所述固定长度向量输入attention模型之后输出全部可能答复信息所对应的分数,选择最高分数所对应的答复信息作为最终答复信息。可选的,所述attention模型中包括全连接层神经网络和softmax层神经网络;所述固定长度向量在attention模型中作向量/矩阵乘法和/或加法运算从而输出所述分数。

进一步的,所述attention模型包括多个attention子模型,分别采用不同类别预料训练而成;该多个attention子模型并联连接,固定长度向量分别输入所述多个attention子模型中的神经网络后输出多个分数,若所述多个分数中的最高分数小于一分数阈值,则进入语言模型,经语言模型生成与所述输入信息对应的答复信息;反之,直接经attention模型生成与所述输入信息对应的答复信息。

所述attention模型包括的各子模型采用不同类别的语料集合进行训练,这些不同类别的语聊集合可根据对聊天机器人的使用对象的聊天内容统计结果来确定。例如对多个使用对象在一定时间段内的聊天内容进行统计,确定出最常用的多个语料类别。举例来说,所述多个attention子模型可包括:第一attention子模型,其包括全连接层神经网络、softmax层神经网络及卷积层神经网络,采用日常生活类别语料进行训练;第二attention子模型,其包括卷积层、全连接层、池化层及batch norm层神经网络,采用时事新闻类别语料进行训练;第三attention子模型,其包括全连接层神经网络、池化层神经网络、softmax层神经网络及卷积层神经网络,采用心灵情感类别语料进行训练。若所述attention模型包括多个attention子模型,那么在经由attention模型生成与所述输入信息对应的答复信息时,可以对所述多个attention子模型输出的分进行比较,选择最高分数所对应的attention子模型作为生成答复信息的最终模型。由此,通过对各attention模型结构的设置,训练预料集合的设置,及答复信息的最终模型的选定,使得生成的答复信息更准确,更符合实际,更好的满足了使用对象的需求。

具体的,利用N-GRAM、WFST生成所述语言模型;在语言模型中,使用A*搜索、束搜索生成与所述输入信息对应的答复信息。

更具体而言,所述自然模型以文字的形式生成答复信息,语言模型在每一次迭代中产生所有待选文字新的分数,由此迭代完成后会生成一个时间序列上的所有文字的搜索空间,在该搜索空间中根据编码器产生的固定长度向量得到最终唯一的输出结果。

下面以老年人这一适用对象群体为例,详细介绍本公开基于深度神经网络的自动聊天过程。

深度神经网络算法分为训练过程和使用过程两部分。在训练过程中,使用历史收集的老年人聊天数据,即老年人和真实人对话的文字信息数据作为训练集训练本深度神经网络助老聊天机器人。具体为:输入:老年人用户输入的文字形式的自然语言。中间处理:编码器编码,及解码器解码;输出及更新:根据输出结果与真实结果对比,更新神经网络的权值。

其中,编码器接收用户输入并产生的固定长度的向量,固定长度的向量进入解码器解码产生目的回复语言词库中,每个单词的概率,一般而言,语料库中有几个单词便有几个神经元,每个神经元中由数字来表示分数,神经元的总数目是一定的,因此网络的输出便为每个神经元的分数(或)。所述编码器可以是包括卷积层、全连接层、池化层及batch norm层的LSTM神经网络。本LSTM(长短期记忆网络)神经网络结合聊天特点,即当前一句话的聊天内容是和之前的几句话相关的这一特点,设计了对应的LSTM神经网络,即本网络会将最近出现的输入作为次级输入迭代的送入LSTM神经网络中。如图1所示,在神经网络的训练过程中时间顺序上输入语言分成Xt-1,Xt,Xt+1三个片段,并对每一句话产生对应神经网络结果即固定长度的向量(ht-1、ht、ht+1)同时将这句话作为输出送入到下一次迭代中。即图1中前一个方框都会引入到下一个方框中的输入(图1中三个方框内部结构可相同,即未示出的第一方框及第三方框内部结构可与第二方框示出的内部结构相同)。在训练过程中,得到的神经网络的输出与预先准备的数据集求绝对平均误差(AAE)或者最小二乘误差(LSE)产生的误差通过方向传播算法(BP)产生梯度。训练过程中使用梯度更新LSTM中的权值。不断迭代该LSTM神经网络降低误差后产生实际使用的聊天机器人LSTM部分。

另外,结合老年人聊天重复用语较多的情况,例如儿女的名字、或者印象较深的事件,在老年人的对话中在一段事件内这些话语会反复出现。因此本聊天机器人引入了attention模型对于较多出现的聊天语句进行单独编码。attention模型实现具体某些的较多出现聊天语句的对应关系,具体的,该实现通过全连接层神经网络、softmax层神经网络、矩阵乘法、矩阵加法完成。

Attention模型是针对老年人日常聊天的常用话语为标的的深度神经网络。该神经网络结构上可以为全连接层神经网络后接一softmax网络层。具体使用上,预先对老年人日常聊天情况进行统计,得到老年人聊天过程中经常出现的聊天对应关系。使用该数据对attention模型进行训练。不同的语料集合训练出多个attention模型。例如使用谈论家长里短语料、谈论饮食起居语料、谈论时事新闻语料便可以训练出三个不同的attention模型

将上述系列操作定义为attention,可以多个attention相互串连、并联、跳跃式串连等排列组合方式为新的attention。具体为:将老年人说话用语中的不同类别话语训练出不同的attention模型。例如:使用谈论邻里关系的语料训练出一个全连接层后接softmax层的神经网络attention1,使用谈论早饭午饭晚饭的语料训练出一个神经网络attention2,使用谈论亲朋好友的语料训练出一个神经网络attention3。在具体使用上一个老人说的话语经过上述的神经网络编码器生成的固定长度向量后可以同时进入attentionl、attention2、attention3生成三个对应应答,根据每个应答的分数选择最后的attention模型对应应答。

对于老年人对话请求中较为生僻的内容,可能无法从attention模型中找到对应的聊天应答的编码后向量,即上述attention模型中求得的分数小于某一个阈值或者求得的高斯距离大于某一个阈值时,即判定该内容为生僻内容。对于这些内容引入语言模型存储先验知识与束搜索、A*算法等排序算法结合生成目标回复结果。预先的自然语言处理中的先验知识建立对应的语言模型。通过语言模型迭代的产生所有待选文字的分数,在每一次迭代中产生所有待选文字新的分数,由此迭代完成后会生成一个时间序列上的所有文字的搜索空间,在该空间中根据编码器产生的固定长度的向量得到最终唯一的语输出结果。具体的,可以由WFST或者n-gram算法实现语言模型,之后产生回复的自然语言,用文字等方式输出出来。在训练过程中该语言会和训练集中相对应的语言求出误差。产生的误差经由BP(反向传播算法)返回给神经网络的各个神经元作为梯度更新对应神经元的权值。该过程经过反复迭代,不断跟新神经网络的权值,是最后的神经网络产生的结果与训练集中的结果相近,则完成神经网络的训练,训练结束后该神经网络就是一个完整的助老聊天机器人。

对于该聊天机器人的工作过程,如图2所示。具体为:老年人输入的文字形式的自然语言。中间处理:中间处理过程为输入的老年人输入的文字形式的自然语言先经过LSTM神经网络编码器生成一个固定长度的向量之后,通过attention模型、语言模型生成答复信息。

对文字长度不确定的自然语言短语,此短语通常为文字形式表示的老年人聊天对话中的老年人说出的一句话。该短语经过前文所述的预先训练好的LSTM神经网络后,生成一个长度固定的向量。之后该向量进入attention模型中。若是同时进入若干个并行的attention模型之后,经过attention模型中的神经网络生成若干个对应输出结果与分数,选择分数最高的一组结果作为输出。

如果上述多个分数中的所有分数均低于某一个阈值或者。则LSTM神经网络产生的固定长度的向量(不使用attention模型产生的结果),进入语言模型中,通过上文中利用N-GRAM、WFST技术生成的语言模型中使用A*搜索、束搜索等搜索算法生成该短语对应的聊天应答短语。最后通过文字的形式生成出来,作为老年人的本次对话的应答。下一次老年人的对话将再次输入到LSTM神经网络模型中,在进行一次上述过程。由此迭代的使用本聊天机器人,一问一答的产生对话,老年人(用户)在问,聊天机器人在答,最终实现老年人助老聊天的功能。

本公开还提供了一种基于深度神经网络的自动聊天机器人,如图3所示,所述自动聊天机器人,包括:

预处理模块,用于获取用户输入信息,并通过一深度神经网络编码器对所述输入信息进行预处理,生成固定长度向量;

处理模块:用于接收所述固定长度向量,并利用attention模型输出分数;以及

判定及生成模块,用于根据所述分数判定经由attention模型或自然模型生成与所述输入信息对应的答复信息。

其中,若所述分数小于一分数阈值,则进入语言模型,经语言模型生成与所述输入信息对应的答复信息;反之,直接经由attention模型生成与所述输入信息对应的答复信息。

所述attention模型为包括一或多个神经网络层的深度神经网络,所述固定长度向量输入attention模型之后输出全部可能答复信息所对应的分数,选择最高分数所对应的答复信息作为最终答复信息。

以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1