文本情感,深度学习

用于文本情感分析的深度学习方法综述(上)

文:清华大学深圳研究生院 杨余久 | 2018年第四期 (0) | (0)

摘要:文本情感分析旨在对蕴涵在文本中的观点和情感进行挖掘和分析,进而可以在个性化服务、推荐系统、舆情监测和产品调研等应用方面提升性能。对于文本情感分析,从机器学习的角度,一般可以把它转化成分类问题,其中处理的关键在于文本表示、特征提取以及分类器模型建立,而传统方法中最为核心的是情感特征词典构建。

近年来,深度学习方法在图像、语音等诸多领域取得了令人瞩目的进展,相比于传统的机器学习方法,该方法的最大优势就是可以从大量的数据样本中自动地学习出丰富、有效的特征,从而获得更好的效果。已有研究表明,在文本表示层面,词语向量表示方法可以获取文本的语义、语法以及自身结构信息,为情感分析研究提供坚实基础,并成为当前该领域的研究热点。本文首先介绍了文本情感分析的概念和问题分类,对深度学习在文本情感分析中的相关工作进行梳理,详细讨论了文本情感分析中的文本表示方法以及深度学习模型,介绍了当前深度学习在文本情感分析应用中存在的问题,并对未来该领域研究方向和趋势进行了展望。

1  引言

在刚刚结束的人机世纪围棋对抗赛中,谷歌公司出品的人工智能代表AlphaGo以4:1击败了围棋九段李世石,人们惊叹人工智能进步的同时更为关注AlphaGo背后的核心算法——深度学习。的确,近年来,深度学习在图像、语音识别、机器翻译等领域任务中都取得了革命性的性能提升,掀起全民追捧深度学习的热潮,AlphaGo的成功让这股热潮达到顶点。人们不仅要问:深度学习是否在人类最为独特的情感分析世界也扮演独特的角色呢?本文并不试图回答这个问题,而是从技术进步角度对其在文本情感分析领域进行综述和展望。

文本情感分析(SentimentAnalysis),也称为观点挖掘(OpinionMining),通常被定义为对文本中所表达的喜、怒、哀、乐和批评、赞扬等观点、情感和情绪等的计算学习,属于情感计算(AffectionComputing)[67][91]领域的子问题。随着移动互联网技术在生活中各个领域内的应用,文本信息越来越丰富多样,并且蕴涵着巨大的商业、政治和学术价值,文本情感分析逐步成为学术界以及工业界中的研究热点。

回顾文本情感分析问题研究历程,国外(特别是英文母语国家)研究起步早,有很多方法被提出,但是国内对于该问题的研究还不充分,特别是针对中文文本的情感分析方法,目前比较欠缺。由于中文特有的一些特征,很多针对英文文本的方法无法直接使用。因此,对当前文本情感分析以及处理方法研究进展进行梳理总结,对中文文本情感分析更有意义和需要。

而现代机器学习技术可以说是文本情感分析的核心工具,在近几年,深度学习方法在许多任务突出表现正逐步演化成功能最强、最流行的人工智能工具,其在文本情感分析中应用已成为最前沿和最活跃的领域。事实上,与深度学习相关的多层神经网络的概念在更早之前也已经被提出,但当时由于各种原因,深度网络模型没有取得良好的效果,并没有被人们认可,有关深度学习相关的发展历史,可以参看胡晓林[104]在《人工智能通讯》中的总结。深度神经网络相关思想和方法在2006年由Hinton等人[33]以“深度学习”的概念再次提出,之后,深度学习方法在语音识别、图像识别、语音合成、文字翻译等领域中取得了令人瞩目的成绩,许多研究人员投入对深度学习方法的模型、训练以及应用场景中的研究中去。针对文本情感分析问题,也已经有不少研究人员尝试使用深度学习方法进行处理,并且取得了较大的效果提升。总结文本情感分析的深度学习方法可以帮助我们理清该领域当前研究动态。

 因此,本文主要对文本情感分析的相关概念和一般方法进行梳理,对采用深度学习方法进行文本情感分析方法进行详细介绍和总结,为了方便表述,在表1中给出文章使用的英文缩略词对照表。文章后续内容安排如下:第1节介绍文本情感分析的研究现状,对文本情感分析的相关概念以及主要方法进行总结;第2节介绍文本处理相关领域常用的文本表示方法,并着重介绍目前被广大研究人员使用的连续词语向量表示方法;第3节对当前研究人员使用较多的深度神经网络模型进行介绍,并着重介绍如何使用这些模型进行文本情感分析;第4节对应用于文本情感分析的深度学习方法进行总结,阐述当前深度学习方法在文本情感分析上的优势与不足,介绍未来可能的研究方向与发展趋势。

表1英文缩略词对照表

2  文本情感分析

2.1问题定义与分类

文本情感分析的目标通常是挖掘文本中所表达的观点以及情感,可以分为主题相关的情感分析以及主题无关的情感分析。主题相关所指的是除了获取文本的情感极性,还需要抽取文本中的相关主题,关注于对某个事件、物品的哪种属性具有什么样的观点与评价。主题相关的情感分析也称为基于属性的情感分析(Aspect-BasedSentimentAnalysis),LiuB等人[48][99]对属性的抽取以及主题相关的情感分析给出了很好的问题定义和方法总结。主题无关的情感分析,单纯判断一个文档或者一句话的情感极性,而不考虑情感所针对的主题或者属性[94]。目前来说,大多数方法都是针对主题无关的文本情感分析,本文后续的方法综述以及深度学习方法介绍,都是针对主题无关的文本情感分析。

文本情感分析除了根据是否与主题相关进行划分,还有很多其他划分方法。从情感类别的划分粒度上看,在粗粒度上可以分为文本主观性(Subjectivity)判断和文本倾向性(Orientation)判断,主观性偏重于判断文本中是否含有主观情感,倾向性侧重于分析文本中所包含情感的正负;在较细粒度上,文本情感分析可以对文本中蕴涵的情感进行细微情感类别的划分,如人的基本七种情感——愤怒(anger)、厌恶(disgust)、恐惧(fear)、高兴(happiness)、喜好(like)、悲伤(sadness)、惊讶(surprise),在Plutchik的情感模型中[68]则对人类情感进行了更细致的划分,将人类情感分成了八种基本情感以及八种复合情感,如图1所示。从处理语料的粒度上来看,文本情感分析可以分为篇章级别、语句级别以及词语级别,即一篇文档、一句话和一个单词所蕴涵的情感。从机器学习的角度来说,文本情感分析是一种二分或者多分类问题,因此文本情感分析也常常被称为文本情感分类(SentimentClassification)。图2对上述有关文本情感分析相关概念和分类体系进行总结,加粗表示研究、应用较多。

文本情感分析的应用场景一般是对新闻、博客、贴吧、论坛、微博、以及电商网站上的商品(各种产品以及服务)评论文本中包含的情感进行提取和分析,为舆论监督、时事热点跟踪、新闻推荐、商品评价等应用提供基础数据。相对其他文本数据,微博和商品评论往往文本数量多、实时性高、包含信息丰富,蕴涵潜在价值更大,并且由于微博和商品评论文本自身具有文本长度较短、用语不规范现象以及新兴流行词汇较多等特征,对这些文本进行情感分析具有更大的学术以及技术挑战,因而对于这两种文本的情感分析方法研究具有更大的学术和实用价值。

2.2文本情感分析的典型方法

对于文本情感分析问题,目的在于将分析无结构化的目标情感文本转化为计算机容易识别和处理的结构化文本,需要对其有意义的信息单元识别和判断,进而获得评价主体和评价观点信息。获取评价观点信息常用的方法主要分为基于词典与规则的方法,基于一般机器学习的方法以及基于深度学习的方法,前两者的基础都在于情感词典的构建,情感词典的质量直接决定了后续情感判断。

基于词典与规则的方法,一般是用已有的知识资源,如WordNet等来构建情感词典,然后基于情感词典,构建规则进行情感的判断[43][96][44]。一种简单的规则可以如下构建:统计文本中包含正负情感词的个数,按照表2的规则进行情感极性判断。

表2基于简单规则的情感极性判断

这种方法其实是将情感词看作具有一样的情感强度,如果构建出含有不同强度情感词的情感词典,如正负情感各分五级,也就是每个词语的情感强度分布在[-5,5]之间,可以把文本中所含情感词的强度值相加,根据整体情感强度的正负来判断文本情感的倾向。

基于机器学习的方法,首先由PangB等人[63]提出,在他们的方法中,利用情感词典构建文本的特征表示,然后使用朴素贝叶斯(NaiveBayes,NB)、支持向量机(SupportVectorMachine,SVM)以及最大熵(MaximumEntropy,ME)模型进行情感的正负分类。在Pang之后,很多人开始尝试使用机器学习方法进行文本情感分析,提出了很多方法[4][19][22][95]。基于机器学习的方法,把文本情感分析看作一种有监督或者半监督的分类问题,分类器一般选用SVM,NB以及ME,主要工作在于如何构建、学习更具表征能力的特征。

对于机器学习方法,一个很大的困难就是训练数据的获取,通过人工标注的方法可以获取训练样本,但是这种方法很耗费人力,无法获取大量的标注数据。对于微博、评论等文本来说,可以利用文本中的表情符号来对文本进行标注[1][62][100],这种标注方法会引入一些噪声,但是可以很方便的获取大量训练数据,依然可以获得很好的效果。

基于深度学习的文本情感分析方法主要是指基于构建的深度网络模型进行文本建模、特征提取以及情感分类。深度神经网络可以具备很强的数据特征表示能力,由于多个非线性隐含层的存在,一个多层次的神经网络几乎可以学习到任意分布的数据特征[6]。深度网络的最大优势就是可以自动地学习出多层次的特征表示,这些特征表示被逐层学习到并且越在高层越接近语义。自动地学习特征可以省去很多耗费人力的特征提取工作,并且可以获得适用范围很广的特征表示。按照网络结构的不同,我们可以将目前应用于文本情感分析的深度网络分为前馈神经网络(FeedforwardNeuralNetworks,FNNs)、递归神经网络(RecursiveNeuralNetworks,RecursiveNNs)、卷积神经网络(ConvolutionNeuralNetworks,CNNs)以及循环神经网络(RecurrentNeuralNetworks,RecurrentNNs),在本文第3章,将对这些网络的模型结构,以及在文本情感分析上的应用方法进行详细介绍。

2.3文本表示、深度网络与情感分析关系

文本情感分析问题一般可以转换为二分或者多分类的问题,在此过程中,同对其他机器学习问题一样,我们在处理文本情感分析问题时,一般涉及以下环节:即,文本的表示、特征的提取以及分类模型的选择。深度学习一个突出特点就是可以学习模仿人类认知习惯,将特征提取和分类建模紧密关联一起了,而特征选择通过网络参数学习自动可以获得,典型的处理框架如图3所示。

其中,文本表示和特征提取是进行文本情感分析的关键环节。文本表示就是把需要处理的抽象文本符号表示成计算机可以“理解”的形式,其常用方法在第2节中详细介绍。

在传统的机器学习算法中,特征提取的工作主要由人工进行。可以从以下两个方面进行直觉上的解释:对于计算机来说,所有的数据其实都是二进制的0、1串,机器很难理解数据所表达的抽象含义,而人则可以将数据进行解释,给予数据具体的含义;另外,特征提取的本质可以看作对输入数据逐步的进行数据变换,比如对于一串数字“20151010”,人可能很容易想到是年月日的时间戳,而对于机器来说这只是一个数字序列或者一个大整数,将“20151010”映射为“20151010”的过程是一个需要先验知识的非线性变换过程,机器自动的学习出这个非线性映射函数是困难的,而人在看数据的时候会加上人类积累很多年的先验知识自动进行复杂的非线性变换。但是人工进行特征提取具有很多限制:人工特征提取其实就是根据先验知识搜索出一种合理的非线性映射方式,而人的搜索效率是比较低的;不同问题的合理特征表示方式是不同的,针对每一个具体问题都需要进行很多人工特征提取工作,效率很低。

让机器模仿人类的特征提取方式是困难的,但可以从机器本身的方式进行——通过大量数据和计算在一个合理模型表示出的变换函数空间中进行搜索,只要后者获取的特征是有效的。我们知道,一个超过三层的深度神经网络可以表示出任意的数据分布以及变换[6],在深度网络模型确定的变换函数空间(网络的每一组不同的参数都表示了一种变换函数)中进行搜索(搜索的过程其实就是对网络参数的训练过程),可以找出有效的特征变换函数。目前在文本情感分析中使用的几种深度神经网络都可以在避免过拟合的前提下学习到有效的特征表示,尽管学习到的特征表示可能只是一个局部最优解,但是让机器自动地学习到有效的特征表示,依然使得相关问题获得了更好的解决。

文本表示和深度学习各自都有着很多不同的方法和模型,我们很难说哪一种文本表示方式最优或者使用哪一个深度网络最好,对于使用深度网络进行文本情感分析的深度学习方法来说,由于解决目标问题的不同,会选用不同的深度网络和文本表示方式。并且,文本的表示方式与深度网络的结构特性是紧密相关的:对于FNNs,一般使用词袋(Bag-of-Word,BOW)模型以及向量空间模型(VectorSpaceModel,VSM)在文档级别对文本进行初始表示;RecursiveNNs以及CNNs一般将文本拆分成一个个词语,采用词语的低维集成向量对文本进行初始表示,并且使用其他方法训练好的词语向量进行初始化,之后RecursiveNNs将词语按照语句的词法层次关系进行组织而CNNs更偏向与将语句表示成由词语向量组成的矩阵形式从而进行卷积操作等处理;对于RecurrentNNs一般将文本看作词语序列,将词语表示成向量,然后学习词语以及文本的向量表示。

2.4文本情感分析的挑战

大家知道,文本情感分析最终需要回到基本的语言句法和语法基本体系以及人类认知问题上来,在让计算机理解文本情感之前,需要有足够多的样本来训练我们机器。这要求我们有足够的样本,尤其是有标注的样本,对于不同语言,都需要这样的足够庞大的语料库。随然文本情感分析已有十多年研究历史,但还存在许多挑战问题。

一、高质量的有标注情感文本语料库不够多。传统的基于词典和规则的方法依赖于有良好的情感词典库,Wordnet有效弱化了这个问题但还远远不够,同时,在中文应用场景中,中文的情感权威词典资源更为稀少,这给基于词典进行情感判断带来较大障碍;而对于基于统计机器学习的方法,其成功更依赖于高质量的有标注情感文本语料库,缺乏数据规模的统计学习方法是没有意义的;而深度学习模型中动辄成千上万参数,这些参数的选取取决于百倍于参数数目的样本,可以说语料库的数据规模越大,训练出的模型可以避免过拟合,对模型学习越有利。情感的难以量化也使得获得有标注的情感库更为困难。

二、文本情感表达的多样化(表情符号、标点符号)的影响。文本的情感分析通常有类似于新闻报道等长文本分析,也有社交网络交流中越来越多的短文本情感分析。在后者的情感分析中,表情符号扮演了越来越重要角色。在网络交流或商品评论中,这些表情符号由字符、图形、文字组成,模仿人类的眼神和情感表露的面部表情。人类阅读到这些表情、一些感叹好或者省略号时能快速解码成对发出主体的情感判断,但对机器而言,如何综合这些表情符号和文字内容来理解人类情感的表达是个巨大的挑战。

三、理解语言结构中的顺序性。我们也知道,文本表示的词袋模型(BOW)常常被研究人员所诟病,其的弱点就在于方法忽略了句子中单词的顺序性,而循环神经网络(RecurrentNeuralNetwork,RNN)对序列数据超强的处理能力能弱化这个问题,RNN和长短期记忆模型(LongShortTermMemory,LSTM)最近在文本情感分析任务上都取得了最好的性能。尽管如此,对于语言本身的语法和句法层面的合理表示和理解对自然语言处理仍旧是任重道远的问题。

四、深度学习模型的调参和优化。深度学习模型一方面受制于有标注情感语料库的匮乏,另一方面因为其自身特点就在于参数巨多,使得其具有模拟任何函数的能力,但又带来调参的困惑。为了使得模型具有好的泛化能力,我们希望数据量越大越好,但如何训练当前常常以TB为单位的数据规模是一个巨大难题。

尽管如此,得益于深度学习颠覆自然语言处理各个研究方向进展,深度学习充分利用其在字符、单词、句子乃至段落层面上表达能力,在文本情感分析领域也取得了骄人的成绩,吸引了更多研究人员投身其中。

3  文本表示

对于文本情感分析,首先要考虑的是文本的表示,文字作为一种十分抽象的信息符号,需要使用计算机能够理解的方式进行表示,才可以被进一步的计算处理。我们根据文本表示方法的切入粒度,分为文档(document)、词语(word)、以及字符(character)级别的文本表示方法。为了更清楚的描述问题,这里给出如下说明:文档不仅仅是普通意义上的文章,根据所研究语料的粒度,文章、段落、句子以及查询都可以认为是文档;词语不仅仅指单独的一个单词,根据文档集生成的词典集合里面的每一个词项,都认为是词语,它可以是单独的词语,也可以是n-gram的词组;字符就是在ASCII字符表中经常出现在文本里的字符,对于中文和日文等非字符形式的语言,转换成字符表示(如中文的拼音)。

3.1文档级别

文档级别的文本表示,最常用的特征表示方法是词袋(Bag-of-Word,BOW)模型[41]以及向量空间模型(VectorSpaceModel,VSM)[74]。这两种表示方法都是将文档表示成与文档集词典大小一样的稀疏向量,不同的是每个维度值的计算方式。BOW模型将文档看成是装着词语的袋子,如果某个词语在这个袋子里面,那么该词语在向量中对应维度的取值就是该词语的频次,其余维度取值为0。VSM将一个文档看作空间中的向量,向量的每个维度取值与对应的词语在文档集合中的分布有关,一般采用TF-TDF方式进行加权计算。

对于文本情感分类问题,2.2中提及的机器学习算法中,很多都是采用VSM对文本进行特征表示,然后训练分类器,再进行情感分类。在进行VSM特征学习之前,文档集词典的建立是关键的一步,一般可以如下处理:先获取文档集中的所有词项,然后按照一定规则进行过滤(如低频词、高频词过滤,同义词合并),再结合已有的情感词典(如WordNet)来获取最终的文档集词典。关于词项,一般使用unigram模型,只取在已知词典(如牛津词典)的词语作为词项,有时也会使用N-gram模型[15]对词项进行扩充。

BOW和VSM可以很方便的表示文本,提取文本特征,在信息检索、文档分类和文本情感分析等应用中都有较好的效果,但是这两种表示方法也有一些缺点:忽略了词语在文档中出现的顺序,丢失了上下文信息;无法获取词语的词性以及语义信息;维度大,数据稀疏性强,计算复杂度高。当数据规模很大,处理的问题复杂时(比如对短文本进行情感分析),使用这两种表示方法的系统在准确度以及时间复杂度上的性能都会变得很差。由于这些问题的存在,BOW和VSM常常用于文本的初步表示,然后再利用其它方法进一步处理,如基于奇异值分解(SingularValueDecomposition,SVD)的隐含语义分析(LatentSemanticAnalysis,LSA)[17][54]。

3.2词语级别

词语级别的文本表示一般是将文档集词典中的每个词语用连续词语向量(continuouswordvector)表示,这是一种低维度的连续值向量。连续词语向量具有很强的文本特征表达能力,可以获取词语的词性以及语义信息。基于连续词语向量表示的文本情感分析方法主要有三种:一种是通过与所研究问题相结合,构建模型和优化问题来学习连续词语向量,进而获取文本的特征表示[56][89];一种是利用连续词语向量对情感词进行聚类或者扩充,对原有的情感词典进行优化,进而采用基于词典以及机器学习的方法进行文本情感分析[87][93][98];还有一种是以词语向量表示作为模型的初始输入,利用深度神经网络更进一步的提取特征,对文本情感进行分类,在后续提及的许多深度学习方法与连续词语向量表示相结合。

现在使用最广泛的连续词语向量训练方法是由Mikolov等人[57]提出的word2vec,该方法把文档集词典中的每个词语映射为一个独特的低维向量,不同词语在这个向量空间中的余弦距离可以表示出词语之间的语义以及语法关系[24][61],例如,给出“king”,“man”,“queen”,“woman”的词语向量表示,可以这样得到这样的关系:||“queen”-“woman”||=||“king”-“man”||。

word2vec包含两种模型:连续词袋(continuousbag-of-word,CBOW)模型以及连续Skip-gram模型,如图4所示,CBOW模型通过上下文语境来预测当前词语的分布,Skip-gram则希望通过当前词语来预测上下文词语的分布。CBOW模型是对神经网络语言模型(NeuralNetworkLanguageModel,NNLM)[7]的简化,将NNLM中使用的三层神经网络中的多节点隐含层替换为一个感知机(Perceptron)[71],并采用了NNLM中的很多处理方法:在输入层,将每个词语映射为词语向量,然后将输入词语的向量连接起来作为网络模型的输入;词语向量是作为模型的参数被随机初始化的,随着模型的训练而不断优化;基于统计语言模型(statisticallanguagemodels),当前词语的条件概率分布可以根据前面的词语进行估计,并且只依赖于相邻的几个词语,即:

在CBOW模型中还考虑了当前词语之后的词语;对于每个词语来说,它们在输入层与隐含层之间的权值是共享的。Skip-gram也采用了类似CBOW的处理,只是构造了不同的模型目标,希望预测当前词语上下文词语的分布。由于一般文档集词典V都很大,会使上述模型的训练计算复杂度很高[9][55][57],word2vec的实现中使用了两种供选择的加速训练方法:Bengio等人[9]提出的重要性采样(ImportantSampling)和Hinton等人[55]提出的层次化Softmax(HierarchicalSoftmax)。


图4word2vec中使用的CBOW与Skip-gram模型

类似于NNLM和word2vec的基于统计语言模型的词语向量学习方法还有很多,基本的思路都是先把词语映射为词语向量(待学习的参数),以词语向量作为模型的输入,基于统计语言模型建立目标函数进行模型的训练,训练方法都是随机梯度(StochasticGradientDescent,SGD)和反向传播(Back-Propagation,BP)[38]算法,主要的不同在于所选用的网络结构,如基于RecurrentNNs[58][97]和LSTM(Long-short-termMemory)[26][75]的词语向量学习方法。此外,还有一些学习连续词语向量的方法,如综合考虑了文档全局和局部信息的GloVe[65],以及针对情感分析问题的词语向量学习[56][89]。

相对于VSM以及BOW模型,词语向量具有更强的特征表示能力,可以获取词语的语义以及语法信息,并且根据词语在向量空间中的位置分布就可以表示这些信息。词语向量是一种低维度的非稀疏向量,当获取整个文档集词典中所有词语的向量表示时,可以很方便的得到词语集合(如短语和句子)的向量表示[60],获得低维度的非稀疏文本特征。

在使用词语向量表示时也需要注意它的一些缺陷:当训练完成后每个词语只被映射为一个向量,这个向量主要表达了该词语在文档集中最常用的语义和语法含义,但有些词语在不同的上下文语境中具有不同的语义和语法含义,也就是词语的多义性很难被表示出来;对于学习词语向量模型的训练,特别是使用word2vec方法时,需要大量的同一领域内的训练文本,比如我们建立的模型最终希望对微博进行情感分析,那么我们在学习词语向量时,需要准备大量的微博文本,并且需要进行一些预处理,比如表情符号、@标签、#标签、URL等的过滤,使训练文本比较干净。

杂志订阅

填写邮件地址,订阅精彩资讯: