孙 琦,梁永全
(山东科技大学计算机科学与工程学院,山东青岛 266590)
由于社交网络具有开放性,公众往往借助社交媒体表达个人观点、态度和情感,针对社交评论的研究成为自然语言处理热点。情感分析的目的确定产品、服务、事件主题及其属性的主观性极性和极性强度,可通过粒度级别(文档级别、句子级别、短语级别)分析实现情感分析。本文聚焦于句子级别的情感分析研究。现有相关研究方法主要分为两种:
(1)基于情感词典的分析[1]。该方法通过构建情感词典或利用已有的词典,抽取文本中的情感特征词,进而计算社交评论情感倾向;Turney[2]使用基于PMI 的无监督学习方法,通过计算词汇与种子词之间的互信息判断词汇情感极性,并提取词汇平均极性辨别整个文档情感极性;另外,Kamps 等[3]沿用点互信息的方法,通过计算WordNet 中形容词与种子词之间的关联度识别评价词语,该类方法不考虑句子语义结构,句义理解相对粗糙。
(2)基于机器学习的情感分析一般采用传统文本分类技术,将情感词汇作为分类特征关键词,并联合其他特征训练分类器完成文本情感分类,传统机器学习方法有支持向量机(Support Vector Machine,SVM)、朴素贝叶斯(Naive Bayes,NB)、条件随机场(conditional random field,CRF)等。Pang 等[4]分别使用SVM、最大熵及朴素贝叶斯方法对电影评论进行分类,并研究了不同特征选择方式对分类的影响,尽管在情感分析方面取得了一定效果,但该方法缺乏捕捉句子结构的能力。随着深度学习的发展,越来越多的深度学习方法被应用于自然语言处理任务。在情感分析方面,Tang 等[5]使用循环神经网络(Recurrent Neural Network,RNN),引入自底向上的基于向量的表示法判断情感极性,RNN 以序列数据作为输入,适用于多种自然语言处理任务,但忽略了单词特征表示和句法结构;Socher 等[6-7]于2011 年将递归神经网络成功应用于句法分析,提出基于递归自编码器(Recursive AutoEncoder,RAE)的树形回归模型,利用树形模型层次结构合成语义理解情感,在句子级别的情感分析中取得了很好的效果,但该模型也存在一些问题,如在传统RAE 模型中,模型缺少用于计算损失函数的内部情感标签,这直接影响分类准确性,若采用人工标注的方法对每个结点进行标记,人工工作量过于庞大且人为主观的定向误差难以避免。
为解决上述问题,本文提出一种递归自编码器模型,利用点互信息的方法标记内部结点,与半监督递归自编码器相比,本文模型无需手动注释非终端结点的情感标签,而是结合点互信息并按照给定规则计算每个结点情感极性,将其作为交叉熵函数的目标标签,该标签用于定义损失函数训练Softmax 分类器,可减少手动标注工作量。
利用递归神经网络处理自然语言问题的一个原因是该模型可应用于任意长度的输入序列,并且短语与句子的语法结构也能够被解析为二叉树结构[8],根据这种结构,将树的每片叶子指定为固定长度的向量,并将相同长度的中间向量递归组合为单词合并的短语,最终合并为一个向量用于表示整个句子,如图1 所示。
Fig.1 Recursive autoencoder图1 递归自编码器
编码器的目标是学习句子或短语输入表示,Socher等[7]利用递归自编码器(Recursive AutoEncoder,RAE)进行语句特征提取,从而预测句子情感倾向,并在常用数据集上达到了预期效果;Irsoy 等[9]通过将反向传播扩展到递归神经网络中,其与树有关的信息从根流回到叶结点中,使结点捕获周围结构全局信息;Wang 等[10]利用递归神经网络与条件随机场对句子进行情感判断;Rifai 等[11]利用卷积自编码器对特征进行提取;梁军等[12-13]将情感极性转移模型融入到递归自编码器中,取得了不错的效果,之后将LSTM 与该模型融合,进一步优化模型表征能力;Fu 等[14]提出短语级递归神经网络,减小了解析树复杂度,并利用HowNet 词典训练双向递归神经网络,在准确性和效率方面均有提升。这些方法通过递归神经网络对文本进行建模,可以有效捕获文本语义信息,从而提高机器学习方法处理情感分类任务的性能。
情感分析是在自然语言处理中对指定文本或语料库中的观点和情感进行分类的一项重要任务[15]。随着在线评论网站和个人博客等网络资源的普及,为使用信息技术理解他人观点,众多研究者尝试对不同粒度的文本进行情感分析,并取得了良好效果[16-19]。本文致力于句子级情感分析,通过改进RAE 以获得更佳性能,采用递归自编码器的组合方式学习句子向量表示并对其情感倾向进行分析。
为构建情感分析深度学习模型,本文将PMI 引入到情感极性值计算中,分别计算句中单词情感倾向值,并整理出程度副词和否定词表调整短语情感强度及倾向性。
标准RAE 的目标是学习回归模型的输入表示,使用RAE 获得句子低维向量的递归自编码结构,如图2 所示。
Fig.2 Recursive autoencoder structure and reconstruction node(unfilled)图2 递归自编码结构与重构结点(未填充)
假设给定一个包含m 个单词的句子,每个单词均用N 维向量表示,首先将单词投影到一个向量列表x=(x1,x2,…,xm),合并相邻两个单词c1=x1和c2=x2,并根据子节点(c1,c2)计算其父节点向量p,如式(1)所示。
其中,[c1,c2]∈R2N由向量c1,c2连接得到,W∈R2N是一个连接两个子向量的参数矩阵,添加偏置项后,对所得向量应用激活函数,例如tanh。编码后通过在重构层重构子节点验证父节点p对子节点(c1,c2)的表示,如式(2)所示。
利用式(3)计算输入与其父向量p之间的重构误差。
利用RAE 模型的目标是最小化二叉树中每个结点的重构误差总和。
其中,x为句子的向量列表,而A(x)表示根据输入x构建的所有可能的二叉树集合,此外,T(y)是一个函数,该函数返回由树中所有非终端结点s索引的树的三元组。
对于半监督递归自编码器,无需为输入向量提供树形结构,可利用贪心策略递归构建短语树,在计算第一对(c1,c2)=(x1,x2)重构误差分数后,调整输入向量对(c1,c2)=(x2,x3),计算其隐藏父节点和误差分数,保存每个节点对父节点和误差分数,再选择误差分数最低的对以及其父节点表示p代表的短语,替代子节点在句子中的表示。例如:假设句子(x1,x2,x3,x4)且(x3,x4)的误差分数最低,第一次组合后产生新序列(x1,x2,p(3,4)),该组合过程会重复,并把p(3,4)作为新向量输入,接下来依次计算新序列中各节点误差分数,按照误差分数大小产生新序列(p(1,2),p(3,4))或(x1,p(2,3,4)),最终合并为一个节点作为句子表示。
对于递归自编码器,树中每一个内部结点均有一个Softmax 分类器预测该结点类分布,通常通过最小化交叉熵函数训练Softmax 分类器,该损失函数可衡量预测输出与目标之间的差异相似性,本部分介绍如何获取树中每个结点的目标分布。每个结点目标分布获取的准确性对最终模型训练的准确性影响很大,采用人工标注的方式对每个结点进行标注,不仅需付出高额代价,而且会产生人为的定向误差。为了解决该问题,本文提出一种基于点互信息的方法计算该结点情感极性。
2.2.1 单个单词情感极性计算
互信息是一种计算两个随机变量间相似信息的度量,本文选取具有较强情感的种子词建立褒义词和贬义词表,分别计算句中单词与褒义词表和贬义词表中词语PMI 值,并将其相减,得到该目标词情感倾向值,如式(5)所示。
其中,P(xi xj)表示两个词语在文本中出现的概率,P(xi)和P(xj)分别为xi和xj在文本中单独出现的概率。
px和nx分别表示褒义词表Pxs和贬义词表Nxs中的单词,当SO-PMI(xi)大于0 时,xi为褒义词;当其等于0 时,xi为中性词;当其小于0 时,xi为贬义词。
2.2.2 计算短语的情感倾向
获得情感极性后,使用以下规则基于单词情感值为树中的每个节点计算情感标签。
(1)程度副词。程度副词能够极大增强情感词情感程度,根据程度副词表,若短语中包含程度副词,该短语情感强度将被修改(见表1)。例如:在”I am very happy today”中副词”very”修饰”happy”,原本情感倾向经过修饰后得到明显加强。其中情感值计算公式为:
其中,d表示修饰该情感词汇的程度词情感权重,p为单词”very”与”happy”组合后的短语。另外,本文将短语情感强度限制在-1~1,即如果label(p) >1,label(p)=1。
(2)否定词。否定词在文本分析中有反转情感倾向的作用,所以在文本情感分析中否定词也应作为重要的分析对象。本文构建否定词词表,并规定若短语中包含否定词,则反转短语情感倾向,例如:连接单词”not”与”happy”的短语,则label(pnot happy)=-label(xhappy)。
Table 1 Examples of adverbs of degree表1 程度副词示例
除上述情况外,还根据单词情感值通过线性运算计算短语情感倾向,其中xleft和xright分别是短语左孩子节点和右孩子节点。
根据上述规则,为每个内部节点定义一个初始标签,对目标分布t∈RK,假设每个目标分布均遵循0-1 编码,即如果有K个类别,则其长度为K且正确的标签为1,其他为0,节点预测分布为:
为了验证准确性,将交叉熵函数用作代价函数,并假定tk为标签真实概率。
每个内部节点总误差由交叉熵误差与重构误差组成。
其中,α是可调参数,用于调整交叉熵误差和重构误差之间的平衡,根据交叉熵误差与重构误差函数,可以得到最终代价函数。
其中θ为参数集合,θ=Wl′}。
实验采用IMDB 电影评论数据,该数据被分为用于训练的25 000 条评论和用于测试的25 000 条评论,训练集和测试集均包含50%的正面评价和50%的负面评价。本文共设计2 个实验验证递归自编码器模型。
实验一:可调参数选择,以确定可调参数对算法本身的影响,并最终选择一组最优参数;实验二:比较本文模型与传统RAE 及其他模型优劣。
实验主要从4 类参数进行调整:词向量维度、重构误差权重α、正则系数λ以及算法迭代次数。针对重构误差权重α,实验选择从0.1 增长至0.5,间隔为0.1,对于正则系数λ的取值依次从{1e-07,1e-06,1e-05,1e-04,1e-03,1e-02}中进行测试。词向量维度选择从{50,100,150,200,300}中对模型进行验证,算法迭代次数则从{50,70,100,120,150}进行测试,具体效果如图3、图4 所示。
Fig.3 The influence of α on the IMDB dataset图3 重构误差权重选择
Fig.4 The influence of iteration number on the IMDB dataset图4 迭代次数选择
通过实验发现重构权重参数α=0.2 时效果最佳,随着实验次数的增加,模型数据拟合度也随之增加,但当迭代次数超过120 之后,过拟合问题随之出现,导致泛化能力下降,因此最终参数选择为迭代次数120,重构权重α=0.2,词向量维度为100,正则化系数λL=1e-04,λW=1e-05,λcat=1e-07。
为了分析模型情感分类效果,将本文模型与其他模型进行比较,包括SVM、LSTM、MLP、NB 以及传统RAE,在传统RAE 中,采用与文献[7]中相同的参数配置。从表2 可以看出,本文算法在电影评论数据集上的性能优于其他方法,这也验证了节点包含的情感信息对算法分类的影响,同时定义程度副词以及否定词等语义规则能够有效改善句子上下文情感信息。
Table 2 Model comparison results表2 模型对比结果
本文提出一种新的半监督方法进行情感分类。该方法利用点互信息训练RAE 模型,对IMDB 电影评论数据集进行分析,实验表明本文模型在情感分类任务上优于其他算法。
尽管该方法在句子级的情感分析中取得了较好效果,但仍需进一步改进,例如利用点互信息的方法训练深度神经网络,最终结果很大程度上取决于种子词表质量,因此该方法具有一定的局限性。另外程度副词与否定词对句子影响采用的规则需进一步完善。下一步将从这两个方面对模型进行改进,并将模型应用于其它粒度级别的情感分析,以验证模型适用性。