近年来,深度学习有了突破性发展,NLP 领域里的情感分析任务逐渐引入了这种方法,并形成了很多业内最佳结果。本文中,来自领英与伊利诺伊大学芝加哥分校的研究人员对基于深度学习的情感分析研究进行了详细论述。
一、摘要
二、介绍
三、神经网络
四、深度学习
五、词嵌入
六、自动编码器和去噪自动编码器
七、卷积神经网络
八、循环神经网络
九、LSTM网络
十、基于注意力机制的循环神经网络
十一、记忆网络
十二、递归神经网络
十三、情感分析
十四、文档级情感分类
十五、语句级情感分类
十六、方面级分类
十七、方面提取和分类
十八、意见表达提取
十九、情感组成
二十、意见来源提取
二十一、时态意见挖掘
二十二、基于词嵌入的情感分析
二十三、嘲讽检测
二十四、情感分析
二十五、用于情感分析的多模态数据
二十六、资源匮乏的语言和多语言情感分析
二十七、其他相关任务
二十八、结论
作为一项学习数据的多层特征或表征的强大机器学习技术,深度学习的出现实现了当前最优的结果预测。伴随着在诸多应用领域的成功,深度学习近年来也被广泛应用于情感分析。本论文首先概述深度学习,接着全面调研深度学习在情感分析领域的应用现状。
情感分析或观点挖掘是对人们对产品、服务、组织、个人、问题、事件、话题及其属性的观点、情感、情绪、评价和态度的计算研究。该领域的开始和快速发展与社交媒体的发展相一致,如评论、论坛、博客、微博、推特和社交网络,因为这是人类历史上第一次拥有如此海量的以数字形式记录的观点数据。早在 2000 年,情感分析就成为 NLP 中最活跃的研究领域之一。它在数据挖掘、Web 挖掘、文本挖掘和信息检索方面得到了广泛的研究。实际上,因其对商业和社会的整体重要性,它已经从计算机科学扩展到管理学和社会学,如营销、金融、政治学、传播学、健康科学,甚至历史学。这种发展原因在于观点是几乎所有人类活动的核心,是人类行为的重要影响因素。我们的信念、对现实的感知,以及我们所做的决策在很大程度上依赖于别人看到和评价世界的方式。因此,我们在做决策的时候,通常会寻求别人的意见。
现在,如果您想购买一种消费产品,就不再局限于向朋友和家人征求意见,因为在Web的公共论坛上有许多关于该产品的用户评论和讨论。 对于组织而言,可能不再需要进行调查,民意调查和焦点人群来收集公众意见,因为有大量此类信息可以公开获得。 近年来,我们见证了在社交媒体上发表有见地的言论,有助于重塑企业,影响公众的情绪和情感,这对我们的社会和政治体系产生了深远的影响。 这些帖子也动员了民众参与政治变革,例如2011年在某些阿拉伯国家发生的政治变革。因此,收集和研究观点成为了必要。
然而,由于各种网站的激增,在网上查找和监测意见网站并提取其中的信息仍然是一项艰巨的任务。每个站点通常包含大量的意见文本,且在长博客和论坛帖子中不易被破译,普通读者很难识别相关的网站,也很难提取和总结其中的观点。因此需要自动情绪分析系统。正因为如此,许多公司都专注于提供情绪分析服务,这些实际应用和行业兴趣为情绪分析的研究提供了强大的动力。
现有研究已经产生了可用于情感分析多项任务的大量技术,包括监督和无监督方法。在监督方法中,早期论文使用所有监督机器学习方法(如支持向量机、最大熵、朴素贝叶斯等)和特征组合。无监督方法包括使用情感词典、语法分析和句法模式的不同方法。
大约十年前,深度学习成为强大的机器学习技术,在很多应用领域产生了当前最优的结果,包括计算机视觉、语音识别、NLP 等。近期将深度学习应用到情感分析也逐渐变得流行。本文首先概述深度学习,然后对基于深度学习的情感分析进行综述。
深度学习是人工神经网络(简称神经网络)在多层网络学习任务中的应用,它可以充分发挥神经网络的学习(表示)能力,以前人们认为神经网络只有一层或两层,数据量很小。
受生物大脑结构的启发,神经网络由大量的信息处理单元(称为神经元)组成,这些信息处理单元层层组织、协同工作。可以通过调整神经元之间的连接权重来学习执行任务(例如分类),类似于生物大脑的学习过程。
基于网络拓扑结构,神经网络一般可以分为前馈神经网络和递归神经网络,它们也可以混合和匹配,我们稍后将描述循环神经网络。图1给出了一个前反馈神经网络的简单例子,有,
和
三层组成。
为输入层,对应于输入向量
和截距
。
是输出层,对应于输出向量
。
为隐藏层,其输出作为网络输出不可见。
中的节点代表的是输入向量中的元素,
或
中的节点代表的是神经元,是神经网络的基本计算单元,我们还称之为激活函数。两个神经元之间的线表示信息流的连接。 每个连接都与权重相关联,权重是一个值,用于控制两个神经元之间的信号。神经网络的学习是通过调整神经元之间的权值来实现的。神经元读取前一层神经元的输出作为输入,进行详细的处理,然后输出到下一层神经元。如图1所示,神经网络根据训练示例
调整权重,当训练过程结束,将会得到一个适合数据的复杂假设
。
在隐藏层中,我们可以看到每个神经元的输入都为和截距+1,并通过激活函数
输出一个值:
,
为连接权重;
为截距或偏置;
通常为非线性激活函数。一般可选sigmoid函数、双曲正切函数(tanh)、ReLU函数。
Sigmoid函数接受一个实值,并将其映射到0到1之间。这个函数十分常见,因为它很好地解释了神经元的放电率:0表示不放电,1表示放电。但Sigmoid的非线性也有不足,因为它的激活很容易在0或1的尾部饱和,那里梯度几乎为零,信息流将被切断。此外,它的输出不是零中心的,这可能会在训练中对连接权值的梯度更新中引入不希望的曲折动力学。因此,由于tanh函数的输出范围是以零为中心的,[-1,1]而不是[0,1],因此它在实际中通常更受青睐。ReLu函数最近也很流行,当输入小于0时,其激活仅在0处设置阈值。与Sigmoid函数和tanh函数相比,ReLu计算简单,训练收敛快,在神经网络中的性能更好。
在输出层,我们可以用Softmax函数作为神经元,它是Logistic函数的一般化,将任意实数值的k维向量映射至
范围内的实值的k维向量(它们的和为1)。函数定义如下:
通常,在前馈神经网络的最后一层使用softmax进行最终分类。
通过连接所有的神经元,图1的神经网络参数为,其中
表示
层中神经元
与
层神经元
之间的连接权重,
表示与
中神经元
相关的偏置。
通常采用反向传播随机梯度下降来最小化交叉熵损失的方法来训练神经网络。首先计算损失函数相对于最后一个隐藏层到输出层的权重的梯度,然后通过反向方式应用链式规则来递归计算表达式相对于上层网络层之间权重的梯度。利用这些梯度,相应的调整层之间的权重,直到满足某些停止条件,这是一个反复优化的过程,图1中训练神经网络的伪代码如下。
上述算法可推广到具有多个隐藏层的一般前馈神经网络的训练中。随机梯度下降估计每个训练实例的参数,而不是批量梯度下降。因此参数更新具有较高的方差,有助于发现新的且可能更好的局部最小值。
20世纪90年代末,研究界对神经网络失去了兴趣,主要是因为它们被认为只适用于“浅层”神经网络(具有一层或两层的神经网络),因为训练“深层”神经网络(具有更多层的神经网络)是复杂的,并且计算非常昂贵。
然而,在过去的10年里,深度学习在许多应用领域取得了突破性进展,并产生了最新的成果,从计算机视觉到语音识别,再到最近的nlp。神经网络的复兴可以归因于许多因素。最重要的因素包括:
简言之,深度学习使用多层非线性处理单元的级联来进行特征提取和转换。靠近数据输入的较低层学习简单的特征,而较高层学习从较低层特征派生的更复杂的特征。体系结构形成了一个层次化的、功能强大的特征表示。图2显示了通过人脸图像分类中的深度学习从左(较低层)到右(较高层)的特征层次。我们可以看到,学习的图像特征的复杂性增长,从斑点/边缘,然后鼻子/眼睛/脸颊、脸。
近年来,深度学习模型在非线性规划领域得到了广泛的应用,显示出巨大的潜力。在接下来的几节中,我们将简要介绍应用于NLP任务的主要深度学习体系结构和相关技术。
NLP中的许多深度学习模型都需要将词嵌入的结果作为输入特征。词嵌入是一种用于语言建模和特征学习的技术,它将词汇中的单词转换为连续实数的向量(例如:词)。该技术通常涉及从高维稀疏向量空间(例如,one-hot编码向量空间,其中每个单词都具有维)的数学嵌入到低维密集向量空间。嵌入向量的每个维度表示单词的一个潜在特征,向量可以编码语言的规律和模式。
可以使用神经网络或矩阵分解来学习词嵌入。一种常用的词嵌入系统是Word2Vec,它本质上是一种计算效率高的神经网络预测模型,可从文本中学习词嵌入,它包含连续词袋模型(CBOW)和Skip-Gram模型(SG)。CBOW模型根据其上下文词(“男孩是_帽子”,其中“ _”表示目标词)预测目标词(例如“穿着”),而SG模型进行反演, 给定目标词来预测上下文词。从统计上讲,CBOW模型通过将整个上下文视为一个观察值,从而平滑了大量分布信息,对较小的数据集有效。而SG模型将每个上下文目标对视为新的观察结果,并且对于较大的数据集而言更好。另一种常用的学习方法是全局向量(GloVe),它在全局词-词共现矩阵的非零条目上进行训练。
自编码器神经网络是一个三层神经网络,它将目标值设置为等于输入值。 图6显示了自动编码器体系结构的示例。
给定输入向量。首先,自编码器通过编码函数
(例如Sigmoid函数)将其映射到潜在表示
。其次,潜在表示
由解码函数
映射回重构
。通常对自动编码器进行训练,以最大程度地减少重构误差
。自动编码器的目的是学习输入的表示形式,即隐藏层的激活。 由于具有非线性函数
和
,自动编码器能够学习非线性表示,这使其比线性表示具有更多的表达能力,例如主成分分析(PCA)或潜在语义分析 (LSA)。
若我们将自编码器以层级的形式堆叠,那么高层的自编码器就使用低层自编码器的输出作为输入。这种堆叠的自编码器与受限玻尔兹曼机(RBM)是构建深度神经网络的早期方法。一旦我们以无监督的方式训练自编码器,那么描述(中间表示)多级表征的参数就可以用来初始化一个有监督的深层神经网络,这种神经网络在实验上已经证明要比随机初始化更好。
去噪自动编码器(DAE)是自动编码器的扩展,其中输入向量被随机转换为向量
。 并且训练模型去噪,即最小化去噪重建误差。DAE背后的思想是驱使隐藏层发现更健壮的特性,并防止它简单地学习恒等变换。即使在存在噪声的情况下,模型也应该能够很好地重构输入。例如,从文档中删除或添加一些单词不应更改文档的语义。
卷积神经网络(CNN)是一种特殊类型的前馈神经网络,最初用于计算机视觉领域。 它的设计灵感来自人类视觉皮层,这是动物大脑中的一种视觉机制。 视觉皮层包含许多细胞,这些细胞负责检测视野中小的重叠的分支中的光,这些分支称为感受野。 这些单元格充当输入空间上的局部过滤器。 CNN由多个卷积层组成,每个卷积层都执行由视觉皮层中的细胞处理的功能。
图7显示了用于识别交通标志的CNN。 输入为32x32x1像素图像(32 x 32表示图像宽度x高度; 1表示输入通道,彩色RGB通道为3)。第一阶段,使用卷积核或滤波器(尺寸为5x5x1)扫描图像。 卷积核或滤波器投影到的输入图像中的每个区域都是一个接收场。 滤波器实际上是一个数字数组(称为权重或参数)。 当窗口滑动(或卷积)时,它会将其权重值与图像的原始像素值相乘(逐元素乘法)。 乘法全部加起来为一个数字,代表接收场, 每个接受领域都会产生一个数字。 滤波器完成对图像的扫描后,我们可以获得一个数组(大小为28x28x1),称为激活图或特征图。在CNN中,我们需要使用不同的滤波器来扫描输入。 在图4中,我们应用了108种滤波器,因此在第一阶段具有108个堆叠的特征图,该图由第一卷积层组成。在卷积层之后,通常使用子采样(或池化)层来逐渐减少表示的空间大小,从而减少特征的数量和网络的计算复杂度。例如,在第一阶段进行子采样后,卷积层尺寸减小为(14x14x108)。注意,虽然每个特征映射的维数降低,但子采样步骤保留最重要的信息,常用的子采样操作是最大池。然后,第一级的输出变为第二级的输入,并使用新的滤波器。新的滤波器大小是5x5x108,其中108是最后一层的特征图大小。在第二阶段之后,CNN使用完全连接层,然后使用带有输出类的SoftMax读出层进行分类。
卷积层在CNN中起到了特征提取的作用,由于卷积层限制了隐藏层的接收场是局部的,所以卷积层可以提取局部特征。这意味着CNN通过增强相邻层神经元之间的局部连接模式,具有特殊的空间局部相关性,这种特征对于MLP中的分类是有用的,在NLP中我们期望找到关于类成员的强局部线索,但是这些线索可以出现在输入中的不同位置。例如,在文档分类任务中,单个关键字短语(或N-Gram)可以帮助确定文档的主题。我们希望了解,某些单词序列是主题的良好指标,不一定关心它们在文档中的位置。卷积层和池化层允许CNN学习寻找这样的局部指标,而不管它们的位置如何。
为了理解卷积层,下图展示了卷积核或滤波器(filter)将当前层级上的一个子结点张量转化为下一层神经网络上的一个长和宽都为 1,深度不限的结点矩阵。下图输入是一个 32×32×3 的张量,中间的小长方体为卷积核,一般可以为 3×3 或 5×5 等,且因为要计算乘积,那么卷积核的第三个维度必须和其处理的图像深度(即输入张量第三个维度 3)相等。最右边的矩形体的深度为 5,即前面使用了五个卷积核执行卷积操作。这五个卷积核有不同的权重,但每一个卷积层使用一个卷积核的权重是一样的,所以下图五层特征中每一层特征都是通过一个卷积核得出来的,也就是该层共享了权重。
循环神经网络(RNN)是一种神经元之间形成有向循环的神经网络。与前馈神经网络不同,RNN可以利用其内部的“存储器”来处理一系列输入,这使得它在处理序列信息方面很受欢迎。“内存”是指RNN对序列中的每个元素执行相同的任务,每个输出都依赖于先前的所有计算,这就像“记住”到目前为止所处理的信息一样。
一个典型的RNN结构如下:
图10展示了RNN的示例,其中左图是一个带有循环折叠网络,而右图是带有三个时间步长的折叠序列网络。 时间步长取决于输入的长度。 例如,如果要处理的单词序列是六个单词的句子,则RNN将展开为具有六个时间步长或层的神经网络,一层对应一个单词。
在图10中,是时间序列
上的输入向量,
是时间序列
的隐藏状态,它是根据先前的隐藏状态和当前时间步长的输入计算得出的。我们看到
重复作用于不同时间步上的隐藏状态,并将它传入下一个时间步中,这就是 RNN特有的方式。基本上,你能输入句子中的词或者甚至是像
这样的字符串中的字符,然后通过该循环神经网络它会得出一个
。
在等式(5)中,激活函数通常是tanh函数或ReLu函数。其中,
是用于调节输入
的权重矩阵,
是用于调节先前隐状态
的权重矩阵。
在等式(6)中,是步骤
词汇表上的输出概率分布。例如:如果我们要预测句子中的下一个单词,那么它将是整个单词词汇量的概率向量。
被看作整个神经网络的“记忆”,它捕获先前所有步中发生的信息。
由在时间
时的“记忆”——
与相应的权重矩阵
计算得出。目标是用
作为输出,并将它与你的测试数据(通常是原始数据的一个小子集)比较。然后你会得出你的误差率。比较完之后,有了误差率,你就能使用一种叫随时间反向传播(BPTT)的技术。BPTT 返回检查这个网络,并基于误差率调整权重。这样也调整了这个网络,并让它学习去做得更好。
前馈神经网络在每一层使用不同的参数,而RNN在所有步骤中共享相同的参数,即参数共享。这意味着每个步骤执行相同的任务,只是输入不同,学习参数大大减少。
从理论上讲,RNN可以按任意长序列使用信息,但是在实践中,由于梯度消失或梯度梯度问题,标准RNN仅限于回溯有限序列。
研究人员基于RNN已经开发了更复杂的循环神经网络,以弥补标准RNN模型的不足:双向RNN、深度双向RNN和长短期记忆网络(LSTM)。双向RNN思想:每次的输出不仅取决于序列中的前一个元素,而且还取决于序列中的下一个元素。例如,要预测序列中的遗漏单词,我们可能需要查看上下文信息。双向RNN由两个RNN组成,一个RNN按原始顺序处理输入,另一个RNN按相反的顺序处理输入,然后根据两个RNN的隐状态计算输出。深度双向RNN与双向RNN相似。 唯一的区别是,每个时间序列具有多个层次,这提供了更高的学习能力,但需要大量的训练数据。 图11分别显示了双向RNN和深度双向RNN(具有两层)的示例。
长-短期记忆网络(LSTN)25是一种特殊类型的RNN,能够学习长期依赖关系。
所有RNN都具有重复模块链的形式。 在标准RNN中,此重复模块通常具有简单的结构。 但是,用于LSTM的重复模块更加复杂。 而不是只有一个神经网络层,而是有四个以特殊方式交互的层。 此外,它具有两种状态:隐藏状态和单元状态。
如图12所示,在时间t,LSTM首先确定从单元状态转储哪些信息,由Sigmoid函数/层来实现,称之为“遗忘门”。该函数由
(上一隐藏层的输出)和
(当前输入)以及参数矩阵组成,计算结果为0或1。其中等式(7)中1表示“完全保留”,0表示“完全转储”。
然后,LSTM决定要在单元状态下存储哪些新信息,可分为两个步骤:
对于单元状态的更新,如等式(10)所示。我们可以通过控制“忘记门”的渐变,并允许“memory”的删除和更新,这可以缓解标准RNN中的梯度消失或梯度爆炸问题。
最后,LSTM根据单元状态决定输出。如等式(11)所示,通过层决定输出单元状态的哪些部分,称之为“输出门”。如等式(12)所示,再通过tanh函数与Simoid层的输出相乘,得到隐状态
。
LSTM通常应用于序列化数据,但也可以用于树状数据。 Tai等引入了标准LSTM到树型LSTM(Tree-LSTM)的泛化,并显示了比标准LSTM更好的表示句子含义的性能。
门控循环单元(GRU)它将“忘记”和“输入”门合并为一个更新,还合并了单元状态和隐藏状态,并进行了其他一些更改。 生成的模型比标准LSTM模型更简单,并且已经越来越流行。
一般来说,我们可能会认为双向 RNN 与 LSTM 就能处理数据中的长期依赖性。但是在实践中,时序数据的长期依赖性问题仍然很难处理。因此,Bahdanau 等人提出了注意力机制。
神经网络中的注意力机制受到人类视觉中注意力的启发,即人类视觉注意力能够聚焦到图像的特定区域,并在这个区域有非常高的分辨率,而在其它区域有较低的分辨率。在自然语言处理中,注意力机制允许模型根据输入文本以及它到目前为止已经生成的隐藏状态来学习要注意什么,而不像标准 RNN 与 LSTM 那样将全部原文本编码成固定长度的向量。
下图13展示了在双向 RNN 中使用注意力机制的方法。其中每个解码器输出的序列 取决于所有输入状态的加权组合,而不只是如标准情况那样选择最后一个隐藏状态。
是权重,用于定义应为每个输出对每个输入状态中的多少进行加权。例如,
有较大的值,那么它就代表着在生成目标句子的第二个时间步上,解码器会将更多注意力放在原语句中的第二个隐藏状态。所有的权重
和为 1,因此能保证输出值的归一化。
Weston 等人介绍了记忆网络(MemNN)这个概念,它能用于问答系统。记忆网络通过结合多个推断组件和长期记忆而执行任务,这些组件可以是多个神经网络,而长期记忆充当着动态知识库的角色。记忆网络基本的四个可学习或推断组件分别为:I 组件将输入数据转化为内部特征表示;G 组件在给定新的输入下更新旧的记忆;O 组件生成输出(同样是在特征表示空间中完成);R 组件将输出特征转化为响应格式。
例如,给定问答系统一系列语句和问题,MemNN 会从这些语句中抽取特征并生成答案。在推断的过程中,I组件一次只读取一条语句,并将它编码为向量表征。然后G组件基于当前的语句表征更新一小块记忆,在所有语句都处理完后,记忆网络就生成了一个记忆矩阵(每一行表示一个语句),该矩阵储存了从语句中抽取的语义。对于问题,记忆网络会将它编码为向量表征,然后 O组件使用向量从记忆中选择一些相关的证据,并生成一个输出向量。最后R组件将输出向量作为输入,并输出最终响应。
Sukhbaatar等基于MemNN提出了End-to-End存储网络(MemN2N),它是一种神经网络体系结构,在长期存储组件上具有循环注意力机制,可以通过标准反向传播以端到端的方式对其进行训练。 它证明了O组件中的多个计算层(跳数)比单个层可以发现更多的抽象证据,并为问题回答和语言建模提供了改进的结果。值得注意的是,每个计算层都可以是基于内容的注意力模型。 因此,MemN2N在某种程度上完善了注意力机制。 还应注意类似的想法是Graves等报道的神经图灵机。
递归神经网络(RecNN)是一种特殊的神经网络,通常用于从数据中学习有向无环图结构(如:树形结构)。
递归神经网络可以看作是循环神经网络的概括。 给定句子的结构表示形式(例如,语法分析树),RecNN通过结合标记以生成短语的表示形式(最终是整个句子),以自下而上的方式递归生成父代表示形式,句子级别表示然后可以用于给定输入句子进行最终分类(例如,情感分类)。RecNN中向量合成的示例过程如图9 33所示,节点“very interesting”的向量由节点“very”和节点“interesting”的向量组成。 类似地,节点“is very interesting”由短语节点“very interesting”和单词节点“is”组成。
词嵌入是将单词表示成低维的稠密的实数向量。自从词向量技术的提出,到目前为止已经有很多方法来得到句法和语义方面的向量表示,这种技术在 NLP 领域发挥着重要的作用。
如何用稠密的向量表示短语,这是使用词向量的一个难题。在成分分析中,我们一般使用递归神经网络 (Recursive Neural Network) 来解决这个问题。递归神经网络是一种通用的模型,用来对句子进行建模。句子的语法树中的左右子节点通过一层线性神经网络结合起来,根节点的这层神经网络的参数就表示整句句子。递归神经网络能够给语法树中的所有叶子节点一个固定长度的向量表示,然后递归地给中间节点建立向量的表示。
我们现在开始概述情感分析中的深度学习应用。但在此之前,我们首先简单介绍主要的情感分析任务。若想了解更多细节,请参考 Liu 写的关于情感分析的书。
研究者主要在三个粒度级别上研究情感分析:文档级、语句级和方面级。文档级情感分类将观点鲜明的文档(例如,产品评论)分类为整体积极的或消极的观点。它将整个文档当做基本的信息单元,并假定文档是观点鲜明的,包含对单个实体(例如,某个型号的手机)的观点。语句级情感分类对文档内单独的语句进行分类。然而,单独的语句不能假定为观点鲜明的。
传统上,人们首先将一个语句分类为观点鲜明的(或相反),即主观性分类。然后观点鲜明的语句进一步被分类为积极的或消极的。语句级情感分类可以被形式化为三类分类问题,即判断某语句是中性的、积极的或消极的。和文档级、语句级情感分类相比,方面级情感分析或基于方面的情感分析更加细粒化。它的任务是提取和总结人们对某实体的观点以及实体(也被称为目标)的特征。。例如一篇产品评论,方面级情感分析的目的是分别总结对产品不同方面的积极和消极观点,虽然对产品的总体情感可能是倾向积极的或消极的。
基于方面级的情感分析由多个子任务构成,例如方面提取、实体提取和方面情感分类。例如,句子「the voice quality of iPhone is great, but its battery sucks」的实体提取应该识别「iPhone」作为实体,而 aspect 提取需要识别「voice quality」和「battery」作为两个 aspect。aspect level 情感分类需要将对音质的评论分类为积极的,将对电池续航的评论分类为消极的。出于简洁性,大多数算法将 aspect 提取和实体提取结合起来,称为 aspect 提取或情感/观点目标提取。
除了这些核心任务,情绪分析还研究情绪分析,嘲讽检测,多模态情感分析等。有关更多详细信息,请参见Liu的书。 在以下各节中,我们将调查深度学习在所有这些情绪分析任务中的应用。
文档级情感分类是指为观点型文档标记整体的情感倾向或极性,即确定文档整体上传达的是积极的还是消极的观点。因此,这是一个二元分类任务,也可以形式化为回归任务,例如为文档按 1 到 5 星评级,一些研究者也将其看成一个五类分类任务。
情感分类通常被当做文档分类的特殊案例。在这种分类任务中,文档表征是很重要的部分,需要反映出文档字里行间所传达的原始信息。传统上,词袋模型(BoW)通过将文档看成其中单词的袋装形式,被用于在 NLP 和文本挖掘中生成文本表征。通过 BoW,文档被转换成固定长度的数值特征向量,其中每个元素可能代表词的存在(没出现或出现)、词频或 TF-IDF 分数。向量的维度等于词汇量大小。用 BoW 表征的文档向量通常是很稀疏的,因为单个文档仅包含少量的词汇。早期的神经网络使用的基本是这种特征设定。
虽然 BoW 很常用,它也有一些缺点。首先,BoW 模型忽略词的顺序,这意味着包含相同单词的两个文档的表征是完全相同的。BoW 的扩展版本 Bag-of-N-Grams 在短文本(n-gram)中考虑词序,但仍然存在数据稀疏性和高维度的缺陷。其次,BoW 几乎不能编码词的语义。例如,在 BoW 中,单词「smart」、「clever」和「book」之间的距离是相同的,但在语义上,相比「book」、「smart」应该更接近于「clever」。
为了克服 BoW 的缺陷,人们提出了基于神经网络的词嵌入技术以生成密集向量(或低维向量)用于词表征,从而在某种程度上可以编码单词的某些语义和句法属性。以词嵌入作为词的输入,可以利用神经网络得到文档的密集向量(或称为密集文档向量)表征。
请注意,除了以上两种方法(即使用BoW并通过词嵌入来学习文档的密集向量)之外,还可以直接从BoW中学习密集文档向量。 我们在表2中区分了相关研究中使用的不同方法。
当文档被适当地表征时,我们可以通过传统的监督学习方式,用多种神经网络模型进行情感分类。在某些案例中,神经网络可能只被用于提取文本特征或文本表征,然后这些特征被馈送到其它非神经网络的分类器(如 SVM),以获得最终的全局最优分类器。神经网络和 SVM 的特性以某种方式彼此互补,从而能结合各自的优势。
除了复杂的文档/文本表征之外,研究者还利用数据特征(如产品评论)进行情感分类。一些研究者发现产品评论对情感和其它附加信息(例如,用户信息和产品信息)进行联合分类建模很有帮助。此外,由于文档通常包含长期依赖关系,注意力机制也经常用于文档级情感分类。我们在表 2 中总结了已有的技术。
下面,我们还简要介绍了这些现有的代表性作品。
句子级别的情感分类是确定单个给定句子中表达的情感。 如前所述,可以用主观性分类和极性分类来推断句子的情感,其中前者对句子是主观还是客观进行分类,而后者则判定主观句子是表达消极或积极的情感。 在现有的深度学习模型中,句子情感分类通常会形成一个联合的三类别分类问题,即预测句子为积极、中立或消极。
与文档级的情感分类相同,神经网络生成的语句表征对于语句级的情感分类也非常重要。另外由于句子相对文档而言较短,因此可以使用一些语法和语义信息(如解析树、观念词典和词性标签)来帮助分类。其他一些信息如评测打分、社会关系和跨域信息也可以考虑在内。例如,社会关系已被用于探索社交媒体数据中(如Twitter)的情感
在早期的研究中,解析树(提供了一些语义和语法信息)与原始词一同用作神经模型的输入,这意味着我们可以更好地推断情感构成。但在那之后,CNN 和 RNN 成为主流,它们不需要利用解析树从句子中提取特征。取而代之的是,CNN 与 RNN 使用词嵌入(已经编码了一些语义和语法信息)作为输入。此外,CNN 和 RNN 模型架构也可以帮助我们学习语句内词间的固有联系。
下面,我们还简要介绍了这些现有的代表性作品。
与文档级别和句子级别的情感分类不同,方面级别的情感分类会同时考虑情感和目标信息,因为情感始终具有目标。 如前所述,目标通常是实体或实体方面。 为简单起见,实体和方面通常都只称为方面。 给定一个句子和一个目标方面,方面级别的情感分类旨在推断句子对目标方面的情感极性/方向。 例如,在句子“屏幕非常清晰,但电池寿命太短”中。如果目标方面为“屏幕”,则情绪为肯定,而目标方面为“电池寿命”,则为否定。 我们将在下一节中讨论方面提取或目标提取。
方面级情感分类很有难度,因为建模目标与上下文的语境词的语义相关性很难。不同的语境词对句子在目标特征的情感极性有不同的影响。因此,使用神经网络构建学习模型时,捕捉目标词和语境词之间的语义关系非常必要。
使用神经网络的 aspect level 情感分类有三个重要任务。第一个任务是表示目标的语境词。该问题可以使用前两节提到的文本表示方法来解决。第二个任务是生成目标表示,其可与语境词进行恰当地互动。通常的解决方案是学习目标嵌入(与词嵌入类似)。第三个任务是识别特定目标的重要情感语境词。例如,在句子「the screen of iPhone is clear but batter life is short」中,「clear」是「screen」的重要语境词,「short」是「battery life」的重要语境词。近期该任务通过注意力机制得到解决。尽管很多深度学习技术可用于处理 aspect level 情感分类,但文献中仍然没有主导性技术。
为了执行方面级的情感分类,需要手动指定或自动提取方面(或目标)。 在本节中,我们讨论使用深度学习模型从句子或文档中自动进行方面提取(或方面术语提取)的现有工作。 让我们用一个例子来说明问题。 例如,在句子“图像非常清晰”中,单词“ image”是一个方面术语(或情感目标)。 方面分类的关联问题是将相同的方面表达式分组到一个类别中。 例如,方面术语“image”,“photo”和“picture”可以分组为一个名为“Image”的方面类别。 在下面的评论中,我们包括与观点相关的方面和实体的提取。
深度学习模型可以帮助完成此任务的原因之一是,深度学习本质上擅长于学习(复杂的)特征表示。 当某个方面在某个特征空间中(例如,在一个或多个隐藏层中)正确表征时,一个方面及其上下文之间的语义或相关性可以通过它们相应的特征表示之间的相互作用来捕获。 换句话说,深度学习为自动特征工程提供了一种可能的方法,而无需人工参与。
在本节和接下来的几节中,我们将讨论深度学习应用程序与其他一些与情绪分析相关的任务。 本节重点讨论意见表达提取(或意见术语提取或意见识别)问题,该问题旨在识别句子或文档中的情感表达。
与方面提取相似,使用深度学习模型的意见表达提取是可行的,因为它们的特征也可以在某些特征空间中识别出来。
情感成分定义:意见表达的情感取向是由其成分的含义以及语法结构决定的。 由于其特殊的树状结构设计,RecNN自然适合此任务。 Irsoy和Cardie报告说,具有深层架构的RecNN可以更准确地捕获语言组成方面的不同方面,这有利于情感组成。 Zhu等人提出了一种将情感成分合成过程中的成分情感和非成分情感整合在一起的神经网络。
意见持有人(或来源)提取是识别谁持有意见(或意见来自谁/来自何处)的任务。 例如,在句子“约翰讨厌他的车”中,意见持有者是“约翰”。 通常将此问题表述为诸如意见表达提取或方面提取之类的序列标记问题。 请注意,如Yang和Cardie所示,观点持有人可以是显式的(来自句子中的名词短语)或隐式的(来自作者)。 Deng和Wiebe建议使用观点表达的词嵌入作为识别参与者观点和非参与者观点的来源的特征,其中来源可以是名词短语或作者。
时间也是情感分析问题定义中的一个重要维度(参见Liu的书1)。 随着时间的流逝,人们可能会保持或改变主意,甚至给出新的观点。 因此,预测未来观点在情感分析中很重要,最近已经报道了一些使用神经网络的研究来解决这个问题。
词嵌入在深度学习情感分析模型中扮演了重要角色。研究也表明,即使不使用深度学习模型,词嵌入也可以在不同任务中用作非神经网络学习模型的特征。因此,该部分特别强调了词嵌入对情感分析的贡献。
我们首先介绍情感编码词嵌入的工作。 对于情感分析,直接使用常规的单词方法(例如CBOW或Skip-gram)从上下文中学习单词嵌入可能会遇到问题,因为上下文相似但情感极性相反(例如,“好”或“坏”)的单词可能会映射到附近 嵌入空间中的向量。 因此,已经提出了情感编码的单词嵌入方法。
嘲讽是一种形式的语言讽刺,是与情感分析密切相关的概念。 最近,人们对NLP社区的嘲讽检测越来越感兴趣。 由于在许多其他NLP问题中取得了令人瞩目的成功,研究人员已尝试使用深度学习技术来解决该问题。
情感是人类的主观感受和思想。 主要的情感包括爱,喜悦,惊奇,愤怒,悲伤和恐惧。 情感的概念与情感密切相关。 例如,情绪的强度可以与诸如喜悦和愤怒之类的某些情绪的强度相关联。 因此,许多深度学习模型也按照情感分析的方式应用于情感分析。
多模态数据(例如,携带文本,视觉和听觉信息的数据)可帮助情感分析,因为它为传统文本功能提供了额外的情感信号。 由于深度学习模型可以将输入映射到某个潜在空间以进行特征表示,因此也可以同时投影多模态数据的输入以学习多模态数据融合,例如通过使用特征级联,联合潜在空间或其他更复杂的融合方法。 现在,将多模态数据与深度学习技术结合使用的趋势正在增长。
最近,由于使用了深度学习模型,资源贫乏的语言(与英语相比)的情感分析也取得了重大进展。 此外,多语言功能也可以像多数模态据一样帮助情感分析。 同样,深度学习已应用于多语言情感分析设置。
深度学习在其他一些与情绪分析相关的任务中也有应用。
情感主体间性:Gui等人在情感分析中解决了主体间性问题,该问题是研究语言的表面形式与相应抽象概念之间的差距,并将主体间性建模纳入拟议的CNN中。
词典扩展:Wang等人提出了一种基于PU学习的神经方法,用于意见词典扩展。
金融波动性预测:Rekabsaz等人使用金融公开情绪和基于词嵌入的信息检索模型进行了波动性预测,其中词嵌入用于类似的词集扩展中。
意见建议:Wang和Zhang介绍了意见建议任务,该任务旨在生成特定用户可能会给出的产品的自定义评论评分,以及在特定情况下用户将为目标产品撰写的自定义评论。用户已经查看过该产品。提出了一种多注意记忆网络来解决
问题,其中考虑了用户的评论,产品的评论以及用户的邻居(相似的用户)。
政治主张检测:Augenstein等人提出了带有条件编码机制的双向LSTM,用于政治推特数据中的政治主张检测。 Du等人设计了一种针对特定目标的神经注意力模型来进行政治主张分类。
将深度学习应用于情感分析已成为最近流行的研究主题。 在本文中,我们介绍了各种深度学习架构及其在情感分析中的应用。 这些深度学习技术中的许多技术已经显示出用于各种情感分析任务的最新结果。 随着深度学习研究和应用的发展,我们相信在不久的将来会有更多激动人心的深度学习研究用于情感分析。