王超凡,琚生根,孙界平,陈 润
(四川大学 计算机学院,四川 成都 610065)
文本分类属于文本挖掘应用中的一个重要组成部分,包括问题分类[1]、情感分析[2-3]和主题分类[4]等。现在很多主流文本分类模型一般是基于卷积神经网络(CNN)[5]、循环神经网络(RNN)[6]和Transformer[7]。基于CNN的模型主要是通过利用不同尺度的卷积窗口提取到多元文本特征(如窗口大小为3就能提取到文本的三元语法特征),这些文本特征中包含了丰富的上下文信息,能够帮助模型对文本语义进行更好的理解,所以如何准确且全面地捕捉语法特征是模型性能提升的一个关键点。Kim[5]首次提出通过多个卷积核来对句子进行编码以达到对文本分类的目的。随后各种基于CNN的模型开始出现在文本分类任务中,例如,Zhang等人[8]引入了一个使用字符级CNN进行文本分类的探索方法。但是在这些现有的基于CNN的研究工作中,为了精简模型参数,通常会对最后的文本特征表示进行池化操作,这将会使模型丢失大量有用的多元语法特征,并且CNN也不能对特征与特征之间的关系进行学习。于是Sabour等人[9]对CNN进行了改进并提出了胶囊网络(Capsnets)。 由于将神经网络中的神经元替换成了张量使得Capsnets而拥有了更加强大的特征学习能力。
Yang等人[10]第一次将Capsnets引入到了文本分类领域,研究发现Capsnets比现有的基于CNN和RNN的分类模型的分类效果都要好,也说明了Capsnets在文本分类领域的应用潜力。Yang等人[10]虽然通过平均池化利用了文本多个尺度的多元语法特征,但是特征的融合方式却十分不合理,因为其忽视了文本内部单词所对应的各个尺度语法特征并不应该是同等重要,而应该是由具体的上下文决定的这一事实,同时这还无形之中将模型的参数规模扩大成了原来的三倍;而Kim等人[11]提出的Capsnets模型只利用了文本的二元语法特征,直接忽视了文本内部还可能存在的其他多元语法特征。可以看出,现有的基于Capsnets的研究工作都不能很好地捕捉丰富的多元语法特征,这将会直接影响到模型对于整个文本的理解,因为只有当那些最重要的多元语法特征被精确提取到的时候,模型才能在考虑具体上下文的基础上正确地理解到单词的意思。基于此,为了让Capsnets精确捕捉文本中丰富的多元语法特征,本文提出了多尺度特征部分连接胶囊网络(MulPart-Capsnets)。具体地,本文使用多尺度特征注意力CNN[12]作为初级胶囊层的输入,其不仅能通过不同尺度的多元特征之间的注意力来精确捕获文本的多元语法特征,而且还避免了采用多个相似的完全胶囊层而导致的参数规模的增加。
除此之外,在胶囊网络的路由算法中,子胶囊将被路由到每个父胶囊, Ding等人[13]发现这将会使一部分胶囊成为噪声胶囊。受到这个思想的启发,本文提出了一种能减少噪声路由的算法,那就是去掉一些子胶囊和父胶囊之间的弱连接(权重较小),从而减少噪声从子胶囊到父胶囊之间的传递。
本文的贡献有以下两点: 首先,本文将多尺度特征注意力融入到了Capsnets,其能精确地提取文本中的多元语法特征,使模型拥有强大的文本特征学习能力;其次,为了减少从低层胶囊到高层胶囊的冗余信息传输,本文选择去掉一些子胶囊和父胶囊之间的弱连接(权重较小)来改进路由算法。
深度学习在情感分类[2]、机器翻译[14]等许多文本挖掘任务中都取得了巨大成功。目前的方法主要是基于CNN[5]、RNN[6]和Transformer[7]的。在现有的基于CNN的研究工作中,为了精简模型参数,通常会对最后的文本特征表示进行池化操作,这将会使模型丢失大量有用的多元语法特征,并且CNN也不能对特征与特征之间的关系进行学习。为此,Sabour等人[9]提出Capsnets,将神经网络中的神经元替换成了张量以对CNN进行改进。在图像分类领域的实验表明,胶囊网络比CNN具有更强的鲁棒性。Yang等人[10]第一次将Capsnets引入到文本分类领域,实验结果发现,Capsnets比现有的基于CNN和RNN的模型具有更好的文本分类效果。这是因为Capsnets用一组张量来表示文本的特征,而张量的大小、方向等又能具体地表示出特征某些方面的性质,这是普通的CNN所不具备的特性,而这个特性恰好能够帮助Capsnets完成更加复杂的特征学习。
由于CNN可以用不同尺寸的卷积窗口来捕捉相邻位置的单词信息,所以它就拥有了对文本多元语法特征进行建模的能力。 Kim[5]首次提出通过多个卷积核来对句子进行编码以达到对文本分类的目的。随后各种基于CNN的模型开始出现在文本分类任务中,例如,Zhang等人[8]引入了一个使用字符级CNN进行文本分类的探索方法;Conneau等[15]提出在文本分类中使用非常深层的CNN, 因为浅层的CNN不能很好地编码长期依赖信息;Wang等人[12]提出了一种多尺度特征注意力CNN,通过在不同窗口尺寸大小的CNN之间做注意力来获取更精确的文本多元语法特征表示,使模型能更好地理解文本语义。
如前文所述, CNN虽然在文本分类领域已经具有了很好的性能,但是它依然存在一些根本上的问题,于是学者又对CNN进行了改进而提出了Capsnets。
胶囊网络首先被应用于图像分类,它在一些分类任务中表现出很强的性能。而后,Yang等人[10]首次将胶囊网络用到了文本分类模型当中,并提出了两种结构: 第一种在卷积层采用单尺度特征(卷积窗口大小为3),第二种在卷积层采用多尺度特征(卷积窗口大小为3,4,5)。他们的实验证明,多尺度特征是优于单尺度特征的,因为多尺度特征包含了更丰富的多元语法信息。然而在第二种结构中,Yang等人[10]为了能够利用多尺度语法特征,在最后的分类决策之前对来自不同卷积窗口大小的胶囊文本特征作了平均池化操作。本文认为其忽视了文本内部单词所对应的各个尺度特征并不应该是同等重要的事实,并且这还将模型的参数规模扩大到了原来的三倍。而Kim等人[11]却使用单尺度特征的胶囊网络;除此之外,Ding等人[13]认为子胶囊与父胶囊之间的全连接路由可能会产生噪声胶囊, 他们通过将子胶囊与父胶囊分割成包含一定数目的组,让路由在组与组之间进行而改进了动态路由算法,这本质上是一种限制胶囊之间连接数目的改进方法,并且连接数目是静态不可变的,组中的胶囊数目也需要经验的方法来确定。
为了解决以上问题,本文提出了MulPart-Capsnets算法,其将多尺度特征注意力融入到胶囊网络中,使胶囊网络捕获到更加丰富、精确的多元语法特征,还减少了模型的参数;并且本文通过去掉一些子胶囊与父胶囊之间的弱连接(权重较小)使得子胶囊与父胶囊之间的冗余信息传递变少,使模型性能得到了进一步的提升。
针对现有的Capsnets在文本分类领域存在的不能精确捕捉多元语法特征,以及低层与高层胶囊之间存在冗余信息传递这两个问题,本文提出了MulPart-Capsnets。如图1所示,每层上面的数字表示各层的特征维度,模型的输入是文本T所对应的词向量序列,经过双向循环层之后将会得到一个包含长期依赖关系的全局特征表示;接下来这个特征表示将会被输入到多尺度特征注意力层,这层能够精确捕捉到文本所存在的多元语法特征,然后这些特征将会在部分连接胶囊层进行动态路由而得到高层次的文本特征,最后将在类别胶囊层决定文本T所属的类别。
图1 MulPart-Capsnets模型架构 胶囊层的虚线表示不同子胶囊到父胶囊之间的路由
模型的输入是一个由一系列单词w1,w2,…,wn组成的文本T所对应的d维词向量序列。为了得到wi的一个全局特征表示,wi所对应的词向量将分别与其左右所有单词的词向量按次序一起被输入到RNN编码器中,如此便会得到单词wi的一个前上下文特征表示cl(wi)和后上下文特征表示cr(wi),再将两种特征表示连接起来就能得到wi的前后上下文的特征表示xi,如式(1)~式(3)所示。
2.2 多尺度特征注意力层
通过m个不同大小的卷积窗口,最后文本T可被表示为H,如式(6)所示。
H=[z1;z2;…;zm]
(6)
在得到了文本T的特征表示H之后,我们将利用Wang等人[12]提出的多尺度特征注意力来决定对于一个单词来说哪些多元语法特征是更重要的。
(7)
(8)
其中,MLP代表多层感知机。经过注意力模块之后,最后所捕捉到的文本特征被表示如式(12)所示。
(12)
可以认为,通过加权之后,zatten已经包含了精确且丰富的多元语法特征,然后zatten将被送给下一层——部分连接胶囊层。
2.3 部分连接胶囊层
(13)
接下来,通过式(14)~式(16)便可以由所有预测向量得到每个父胶囊的特征表示。
(14)
(15)
(16)
其中,cij是动态路由算法决定的耦合系数,通过在原有的bij的基础之上进行一个softmax函数操作完成,也可以将其视为由ui耦合到sj的先验概率。注意,当进行最后一次路由迭代时,如算法1所示,小于阈值的所有权重cij都将被丢弃,其他值则将被重新加权同时保持它们的和为1。这样,高层胶囊只能从与之最相关的低层胶囊接收信息,其有助于减少父子胶囊之间的冗余信息传输。
除此之外,sj将会通过式(16)进行缩放(这相当于是一个向量版的激活函数)而得到最后的父胶囊j,这一点和其余的胶囊网络模型是保持一致的。最后,将该层的输出v∈Rc×d(c和d分别代表父胶囊的数目和维度)输入到下一层进行最后的分类决策路由。
2.4 类别胶囊层和损失函数
类别胶囊层作为本文模型的最顶层,由C个类别胶囊组成。这一层的每一个胶囊对应一个类别。每个胶囊中向量的长度表示输入文本属于该类别的概率,并且每组向量的方向还保留了其特征的某些特性[9],这些特征可以被视为输入样本的特征编码向量。为了增加类别长度之间的差异,本文的模型使用了一个分离的边际损失函数,如式(17)所示。
(17)
其中,vj表示对应的类别j;m+、m-分别是上下边界;当且仅当vj被分类正确时,Gj=1;λ是一个超参数,在本文中取0.5。
3.1.1 数据集
本文使用如表1所示的七个常用大规模文本分类数据集[8]。 其中,AG是新闻数据集;DBP是来自Wikipedia的本体数据集;Yelp和Amz语料库是预测情感的用户评论, P表示只需要预测的数据评论的极性,而F表示需要预测评论的星数(1星到5星);Yah A是一个问答数据集。这些数据集来自于不同的领域且大小不一,这对于验证模型的有效性是非常有帮助的。
表1 数据集信息
3.1.2 超参设置
表2中的第一列和第二列分别为各个数据集设置的卷积核大小和词汇表大小,因为AG和DBP数据集较小且句子长度较短,所以本文只为其设置4个尺寸的卷积窗口。在本文的实验中,词嵌入使用300D GloVe 840B[16]进行初始化。在训练模型时,词向量会与其他参数一起进行更新。Adam[17]被用来优化所有可训练参数;批大小设置为128,输入向量和隐藏状态的维度设置为100或128,部分连接胶囊层中胶囊数目为30,特征长度为100;类别胶囊的维度设置为16。除此之外,为了减少内存和时间开销,本文也将胶囊网络中的权值设置为共享。部分连接路由算法阈值被设置成0.05。
表2 实验设置
3.1.3 对比模型
本文选择11个常见的文本分类模型作为基线模型(表3),其中包括一些线性文本分类模型(第1-2行)、RNN及其变种模型 (第3-4行)、CNN及其变种模型(第5-9行)以及胶囊网络模型 (第10-11行)。
●Joulin等[18]: 一种简单而又高效的文本分类模型,充分利用了h-softmax的分类功能,遍历分类树的所有叶节点,找到概率最大的标签(一个或者N个)。
●Qiao等[19]: 应用词袋模型进行文本分类,并为每个单词学习一个局部语境单元,以更好利用上下文信息。
●Yogatama等[20]: 使用长短时记忆网络(LSTM)构建的生成文本分类模型,比判别模型更加有效。
●Yang等[21]: 一种用于文档分类的层次注意力机制网络,在句子级别以及文档级别提出了注意力机制,使得模型在构建文档时能赋予重要内容不同的权重。
●Zhang等[8]: 将字符级的文本当作原始信号,并且使用一维的卷积神经网络来处理文本。
●Conneau等[15]: 利用了深层次的CNN(29层)提升文本分类算法的精确度。
●Wang等[12]: 利用多尺度特征注意力CNN捕捉文本中的变长语法特征,并采用稠密连接进一步提升模型的性能。
表3 实验结果
●Niu等[22]: 提出两种编码方式来提取文本分类特征,第一层编码提取全局特征,第二层通过全局编码指引局部特征提取。
●Xiang等[23]: 使用了一种领域嵌入的方法来增强CNN的特征表示能力,考虑了更加丰富的上下文信息。
●Ren等[24]: 使用压缩编码的方法精简了Capsnets模型的参数并使用k均值方法改善了路由算法。
●Yang等[10]: 第一次提出了Capsnets在文本分类上的应用,并采用3个相似的Capsnets网络学习文本特征。
3.1.4 评估指标
本文采用的评估指标为准确率(accuracy)。
3.2.1 与经典模型的比较
为了验证Capsnets比经典的线性模型、RNN模型以及CNN模型拥有更加强大的特征学习能力,本文列出了如表3第1~3部分所示的实验结果。可以看出,对于Yah A、Yelp和Amz所对应的五个数据集,MulPart-Capsnets都达到了最好的分类效果。特别是在Yah A和Amz F数据集上精确度比最好的CNN模型[12]分别提升了0.9和0.5,这是因为这两个数据集的文本平均长度都比较长,且目标类别数目较多,这样的文本中包含了大量复杂的语法特征信息,只有拥有强大特征学习能力的模型才能取得好的分类效果。而MulPart-Capsnets在这些数据集上都取得了很好的效果,证明了Capsnets在文本分类任务上的特征学习能力是远远优于CNN、RNN模型的。
另外,在AG和DBP这两个数据集上,MulPart-Capsnets并没有达到最好的结果,可能是因为这两个数据集都比较小,且句子长度较短,这样句子所包含的语法特征就会相对稀疏,这种情况对于那些使用了特定技巧的复杂模型(比如稠密连接CNN[12], 邻域嵌入模型[19]等)来说无疑是更加有优势的。还有一个可能的原因是对短文本提取尺度大的多元语法特征,可能使句子中某些本来就不存在的多元语法特征被错误地引入到模型当中如对一个长度为7的句子提取9-gram特征,显然是不合适的,这一点将会在本节后续部分进行讨论。
3.2.2 与Capsnets模型的比较
为了证明在Capsnets中引入多尺度特征注意力是有效的,本文又列出了经典Capsnets模型的实验结果,如表3第4部分所示。其中,Part-Capsnets和Mul-Capsnets分别代表不带多尺度特征注意力和部分连接路由的模型;Ren等[24]提出的模型采取了单尺度的语法特征(在卷积层只用一种尺寸的卷积窗口),而Yang等[10]提出的模型,采用了三个尺寸的卷积窗口(只不过每个卷积窗口都对应了一个完整的胶囊层,这使模型的参数提升到了原来的三倍)。MulPart-Capsnets在全部七个数据集上都达到了最好的分类效果,并在除AG和DBP外的五个数据集精确度都提升了至少一个百分点以上,特别是在Amz F上,比Yang[10]的模型提升了2.1个百分点。这说明引入了多尺度特征注意力的Capsnets拥有远超其他Capsnets模型的特征学习能力,因为MulPart-Capsnets在将文本特征输入到胶囊层之前就已经通过多尺度特征注意力捕捉到了丰富且精确的多元语法特征,精确的特征输入无疑更有利于胶囊层的特征学习。
表4中,本文列出了几种基于胶囊网络模型的参数规模。第一个是Yang等[10]提出的capsule-B,其利用了多尺度多元语法特征,卷积窗口大小为3,4,5;第二和第三个模型为提取单尺度多元语法特征,卷积窗口大小分别为3和2。可以看出,MulPart-Capsnets利用的多元语法特征最丰富但参数却是最少的。与经典的文本分类胶囊网络不同, MulPart-Capsnets不需要采用几个相似的完全胶囊网络层来获取全面的多元语法特征,因为其在将文本特征表示输入到胶囊网络之前,就已经利用多尺度特征注意力捕获了精确的文本语法信息,用较少的参数而得到更加丰富的多元语法特征。例如,capsule-B用24M的参数才获得了文本的3,4,5元语法特征,而MulPart-Capsnets用2M的参数却获得了文本的1,3,5,7,9元语法特征;类似地,虽然Ren等[24]利用压缩编码的形式精简了参数,但是其也只是利用了文本的二元语法特征,从而对文本特征的学习能力也远低于MulPart-Capsnets。另一个关键点在于,MulPart-Capsnets设置了比其他模型更少的胶囊数目,原因是当经过多尺度特征注意力层后,输入到胶囊层的文本特征已经非常精炼且准 确, 所 以 理
表4 模型参数规模比较
论上用较少的胶囊来提取底层低级的特征就已经足够了。
从3.2节的讨论可知,MulPart-Capsnets 在DBP与AG这两个最小的文本分类数据集上实验结果相对较差。本文认为这可能是由于小数据集的句子平均长度较短,句子中所富含的多元语法特征也相对稀缺所致。所以在将多尺度特征注意力引入到胶囊网络时引入了一些噪声而影响模型效果。为了验证这个想法,本文对所有数据集限制窗口大小做了如表5所示的实验。对于AG和DBP这两个小数据集,从表中可以看出: 当窗口大小被设置为1,3,5的时候,其分类效果是好于窗口大小为(1,3,5,7)和(1,3,5,7,9)的。特别是在DBP数据集上,当增加窗口大小9的时候,精确度比卷积窗户大小为1,3,5的时候还甚至下降了0.6%。这说明大的窗口对小数据集的实验效果存在很大的影响。应用越多越大的窗口,可能会使模型在小数据集上的实验效果严重下降,大的卷积窗口引入了一些文本中原本就不存在的多元语法特征(如对文本提取九元语法特征,但是一些句子的总长度可能都达不到9)。同理,对于较大的五个数据集,其句子长度较长,包含的语法信息便更加复杂,单词会跟其较远的邻居单词存在依赖关系,所以利用更大的卷积窗口便能提取到这些复杂的语法特征,分类效果会得到明显提升。
表5 窗口尺寸对不同数据集实验结果的影响
本节将通过可视化的方式进一步阐明多尺度特征注意力和部分连接路由算法在胶囊网络中是如何高效工作的。
3.5.1 多尺度特征注意力分析
本文对训练好的神经网络中的多尺度特征注意力进行了可视化分析。如图2所示,假设有一个文本输入"themoviefailedtocreateafantasticstory", 图中颜色越深,表示单词所对应部分的的n元语法特征的权重越大,其中每个单词包含了从1(unigram)到9(9-gram) 的5个尺度的特征。可以看出,对于"the""movie""story"等,模型选择了相对较小尺度的特征;而对于"failed""to"模型却选择了较大尺度的特征。这与人类在理解句子的时候是一致的,"the""movie""story"用一元语法特征便可以表征出其意思,所以并不太需要前后的上下文来帮助确定;而对于"failed""to",模型倾向于使用其较大尺度的语法特征,这不仅使模型捕捉到了一些短语的固定搭配形式,而且还能帮助模型能在考虑更加丰富的上下文的基础之上理解每个单词的释义,从而得到一个更加精准的文本表示以供下一层的胶囊网络利用。所以,本文得出一个结论: 将多尺度特征注意力融入胶囊神经网络,能够使模型自适应地提取多元语法特征,而且所提取到的特征对于胶囊神经网络是十分有帮助的(在未施加平均池化的前提下,得到了文本中丰富的多元语法信息),这将直接使模型的分类效果得到提升。
图2 多尺度特征注意力的可视化分析
3.5.2 部分连接路由算法分析
Mul-Capsnets代表不使用部分连接路由算法的胶囊网络模型。如图3所示,四条线分别代表阈值设为0.01,0.2,0.05和非部分连接路由的MulPart-Capsnets的实验结果。可以看出,当权重阈值取0.01的时候,模型效果与Mul-Capsnets非常相近(即两条线基本完全重合),因为权重过小,模型丢弃的连接数目非常有限,此时便可以认为模型已经退化成了不带部分连接路由的模型,因此模型效果不会有太大改变。而当阈值取到0.20的时候,MulPart-Capsnets在各个数据集上精确度都严重下降,这点也很好理解,因为设置过大的阈值可能导致一些非常重要的路由信息也被丢失,子胶囊与父胶囊之间的正常路由将被打乱,关键信息不能从子胶囊路由到父胶囊。而当阈值取到0.05的时候模型的效果开始变好,并且比Mul-Capsnets这种不带部分连接路由的模型在每个数据集上大概提升0.3个百分点,说明此时模型丢弃的那些连接恰好是会使模型效果变差的连接,本文直观地将这理解为是子胶囊与父胶囊之间的冗余信息连接。
图3 权重阈值分析
本文提出了一种新的基于胶囊网络的模型MulPart-Capsnets,解决了目前一些文本挖掘工作中将单词所对应各个多元语法特征看作是同等重要的问题。利用多尺度特征注意力,模型能精确地捕捉到文本中的多元语法特征,并且拥有了更加强大的特征学习能力。然后本文分析了全连接路由算法中可能存在的冗余信息传递问题,提出了部分连接路由算法,以减少冗余信息从低层到高层胶囊之间的传递。与传统的胶囊网络相比,新模型参数量更小。最后,文本分类的实验也证明了MulPart-Capsnets拥有的强大特征学习能力。虽然胶囊网络已经在文本挖掘领域取得了不错的成绩,但是其本身也还是一个新兴的神经网络模型,也正处于一个不断发展完善的阶段中。下一步的研究将对其动态路由算法继续进行改进,使模型具有更加强大的特征学习能力。