使用胶囊网络的细粒度情感分析方法

2020-12-09 09:27徐广义邓忠莹
小型微型计算机系统 2020年12期
关键词:路由胶囊语义

滕 磊,严 馨,徐广义,周 枫,邓忠莹

1(昆明理工大学 信息工程与自动化学院,昆明 650500) 2(昆明理工大学 云南省人工智能重点实验室,昆明 650500) 3(云南南天电子信息产业股份有限公司,昆明 650500)

1 引 言

情感分析(SentimentAnalysis),也称为观点挖掘[1].传统情感分析任务[2-4]更专注于推断句子级别或者文档级别的情感倾向,通常分为积极、中立和消极3类.和SA任务不同,Aspect-BasedSentimentClassification(ABSC)旨在发现实体方面相关的情感倾向,是情感分析领域的基础任务之一[5,6].ABSC任务数据集通常由上下文和给定的方面组成.通常,消费者会对多个方面同时基于不同的评价,同一条产品评论中可能包含多种情感倾向.例如,“朋友请客,两个人中午去吃的,虽然不是节假日,但人还是非常的多,等了很长时间才上餐,价位偏高,但是味道还可以”,毫无疑问的是,消费者对食物给予了积极的评论,而出于某些原因,可能餐厅让顾客等待了太久,顾客对服务给予了消极的评论.通常传统情感分析会对句子级别的评论或文档级别的评论集作出相应的情感预测,人们对情感分析任务提出了更加细粒度的要求之后,需要对一条产品评论的不同方面的情感倾向进行预测.

近几年,很多神经网络模型(例如卷积神经网络[7],循环神经网络[8],循环自编码模型[9]等)在情感分析任务上都有很好的表现.但依旧存在以下问题:1)数据集标注代价昂贵.ABSC任务数据集的标注通常伴随着多个方面,并人工判断对应的情感倾向,这一方面很难避免人工加入自己的主观意见造成局部的标签不可信,另一方面增大了数据标注的难度和成本.与之相比,对于文档级别的产品评论,通常伴随着给予该产品的产品得分,有着标注成本小、数据集容易获得的优点;2)附加的语言知识对ABSA任务会有些许帮助,如情感词汇,否定词和强度词等,需要仔细地结合到当前模型中,以实现他们在预测准确度方面的最佳潜力.然而,语言知识的开发需要付出巨大的努力,而且开发的情感词汇可能不适用于某些特定领域的数据集.例如,当病人向医院服务部门提供反馈时,“快”被认为是强有力的正面词.这些话在影评中可能被认为是负面的.我们的胶囊模型不需要任何语言知识,通过共享文档级别的情感分析的特征和语义信息实现迁移学习,对方面情感给出准确预测.

胶囊网络是一种基于动态路由的网络结构[10].胶囊是一组神经元的集合,它的激活向量表示实体的实例化参数.胶囊之间的参数传递通过动态路由算法来实现,其中高层胶囊输出向量表示对应类别的语义信息,向量长度表示对应情感类别的预测概率.Zhao[11]等人首次将胶囊网络应用于文本分类.证明了胶囊网络应用在文本中既能提高编码空间的有效性,同时保持了表达能力的灵活性.Chen[12]等人提出了利用胶囊网络提出了共享文档级别知识对方面情感判断的迁移学习框架:TransCap.在此之上,我们的模型设计了更加健壮和合理的动态路由方法.当将特征通过一维卷积转化为特征胶囊之后,针对方面级的情感分析任务和文档及情感分析任务分别使用Asp-Routing和Doc-Routing动态路由方法.其中Asp-Routing动态路由方法让方面嵌入向量和输入句子嵌入之间建立语义关联,Doc-Routing动态路由方法使特征胶囊分配合理的注意力权重,之后通过共享语义和特征胶囊,增强网络对方面情感方向的识别能力.

本文基于迁移学习的胶囊网络,使用了一种具有新颖的动态路由方法,使得方面嵌入向量和输入句子嵌入之间建立了强大的语义关联.再通过共享的语义和特征胶囊,增强网络对方面情感方向的识别能力.最终通过类胶囊输出语义向量来预测方面情感.文章主要贡献如下:

1)使用双嵌入和位置信息组成输入文本表示层,增强文本上下文之间的语义关联.这一步对使用卷积神经抽取特征的质量起到了很关键的作用.

2)基于注意力机制的原理,我们不同任务设计了不同的动态路由方法,使得方面嵌入和输入句子嵌入之间建立较强的语义关联.比如对于文档级别的情感分析任务,受到自注意力机制的启发,我们可以通过自注意力获取决定文档的情感特征的权重.对于方面级别的任务来说,我们关注的是方面嵌入在句子中体现相关情感的特征,所以注意力机制达到了我们目的.

3)我们使用带有扩展的动态路由方法的模型在中文数据集上实验,验证了模型的有效性.

2 相关工作

对文本情感分析任务可以分为文档级别[13]、句子级别[14]和方面(AspectLevel)级别[15].近些年,基于神经网络的方法在自然语言处理任务的各个领域都取得了优异的成绩,这归因于神经网络是一种学习单词分布或段落分布的简单有效的方式[16].很多模型已经被应用于ABSC任务,例如:递归自动编码器[17]、循环神经网络[18]、LSTM[6]、GRU[19]等.BERT[20]是自然语言处理的一个里程碑,它是由多个transformer[21]组成的强大特征抽取器,打破了多项自然语言处理任务的最好成绩.由于BERT预训练过程使用了维基百科等正式文本语料,以及训练过程不区分任务的特点,Xu[22]等人使用非正式语料在BERT模型继续训练并应用于ABSC任务,并取得了良好了结果.在此基础之上,Rietzler[23]等人将模型应用在特点领域的语料中进行微调,并取得了当前最好的成绩.Li[24]等人,使用BERT模型将ABSC任务视为序列标注任务,同时输出方面及对应情感,实现了一种端到端的网络结构.

Sabouret[10]等人提出了一种用于图像分类的胶囊网络.Zhao[11]等人首次将胶囊网络应用于文本分类,并提出了三种策略来稳定动态路由过程,以减轻某些可能包含冗余信息或未经成功训练的噪声胶囊的干扰.证明了胶囊网络既能提高编码空间的有效性,同时保持了表达能力的灵活性.Kim[25]提出了一种简单有效的减少动态路由计算复杂度的方法,该方法在多个数据集上取得了良好的效果.Wang[26]等人提出了一种通过共享组件同时进行方面检测和情感判断的胶囊网络模型,并实现了当时最好的结果.Xiao[27]等人利用胶囊网络进行多任务学习,与多任务学习不同,迁移学习关注主要任务的学习结果,次要任务对主任务学习起到辅助作用.Chen[12]等人提出了利用胶囊网络提出了共享文档级别知识对方面情感判断的迁移学习框架也取得了不错的实验结果.与之不同的是,本文提出的模型在双嵌入表示层的基础上稍加修改,使用卷积神经网络提取特征之后通过一维卷积转化为特征胶囊.然后基于迁移学习的胶囊网络,使用了改进的动态路由方法,让方面嵌入向量和输入句子嵌入之间建立了强大的语义关联,之后通过共享的语义和特征胶囊,增强网络对方面情感方向的识别能力.最终通过类胶囊输出语义向量来预测方面情感.

3 提出的模型(MADC)

3.1 问题分析

由于模型是将文档级别任务中获取的特征和语义辅助方面级别的情感任务的迁移模型,所以分为分档级别和方面级别.我们定义文档级别使用的语料语料CD,用于学习任务TD(Doc-Task),方面级别任务使用的语料为CA,用于学习任务TA(Asp-Task).我们的网络模型目的是利用任务TD传递的知识来提高任务TA中的方面情感预测函数fA(·)的学习.当给定一个句子S={w1,…,wa,…,wL}∈CA,其中wa为方面词,TA的任务就是预测方面词的情感倾向.值得注意的是,一个句子中的方面词不止一个.当给定一个意见文档D∈CD,TD的任务是对整个文档的情感倾向做出预测.值得注意的是,与多任务学习不同,迁移学习关注主要任务TA的学习结果,次要任务TD对主任务学习起到辅助作用,学习效果我们并不关心.

3.2 模型框架

我们的模型如图1所示.

框架主要由嵌入层、特征胶囊、主胶囊和类胶囊组成.由于迁移学习任务分两种,图中上半部分是TA任务学习路线,下半部分是TD任务学习路线.画虚线部分,针对任务TA我们设计了特定的动态路由方法(Asp-Routing),同样对任务TD也使用了动态路由方法(Doc-Routing),但是两个任务中的特征胶囊和主胶囊部分是分别共享的,这也体现了迁移学习的学习过程,两任务会分别通过各自的类胶囊之后根据最终的向量长度确定各自对应的情感极性.下面将详细介绍整个框架的各个部分.

图1 模型的总体结构Fig.1 MADC architecture

3.2.1 嵌入层

嵌入层的目的是将输入单词的嵌入向量进行编码来表征句子信息.嵌入层的质量直接决定了其后的网络层解码信息的难易.现有的词向量表示方法有Word2Vec[28],GloVe[29],fastText[30]等.根据奥卡姆剃刀理论[31],我们应该寻求更加简洁并能自动进行词嵌入表示学习的模型.当我们将模型应用于真实场景中时这一点就显得尤为重要,因为一个复杂的模型通常伴随着跟高的时间或空间复杂度.然而单纯的词嵌入表示方式并没有包含上下文的语义信息,更多时候一个词的含义和所在文章的主题是密切相关的.Tang[32]等人开发了3个神经网络,将文本情感极性的监控有效地融入到它们的损失函数中.Xu[33]等人提出的双嵌入表示层,并验证了此模型对特征提取的有效性.基于此,我们设计了以下词嵌入表征方式.

对TA学习任务,假设输入句子序列为S={w1,…,wa,…,wL},其中L表示句子长度.此序列将由对应的嵌入矩阵(Wg,Wo,Wl)得到3部分词嵌入表征(xg,xo,xl).Wg表示通用嵌入向量,它由一个大的通用语料库使用GloVe方法训练得到,通过查表得到对应向量xg={g1,…,ga,…,gL}∈Rdg×L.Wo由一个小型的预训练语料库使用fastText训练而来,xo={o1,…,oa,…,oL}∈Rdo×L.值得注意的是,使用的小型语料库必须和TA任务训练和测试数据所属领域相同.因为同一单词所在领域不同,表示的含义会有些许差异.另外,受Gu[34]等人的启发,我们使用了额外的位置向量层,我们计算了句子中每个单词距离方面词wa之间的距离,并得到了一个附加的序列,xl={l1,…,la,…,lL}∈Rdl×L.对于TD任务,因为输入句子中没有方面词,所以我们将位置嵌入的查询表随机初始化,这样通过映射我们可以得到输入句对应的位置向量xi.

最终每个单词wi的嵌入向量为xi=(gi⊕oi⊕li)∈Rdh,其中dh=dg+do+dl,⊕表示连接操作.输入句子S(D)通过转换矩阵之后的句子嵌入为X={x1,…,xL}∈Rdh×L.

3.2.2 特征胶囊

由于胶囊网络的输入为向量,所以在这一层中,我们通过卷积神经网络对输入的文本嵌入抽取N-Gram特征作为胶囊的输入.具体做法如下:

假设输入句子嵌入X={x1,…,xL}.我们使用CNN层进行特征抽取,该层中包含多个一维卷积核,并且每个卷积核都拥有固定的窗口大小k.我们得到X中第i个n-gram特征向量ri:

ri=Wa⊙Xi;i+k+b

(1)

其中⊙表示卷积操作,Wa∈Rdp×(dh×k)表示一组卷积核,(dh×k)为卷积核大小.k=2c+1表示n-gram大小,即卷积核的宽度,所以卷积核都会计算第i个单词周围c个上下文编码信息,dp为一个特征胶囊的维度.在X中滑动卷积核F,我们会得到一系列将n-gram信息编码在内的特征胶囊ri∈Rdp×(L-k+1).在卷积核滑过当前文档之后,我们可以将所有特征映射收集到一个特征图ri={m1,…,m(L-k+1)/2}.为了增加特征提取的多样性,我们将由3个具有不同窗口大小(k=3、5、7)的过滤器提取的多个特征图连接起来.之后使用1×1卷积核Wb={W1,…,Wd}∈Rd,其目的是将特征图中的标量mi转化为胶囊向量pi:

pi=pi1⊕pi2⊕…⊕pid∈Rd

(2)

其中pij=mi×wj∈R,⊕表示连接操作.过程如图2所示.

3.2.3 主胶囊

对于TA任务,我们的目的是让方面词(aspect)结合上下文探索所所属情感极性,过程类似于注意力机制.比如在包含两个相反极性评论的一句话中,“朋友请客,两个人中午去吃的,虽然不是节假日,但人还是非常的多,等了很长时间才上餐,价位偏高,但是味道还可以”,对于“服务”这个方面词来说,上下文中的“味道”应该被加强,而对于方面词“偏高”来说应该被削弱.对于TD任务,我们需要在整个句子中寻找决定情感倾向的词,寻找过程类似于自注意力机制.为了达到这样的目的,对于不同任务,我们采用不用的动态路由方法.

图2 特征胶囊形成过程Fig.2 Generation process of feature capsule

对于任务TA,为了让方面判断上下文决定情感极性,我们提出了一种新颖的动态路由方式:Asp-Routing Approach.假设特征胶囊中每个胶囊向量为ri,通过以下公式得到方面路由权重ai:

wa=riea

(3)

其中ea表示方面的嵌入向量,在多方面单词的情况下,使用嵌入向量的平均值.方面路由权重ai∈[0,1],表示在上下文中融入了方面词信息的多少.如果ai=0,那么特征胶囊中的该词的路由道路将会被阻断.

对于任务TD,与之对应的动态路由方法为:Doc-Routing Approach.文档单词路由权重计算公式如下:

wd=riei

(4)

因此我们设置了一个分段函数表示gi来计算路由权重:

(5)

对于每一个胶囊向量,我们使用点积将路由权重与之相乘,得到语义特征胶囊P.以上步骤将n-gram特征胶囊转化为了语义特征胶囊P.这一层中,主胶囊的数量与输入文档的大小成正比,这需要路由过程中大量的计算资源.一方面为了缓解这个问题,我们将大量语义胶囊进行压缩.另一方面,我们想浓缩每个通道的局部特征信息,得到更加精确的全局语义表达.因此每个压缩胶囊通过使用所有语义胶囊ui的加权和计算,表示为:

ui=∑jbjpj

(6)

其中bj参数通过监督学习得到.之后通过非线性挤压函数[10]将ui控制在[0,1]之间.

(7)

3.2.4 类胶囊

在Hinton提出的原始胶囊网络中,只是对MINIST数据集进行分类,它使用类胶囊来确定所属类别并用其长度作为分类概率.与之不同的是,我们的模型针对TA和TD任务分配不同的两类胶囊.这样的结构使得我们的模型能够在一个统一的框架中训练和测试.在给定两个任务的输入数据的情况下,前3层共享大部分参数,共同训练TA和TD,从而将文档级数据中的知识成功地完全转化为方面级任务.在最后一层中,每个类胶囊分别用于计算TA和TD中每个类的分类概率.

(8)

其中cij是由“路由SoftMax”定义的耦合系数.

(9)

其中bij是语义胶囊i应该传递给类胶囊j的对数先验概率.它是使用下面介绍的动态路由方法计算的.之后再次使用非线性挤压函数将sj的长度压缩在[0,1]之间.

vj=sqush(sj)

(10)

bij确定语义胶囊i和类胶囊j之间的连接强度.它初始化为0,并用aij更新.

(11)

在更新cij之前,将aij添加到bij中:

bij←bij+aij

(12)

3.2.5 损失函数

类胶囊的长度用来表示情感极性的概率.激活胶囊的长度应大于其他未激活胶囊长度.因此,我们在每项任务中对每一类胶囊j采用单独的边界损失Lj:

Lj=Yjmax(0,m+-‖vi‖)2+λ(1-Yj)max(0,‖vi‖-m-)2

(13)

如果情感极性属于类胶囊j,则Yj=1,否则为0.根据Sabour等人的论文,我们设置m+=0.9,m-=0.1,λ=0.5.对于单任务来说,损失函数为:

LT=∑jLj

(14)

其中T为A或D,我们分别定义任务TA和TD的损失为LA和LD.模型的最终损失L是单个任务上两个损失的线性组合.

L=LA+γLD

(15)

其中γ∈[0,1],为控制TD权重的超参数.训练收敛时,选择任务中活动概率最大的类胶囊作为情感极性的预测.

4 实 验

4.1 数据集

对于通用嵌入,我们使用300维的Glove嵌入,这些嵌入是从几乎覆盖了所有网页语料库中预训练出来的.对于领域特定的嵌入,我们通过爬虫收集了一个笔记本电脑评论语料库和一个餐厅评论语料库,并使用fastText来训练双嵌入表示.笔记本评论语料库包含来自淘宝、京东等网站爬取的200余种笔记本电脑的评论数据集.餐厅评论语料库来自大众点评的500余家餐厅的5万余条评论.我们将嵌入维度设置为100,迭代次数设置为50,并将其余超参数设置为fastText中的默认值.然后我们进一步使用fastText通过子词N-gram嵌入来组成词汇表外的单词嵌入.双词嵌入模型代码在GitHub[35]中可以找到.

对于TA任务来说,我们通过在多个电商和餐厅评论爬取了两个领域数据:计算机产品领域和餐厅评论.通过整合和人工标注,生成了中文计算机产品评论集(CCR)和中文餐厅评论集(CRR).数据集中对评论的各方面的情感进行打分,分为正、负、中3种极性.我们邀请3位专家首先一起对TA任务数据集中每句话的方面进行抽取,比如产品服务、笔记本质量等,然后分别对抽取的方面进行标注,若个别评论方面极性标注不同,我们采用商讨的方式重新决定该方面的情感倾向.训练集大小分别使用将近2500条产品评论和4300余条餐厅评论,并随机将训练集的20%用于开发集,并保留另外80%用于训练.测试集分别使用近900条产品评论和1600余条餐厅评论,具体数据见表1.

对于TD任务来说,主要的目的在于通过迁移学习对TA任务提供帮助,具体TD任务的表现不做深究.文档级别的数据集也分两个领域,计算机产品评论和餐厅评论.相比于更细粒度的TA任务来说,文档级别的数据集更好获得.我们选取亚马逊中文数据集[36]中电脑相关的数据集作为计算机产品评论(YCR).餐厅评论数据集我们选取了张永丰教授收集的来自大众点评的数据集(DZR)[37],按照打分分为正、负、中3种极性(打分小于3.0的定位为‘负类’,等于3.0定义为‘中等’,大于3.0定义为‘负类’),并随机各抽取2万条评论作为训练集,这些所有的样本都用于辅助训练.所有用于情感分析的数据集统计如表1所示.

表1 实验所用数据集统计表Table 1 StatisticalTable of datasets used in the experiment

4.2 参数设置

我们使用840B个标记作为Glove预训练词嵌入.根据Sabour,r=3.其余超参数在开发集上进行调整.我们设置dg=300,do=100,dl=100,d=32.我们使用Adam[38]优化器,学习率为0.001,批大小为128.我们为模型设置50个epoch,并使用early-stop技术,即如果在开发集上的性能在5个epoch中没有提升,则停止训练.准确度(Acc)和F1值在验证集上随机初始化5次取平均值.

4.3 基线

本文选择了近几年来在ABSC任务上具有代表性的7个模型作为本文的基线.Attention-basedLSTM模型是一种基于LSTM和注意力模型的情感分析框架,该方法首次将注意力模型带入到LSTM中用以增强方面嵌入的识别能力,具有很强的代表性.IAN[39]模型是一种交互式注意力网络,该模型通过互动学习增强了方面嵌入的上下文表征能力有助于情感分类.AF-LSTM[40]模型采用循环卷积和循环关联的方法对方面嵌入和单词之间的相似性进行建模,并巧妙地整合到了注意力框架中,达到了当时最好的水平.GCAE[41]提出了一种基于卷积神经网络和门控机制的模型,通过使用提出的门控单元可以根据方面嵌入选择性地输出情感特征.IARM[42]提出了一种基于GRU利用记忆网络将相邻嵌入的相关信息融合到目标方面的情感分类中的新方法.PRET+MULT[43]模型是一个基于多任务学习的胶囊网络框架应用于方面级别的情感分析.TransCap模型是基于迁移学习的胶囊网络结构,与本文的不同点在于特征胶囊的生成方式以及动态路由的变化.

4.4 实验结果分析

为了清楚起见,我们将基线的7种模型进行了分类,其中Attention-basedLSTM、IAN、AF-LSTM和IARM是基于记忆网络LSTM或GRU的模型,GCAR、PRET+MULT和TransCap属于混合模型.实验结果如表2所示.

表2 各模型实验对比结果Table 2 Comparison of different methods

通过实验验证,我们的模型在两个数据集中和所有的基准相比,准确率和F1值均有提升.TransCap模型是基于迁移学习的胶囊网络框架,其将文档及知识应用于方面级的情感分析任务,所以其性能总体优于其他的基线,模型PRE-TMULT是一个多任务学习模型,由于多任务的本质在于找到多个任务的最优解,此过程可能将方面级别的情感分析任务陷于次优.在基于循环神经网络记忆模型的基线中,由于使用了注意机制的IAN模型实现了比其他总体性能更高的性能.但是AF-LSTF在CRR数据中表现最好,原因是因为该模型考虑到了上下文嵌入对方面嵌入的影响,并将其整合到了注意力框架中.GCAE在所有基线中表现最差,因为简单的基于CNN的模型无法捕捉上下文单词之间的长期依赖关系.

在我们提出的模型(MADC)中,使用的双嵌入融合句子位置的表示方法,不仅融入了上下文嵌入的语义信息,还考虑到了特定领域的专有词汇的重要性,为使用CNN提取有效特征奠定了基础,所以效果好于使用CNN进行特征抽取的GCAE模型.通过使用迁移学习的胶囊网络,使得模型可以灵活使用文档级别语料中提取的特征胶囊进行最终的情感分类任务.

4.5 模型简化实验

为了分析MADC模型中动态路由方法改进前后的差别,我们设计了模型的简化实验.1)“MADC-AD”:我们同时删除了Asp-Routing和Doc-Routing路由方法,并为所有特征胶囊设置相同的权重1.0.2)“MADC-A”:我们删除了TA任务的Asp-Routing路由方法,保留了TD任务中的Doc-Routing路由方法.3)“MADC-D”:我们删除了Doc-Routing路由方法,保留了Doc-Routing路由方法.4)“MADC-S”:我们移除主胶囊,并将加权的特征胶囊直接传递给类胶囊.5)“MADC-DOC”:我们移除了动态路由方法,即主胶囊将以相等的概率分配到所有类胶囊.实验结果如表3所示.

表3 MADC模型简化实验结果Table 3 Experiment results of ablation MADC

在意料之中,简化之后的模型实验结果都下降了很多,这清楚地表明了这些组成部分的有效性.具体来说,MADC-AD性能最差,因为它在从MADC中移除了Asp-Routing和Doc-Routing路由方法后无法生成与目标相关的特征胶囊.相比于使用同一种动态路由算法,本文提出的两种动态路由是关键,因为它针对不同任务生成权重同时有助于减少TA和TD之间的干扰.MADC-A和MADC-D呈现不同程度的下降说明两种动态路由算法在不同任务中的有效性.MADC-S性能的下降也表明主胶囊在表达语义的同时对在特征和极性之间建立准确的连接有着非常重要的作用.MADC-DOC性能的下降说明动态路由算法在分类任务中的有效性.

5 结 论

在本篇论文中,我们提出了一个新的网络模型:MADC.首先,使用的双嵌入融合句子位置的表示方法,融入了上下文嵌入的语义信息,还考虑到了特定领域的专有词汇的重要性,为使用CNN提取有效特征奠定了基础.之后通过一维卷积转化为特征胶囊,基于已有的迁移学习的胶囊网络框架TransCap之上,使用了改进的动态路由方法,让方面嵌入向量和输入句子嵌入之间建立了强大的语义关联,之后通过共享的语义和特征胶囊,增强网络对方面情感方向的识别能力.最终类胶囊输出语义向量来预测方面情感.模型在自定义中文餐厅评论和笔记本评论数据集上的成绩均有所提升.我们下一步的工作是探索胶囊网络的其他迁移学习框架,并尝试解决人为标记导致的标签不可靠的问题.

猜你喜欢
路由胶囊语义
真实场景水下语义分割方法及数据集
国家药监局批准七蕊胃舒胶囊上市
时光胶囊
数据通信中路由策略的匹配模式
时光胶囊
OSPF外部路由引起的环路问题
路由重分发时需要考虑的问题
“吃+NP”的语义生成机制研究
汉语依凭介词的语义范畴
我有一颗神奇胶囊