本发明属于文本挖掘的文本分类技术领域,具体涉及一种融入多尺度特征注意力的胶囊神经网络及文本分类方法。
背景技术:
文本分类属于文本挖掘应用中的一个重要组成部分,包括问题分类、情感分析和主题分类等。现在很多主流文本分类模型一般是基于卷积神经网络(cnn)、循环神经网络(rnn)和transformer;kim首次提出通过多个卷积核来对句子进行编码以达到对文本分类的目的,随后各种基于cnn的模型开始出现在文本分类任务中。
目前的在文本分类领域基于cnn的研究工作已趋于成熟,但仍存在问题:比如yang等人通过平均池化利用了文本多个尺度的多元语法特征,但是特征的融合方式却十分不合理,其忽视了文本内部单词所对应的各个尺度语法特征并不应该是同等重要,而应该是由具体的上下文决定的这一问题,并还无形之中将模型的参数规模扩大成了原来的3倍;zheng等人提出的capsnets(胶囊神经网络)模型只利用了文本的二元语法特征,直接忽视了文本内部还可能存在的其他多元语法特征;可以看出,现有的基于capsnets的研究工作都不能很好的捕捉丰富的多元语法特征,这直接影响到模型对于整个文本的理解,只有当最重要的多元语法特征被精确提取到的时候,模型才能在考虑具体上下文的基础上正确地理解到单词的意思。
在胶囊神经网络中,子胶囊与父胶囊之间的信息交流也是一个重点研究方法,在常用的路由算法中,子胶囊中的信息将会被路由到每一个父胶囊,这种方式同时也会将子胶囊中的一些冗余信息传递到父胶囊,造成数据过大、系统负担加重。
技术实现要素:
有鉴于此,本发明的目的之一在于提供一种融入多尺度特征注意力的胶囊神经网络,该网络能精确捕获文本的多元语法特征。
为实现上述目的,本发明的技术方案为:包括双向循环层,多尺度特征注意力层,部分连接胶囊层,类别胶囊层;其中,
所述双向循环层还包括有rnn编码器,用于接收目标文本的单词向量序列,并通过rnn编码器得到目标文本的每个单词对应的前后上下文的特征表示,目标文本的所有单词对应的前后上下文的特征表示构成目标文本的全局特征表示;
所述多尺度特征注意力层,与所述双向循环层相连,用于将接收的目标文本全局特征表示经过卷积窗口得到多元语法特征,并对每个单词在不同尺度下的多元语法特征加权;
所述部分连接胶囊层,与所述多尺度特征注意力层相连,包括子胶囊单元与父胶囊单元,所述子胶囊单元接收经加权后的多元语法特征,并将信息通过路由传递到父胶囊单元,最终得到父胶囊的特征表示;
所述类别胶囊层与所述部分连接胶囊层相连,包括至少2个类别胶囊,每一个类别胶囊对应一个类别,用于表述目标文本属于一个类别中的概率。
进一步地,所述多尺度特征注意力层包括:卷积网络单元、卷积特征聚合单元、尺度特征加权单元;
所述卷积网络单元接收所述双向循环层发送的目标文本的全局特征表示,并通过多个卷积窗口得到目标文本的语法特征表示;
所述卷积特征聚合单元与所述卷积网络单元相连,用于将目标文本的语法特征表示用卷积核生成对应的标量表示;
所述尺度特征加权单元与所述卷积特征聚合单元相连,用于接收目标文本的标量表示并生成各个尺度多语法特征的注意力权重得到目标文本的加权表示。
进一步地,所述卷积网络单元通过以下方式得到语法特征表示:
i为目标文本的第i个单词,l为卷积窗口的大小,
所述卷积特征聚合单元通过以下方式得到标量表示:
fensem(·)表示将输入向量的各个分量求和,k为卷积核数量,
所述尺度特征加权单元通过以下方式得到加权表示:
ai=softmax(mlp(si));
其中,si为是第i个单词的聚合特征表示,
进一步地,所述路由传递到父胶囊单元的路由方法为:
通过预先设定的权重矩阵得到胶囊神经网络中的子胶囊层到下一层父胶囊层的预测向量;
对子胶囊层的信息进行路由迭代,计算动态路由算法的耦合系数;
在最后一次路由迭代时,比较耦合系数与预先设定的阈值;
如果耦合系数小于阈值,则丢弃该耦合系数,其他值重新加权保持和为1;
通过耦合系数和预测向量得到路由到父胶囊层的父胶囊表示,父胶囊层对路由得到的父胶囊表示进行缩放,得到最终父胶囊表示。
进一步地,所述计算动态路由算法的耦合系数的步骤,具体计算为:
bij为没经加权时的初始耦合系数,cij为将初始耦合系数进行softmax加权得到的耦合系数。
进一步地,所述父胶囊层对路由得到的父胶囊表示进行缩放的步骤,具体方法为:
其中,sj为路由得到的父胶囊表示,uj|i为预测向量,vj为缩放后得到的最终父胶囊表示。
基于目的之一,本发明的目的之二在于提供一种使用上述目的之一的胶囊神经网络的文本分类方法。
为实现上述目的,本发明的技术方案为:一种使用权上述目的之二的胶囊神经网络的文本分类方法,包括以下步骤:
接收一个目标文本对应的单词向量序列,对所述目标文本的单词向量序列编码得到目标文本的全局特征表示;所述全局特征表示为目标文本的所有单词对应的前后上下文的特征表示构成;
将所述全局特征表示经过卷积窗口得到多元语法特征,并对每个单词在不同尺度下的多元语法特征加权得到目标文本的加权表示;
子胶囊单元接收目标文本的加权表示并将信息路由传递到父胶囊单元,得到父胶囊的特征表示,然后将所述父胶囊的特征表示发送给类别胶囊层,得到目标文本属于一个类别中的概率。
进一步地,所述对所述目标文本的单词向量序列编码得到目标文本的全局特征表示的步骤具体包括:
对目标文本的一个单词向量进行编码得到该单词向量的前上下文特征表示和后上下文特征表示:
i为目标文本的第i个单词,wi为目标文本的第i个单词向量,cl(wi)第i个单词向量前上下文特征表示,cr(wi)第i个单词向量后上下文特征表示,
连接一个单词向量对应的前上下文特征表示和后上下文特征表示得到该单词向量的前后上下文的特征表示;
对目标文本的所有单词向量进行编码,最终得到目标文本的全局特征表示;全局特征表示标文本的所有单词对应的前后上下文的特征表示构成。
进一步地,所述将所述全局特征表示经过卷积窗口得到多元语法特征,并对每个单词在不同尺度下的多元语法特征加权得到目标文本的加权表示的步骤,具体包括:
将接收目标文本的全局特征表示通过多个卷积窗口得到目标文本的语法特征表示;
将目标文本的语法特征表示用对多个卷积窗口使用卷积核的方法生成对应的标量表示;
将目标文本的标量表示生成各个尺度多语法特征的注意力权重得到目标文本的加权表示。
进一步地,所述类别胶囊层包括至少2个类别胶囊,每一个类别胶囊对应一个类别,类别胶囊层接收到父胶囊的特征表示,每个类别胶囊表示目标文本属于对应类别下的概率。
有益效果
本发明提供一种融入多尺度特征注意力的胶囊神经网络及文本分类方法,其有益效果在于:本发明提供的融入多尺度特征注意力的胶囊神经网络,能通过不同尺度的多元特征之间的注意力来精确捕获文本的多元语法特征,并避免了采用多个相似的完全胶囊层而导致的参数规模的增加,本发明还提供了一种在该网络中使用的路由算法,该路由算法能在子胶囊与父胶囊之间进行信息传递时有效减少冗余信息;与此同时,本发明还提供了基于该胶囊神经网络的应用方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍。显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明一种路由方法流程图;
图2为本发明一种融入多尺度特征注意力的胶囊神经网络的模块示意图;
图3为本发明一种使用融入多尺度特征注意力的胶囊神经网络的文本分类方法的流程图;
图4为发明一种融入多尺度特征注意力的胶囊神经网络的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
所举实施例是为了更好地对本发明进行说明,但并不是本发明的内容仅局限于所举实施例。所以熟悉本领域的技术人员根据上述发明内容对实施方案进行非本质的改进和调整,仍属于本发明的保护范围。
实施例1
参考图1,为本发明一种用于胶囊神经网络中的路由方法的流程图,具体地,一种用于胶囊神经网络中的路由方法的流程图,包括以下步骤:
s100:通过预先设定的权重矩阵得到胶囊神经网络中的子胶囊层到下一层父胶囊层的预测向量;然后执行步骤s102;
本实施例中,在两个邻近的胶囊层之间,为了得到第t层子胶囊ui到第t+1层父胶囊sj的预测向量uj|i,可以将t层的胶囊ui乘以一个权重矩阵wij得到,该权重矩阵为随机初始化得到的:该预测向量的具体计算公式可为:
uj|i=wijui;
i和j分表代表子胶囊与父胶囊的序号;
s102:对子胶囊层的信息进行路由迭代,计算动态路由算法的耦合系数;
本实施例中,进行路由迭代的方法为:
其中,bij为没有加权的初始耦合系数,cij是动态路由算法决定的耦合系数,即为将初始耦合系数进行softmax加权得到的耦合系数,通过在原有的bij的基础之上进行一个softmax函数操作完成;本实施例中耦合系数可以视为子胶囊ui耦合到父胶囊sj先验概率;
s104,在最后一次路由迭代时,比较耦合系数与预先设定的阈值;如果耦合系数小于阈值,则执行步骤s106,否则,执行步骤s108;
s106:丢弃该耦合系数;然后执行步骤s110;
本实施例中,阈值可以根据实际需要进行设定,将小于阈值的耦合系数视为父胶囊层与子胶囊层之间的弱连接(权重较小),丢弃掉,使与父胶囊关系最密切的子胶囊被路由,高层胶囊只能从与之最相关的低层胶囊接收信息,有助于减少子父胶囊之间的冗余信息传输。
s108:其他耦合系数重新加权保持和为1;然后执行步骤s110;
s110:通过耦合系数和预测向量得到路由到父胶囊层的父胶囊表示,父胶囊层对路由得到的父胶囊表示进行缩放,得到最终父胶囊表不。
本实施例中,通过路由到达父胶囊的信息为sj:
进一步地,父胶囊层还对路由得到的信息(父胶囊表示)进行缩放,相当于一个向量版的激活函数,从而得到最后的父胶囊vj,步骤,具体方法为:
其中,vj为缩放后得到的最终信息。
整合整个父胶囊层的父胶囊的数目和维度,得到父胶囊层的输出v∈rm×d(d和m分别代表父胶囊的数目和维度)输入到下一层进行最后的分类决策路由。
实施例2
参考图2,为本实施例中一种融入多尺度特征注意力的胶囊神经网络的模块示意图,具体地,一种融入多尺度特征注意力的胶囊神经网络包括双向循环层2,多尺度特征注意力层3,部分连接胶囊层4,类别胶囊层5;其中,
双向循环层2还包括有rnn编码器,用于接收目标文本的单词向量序列,并通过rnn编码器得到目标文本的每个单词对应的前后上下文的特征表示,目标文本的所有单词对应的前后上下文的特征表示构成目标文本的全局特征表示;
多尺度特征注意力层3,与双向循环层1相连,用于将接收的目标文本全局特征表示经过卷积窗口得到多元语法特征,并对每个单词在不同尺度下的多元语法特征加权;
本实施例中,多尺度特征注意力层3还包括:卷积网络单元301、卷积特征聚合单元302、尺度特征加权单元303;
卷积网络单元301接收双向循环层2发送的目标文本的全局特征表示,并通过多个卷积窗口得到目标文本的语法特征表示;语法特征表示的计算可以为:
h=[z1;z2...;zm];
i为目标文本的第i个单词,l为卷积窗口的大小,
卷积特征聚合单元302与卷积网络单元301相连,用于将目标文本的语法特征表示用卷积核生成对应的标量表示;标量表示可以通过以下方式得到:
fensem(·)表示将输入向量的各个分量求和,k为卷积核数量,
尺度特征加权单元303与卷积特征聚合单元302相连,用于接收目标文本的标量表示并生成各个尺度多语法特征的注意力权重得到目标文本的加权表示;尺度特征加权单元303通过以下方式得到加权表示:
ai=softmax(mlp(si));
其中,si为是第i个单词的聚合特征表示,
部分连接胶囊层4,与多尺度特征注意力层3相连,包括子胶囊单元401与父胶囊单元402,子胶囊单元401接收经加权后的多元语法特征,并将信息通过路由算法路由传递到父胶囊单元402,最终得到父胶囊的特征表示;本实施例中的路由方法具体可参考实施例1中提出的路由方法。
类别胶囊层5与部分连接胶囊层4相连,包括至少2个类别胶囊,每一个类别胶囊对应一个类别,用于表述目标文本属于一个类别中的概率。
实施例3
基于实施例1路由算法与实施例2的胶囊神经网络,本实施例中提供一种文本分类方法,该方法的流程图可参考图4,具体地,该方法包括以下步骤:
s600:接收一个目标文本对应的单词向量序列,对目标文本的单词向量序列编码得到目标文本的全局特征表示;然后执行步骤s602;
本实施例中,对实施例2的胶囊神经网络输入由一系列单词w1,w2.....wn组成的欲分类的目标文本所对应的d维词向量序列,将词向量序列分别与其左右所有单词的词向量按次序一起被输入到rnn编码器中,即可得到目标文本的全局特征表示,具体地,先对目标文本的一个单词向量进行编码得到该单词向量的前上下文特征表示和后上下文特征表示:
i为目标文本的第i个单词,wi为目标文本的第i个单词向量,cl(wi)第i个单词向量前上下文特征表示,cr(wi)第i个单词向量后上下文特征表示,
然后连接一个单词向量对应的前上下文特征表示和后上下文特征表示得到该单词向量的前后上下文的特征表示xi:
xi=[cl(wi),cr(wi)];
对目标文本的所有单词向量进行编码,最终得到目标文本的全局特征表示x=[x1,...xi,...xn];全局特征表示标文本的所有单词对应的前后上下文的特征表示构成。
s602:将全局特征表示经过卷积窗口得到多元语法特征,并对每个单词在不同尺度下的多元语法特征加权得到目标文本的加权表示;然后执行步骤s604;
本步骤中,经步骤s600得到的全局特征会进入实施例2中的多尺度特征注意力层3,然后多尺度特征注意力层3将接收目标文本的全局特征表示通过多个卷积窗口得到目标文本的语法特征表示:
h=[z1;z2...;zm];
i为目标文本的第i个单词,l为卷积窗口的大小,
对于一个单词,并不是所有的多元语法都重要,因此需要通过尺度特征加权单元303与卷积特征聚合单元302决定对于一个单词来说哪些多元语法特征是更重要的,具体为再将目标文本的语法特征表示用对多个卷积窗口使用卷积核的方法生成对应的标量表示:
fensem(·)表示将输入向量的各个分量求和,k为卷积核数量,
最后通过将目标文本的标量表示生成各个尺度多语法特征的注意力权重得到目标文本的加权表示:
ai=softmax(mlp(si));
其中,si为是第i个单词的聚合特征表示,
s604:子胶囊单元401接收目标文本的加权表示并将信息路由传递到父胶囊单元402,得到父胶囊的特征表示;然后执行步骤s606;
本实施例中,经过步骤s602输出zatten,可直接视为n个向量长度为k的初始胶囊,在经典的capsnets中,子胶囊中的信息将会被路由到每一个父胶囊,这种方式同时也会将子胶囊中的一些冗余信息传递到父胶囊,因此本实施例中参考实施例1中的路由方法,我们丢弃掉一些父子胶囊之间的弱连接(权重较小),仅仅使与父胶囊关系最密切的子胶囊被路由。
具体可参考实施例1的路由算法得到缩放后得到的最终信息vi,需要注意的是图4中的部分连接胶囊层上的部分连接路由的不同形式的线条代表不同子胶囊到父胶囊之间的路由。
s606:将父胶囊的特征表示发送给类别胶囊层,得到目标文本属于一个类别中的概率。
本实施例中,类别胶囊层包括至少2个类别胶囊,每一个类别胶囊对应一个类别,类别胶囊层接收到父胶囊的特征表示,每个胶囊中向量的长度表示输入文本属于该类别的概率,并且每组向量的方向还保留了其特征的某些特性,这些特征可以被视为输入样本的特征编码向量,为了增加类别长度之间的差异,本文的模型使用了一个分离的边际损失函数:
lj=gjmax(0,m+-||vj||)2+λ(1-gj)max(0,m--||vj||2);
其中,m+、m-分别是上下边界;当且仅当vj被分类正确时,gj=1;λ是一个超参数,可定义,如在一实施中,λ为0.5。
实施例4
本实施例中,对实施例2的网络和实施例3的方法的有效性进行验证,本实施例中使用常用的5个大规模文本分类数据集:yelp和amazon语料库是预测情感的用户评论,p表示只需要预测的数据评论的极性,而f表示需要预测评论的星数(1星到5星);yah.a是一个问答数据集,设定这7个数据及的卷积核大小和词汇表大小,然后选择几个常见的文本分类模型进行试验,其中,包括线性文本分类模型:joulin2017年提出的利用了h-softmax的分类模型,qiao2018年提出的应用词袋模型进行文本分类;rnn及其变种模型:yogatama2018年使用长短期记忆网络(lstm)构建的生成型文本分类模型,yang2016年提出的一种用于文档分类的层次注意力机制网络;cnn及其变种模型:conneau2017年提出的利用深层次的cnn(29层)提升文本分类算法的精确度,wang2018年提出利用多尺度特征注意力cnn捕捉文本中的变长语法特征;胶囊网络模型:ren2018年使用了压缩编码的方法精简了capsnets模型的参数并使用k均值方法改善了路由算法,yang2018年第一次提出了capsnets在文本分类上的应用。
本实施例中,使用2012年zeiler提出的adam来优化所有可训练参数;输入向量和隐藏状态的维度设置为100或128,部分连接胶囊层中胶囊数目为30,特征长度为100;类别胶囊层的维度设置为16,除此之外,为了减少内存和时间开销,胶囊网络中的权值设置为共享,部分连接路由算法阈值被设置成0.05,本发明的网络模型可参考图4。
最终得到的实验结果如下表1:
表格1不同模型在各数据集下的分类精确度
参考表1,采用的评估指标为精确度(accuracy),可以看到在5中数据集中,本发明中的网络均是最好的,特别是在yahoo和amaz-f数据集上精确度比最好的cnn模型分别提升了0.9和0.5,这是因为这两个数据集的文本平均长度都比较长且目标类别数目较多,这样的文本中包含了大量复杂的语法特征信息,只有拥有强大特征学习能力的模型才能取得好的分类效果;而本发明的网络在这些数据集上都取得了很好的效果;另一方,mul-capsnets为本发明中神经网络的变种,它不包含部分连接路由,从数据上来看,完整的神经网络比mul-capsnets模型在每个数据集上大概提升0.3个百分点,说明此时本发明中网络丢弃的那些连接恰好是会使神经网络效果变差的连接,即直观地将这理解为是子胶囊与父胶囊之间的冗余信息连接。
此外,表1中还对capsnets于本发明的网络进行了实验,从数据看来,capsnets在文本分类任务上的特征学习能力是远远优于cnn,rnn模型的,而本发明在capsnets中引入多尺度特征注意力,且根据表1,本发明的网络在5个数据集上的分类精确度均大于capsnets,也就是说本发明的网络拥有远超其他capsnets模型特征学习能力。
另一方面,本实施例中,还对实施例1的路由方法进行实验,见表1中的mul-capsnets模型,此模型为不使用实施例1中的部分连路由算法的胶囊网络模型,从结果数据可以看出,使用了实施例1中路由方法的精确度要高于mul-capsnets模型。
优选地,本实施例还对本发明中神经网络的参数规模进行了实验,选用以下模型与本发明中的网络进行对比,第一个模型为yang在2018年提出的capsule-b,其利用了多尺度多元语法特征,卷积窗口大小为3,4,5;第二和第三个模型为提取单尺度多元语法特征,卷积窗口大小分别为3和2,对其进行试验得到表2所示:
表格2不同模型参数规模比较
可以看出,本发明中利用的多元语法特征是最丰富但参数却是最少的,与经典的文本分类胶囊网络不同,本发明的网络不需要采用几个相似的完全胶囊网络层来获取全面的多元语法特征,因为其在文本特征表示输入到胶囊网络之前就已经利用多尺度特征注意力捕获了精确的文本语法信息,用较少的参数而得到了更加丰富的多元语法特征;例如capsule-b用24m的参数才获得了文本的3,4,5元语法特征,而本发明中的网络用2m的参数却获得了文本的1,3,5,7,9元语法特征;类似地虽然ren2018利用压缩编码的形式精简了参数,但是其也只是利用了文本的2元语法特征,从而对文本特征的学习能力也远低于本发明中;另一方面,本发明中的网络设置了比其他模型更少的胶囊数目,原因是当经过多尺度特征注意力层后,输入到胶囊层的文本特征已经是非常精炼且准确的了,所以理论上用较少的胶囊来提取底层低级的特征就已经足够了。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。