类别划分方法和系统以及分类神经网络训练方法和装置与流程

文档序号:15694958发布日期:2018-10-19 18:53阅读:198来源:国知局
类别划分方法和系统以及分类神经网络训练方法和装置与流程

本发明总体说来涉及人工智能技术领域,更具体地讲,涉及一种针对序列进行类别划分的方法及系统、一种用于针对序列进行类别划分的分类神经网络的训练方法及训练装置、以及相应的计算设备和非暂时性机器可读存储介质。



背景技术:

对连续的一系列元素进行类型识别在诸多领域都起着举足轻重的作用,可有助于进一步得到智能化的应用。例如,对对话语句的意图类型(如肯定、否定、疑问)的识别,对人机交互的智能程度至关重要。再例如,随着媒体信息的爆炸式增长,对短句(诸如广告语)、段落、摘要、文章等多种类型的信息进行主题分类,也显得尤为重要。

目前,随着神经网络技术的发展,利用神经网络对序列化对象的类别进行划分逐渐成为一种主流方案,然而,现有类别划分方式无法在输入序列较为复杂的情况下对其进行有效的划分。以对语句的情感类型进行识别为例,公开号为cn107368613a的中国专利申请提出了一种短文本情感分析方法,其使用了lstm结构,能够在一定程度上较为准确地划分出语句的正负情感极性,而对于诸如反讽、疑问等复杂情感语句的识别能力有限。



技术实现要素:

本发明的示例性实施例在于提供一种针对序列进行类别划分的方法及系统、一种用于针对序列进行类别划分的分类神经网络的训练方法及训练装置、以及相应的计算设备和非暂时性机器可读存储介质,以解决现有技术存在的上述问题。

根据本发明的第一个方面,提供一种用于针对序列进行类别划分的方法,包括:将预测输入序列中的每个元素分别转换为预定维数的第一向量,以得到第一向量组;将第一向量组中的第一向量依次输入由多个lstm层连接而成的复合lstm结构,以得到分别由多个lstm层之中的至少一个lstm层输出的至少一个第二向量组;将第一向量组和至少一个第二向量组进行拼接,以得到第三向量组;对第三向量组中的至少部分第三向量进行重要性加权平均,以得到第四向量;将第四向量输入分类器,以得到针对预测输入序列的类别划分结果。

可选地,lstm层为双向lstm层。

可选地,使用嵌入层将预测输入序列中的每个元素分别转换为预定维数的第一向量,使用拼接结构将第一向量组和至少一个第二向量组进行拼接,并且,使用基于注意力机制的关注结构对第三向量组中的至少部分第三向量进行重要性加权平均,其中,嵌入层、复合lstm结构、拼接结构、关注结构和分类器构成分类神经网络,其中,复合lstm结构与嵌入层、关注结构和分类器三者之中的一项或多项被进行联合训练。

可选地,复合lstm结构由三个lstm层连接而成。

可选地,方法还包括:基于原始预测输入语句来产生预测输入序列,其中,元素指示字或词,类别涉及语句情感、语句意图或语句主题。

可选地,元素还指示标点。

可选地,元素还指示填充符,并且,基于原始预测输入语句来产生预测输入序列的步骤包括:统计原始预测输入语句中的元素个数;以及在统计得到的元素个数低于预定数量的情况下,通过在原始预测输入语句的结尾填充一个或多个填充符来得到预测输入序列。

可选地,基于原始预测输入语句来产生预测输入序列的步骤还包括:在统计原始预测输入语句中的元素个数之前,去除原始预测输入语句中作为低频字或词的元素和/或作为停用词的元素。

可选地,基于原始预测输入语句来产生预测输入序列的步骤还包括:将去除的元素替换为填充符。

可选地,统计原始预测输入语句中的元素个数的步骤包括:使用n-gram模型统计原始预测输入语句中的元素个数,其中,n为大于或等于1的整数。

可选地,元素具有对应的索引值,并且,将预测输入序列中的每个元素分别转换为预定维数的第一向量的步骤包括:将预测输入序列中的每个元素所对应的索引值分别转换为预定维数的第一向量。

根据本发明的第二个方面,还提供一种用于针对序列进行类别划分的分类神经网络的训练方法,其中,所述分类神经网络包括嵌入层、复合lstm结构、拼接结构、基于注意力机制的关注结构和分类器,所述复合lstm结构由多个lstm层连接而成,该方法包括:将基于历史输入序列和所述历史输入序列的真实类别产生的训练样本输入所述分类神经网络以进行运算,其中,所述历史输入序列中的每个元素经由所述嵌入层被分别转换为预定维数的第一向量,以得到第一向量组;所述第一向量组中的第一向量依次被输入所述复合lstm结构,以得到分别由所述多个lstm层之中的至少一个lstm层输出的至少一个第二向量组;所述第一向量组和所述至少一个第二向量组经由所述拼接结构进行拼接,以得到第三向量组;所述第三向量组中的至少部分第三向量经由所述关注结构进行重要性加权平均,以得到第四向量;所述第四向量经由所述分类器进行类别预测,以得到所述训练样本的预测类别;根据所述预测类别与所述真实类别之间的差异来联合调整复合lstm结构与嵌入层、关注结构和分类器三者之中的一项或多项。

可选地,所述lstm层为双向lstm层。

可选地,复合lstm单元由三个lstm层连接而成。

可选地,方法还包括:基于原始历史输入语句来产生历史输入序列,其中,所述元素指示字或词,所述类别涉及语句情感、语句意图或语句主题。

可选地,所述元素还指示标点。

可选地,所述元素还指示填充符,并且,基于原始历史输入语句来产生历史输入序列的步骤包括:统计原始历史输入语句中的元素个数;以及在统计得到的元素个数低于预定数量的情况下,通过在原始历史输入语句的结尾填充一个或多个填充符来得到历史输入序列。

可选地,基于原始历史输入语句来产生历史输入序列的步骤还包括:在统计原始历史输入语句中的元素个数之前,去除原始历史输入语句中作为低频字或词的元素和/或作为停用词的元素。

可选地,基于原始历史输入语句来产生历史输入序列的步骤还包括:将去除的元素替换为填充符。

可选地,所述统计原始历史输入语句中的元素个数的步骤包括:使用n-gram模型统计所述原始历史输入语句中的元素个数,其中,n为大于或等于1的整数。

可选地,所述元素具有对应的索引值,并且,所述历史输入序列中的每个元素所对应的索引值经由所述嵌入层被分别转换为预定维数的第一向量。

根据本发明的第三个方面,还提供一种用于针对序列进行类别划分的系统,包括:嵌入单元,用于使用嵌入层将预测输入序列中的每个元素分别转换为预定维数的第一向量,以得到第一向量组;复合lstm单元,用于将所述第一向量组中的第一向量依次输入由多个lstm层连接而成的复合lstm结构,以得到分别由所述多个lstm层之中的至少一个lstm层输出的至少一个第二向量组;拼接单元,用于使用拼接结构将所述第一向量组和所述至少一个第二向量组进行拼接,以得到第三向量组;关注单元,用于使用基于注意力机制的关注结构对所述第三向量组中的至少部分第三向量进行重要性加权平均,以得到第四向量;分类单元,用于将所述第四向量输入分类器,以得到针对所述预测输入序列的类别划分结果。

可选地,所述lstm层为双向lstm层。

可选地,嵌入层、复合lstm结构、拼接结构、关注结构和分类器构成分类神经网络,其中,复合lstm结构与嵌入层、关注结构和分类器三者之中的一项或多项被进行联合训练。

可选地,复合lstm结构由三个lstm层连接而成。

可选地,系统还包括:语句处理单元,用于基于原始预测输入语句来产生预测输入序列,其中,所述元素指示字或词,所述类别涉及语句情感、语句意图或语句主题。

可选地,所述元素还指示标点。

可选地,所述元素还指示填充符,所述语句处理单元还统计原始预测输入语句中的元素个数,并且,在统计得到的元素个数低于预定数量的情况下,通过在原始预测输入语句的结尾填充一个或多个填充符来得到预测输入序列。

可选地,在统计原始预测输入语句中的元素个数之前,所述语句处理单元还去除原始预测输入语句中作为低频字或词的元素和/或作为停用词的元素。

可选地,所述语句处理单元还将去除的元素替换为填充符。

可选地,所述语句处理单元使用n-gram模型统计所述原始预测输入语句中的元素个数,其中,n为大于或等于1的整数。

可选地,所述元素具有对应的索引值,嵌入单元使用嵌入层将预测输入序列中的每个元素所对应的索引值分别转换为预定维数的第一向量。

根据本发明的第四个方面,还提供一种用于针对序列进行类别划分的分类神经网络的训练装置,其中,所述分类神经网络包括嵌入层、复合lstm结构、拼接结构、基于注意力机制的关注结构和分类器,所述复合lstm结构由多个lstm层连接而成,该装置包括:运算模块,用于将基于历史输入序列和所述历史输入序列的真实类别产生的训练样本输入所述分类神经网络以进行运算,其中,所述历史输入序列中的每个元素经由所述嵌入层被分别转换为预定维数的第一向量,以得到第一向量组;所述第一向量组中的第一向量依次被输入所述复合lstm结构,以得到分别由所述多个lstm层之中的至少一个lstm层输出的至少一个第二向量组;所述第一向量组和所述至少一个第二向量组经由所述拼接结构进行拼接,以得到第三向量组;所述第三向量组中的至少部分第三向量经由所述关注结构进行重要性加权平均,以得到第四向量;所述第四向量经由所述分类器进行类别预测,以得到所述训练样本的预测类别;以及调整模块,用于根据所述预测类别与所述真实类别之间的差异来联合调整复合lstm结构与嵌入层、关注结构和分类器三者之中的一项或多项。

可选地,所述lstm层为双向lstm层。

可选地,复合lstm单元由三个lstm层连接而成。

可选地,训练装置还包括:语句处理模块,用于基于原始历史输入语句来产生历史输入序列,其中,所述元素指示字或词,所述类别涉及语句情感、语句意图或语句主题。

可选地,所述元素还指示标点。

可选地,所述元素还指示填充符,所述语句处理模块还统计原始历史输入语句中的元素个数,并且,在统计得到的元素个数低于预定数量的情况下,通过在原始历史输入语句的结尾填充一个或多个填充符来得到历史输入序列。

可选地,在统计原始历史输入语句中的元素个数之前,所述语句处理模块还去除原始历史输入语句中作为低频字或词的元素和/或作为停用词的元素。

可选地,所述语句处理模块还将去除的元素替换为填充符。

可选地,所述语句处理模块使用n-gram模型统计所述原始历史输入语句中的元素个数,其中,n为大于或等于1的整数。

可选地,所述元素具有对应的索引值,并且,嵌入单元使用嵌入层将所述历史输入序列中的每个元素所对应的索引值分别转换为预定维数的第一向量。

根据本发明的第五个方面,还提供一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如本发明第一个方面或第二方面述及的方法。

根据本发明的第六个方面,还提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如本发明第一个方面或第二方面述及的方法。

与现有方案不同,本发明使用了由多个lstm层连接而成的复合lstm结构,使得相对复杂的类别划分成为可能。并且,在利用分类器进行分类时,不是简单地将复合lstm结构中最后一个lstm层的输出作为分类器的输入,而是将复合lstm结构的输入与复合lstm结构中至少一个lstm层的输出拼接起来,基于拼接结果得到分类器的输入,由此可以提高类型识别的准确度。此外,本发明还对拼接结果进行重要性加权平均,以将拼接结果压缩为一个向量输入分类器,由此可以进一步提高类型识别的准确度。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。

图1是示出了根据本公开一实施例的用于针对序列进行类别划分的方法的示意性流程图。

图2示出了根据本发明一实施例的分类神经网络的整体结构示意图。

图3示出了复合lstm结构工作时的流程示意图。

图4示出了对输入语句进行预处理的示意性流程图。

图5是示出了根据本发明一实施例的类别划分系统500的结构的示意性方框图。

图6是示出了根据本发明一实施例的训练装置600的结构的示意性方框图。

图7示出了根据本发明一实施例的计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

如背景技术部分所述,现有的基于神经网络构造的类别分析模型的结构较为简单,多为单层lstm(长短期记忆网络)结构,或者比较简单的cnn(卷积神经网络)结构,使得模型的识别能力有限,能够识别的类型有限,或类型识别的准确率不高。例如,在应用于短文本的情感类型识别时,现有的类别分析模型一般仅能对语句的情感极性(正、负极性)进行分类,不能识别语句的具体情感类型(如喜怒哀乐惊惧等),尤其对于很多诸如反讽、疑问等情感类型较复杂的语句缺乏识别能力。

有鉴于此,本发明提出了一种能够提高类型识别能力的类别划分方案。本发明的类别划分方案尤其适用于针对序列的类别划分。其中,此处述及的序列是指由多个按照顺序排列的连续元素构成的序列,如可以是由多个顺序排列的字词构成的文本序列。举例来说,可以是用户输入的对话语句,也可以是通过微信、微博、今日头条等发表的说说/状态,还可以是在各种论坛发布的影评、书评等评语,这些对话语句、说说/状态、评语都可以视为序列。

图1是示出了根据本公开一实施例的用于针对序列进行类别划分的方法的示意性流程图。

参见图1,在步骤s110,将预测输入序列中的每个元素分别转换为预定维数的第一向量,以得到第一向量组。

预测输入序列是指待预测的序列。如上文对序列的描述可知,预测输入序列由多个按照顺序排列的连续元素构成。为了便于对预测输入序列的类别进行预测,本发明首先将预测输入序列中的每个元素转换为预定维数的向量表示(即第一向量),以得到用于表征预测输入序列的第一向量组。其中,第一向量的维数可以根据实际情况设定,此处不再赘述。

可以通过多种方式将元素转换为预定维数的向量表示。以预测输入序列中的元素指示字或词为例,可以使用wordembedding(即,词向量化或词嵌入)技术将预测输入序列中的每个元素转换为预定维数的第一向量。

在步骤s120,将第一向量组中的第一向量依次输入由多个lstm层连接而成的复合lstm结构,以得到分别由多个lstm层之中的至少一个lstm层输出的至少一个第二向量组。

复合lstm结构中的lstm层可以是单向lstm层,也可以是双向lstm层,优选地为双向lstm层。在复合lstm结构中的lstm层为双向lstm层的情况下,需要将第一向量组中的第一向量按照预测输入序列中元素的顺序以及相反顺序,分别输入复合lstm结构,此时lstm层的输出为针对两次输入进行处理得到的状态向量的拼接结果。关于复合lstm结构的工作机制将在下文详细描述,此处暂不赘述。

在步骤s130,将第一向量组和至少一个第二向量组进行拼接,以得到第三向量组。

将第一向量组和至少一个第二向量组进行拼接,是指将第一向量组和至少一部分lstm层所相应输出的各第二向量组中具有对应关系的向量进行拼接,以得到第三向量。此处述及的具有对应关系的向量是指拼接的各个第二向量均是对应于与同一元素相应的第一向量而输出的向量。可选地,可以将第一向量组和所有的第二向量组进行拼接,以得到第三向量组。

在步骤s140,对第三向量组中的至少部分第三向量进行重要性加权平均,以得到第四向量。此处可以基于注意力(attention)机制对第三向量组中的至少部分第三向量进行重要性加权平均。

在步骤s150,将第四向量输入分类器,以得到针对预测输入序列的类别划分结果。

分类器用于对输入的第四向量的类别进行预测,以得到针对预测输入序列的类别划分结果。其中,可以根据预测输入序列的类别预测需求训练分类器,以使得训练好的分类器能够对输入向量的相应类别进行预测。

作为本发明的一个示例,可以基于原始预测输入语句来产生预测输入序列。其中,预测输入序列中的元素可以指示字或词,类别可以涉及语句情感、语句意图或语句主题等。即,可以利用本发明的类别划分方法对原始预测输入语句的语句情感、语句意图或语句主题进行分类。

综上,本发明使用了由多个lstm层连接而成的复合lstm结构,使得相对复杂的类别划分成为可能。并且,在利用分类器进行分类时,不是简单地将复合lstm结构中最后一个lstm层的输出作为分类器的输入,而是将复合lstm结构的输入与复合lstm结构中至少一个lstm层的输出拼接起来,基于拼接结果得到分类器的输入,由此可以提高类型识别的准确度。此外,本发明还对拼接结果进行重要性加权平均,以将拼接结果压缩为一个向量输入分类器,由此可以进一步提高类型识别的准确度。

本发明的类别划分方法可以基于特定的分类神经网络来实施。具体地,可以使用嵌入层(embedding层)将预测输入序列中的每个元素分别转换为预定维数的第一向量,然后使用拼接结构将第一向量组和至少一个第二向量组进行拼接,并且使用基于注意力(attention)机制的关注结构对第三向量组中的至少部分第三向量进行重要性加权平均。其中,嵌入层、复合lstm结构、拼接结构、关注结构和分类器(softmax)构成分类神经网络,复合lstm结构与嵌入层、关注结构和分类器三者之中的一项或多项可以被进行联合训练。

下面就本发明的类别划分方法基于分类神经网络来实现时,分类神经网络的结构进行说明。图2是示出了分类神经网络的结构示意图。

如图2所示,本发明的分类神经网络由嵌入层、复合lstm结构、拼接结构、关注结构以及分类器构成。

嵌入层主要负责将输入序列中的每个元素分别转换为预定维数的第一向量,以得到第一向量组。其中,预定维数可以根据输入序列的实际情况来预先设定。在分类神经网络的模型训练阶段,此处述及的输入序列可以称为“历史输入序列”,而在分类神经网络训练完毕后投入使用时进行预测的阶段,上述输入序列可以称为“预测输入序列”。

复合lstm结构由多个lstm层连接而成。作为示例,复合lstm结构可以由三个lstm层连接而成。其中,lstm层可以是单向lstm层,也可以是双向lstm层,优选地为双向lstm层,由此可以提高模型对多种类别的识别能力,尤其可以提高对复杂类型的输入序列的识别能力,例如可以提高对反讽、疑问等复杂语句的情感类型的识别能力。

利用嵌入层得到的第一向量组中的第一向量可以依次输入复合lstm结构。图3示出了复合lstm结构工作时的流程示意图。其中,图3是以第一向量组中单个第一向量的处理顺序为基本时刻单位的,并且图3是以lstm层为单向lstm层为例进行说明的。

作为示例,可以用{w1,w2,…,wt}表示输入序列,其中,w1、w2、wt(t为大于等于1的整数)分别表示输入序列中的元素。借助嵌入层对输入序列中的每个元素进行转换处理得到的第一向量组可以用{v1,v2,…,vt}表示,其中,v1、v2、vt分别表示对应于不同元素的第一向量。

如图3所示,第一向量组{v1,v2,…,vt}中的第一向量可以依次输入复合lstm结构,其中,复合lstm结构由n个lstm层连接而成,n为大于或等于2的整数。

针对第一向量组{v1,v2,…,vt},首先将第一向量v1输入复合lstm结构中的第一个lstm层,第一向量v1经过第一个lstm层而相应得到的状态向量(可以称为“第二向量”,为了便于区分,可以记为p11)传递给第二个lstm层,作为第二个lstm层的输入。按照第二个lstm层对接收到的第二向量p11进行运算之后,得到的新的第二向量p12被输入到第三个lstm层,以此类推,每个lstm层都可以得到一个与第一向量v1对应的处理结果(即第二向量)。

针对第一向量v1,在第n个lstm层得到第二向量p1n后,将第一向量组{v1,v2,…,vt}中的下一个第一向量v2输入复合lstm结构中的第一个lstm层。按照第一个lstm层的循环结构,可针对传递过来的对第一向量v1进行处理得到的第二向量p11和当前输入的第一向量v2进行处理,以得到第二向量p21,并将其传递给第二个lstm层。类似地,按照第二个lstm层的循环结构,可针对第二向量p12和第二向量p21进行处理,以得到新的第二向量p22,并将其输入到第三个lstm层,以此类推,每个lstm层都可以得到一个与第一向量v2对应的处理结果(即第二向量)。

重复上述流程,可以实现对第一向量组中所有第一向量的处理。对第一向量组中所有第一向量进行处理后,复合lstm结构中的每个lstm层都可以输出针对第一向量组中的每个第一向量的处理结果(即第二向量)。由此,每个lstm层都可以得到一个第二向量组。其中,第一个lstm层的第二向量组可以表示为{p11,p21,…,pt1},第二个lstm层的第二向量组可以表示为{p12,p22,…,pt2},…,第n个lstm层的第二向量组可以表示为{p1n,p2n,…,ptn}。在本发明中,不同lstm层输出的第二向量的维数可以相同,也可以不同,对此本发明不做限定。

至此,以单向lstm为例,就复合lstm结构对第一向量组的处理流程做了说明。在lstm层为双向lstm层的情况下,可以按照输入序列中的元素的排列顺序以及元素的排列顺序的相反顺序,将第一向量组中的第一向量分两次依次输入复合lstm结构。其中,对于同一lstm层,可以将两次对应于同一第一向量的处理结果拼接起来作为第二向量。双向lstm为现有技术,关于双向lstm的详细工作流程,此处不再赘述。

利用拼接结构,可以将第一向量组和至少一个第二向量组进行拼接,以得到第三向量组。作为本发明的一个示例,拼接结构可以将第一向量组和所有的第二向量组进行拼接,以得到第三向量组。将第一向量组和至少一个第二向量组进行拼接,是指将第一向量组和至少一部分lstm层所相应输出的各第二向量组中具有对应关系的向量进行拼接,以得到第三向量。此处述及的具有对应关系的向量是指拼接的各个第二向量均是对应于与同一元素相应的第一向量而输出的向量。

如上文所述,输入序列可以表征为{w1,w2,…,wt},第一向量组可以表征为{v1,v2,…,vt},第k个lstm层的第二向量组可以表征为{p1k,p2k,…,ptk},其中,1≤k≤n,n为复合lstm结构中lstm层的个数。可见,第一向量vi、第二向量pi1、第二向量pi2、…第二向量pin之间互相对应,可以视为对应于同一元素wi而转化或输出,其中,1≤i≤t。

本发明述及的向量间的拼接就是将具有对应关系的向量拼接为新的向量(即第三向量)。举例来说,假设第一向量v1={1,3,11},第二向量p11={3,12,255}、第二向量p12={33,45,268},将第一向量v1、第二向量p11、第二向量p12进行拼接得到的新向量为{1,3,11,3,12,255,33,45,268}。

换句话说,同一lstm层输出的第二向量组中每个第二向量的维数是相同的,因此每个lstm层输出的第二向量组可以视为一个矩阵,矩阵中每行对应一个第二向量,矩阵的行数即是第二向量的个数,矩阵的列数即是第二向量的维数。并且,矩阵中不同行是按照第二向量的先后生成顺序排列的。

同样地,第一向量组也可以看成是一个矩阵,矩阵中每行对应一个第一向量,该矩阵的行数也即第一向量的个数,该矩阵的列数也即第一向量的维数,并且该矩阵中第一向量的排列顺序与输入序列中元素的排列顺序一致。

将第一向量组和至少一个第二向量组进行拼接,以得到第三向量组。也就是说,将嵌入层输出的矩阵与至少一个lstm层输出的矩阵拼接起来,此处述及的矩阵拼接,是指将矩阵并排进行列拼接,拼接后矩阵的行数不变,列数增加。

利用关注结构,可对第三向量组中的至少部分第三向量进行重要性加权平均,以得到第四向量。作为示例,关注结构可以基于注意力机制对第三向量组中的至少部分第三向量进行重要性加权平均。其中,注意力机制为本领域成熟技术,此处关于注意力机制的具体实现原理及过程不再赘述。

将第四向量输入分类器,可以得到针对输入序列的类别划分结果。

综上,与现有方案不同,本发明的分类神经网络使用了由多个lstm层连接而成的复合lstm结构,复合lstm结构的设置可以使得相对复杂或有效的类别划分成为可能。并且,在利用分类器进行分类时,不是简单地将复合lstm结构中最后一个lstm层的输出作为分类器的输入,而是将嵌入层的输出与复合lstm结构中至少一个lstm层的输出拼接起来,基于拼接结果得到分类器的输入,由此可以提高类型识别的准确度。此外,本发明的分类神经网络还利用了关注结构对拼接结果进行重要性加权平均,以将拼接结果压缩为一个向量,作为分类器的输入,由此可以进一步提高类型识别的准确度。

在上述分类神经网络中,复合lstm结构可以与其他结构进行联合训练,例如,其可以与嵌入层、关注结构和分类器之中的一个或多个一起训练。然而,应理解,本发明的示例性实施例并不受限于此,作为示例,借助嵌入层所实现的向量转换可借由单独的模型或其它转换工具来实施。也就是说,上述分类神经网络中的各个组成结构可单独训练或联合训练,此外,各个组成结构也可以是单独执行相关功能(例如,向量转换、加权平均)的非模型结构。

至此,结合图2、图3,就本发明的类别划分方法依据分类神经网络来实现时,分类神经网络的结构及工作流程做了详细说明。

如上文所述,本发明的类别划分方法可以对多种类型的序列进行处理。下面以针对文本(例如语句)进行类别划分为例进行说明。应该知道,本发明的类别划分方法也可以应用于其它类型的序列的类别划分,如按照时间顺序采集的连续行为数据,此处不再赘述。

在将本发明的类别划分方法应用于语句的类型识别时,如应用于语句的情感类型识别、意图类型识别或主题识别时,还可考虑对于输入的语句(即原始预测输入语句)进行预处理,以将输入的语句转换为适于处理的预测输入序列。其中,输入语句可以是对话语句,也可以是其它多种类型的短文本,如用户发表的微博、说说、评论、影评等。

图4示出了对输入语句进行预处理的示意性流程图。

参见图4,在步骤s410,可以按照元素(即,分词单位,可为词或字)对输入语句进行分词处理,以将输入语句切割成词/字元素组成的输入序列。具体地,可以以字为单位对输入语句进行分词处理,以将输入语句切割成多个字。也可以以词为单位对输入语句进行分词处理,以将输入语句切割成多个词。

在步骤s420,去除无用词/字元素(即,无用词或字)。

无用词/字元素相应地可以包括低频词或/字字,并且和/或者,无用元素可包括停用词(这里,停用词既可以指示字,也可以指示词,取决于以字为单位还是以词为单位来划分语句)。也就是说,可以去除输入语句中的低频字/词和/或停用词。其中,低频字/词可以是预先对大量语料样本进行统计得到的出现概率较低的字或词。停用词可以通过查找停用词库的方式确定。其中,停有词库可以是预先基于预定的规则生成的,例如可以将的、地、得等词列入停用词库。

在步骤s430,填充至统一格式。

在执行步骤s420后,可以统计输入语句中字或/词元素的个数,在统计值低于预定阈值的情况下,可以通过在输入语句的结尾填充一个或多个填充符,以将输入语句填充至统一长度。其中,统一长度可以预先设定,例如可以设定为100-200个字/词单位元素单位。这里,可以使用n-gram模型来统计输入语句中的元素个数,其中,n为大于或等于1的整数。n-gram模型的技术已经较为成熟,此处不再赘述。

作为本发明的一个示例,对于步骤s420中去除的无用词/字元素,也可以用填充符填充。

需要说明的是,根据本发明的示例性实施例,为了更好地捕捉输入语句中的标点符号对类别(例如语句的情感类别)的影响信息,可将输入语句中的标点符号也作为字或词元素进行划分和统计。可见,最终得到的输入序列中的每个元素可以指示输入语句中的字或词、标点符号以及填充符。

另外,为了增加输入语句中字或词的个数,还可以使用n-gram模型来统计输入语句中的元素个数,其中,n为大于或等于1的整数。n-gram模型的技术已经较为成熟,此处不再赘述。

在经过上述处理,得到统一长度的输入语句后,可以对输入语句进行编码,以将输入语句中的每个字/词单位(即,元素)转换为相应的索引值,以得到由多个索引值构成的向量序列,其中,索引值可以为数值。由索引值构成的向量可以作为输入序列可输入嵌入层,以借由嵌入层将每个索引值转换为预定维数的第一向量。

至此,结合图4就对输入语句进行预处理的流程做了说明。然而,应理解,根据本发明的示例性实施例,可仅选择性地执行图4中的一部分步骤或处理,即可提高中文语句的类型识别效果。

本发明还提出了一种用于针对序列进行类别划分的分类神经网络的训练方法。其中,分类神经网络包括嵌入层、复合lstm结构、拼接结构、基于注意力机制的关注结构和分类器,复合lstm结构由多个lstm层连接而成。关于分类神经网络的结构以及工作原理可以参见上文相关描述,此处不再赘述。

在训练分类神经网络时,可以将基于历史输入序列和历史输入序列的真实类别产生的训练样本(其中,真实类别可作为训练样本的标记(label))输入分类神经网络以进行运算,从而得到训练样本的预测类别,然后根据预测类别与真实类别之间的差异来联合调整复合lstm结构与嵌入层、关注结构和分类器三者之中的一项或多项。例如,可基于差异相关函数(例如,代价函数、损失函数或目标函数)来协同地调整(包括优化)部分或全部组成结构的参数。作为本发明的一个示例,可以根据预测类别与真实类别之间的差异来联合训练复合lstm结构、嵌入层、关注结构以及分类器。

在本发明中,历史输入序列可以通过网络抓包的方式获取。例如,在本发明的分类神经网络用于语句的情感分类时,可以抓取若干条微博作为原始历史输入语句,可以对原始历史输入语句进行预处理(处理过程可以参见上文结合图4的描述,此处不再赘述),以得到历史输入序列。其中,历史输入序列的真实类别可以通过人工标注的方式得到。由此,历史输入序列和真实类别可以作为训练样本输入分类神经网络。

具体的训练过程与现有的神经网络的训练过程类似。例如,可以基于中预测类别与真实类别之间的差异,不断调整分类神经网络的模型参数,直至训练次数超过预定阈值,或者模型的误差(即预测类别与真实类别之间的差异)小于预定阈值。具体的训练过程此处不再赘述。图5是示出了根据本发明一实施例的类别划分系统500的结构的示意性方框图。其中,类别划分系统500的组成单元可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。例如,图5中的各个单元可以是按照特定结构的相关模型函数表达或其他逻辑关系来执行相关处理或操作的软件和/或硬件资源的集合体。本领域技术人员可以理解的是,图5所描述的组成单元可以组合起来或者划分成子单元,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的组成单元的任何可能的组合、或者划分、或者更进一步的限定。

下面就类别划分系统500可以具有的组成单元以及各组成单元可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文描述,这里不再赘述。

参见图5,类别划分系统500包括嵌入单元510、复合lstm单元520、拼接单元530、关注单元540以及分类单元550。

嵌入单元510用于使用嵌入层将预测输入序列中的每个元素分别转换为预定维数的第一向量,以得到第一向量组。复合lstm单元520用于将所述第一向量组中的第一向量依次输入由多个lstm层连接而成的复合lstm结构,以得到分别由多个lstm层之中的至少一个lstm层输出的至少一个第二向量组。拼接单元530用于使用拼接结构将第一向量组和至少一个第二向量组进行拼接,以得到第三向量组。关注单元540用于使用基于注意力机制的关注结构对第三向量组中的至少部分第三向量进行重要性加权平均,以得到第四向量。分类单元550用于将第四向量输入分类器,以得到针对预测输入序列的类别划分结果。

作为本发明的一个示例,lstm层可以为双向lstm层。此外,作为示例,复合lstm结构可以由三个lstm层连接而成。可选地,嵌入层、复合lstm结构、拼接结构、关注结构和分类器可构成分类神经网络,其中,复合lstm结构与嵌入层、关注结构和分类器三者之中的一项或多项可以被进行联合训练。

如图5所示,类别划分系统500还可以可选地包括语句处理单元560。语句处理单元560用于基于原始预测输入语句来产生预测输入序列,其中,元素指示字或词,类别涉及语句情感、语句意图或语句主题。此外,可选地,元素还可以指示标点。

作为本发明的一个示例,元素还指示填充符,语句处理单元560还统计原始预测输入语句中的元素个数,并且,在统计得到的元素个数低于预定数量的情况下,通过在原始预测输入语句的结尾填充一个或多个填充符来得到预测输入序列。

另外,可选地,在统计原始预测输入语句中的元素个数之前,语句处理单元560还可以去除原始预测输入语句中作为低频字或词的元素和/或作为停用词的元素。作为示例,语句处理单元560还可以将去除的元素替换为填充符。

作为本发明的一个示例,语句处理单元560可以使用n-gram模型统计所述原始预测输入语句中的元素个数,其中,n为大于或等于1的整数。

作为示例,元素可以具有对应的索引值,嵌入单元510可以使用嵌入层将预测输入序列中的每个元素所对应的索引值分别转换为预定维数的第一向量

图6是示出了根据本发明一实施例的训练装置600的结构的示意性方框图。其中,训练装置600的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。例如,图6中的各个功能模块可以是按照特定结构的相关模型函数表达或其他逻辑关系来执行相关处理或操作的软件和/或硬件资源的集合体。本领域技术人员可以理解的是,图6所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。

下面就训练装置600可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文描述,这里不再赘述。

如图6所示,训练装置600包括运算模块610和调整模块620。

运算模块610用于将基于历史输入序列和历史输入序列的真实类别产生的训练样本输入分类神经网络以进行运算,其中,历史输入序列中的每个元素经由嵌入层被分别转换为预定维数的第一向量,以得到第一向量组;第一向量组中的第一向量依次被输入复合lstm结构,以得到分别由多个lstm层之中的至少一个lstm层输出的至少一个第二向量组;第一向量组和至少一个第二向量组经由拼接结构进行拼接,以得到第三向量组;第三向量组中的至少部分第三向量经由关注结构进行重要性加权平均,以得到第四向量;第四向量经由分类器进行类别预测,以得到训练样本的预测类别。其中,lstm层可以为双向lstm层。并且,复合lstm单元也可以由三个lstm层连接而成。

调整模块620用于根据预测类别与真实类别之间的差异来联合调整复合lstm结构与嵌入层、关注结构和分类器三者之中的一项或多项。

如图6所示,训练装置600还可以可选地包括语句处理模块630。

语句处理模块630用于基于原始历史输入语句来产生历史输入序列,其中,所述元素指示字或词,所述类别涉及语句情感、语句意图或语句主题。此外,可选地,元素还可以指示标点。

作为本发明的一个示例,元素还可以指示填充符,语句处理模块630还可以统计原始历史输入语句中的元素个数,并且,在统计得到的元素个数低于预定数量的情况下,通过在原始预测输入语句的结尾填充一个或多个填充符来得到预测输入序列。

另外,可选地,在统计原始历史输入语句中的元素个数之前,语句处理模块630还可以去除原始历史输入语句中作为低频字或词的元素和/或作为停用词的元素。作为示例,语句处理模块630还可以将去除的元素替换为填充符。

作为本发明的一个示例,语句处理模块630可以使用n-gram模型统计所述原始历史输入语句中的元素个数,其中,n为大于或等于1的整数。

作为本发明的一个示例,元素可以具有对应的索引值,历史输入序列中的每个元素所对应的索引值可以经由嵌入层被分别转换为预定维数的第一向量。

图7示出了根据本发明一实施例可用于实现上述针对序列进行类别划分的方法或者分类神经网络的训练方法的计算设备的结构示意图。

参见图7,计算设备700包括存储器710和处理器720。

处理器720可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器720可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(gpu)、数字信号处理器(dsp)等等。在一些实施例中,处理器720可以使用定制的电路实现,例如特定用途集成电路(asic,applicationspecificintegratedcircuit)或者现场可编程逻辑门阵列(fpga,fieldprogrammablegatearrays)。

存储器710可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器720或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1010可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、minsd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。

存储器710上存储有可处理代码,当可处理代码被处理器720处理时,可以使处理器720执行上文述及的针对序列进行类别划分的方法或者分类神经网络的训练方法。

上文中已经参考附图详细描述了根据本发明的类别划分及分类神经网络训练方法、装置、设备及系统。

此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。

或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

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