用于语言处理的循环神经网络中隐状态的生成方法和装置与流程

文档序号:18526049发布日期:2019-08-24 10:14阅读:415来源:国知局
用于语言处理的循环神经网络中隐状态的生成方法和装置与流程

本申请涉及计算机技术领域,特别是涉及一种用于语言处理的循环神经网络中隐状态的生成方法、装置、计算机可读存储介质和计算机设备。



背景技术:

随着计算机技术的发展,出现了自然语言处理(naturallanguageprocessing,nlp)技术。自然语言处理(nlp)技术实现了人们长期以来所追求的“用自然语言与计算机进行通信”。但是,对于自然语言处理(nlp)技术而言,处理变长的词序列仍然是一个很大的挑战。

于是,出现了循环神经网络(recurrentneuralnetwork,rnn)。循环神经网络是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursiveneuralnetwork)。循环神经网络的出现解决了对于变长的词序列的处理。

然而,传统的循环神经网络,都是利用单一空间的组合计算来生成各个时刻的隐状态。例如仅利用当前时刻的词向量和上一时刻的隐状态在单一空间上的组合来生成当前时刻的隐状态,使得对于复杂语言学规律的捕获率低。



技术实现要素:

基于此,有必要针对上述问题,提供一种对于复杂语言学规律的捕获率高的用于语言处理的循环神经网络中隐状态的方法、装置、计算机可读存储介质和计算机设备。

一种用于语言处理的循环神经网络中隐状态的生成方法,包括:

生成当前时刻输入的目标词向量的至少两个维度的区域词向量;

将各所述区域词向量进行组合,得到至少两个维度的组合区域词向量;

基于前馈神经网络将各所述组合区域词向量进行聚集变换处理,得到所述目标词向量对应的聚集词向量;

基于所述聚集词向量生成所述目标词向量对应的目标隐状态。

一种用于语言处理的循环神经网络中隐状态的生成装置,包括:

区域词向量生成模块,用于生成当前时刻输入的目标词向量的至少两个维度的区域词向量;

区域词向量组合模块,用于将各所述区域词向量进行组合,得到至少两个维度的组合区域词向量;

聚集变换处理模块,用于基于前馈神经网络将各所述组合区域词向量进行聚集变换处理,得到所述目标词向量对应的聚集词向量;

目标隐状态生成模块,用于基于所述聚集词向量生成所述目标词向量对应的目标隐状态。

一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:

生成当前时刻输入的目标词向量的至少两个维度的区域词向量;

将各所述区域词向量进行组合,得到至少两个维度的组合区域词向量;

基于前馈神经网络将各所述组合区域词向量进行聚集变换处理,得到所述目标词向量对应的聚集词向量;

基于所述聚集词向量生成所述目标词向量对应的目标隐状态。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:

生成当前时刻输入的目标词向量的至少两个维度的区域词向量;

将各所述区域词向量进行组合,得到至少两个维度的组合区域词向量;

基于前馈神经网络将各所述组合区域词向量进行聚集变换处理,得到所述目标词向量对应的聚集词向量;

基于所述聚集词向量生成所述目标词向量对应的目标隐状态。

上述用于语言处理的循环神经网络中隐状态的生成方法、装置、计算机可读存储介质和计算机设备,生成当前时刻输入的目标词向量的至少两个维度的区域词向量,使得单一维度的目标词向量对应有多个维度的区域词向量,并将各区域词向量进行区域组合,得到至少两个维度的组合区域词向量。再基于前馈神经网络将各组合区域词向量进行聚集变换处理,得到目标词向量对应的聚集词向量。采用本申请提供的方案,使得每一时刻的目标词向量都有对应的聚集词向量,这样便可以在聚集词向量的基础上生成目标词向量对应的目标隐状态。由于聚集词向量是对目标词向量进行多维度的转换处理得到的,使得利用该目标隐状态在捕获复杂语言学规律时,对于复杂语言学规律的捕获率高。

附图说明

图1为一个实施例中计算机设备的结构框图;

图2为一个实施例中用于语言处理的循环神经网络中隐状态的生成方法的流程示意图;

图3为另一个实施例中用于语言处理的循环神经网络中隐状态的生成方法的流程示意图;

图4为一个实施例中向量节点的示例图;

图5为一个实施例中邻接矩阵的示例图;

图6为一个实施例中度矩阵的示例图;

图7为一个实施例中区域词向量矩阵的示例图;

图8为再一个实施例中用于语言处理的循环神经网络中隐状态的生成方法的流程示意图;

图9为一个实施例中对目标词向量的区域词向量进行组合计算的示例图;

图10为再一个实施例中用于语言处理的循环神经网络中隐状态的生成方法的流程示意图;

图11为一个实施例中生成区域词向量、对组合区域词向量进行组合计算和基于前馈神经网络将各所述组合区域词向量进行聚集变换处理的示例图;

图12为一个实施例中用于语言处理的循环神经网络中隐状态的生成装置的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的用于语言处理的循环神经网络中隐状态的生成方法,可以应用于如图1所示的计算机设备。该计算机设备包括存储器和处理器,存储器中存储有计算机程序。计算机程序被处理器执行时,可以实现本申请提供的用于语言处理的循环神经网络中隐状态的生成方法。该计算机设备可以是终端,也可以是服务器。可以理解的是,当计算机设备为终端时,该计算机设备还可以包括显示屏和输入装置等。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

如图2所示,在一个实施例中,提供了一种用于语言处理的循环神经网络中隐状态的生成方法。本实施例主要以该方法应用于上述图1中的计算机设备来举例说明。参照图2,该用于语言处理的循环神经网络中隐状态的生成方法具体包括如下步骤:

s202,生成当前时刻输入的目标词向量的至少两个维度的区域词向量。

其中,词向量指对应的词在预定义的向量空间中的实数向量。例如,“狗”在预定义的向量空间中的实数向量可以为(0.20.20.4),则(0.20.20.4)便为“狗”的词向量。目标词向量指当前时刻输入的词向量。区域词向量指一个维度的词向量所对应的各个不同维度的词向量。

具体地,当计算机设备在当前时刻检测到有目标词向量输入时,计算机设备读取当前时刻输入的目标词向量,并触发该目标词向量的区域词向量生成指令。计算机设备根据该区域词向量生成指令将低维度的目标词向量转换为至少两个维度的区域词向量。这样计算机设备在各个时刻输入的目标词向量均对应有至少两个维度的区域词向量。

在一个实施例中,计算机设备在t个时刻输入的目标词向量整体为一个向量序列x={x1,x2,……,xt},其中,x1为向量序列x中的第1个目标词向量,x1表示计算机设备在第1个时刻输入的词向量;x2为向量序列x中的第2个目标词向量,x2表示计算机设备在第2个时刻输入的词向量;……;xt为向量序列x中的第t个目标词向量,xt表示计算机设备在第t个时刻输入的词向量。则计算机设备在向量序列x中的每一个时刻均会生成该时刻输入的目标词向量的至少两个维度的区域词向量。

在一个实施例中,向量序列x={x1,x2,……,xt}中的每一个词向量都是预先对文本进行转换得到的。例如计算机设备为终端时,计算机设备中安装有用于通讯的社交应用程序,用于人机对话的子应用程序运行于该用于通讯的社交应用程序中。当计算机设备检测到用于人机对话的子应用程序接收到变长的语音信息时,将每一时刻接收到的语音信息转换为文本信息,并将该文本信息映射为目标词向量,这样变长的语音信息最终会形成一个向量序列,向量序列中包括各个时刻接收到的语音信息的文本信息对应的目标词向量。

当然,当计算机设备为服务器时,该服务器可以接收其他终端已经转换得到的各个目标词向量,生成每一个时刻输入的目标词向量的至少两个维度的区域词向量。当计算机设备为服务器时,该服务器还可以直接接收其他终端通过用于人机对话的子应用程序接收到的变长的语音信息,将每一时刻接收到的语音信息转换为文本信息,并将该文本信息映射为目标词向量,这样变长的语音信息最终会形成一个向量序列,向量序列中包括各个时刻接收到的语音信息的文本信息对应的目标词向量,并生成每一个时刻输入的目标词向量的至少两个维度的区域词向量。

在一个实施例中,区域词向量生成指令中可以携带有第一预设维度,计算机设备根据区域词向量生成指令将低维度的目标词向量转换为至少两个维度的区域词向量时,可以按照第一预设维度将低维度的目标词向量转换为第一预设维度的区域词向量。

例如,当前时刻为t,第一预设维度为n,计算机设备在当前时刻t检测到有目标词向量xt输入。则计算机设备需要将单一维度的目标词向量xt转换为n个维度的区域词向量。计算机设备可以生成目标词向量xt的n个区域词向量z={z1,z2,……,zn},其中的z1至zn均为目标词向量xt的区域词向量。

s204,将各区域词向量进行组合,得到至少两个维度的组合区域词向量。

其中,组合区域词向量指将各区域词向量进行组合计算后所得到的词向量。例如目标词向量有n个维度的区域词向量,则计算机设备对n个维度的区域词向量进行组合计算后可以得到j个维度的组合区域词向量,j大于或等于2。

具体地,计算机设备预先设置有区域向量组合方式。当计算机设备生成目标词向量的区域词向量后,便获取预设的区域向量组合方式,区域向量组合方式中包括第二预设维度。计算机设备按照预设的区域向量组合方式对目标词向量的区域词向量进行组合计算,得到第二预设维度的组合区域词向量。区域向量组合方式指将各区域词向量进行组合计算的方式。

s206,基于前馈神经网络将各组合区域词向量进行聚集变换处理,得到目标词向量对应的聚集词向量。

其中,前馈神经网络是一种各神经元分层排列的神经网络。聚集变换处理指将各组合区域词向量进行聚集处理和变换处理的过程。聚集词向量指对各组合区域词向量进行聚集处理和变换处理后所得到的词向量。

具体地,计算机设备可以基于前馈神经网络分别对各个组合区域词向量进行一次变换,得到与组合区域词向量的维度相同的中间区域词向量。例如目标词向量有j个维度的组合区域词向量o={o1,o2,……,oj},则计算机设备基于前馈神经网络先对各组合区域词向量进行一次变换时,也可以得到j个维度的中间区域向量f={f1,f2,……,fj}。计算机设备将得到的各个中间区域词向量进行聚集处理,得到一个中间聚集词向量。计算机设备可以对得到的中间聚集词向量进行一次线性变换,便可以得到目标词向量对应的聚集词向量。

s208,基于聚集词向量生成目标词向量对应的目标隐状态。

其中,隐状态指循环神经网络的隐藏层输出的隐藏状态,隐藏状态指循环神经网络的系统状态(systemstatus)。目标隐状态便指循环神经网络在当前时刻的系统状态(systemstatus)。

具体地,计算机设备可以获取上一时刻的历史词向量的历史隐状态,计算机设备可以在历史隐状态的基础上加入目标词向量的聚集词向量对目标词向量的目标隐状态进行计算,生成目标词向量的目标隐状态。可以理解的是,上一时刻的历史词向量的历史隐状态也是基于历史词向量的聚集词向量生成的,而聚集词向量是对历史词向量进行多维度的转换处理得到的。

上述用于语言处理的循环神经网络中隐状态的生成方法,生成当前时刻输入的目标词向量的至少两个维度的区域词向量,使得单一维度的目标词向量对应有多个维度的区域词向量,并将各区域词向量进行区域组合,得到至少两个维度的组合区域词向量。再基于前馈神经网络将各组合区域词向量进行聚集变换处理,得到目标词向量对应的聚集词向量。

采用本申请提供的方案,使得每一时刻的目标词向量都有对应的聚集词向量,这样便可以在聚集词向量的基础上生成目标词向量对应的目标隐状态。由于聚集词向量是对目标词向量进行多维度的转换处理得到的,使得利用该目标隐状态在捕获复杂语言学规律时,对于复杂语言学规律的捕获率高。例如在计算机设备处理手写识别、序列标注、情感分析、语言模型训练和机器翻译等任务中,即使遇到长距离依赖的语言结构,也可以高效地完成任务。

在一个实施例中,生成当前时刻输入的目标词向量的至少两个维度的区域词向量包括:获取至少两个第一权重矩阵,每个第一权重矩阵用于生成对应的区域词向量;确定当前时刻输入的目标词向量,并获取上一时刻的历史词向量对应的历史隐状态;基于第一权重矩阵和历史隐状态生成目标词向量的至少两个维度的区域词向量。

其中,第一权重矩阵指形式为矩阵的随着系统进行训练的权重参数,用于生成对应的区域词向量。历史词向量指计算机设备在当前时刻的上一时刻输入的词向量。历史隐状态指计算机设备在当前时刻的上一时刻输入的词向量对应的隐状态。

具体地,当计算机设备在当前时刻检测到有目标词向量输入时,计算机设备读取当前时刻输入的目标词向量,并触发该目标词向量的区域词向量生成指令。计算机设备根据该区域词向量生成指令获取用于生成区域词向量的第一权重矩阵,获取的第一权重矩阵的数量与计算机设备需要生成的区域词向量的维度的数量相同。

例如计算机设备需要生成的区域词向量的第一预设维度为n,则计算机设备获取的第一权重矩阵的数量为n。计算机设备在生成每一个维度的区域词向量时都有对应的第一权重矩阵:计算机设备在生成第一个维度的区域词向量z1时,有对应的第一权重矩阵w1;计算机设备在生成第二个维度的区域词向量z2时,有对应的第一权重矩阵w2;……;计算机设备在生成第n个维度的区域词向量zn时,有对应的第一权重矩阵wn。

计算机设备确定当前时刻输入的目标词向量,并获取计算机设备在当前时刻的上一时刻输入的历史词向量对应的历史隐状态。可以理解的是,上一时刻不必然是与当前时刻紧密相邻的时刻,上一时刻是计算机设备在当次输入目标词向量的前一次输入词向量时所对应的时刻。

例如计算机设备在t个时刻输入的目标词向量整体为一个向量序列x={x1,x2,……,xt},x1表示计算机设备在第1个时刻输入的词向量,x2表示计算机设备在第2个时刻输入的词向量。第1个时刻与第2个时刻之间可能会有很长的时间间隔,也可能只有很短的时间间隔,因此第1个时刻与第2个时刻间并不必然是在时间表上对应的紧密相邻的时刻。

计算机设备可以基于获取的历史隐状态和第一预设数量的第一权重矩阵生成第一预设维度的区域词向量。第一预设数量与第一预设维度的数量相同。第一预设维度的区域词向量整体可以为一个区域词向量矩阵,例如计算机设备需要将目标词向量xt转换为n个维度的区域词向量,则得到的n个维度的区域词向量可以表示为区域词向量矩阵区域词向量矩阵中的z1至zn均为目标词向量xt的区域词向量。

上述实施例中,计算机设备直接利用用于生成对应的区域词向量的第一权重矩阵,高效地将单一维度的目标词向量转换为至少两个维度的区域词向量。并且是在上一时刻的历史隐状态的基础上生成至少两个维度的区域词向量,使得得到的区域词向量更加准确。

在一个实施例中,基于第一权重矩阵和历史隐状态生成目标词向量的至少两个维度的区域词向量包括:将目标词向量与历史隐状态进行拼接,得到拼接词向量;根据拼接词向量和第一权重矩阵生成区域词向量矩阵;区域词向量矩阵包括至少两个维度的区域词向量。

具体地,计算机设备生成的各个时刻的隐状态的形式均为向量,因此,计算机设备在确定目标词向量并获取到上一时刻的历史词向量对应的历史隐状态后,可以将当前时刻的目标词向量与上一时刻的历史隐状态进行拼接,得到拼接词向量。例如目标词向量中包含8个向量元素,历史隐状态中包含5个向量元素,计算机设备直接将目标词向量与历史隐状态进行拼接后,得到的拼接词向量包含13个向量元素。计算机设备将得到的拼接词向量分别与各个第一权重矩阵相乘,便能得到区域向量矩阵。区域向量矩阵中包含多个维度的区域词向量。

在一个实施例中,将目标词向量与历史隐状态进行拼接可以表示为[xt,ht-1],其中,xt为计算机设备当前时刻输入的目标词向量,ht-1为当前时刻的上一时刻的历史词向量对应的历史隐状态。则计算机设备可以按照如下公式生成目标词向量的至少两个维度的区域词向量:zi=wi[xt,ht-1]。

其中,wi表示第一权重矩阵。例如计算机设备需要生成n个区域词向量,则i为1至n,zi为z1至zn,wi为w1至wn。可以理解的是,在计算z1时,zi=wi[xt,ht-1]为z1=w1[xt,ht-1];在计算z2时,zi=wi[xt,ht-1]为z2=w2[xt,ht-1];……;在计算zn时,zi=wi[xt,ht-1]为zn=wn[xt,ht-1]。这样计算机设备便能得到区域词向量矩阵1至n分别表示对应的区域词向量z1至zn所在的维度。

可以理解的是,区域词向量矩阵中的每一个区域词向量分别处于不同的维度,每一个区域词向量包含多个向量元素,每个向量元素均为所属区域词向量所在维度的矩阵元素。例如z1包含3个向量元素0.3、0.8和0.7,则0.3为z1所在第一维度的矩阵元素z11,0.8为z1所在第一维度的矩阵元素z12,0.7为z1所在第一维度的矩阵元素z13。以每个区域向量均包含3个向量元素为例,则区域词向量矩阵具体可以表示为

上述实施例中,计算机设备直接将目标词向量与上一时刻的隐状态进行拼接,得到拼接词向量,将拼接词向量与至少两个第一权重矩阵分别直接相乘,使得更加高效快捷地得到了至少两个维度的区域词向量。

在一个实施例中,如图3所示,将各区域词向量进行组合,得到至少两个维度的组合区域词向量包括:

s302,确定各区域词向量间的边权重。

其中,边权重指将各区域词向量作为向量节点时,用于连接各向量节点的边的权重。

具体地,计算机设备预设的区域向量组合方式可以为基于图卷积(graphconvolutionalnetworks)的区域向量组合方式,计算机设备按照基于图卷积的区域向量组合方式将各个区域词向量确定为向量节点,各个向量节点之间有连接的边,构建一个图g=(v,e),其中,v表示向量节点集合,e表示边集合。

如图4所示,例如计算机设备生成了目标词向量的3个维度的区域词向量:z1、z2和z3,则计算机设备将z1、z2和z3分别确定为向量节点401。各个向量节点之间连接的边402代表连接的两个向量节点间的关系。计算机设备可以计算各个向量节点之间的相似度,将各个向量节点之间的相似度确定为对应的各个向量节点之间的边的边权重。

在一个实施例中,计算机设备可以按照以下公式计算确定各区域词向量间的边权重:wij=(zitzj)/(‖zi‖*‖zj‖),其中,zi和zj均为目标词向量的任意一个区域词向量。zit指区域词向量zi的转置向量。“‖zi‖”指区域词向量zi的l2范数,“‖zj‖”指区域词向量zj的l2范数。这样,计算机设备按照上述公式可以得到各个区域词向量间的相似度,将各个向量节点之间的相似度确定为对应的各个向量节点之间的边的边权重。

s304,按照确定的各边权重生成各区域词向量共同对应的邻接矩阵。

其中,邻接矩阵(adjacencymatrix)是用于表示向量节点之间相邻关系的矩阵。

具体地,计算机设备可以将确定的各个边权重作为矩阵元素,形成一个邻接矩阵。例如计算机设备生成了目标词向量的n个维度的区域词向量,则计算机设备将n个区域词向量分别确定为向量节点,计算n个向量节点中各个向量节点之间的边权重。这样,计算机设备将确定的各个边权重作为矩阵元素所形成的邻接矩阵a可以如图5所示。

s306,分别将邻接矩阵中各维度的各边权重进行加和,得到度矩阵。

其中,度矩阵指由邻接矩阵各行或各列的向量节点的度形成的矩阵,各行或各列的向量节点的度为邻接矩阵中各行或者各列包含的矩阵元素的和。

具体地,如图5所示,邻接矩阵a中的每一行都包括某一个向量节点与其他向量节点之间的边的边权重。例如图5中的w12可以表示各个向量节点中的第1个节点与第2个节点之间的边的边权重。计算机设备得到邻接矩阵后,便可以将邻接矩阵中各行所包括的边权重进行加和,得到各行对应的向量节点的度。例如邻接矩阵中的第一行包括的是向量节点z1与其他向量节点之间的边权重:w11,w12,w13,……,w1n,则计算机设备将w11至w1n进行加和,便能得到向量节点z1的度d11。

进一步地,计算机设备计算可以按照以下公式计算各行对应的向量节点的度:dii=∑jwij,其中,wij指邻接矩阵中第i行第j列的矩阵参数(该矩阵参数为向量节点中的第i个向量节点与第j个向量节点间的边权重)。例如计算图4中邻接矩阵a的第一行表示的向量节点的度时,d11=∑jwij中的j为1至n,则d11=w11+w12+w13+…+w1n。

计算机设备得到的邻接矩阵中各行的向量节点的度可以表示为:d11,d22,d33,……,dnn,计算机设备基于“d11,d22,d33,……,dnn”便可以形成度矩阵d,形成的度矩阵d中d11,d22,d33,……,dnn之外的其他矩阵元素均为0,如图6所示。

s308,基于邻接矩阵和度矩阵生成至少两个维度的组合区域词向量。

具体地,计算机设备可以基于得到的邻接矩阵和度矩阵生成第二预设维度的组合区域词向量,本实施例中的第二预设维度的数量与目标词向量的区域词向量的数量相同。

上述实施例中,计算机设备将目标词向量的各个区域词向量作为图卷积网络中的图结构的向量节点,可以计算出各个向量节点之间的边权重,便得到了各区域词向量间的边权重,利用得到的边权重生成邻接矩阵,并基于邻接矩阵计算出度矩阵。这样计算机设备可以直接利用邻接矩阵和度矩阵高效地生成组合区域词向量。

在一个实施例中,基于邻接矩阵和度矩阵生成至少两个维度的组合区域词向量包括:确定各区域词向量共同对应的区域词向量矩阵;获取用于生成组合区域词向量矩阵的第二权重矩阵;根据邻接矩阵、度矩阵、区域词向量矩阵和第二权重矩阵生成组合区域词向量矩阵;组合区域词向量矩阵中包括至少两个维度的区域词向量。

其中,区域词向量矩阵指由各区域词向量包含的向量元素作为矩阵元素的矩阵。第二权重矩阵指图卷积网络中的形式为矩阵的随着系统进行训练的权重参数,用于生成组合区域词向量矩阵。

具体地,计算机设备将各区域词向量包含的向量元素作为矩阵元素,形成一个区域词向量矩阵。例如计算机设备生成了目标词向量xt的n个区域词向量z={z1,z2,……,zn},每个区域向量中包含m个向量元素,计算机设备将n个区域词向量z中各个区域词向量所包含的向量元素作为矩阵元素,形成区域词向量矩阵z,区域词向量矩阵z如图7中的700所示。

计算机设备获取用于生成组合区域词向量矩阵的第二权重矩阵wg,按照以下公式生成组合区域词向量矩阵o:o=σ(d-1/2ad-1/2zwg)。其中,d指度矩阵,a指邻接矩阵,z指区域词向量矩阵,σ为激活函数。进一步地,激活函数σ具体可以是sigmoid函数“sigmoid(x)”。sigmoid函数是一个在生物学中常见的s型函数,也称为s型生长曲线,本实施例中,sigmoid函数作为循环神经网络中的阈值函数。

计算机设备利用激活函数σ可以得到与目标词向量的区域词向量维度相同的组合区域词向量矩阵o,组合区域词向量矩阵o的每一行作为一个维度,每一个维度具有一个组合区域词向量。例如n个区域词向量对应的组合区域词向量矩阵包含j个组合区域词向量,j与n的大小相同。则计算机设备可以得到j个组合区域词向量o={o1,o2,……,oj}。

上述实施例中,将各区域词向量整体作为一个区域词向量矩阵,并利用用于生成组合区域词向量矩阵的第二权重矩阵,基于邻接矩阵和度矩阵生成区域词向量矩阵对应的组合区域词向量矩阵,并且生成的组合区域词向量矩阵包括至少两个维度的区域词向量,进一步提高了生成组合区域词向量的高效性。

在一个实施例中,如图8所示,将各区域词向量进行组合,得到至少两个维度的组合区域词向量包括:

s802,根据用于生成组合区域词向量的第三权重矩阵确定各区域词向量对应的至少两个预测向量。

其中,第三权重矩阵指胶囊网络(capsulenetworks)中的形式为矩阵的随着系统进行训练的权重参数,用于生成组合区域词向量矩阵。预测向量指生成组合区域词向量矩阵的过程中的形式为向量的中间变量。

具体地,计算机设备预设的区域向量组合方式可以为基于胶囊网络的区域向量组合方式,计算机设备按照基于胶囊网络的区域向量组合方式将各个区域词向量作为胶囊网络中的胶囊,例如计算机设备生成了目标词向量的n个区域词向量z={z1,z2,……,zn},便有n个胶囊:z1,z2,……,zn。

计算机设备获取用于生成组合区域词向量的第三权重矩阵wc中的各个矩阵元素wcij,其中,i为1至n,n为胶囊的总数量,j为1至第二预设维度的数量,本实施例中第二预设维度的数量大于或等于2且小于或等于n,ij表示第三权重矩阵wc的第i行第j列。

如图9所示,图9中的901-904为计算机设备按照基于胶囊网络的区域向量组合方式对目标词向量的区域词向量进行组合计算的初始化阶段,905-910为计算机设备按照基于胶囊网络的区域向量组合方式对目标词向量的区域词向量进行组合计算的迭代计算阶段。在初始化阶段,如图9中的903所示,计算机设备可以基于胶囊网络中的各个胶囊,生成获取的第三权重矩阵中的各个矩阵元素wcij对应的预测向量zj|i。

s804,获取各区域词向量对应的至少两个先验概率对数。

其中,先验概率对数指生成组合区域词向量矩阵的过程中的形式为向量的临时变量。

具体地,计算机设备从先验概率对数矩阵b中获取各个先验概率对数bij,先验概率对数矩阵b中包括的先验概率对数bij的数量为胶囊的总数量*第二预设维度的数量。如图9中的902所示,由于此时处于初始化阶段,先验概率对数矩阵b中的所有先验概率对数bij均为0。

s806,根据先验概率对数确定各区域词向量对应的耦合系数。

具体地,计算机设备进入迭代计算阶段。在迭代计算阶段,如图9中的905所示,计算机设备对获取的各个先验概率对数bij进行归一化处理:得到各个区域词向量分别与对应的各个待生成的组合区域词向量间的耦合系数cij。

s808,基于耦合系数和预测向量生成至少两个维度的组合区域词向量。

具体地,计算机设备得到耦合系数cij后,如图9中的906所示,按照以下公式计算加权和sj:sj=∑icijzj|i。如图9中的907所示,计算机设备通过非线性激活函数squash(sj)生成第二预设维度的组合区域词向量oj。其中,

s810,根据组合区域词向量重新确定区域词向量对应的先验概率对数。

具体地,如图9中的908所示,计算机设备得到组合区域词向量oj后,按照以下公式重新确定各区域词向量分别与各组合区域词向量之间的先验概率对数:bij=bij+zj|i·oj。

s812,继续执行根据先验概率对数确定各区域词向量对应的耦合系数,直到符合预设迭代条件时停止迭代。

具体地,重新确定先验概率对数bij后,返回图9中905的步骤,直到符合预设迭代条件时停止迭代,输出最后一次生成的各个组合区域词向量。预设迭代条件例如可以是预设迭代次数,例如预设迭代次数为3次,则计算机设备检测到当前迭代次数已达到预设迭代次数时,停止迭代,输出第3次生成的各个组合区域词向量。

上述实施例中,计算机设备将目标词向量的各个区域词向量作为胶囊网络中的胶囊,利用胶囊网络中用于生成组合区域词向量的第三权重矩阵生成各区域词向量对应的至少两个预测向量,并获取各区域词向量对应的初始化的至少两个先验概率对数。在基于先验概率对数生成至少两个维度的组合区域词向量的过程中,利用胶囊网络中对于先验概率对数的迭代算法更加高效准确地生成最终的组合区域词向量。

在一个实施例中,根据各组合区域词向量重新确定各区域词向量对应的先验概率对数包括:确定各组合区域词向量与对应的各预测向量间的标量积;将各标量积与对应的先验概率对数进行加和,得到重新确定的各区域词向量对应的先验概率对数。

具体地,如图9中的908所示“zj|i·oj”指的就是预测向量zj|i与组合区域词向量oj之间的标量积,再将得到的标量积分别与当前的各个先验概率对数进行加和,重新得到多个先验概率对数。例如预测向量z1|1=(a1,a2,…,an),当前得到的组合区域词向量o1=(c1,c2,…,cn),则z1|1·o1=a1c1+a2c2+……+ancn。将当前的b11与z1|1·o1进行加和,得到新的b11=b11+z1|1·o1。

上述实施例中,计算机设备将各组合区域词向量与对应的各预测向量间的标量积与当前的先验概率对数进行加和,得到多个重新确定的先验概率对数,经过多次迭代后先验概率对数的准确率更高,这样便可以更加高效准确地生成最终的组合区域词向量。

在一个实施例中,基于前馈神经网络将各组合区域词向量进行聚集变换处理,得到目标词向量对应的聚集词向量包括:基于前馈神经网络对各组合区域词向量进行变换,得到变换后的组合区域词向量;将各变换后的组合区域词向量进行拼接,得到拼接后的词向量;对拼接后的词向量进行线性变换,得到目标词向量对应的聚集词向量。

具体地,计算机设备按照基于前馈神经网络的预设公式对各组合区域词向量o={o1,o2,……,oj}进行更深层的变换,得到变换后的组合区域词向量f={f1,f2,……,fj}。计算机设备将f中的所有变换后的组合区域词向量进行拼接,得到一个拼接后的词向量(f1f2……fj)。再对拼接后的词向量(f1f2……fj)进行一次线性变换,得到目标词向量对应的聚集词向量。

上述实施例中,计算机设备基于前馈神经网络对各组合区域词向量进行了更深层次的变换,得到聚集词向量。使得利用基于聚集词向量生成的目标隐状态捕获复杂语言学规律时,对于复杂语言学规律的捕获率高。

在一个实施例中,基于前馈神经网络对各组合区域词向量进行变换,得到变换后的组合区域词向量包括:根据第四权重矩阵和第一偏置向量对各组合区域词向量进行线性变换,得到各组合区域词向量对应的临时词向量;分别选取各临时词向量与向量阈值中的最大向量值;根据第五权重矩阵和第二偏置向量对各最大向量值分别进行线性变换,得到变换后的组合区域词向量。

其中,第四权重矩阵指前馈神经网络中的形式为矩阵的随着系统进行训练的权重参数,用于在前馈神经网络中对各组合区域向量进行第一次的线性变换。第五权重矩阵指前馈神经网络中的形式为矩阵的随着系统进行训练的权重参数,用于在前馈神经网络中对各组合区域向量进行第二次的线性变换。第一偏置向量指前馈神经网络中的形式为向量的随着系统进行训练的偏置参数,用于在前馈神经网络中对各组合区域向量进行第一次的线性变换。第二偏置向量指前馈神经网络中的形式为向量的随着系统进行训练的偏置参数,用于在前馈神经网络中对各组合区域向量进行第二次的线性变换。

具体地,计算机设备获取前馈神经网络中的第四权重矩阵w1和第一偏置向量b1,利用第四权重矩阵w1和第一偏置向量b1对各个组合区域词向量oj进行第一次线性变换:ojw1+b1,得到各组合区域词向量对应的临时词向量。将各临时词变量分别与向量阈值做比较,选取各临时词变量与向量阈值间的最大向量值。

例如向量阈值为0,则计算机设备将各临时词变量分别与向量阈值0做比较,通过relu函数“max(0,x)”选取最大向量值max(0,ojw1+b1),将大于向量阈值0的临时词变量作为该临时词变量与向量阈值0中的最大向量值,将大于临时词变量的向量阈值0作为该临时词变量与向量阈值0中的最大向量值。

计算机设备获取前馈神经网络中的第五权重矩阵w2和第二偏置向量b2,利用第四权重矩阵w1和第一偏置向量b1对各个组合区域词向量oj进行第二次线性变换:max(0,ojw1+b1)w2+b2,得到变换后的组合区域词向量f={f1,f2,……,fj}。

上述实施例中,计算机设备利用前馈神经网络中的第四权重矩阵和第一偏置向量对各组合区域词向量进行了第一次线性变换后,得到临时词向量,并选取临时词向量与向量阈值中的最大向量值,利用前馈神经网络中的第五权重矩阵和第二偏置向量对最大向量值进行第二次线性变换,得到的变换后的组合区域词向量。计算机设备可以利用该组合区域词向量生成聚集词向量,使得利用基于聚集词向量生成的目标隐状态捕获复杂语言学规律时,对于复杂语言学规律的捕获率高。

在一个实施例中,聚集词向量包括第一聚集词向量和第二聚集词向量,第一聚集词向量与第二聚集词向量不同;基于聚集词向量生成目标词向量对应的目标隐状态包括:基于第一聚集词向量和对应的第一激活函数确定目标词向量对应的候选隐状态;基于第二聚集词向量和对应的第二激活函数确定目标词向量对应的门控参数;根据候选隐状态、门控参数和上一时刻的历史词向量的历史隐状态生成目标词向量对应的目标隐状态。

具体地,计算机设备在生成目标词向量的区域词向量时,要分别基于第一聚集词向量对应的第一权重矩阵和第二聚集词向量对应的第一权重矩阵生成聚集词向量。当计算机设备基于第一聚集词向量对应的第一权重矩阵生成区域词向量时,计算机设备最后得到的目标词向量对应的聚集词向量为第一聚集词向量mh。当计算机设备基于第二聚集词向量对应的第一权重矩阵生成区域词向量时,计算机设备最后得到的目标词向量对应的聚集词向量为第二聚集词向量mg。

计算机设备通过第一激活函数tanh确定目标词向量的候选隐状态h~t:h~t=tanh(mh)。计算机设备通过第二激活函数σ确定目标词向量的门控参数gt:gt=σ(mg)。进一步地,

计算机设备得到目标词向量对应的候选隐状态h~t和门控参数gt后,按照以下公式计算目标词向量的目标隐状态ht:ht=(1-gt)⊙ht-1+gt⊙h~t。其中,⊙是元素积运算符,“(1-gt)⊙ht-1”指对(1-gt)和ht-1进行元素积的运算,“gt⊙h~t”指对gt和h~t进行元素积的运算。

上述实施例中,由于第一聚集词向量和第二聚集词向量都是对目标词向量进行多维度的转换处理得到的,这样基于第一聚集词向量得到的候选隐状态和基于第二聚集词向量得到的门控参数更加的精确,这样利用基于更加精确的候选隐状态和门控参数得到的目标隐状态捕获复杂语言学规律时,对于复杂语言学规律的捕获率高。

在一个实施例中,如图10所示,用于语言处理的循环神经网络中隐状态的生成方法可以包括以下步骤:

s1002,计算机设备按照区域词向量生成公式生成第一预设维度的区域词向量。

具体地,如图11中的1101所示,区域词向量生成公式为:zi=wi[xt,ht-1]。例如第一预设维度为n,则i为1至n,计算机设备得到的n个维度的区域词向量可以表示为z={z1,z2,……,zn}。

s1004,计算机设备按照预设的区域向量组合方式对第一预设维度的区域词向量进行组合计算,得到第二预设维度的组合区域词向量。

具体地,如图11中的1102所示,计算机设备对得到的n个维度的区域词向量z={z1,z2,……,zn}进行组合计算,例如第二预设维度为j,则计算机设备可以得到j个组合区域词向量o={o1,o2,……,oj}。j可以等于n,也可以不等于n。例如当预设的区域向量组合方式为基于图卷积的区域向量组合方式时,第二预设维度j等于第一预设维度n。当预设的区域向量组合方式为基于胶囊网络的区域向量组合方式时,第二预设维度j大于或等于2,且小于或等于第一预设维度n。

s1006,基于前馈神经网络对各组合区域词向量进行深层变换,得到第二预设维度的中间区域词向量。

具体地,如图11中的1103所示,ffn指基于前馈神经网络对各组合区域词向量进行深层变换的过程。进一步地,计算机设备对各个组合区域词向量进行ffn处理时,具体可以按照以下公式生成各个中间区域词向量fj:fj=max(0,ojw1+b1)w2+b2。例如第二预设维度为j,则计算机设备可以生成j个中间区域词向量f={f1,f2,……,fj}。

s1008,计算机设备将第二预设维度的中间区域词向量进行拼接,得到拼接词向量,并对拼接词向量进行一次线性变换,得到聚集词向量。

具体地,如图11中的1103所示,“concat&linear”便指计算机设备将j个中间区域词向量f={f1,f2,……,fj}进行拼接(concat)后,再进行一次线性变换(linear)。

s1010,计算机设备基于聚集词向量生成目标词向量对应的目标隐状态。

具体地,聚集词向量分为第一聚集词向量mh和第二聚集词向量mg。计算机设备可以基于第一聚集词向量mh和第二聚集词向量mg计算候选隐状态h~t和门控参数gt:候选隐状态h~t=tanh(mh),门控参数gt=σ(mg)。这样,计算机设备便可以基于候选隐状态h~t和门控参数gt计算目标词向量的目标隐状态ht:目标隐状态ht=(1-gt)⊙ht-1+gt⊙h~t。

在一个实施例中,例如在人机对话的应用场景中,计算机设备接收到变长的语音信息,计算机设备将每一时刻接收到的语音信息转换为文本信息,并将该文本信息映射为目标词向量,通过上述任一实施例中用于语言处理的循环神经网络中隐状态的生成方法中的步骤,生成各个目标词向量的目标隐状态。

计算机设备可以计算生成的多个目标隐状态的平均隐状态,将该平均隐状态作为ht-1,xt为0向量。基于ht-1和xt计算第一聚集词向量mh和第二聚集词向量mg。计算机设备基于第一聚集词向量mh和第二聚集词向量mg计算候选隐状态h~t和门控参数gt:候选隐状态h~t=tanh(mh),门控参数gt=σ(mg),并按照公式ht=(1-gt)⊙ht-1+gt⊙h~t,得到中间隐状态ht。例如中间隐状态ht为一个包含100个向量元素的向量,则可以用中间隐状态ht与包含100*y的权重矩阵wv相乘,得到包含y个向量元素的中间向量。通过softmax(中间向量),可以得到y个概率值,每一个概率值代表对应单词表中的一个词的概率。例如y为10000,则计算机设备可以得到10000个概率值。

计算机设备将y个概率值中的最大概率值对应的词作为当前人机对话计算机设备需要做出答复的第一个词。计算机设备将计算机设备需要做出答复的第一个词的词向量作为xt,将中间隐状态ht作为ht-1,继续执行基于ht-1和xt计算第一聚集词向量mh和第二聚集词向量mg的步骤,按照同样的计算步骤,计算机设备可以得到需要做出答复的第二个词、第三个词、第四个词……。直到得到的最大概率值符合结束条件,则结束迭代。进一步地,结束条件可以为最大概率值对应的词为指定的结束符号。

图2、3、8和10为一个实施例中用于语言处理的循环神经网络中隐状态的生成方法的流程示意图。应该理解的是,虽然图2、3、8和10的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、3、8和10中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图12所示,提供了一种用于语言处理的循环神经网络中隐状态的生成装置1200,该装置包括区域词向量生成模块1201、区域词向量组合模块1202、聚集变换处理模块1203和目标隐状态生成模块1204,其中:

区域词向量生成模块1201,用于生成当前时刻输入的目标词向量的至少两个维度的区域词向量。

区域词向量组合模块1202,用于将各区域词向量进行组合,得到至少两个维度的组合区域词向量。

聚集变换处理模块1203,用于基于前馈神经网络将各组合区域词向量进行聚集变换处理,得到目标词向量对应的聚集词向量。

目标隐状态生成模块1204,用于基于聚集词向量生成目标词向量对应的目标隐状态。

在一个实施例中,区域词向量生成模块还用于:获取至少两个第一权重矩阵,每个第一权重矩阵用于生成对应的区域词向量;确定当前时刻输入的目标词向量,并获取上一时刻的历史词向量对应的历史隐状态;基于第一权重矩阵和历史隐状态生成目标词向量的至少两个维度的区域词向量。

在一个实施例中,区域词向量生成模块还用于:将目标词向量与历史隐状态进行拼接,得到拼接词向量;根据拼接词向量和第一权重矩阵生成区域词向量矩阵;区域词向量矩阵包括至少两个维度的区域词向量。

在一个实施例中,区域词向量组合模块还用于:确定各区域词向量间的边权重;按照确定的各边权重生成各区域词向量共同对应的邻接矩阵;分别将邻接矩阵中各维度的各边权重进行加和,得到度矩阵;基于邻接矩阵和度矩阵生成至少两个维度的组合区域词向量。

在一个实施例中,区域词向量组合模块还用于:确定各区域词向量共同对应的区域词向量矩阵;获取用于生成组合区域词向量矩阵的第二权重矩阵;根据邻接矩阵、度矩阵、区域词向量矩阵和第二权重矩阵生成组合区域词向量矩阵;组合区域词向量矩阵中包括至少两个维度的区域词向量。

在一个实施例中,区域词向量组合模块还用于:根据用于生成组合区域词向量的第三权重矩阵确定各区域词向量对应的至少两个预测向量;获取各区域词向量对应的至少两个先验概率对数;根据先验概率对数确定各区域词向量对应的耦合系数;基于耦合系数和预测向量生成至少两个维度的组合区域词向量;根据组合区域词向量重新确定区域词向量对应的先验概率对数;继续执行根据先验概率对数确定各区域词向量对应的耦合系数,直到符合预设迭代条件时停止迭代。

在一个实施例中,区域词向量组合模块还用于:确定各组合区域词向量与对应的各预测向量间的标量积;将各标量积与对应的先验概率对数进行加和,得到重新确定的各区域词向量对应的先验概率对数。

在一个实施例中,聚集变换处理模块还用于:基于前馈神经网络对各组合区域词向量进行变换,得到变换后的组合区域词向量;将各变换后的组合区域词向量进行拼接,得到拼接后的词向量;对拼接后的词向量进行线性变换,得到目标词向量对应的聚集词向量。

在一个实施例中,聚集变换处理模块还用于:根据第四权重矩阵和第一偏置向量对各组合区域词向量进行线性变换,得到各组合区域词向量对应的临时词向量;分别选取各临时词向量与向量阈值中的最大向量值;根据第五权重矩阵和第二偏置向量对各最大向量值分别进行线性变换,得到变换后的组合区域词向量。

在一个实施例中,聚集词向量包括第一聚集词向量和第二聚集词向量,第一聚集词向量与第二聚集词向量不同;目标隐状态生成模块还用于:基于第一聚集词向量和对应的第一激活函数确定目标词向量对应的候选隐状态;基于第二聚集词向量和对应的第二激活函数确定目标词向量对应的门控参数;根据候选隐状态、门控参数和上一时刻的历史词向量的历史隐状态生成目标词向量对应的目标隐状态。

图1示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是终端或服务器。如图1所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。可以理解的是,当计算机设备为终端时,该计算机设备还可以包括显示屏和输入装置等。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现用于语言处理的循环神经网络中隐状态的生成方法。

该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行用于语言处理的循环神经网络中隐状态的生成方法。当计算机设备为终端时,计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的用于语言处理的循环神经网络中隐状态的生成装置可以实现为一种计算机程序的形式,计算机程序可在如图1所示的计算机设备上运行。计算机设备的存储器中可存储组成该用于语言处理的循环神经网络中隐状态的生成装置的各个程序模块,比如,图12所示的区域词向量生成模块1201、区域词向量组合模块1202、聚集变换处理模块1203和目标隐状态生成模块1204。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的用于语言处理的循环神经网络中隐状态的生成方法中的步骤。

例如,图1所示的计算机设备可以通过如图12所示的用于语言处理的循环神经网络中隐状态的生成装置1200中的区域词向量生成模块1201执行生成当前时刻输入的目标词向量的至少两个维度的区域词向量。计算机设备可通过区域词向量组合模块1202执行将各区域词向量进行组合,得到至少两个维度的组合区域词向量。计算机设备可通过聚集变换处理模块1203执行基于前馈神经网络将各组合区域词向量进行聚集变换处理,得到目标词向量对应的聚集词向量。计算机设备可通过目标隐状态生成模块1204执行基于聚集词向量生成目标词向量对应的目标隐状态。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述用于语言处理的循环神经网络中隐状态的生成方法的步骤。此处用于语言处理的循环神经网络中隐状态的生成方法的步骤可以是上述各个实施例的用于语言处理的循环神经网络中隐状态的生成方法中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述用于语言处理的循环神经网络中隐状态的生成方法的步骤。此处用于语言处理的循环神经网络中隐状态的生成方法的步骤可以是上述各个实施例的用于语言处理的循环神经网络中隐状态的生成方法中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施按照预设的,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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