情感分析中的深度学习

一、情感分析中的基本模型

1、前馈神经网络(FNN)

      不考虑输入数据具备的任何特定结构常与正则化结合使用,主要解决问题:神经网络有大量隐藏层,隐藏层非常难以训练(梯度消失和过拟合问题)。FNN 由一个输入层、一个(浅层网络)或多个(深层网络,因此叫作深度学习)隐藏层,和一个输出层构成。每个层(除输出层以外)与下一层连接。具有两个主要特征:加权平均值和激活函数。加权平均过程,即将前一层给神经元的激励值和对应的权重矩阵相乘而得出后一个神经元的输入值。

 

情感分析中的深度学习_第1张图片

2、Word2Vec 词嵌入

Word2Vec 方法由两部分组成。 第一部分是词嵌入,首先是将高维 one-hot 形式表示的单词映射成低维向量。例如将 10,000 列的矩阵转换为 300 列的矩阵。第二个目标是在保留单词上下文的同时,从一定程度上保留其意义。Word2Vec 实现这两个目标的方法有 skip-gram 和 CBOW 等,skip-gram 会输入一个词,然后尝试估计其它词出现在该词附近的概率(给出目标推算附近的词)。还有一种与此相反的被称为连续词袋模型(Continuous Bag Of Words,CBOW),它将一些上下文词语作为输入,并通过评估概率找出最适合(概率最大)该上下文的词(给出上下文推算出目标)。

3、自编码器与降噪自编码器

自编码器神经网络是一个三层神经网络,其目标是使输出值近似等价于输入值。

因为神经元使用了非线性激活函数,自编码器可以学习非线性表征。比主成分分析(PCA)或潜在语义分析(LSA)等线性方法要强大。

若将自编码器以层级的形式堆叠,那么高层的自编码器就使用低层自编码器的输出作为输入。这种堆叠的自编码器与受限玻尔兹曼机(RBM)是构建深度神经网络的早期方法。

以无监督的形式训练自编码器,那么描述 x(中间表征)多级表征的参数就能用来初始化监督式深度神经网络,这种神经网络在实验上已经证明要比随机初始化优秀。

降噪自编码器(DAE)是自编码器的扩展,DAE 背后的思想是强制隐藏层发现更鲁棒的特征,并阻止自编码器简单地学习恒等变换。也就是说,模型应该在存在噪声时仍能重构输入。这种技术也体现在情感分析中,例如从文档中删除或添加一些文字不应该改变文档的语义。

情感分析中的深度学习_第2张图片

4、卷积神经网络

CNN 一般由若干个卷积和池化操作组成,通常跟随着一个或多个全连接层(与传统的 FNN 层相似)。相比于全连接神经网络,卷积网络每一个单元都只会和上一层部分单元相连接。一般每个卷积层的单元都可以组织成一个三维张量,即矩阵沿第三个方向增加一维数据。例如 Cifar-10 数据集的输入层就可以组织成 32×32×3 的三维张量,其中 32×32 代表图片的尺寸或像素数量,而 3 代表 RGB 三色通道。

卷积神经网络中最重要的就是卷积层,卷积层试图将神经网络中的每一小块进行更加深入的分析,从而得出抽象程度更高的特征。一般来说通过卷积层处理的神经元结点矩阵会变得更深,即神经元的组织在第三个维度上会增加。(卷积核或滤波器(filter)是一个东东)

5、循环神经网络

有时间关联性。这种时间关联性是由循环神经网络实现。前面的网络都没有考虑时间关联性。这也是循环网络的特点。

情感分析中的深度学习_第3张图片

x_t 是时间序列上的输入,而 h_t 是循环过程中的隐藏状态。 f 重复作用于不同时间步上的隐藏状态,并将它传入下一个时间步中,这就是 RNN特有的方式。能输入句子中的词或者甚至是像 x_t 这样的字符串中的字符,然后通过循环神经网络它会得出一个 y_t。
目标是用 y_t 作为输出,并将它与你的测试数据比较。然后得出误差率。有了误差率,能使用一种叫随时间反向传播(BPTT)的技术。BPTT 返回检查这个网络,并基于误差率调整权重。这样也调整了这个网络,并让它学习去做得更好。

6、LSTM 网络

Z 为输入部分,Z_i、Z_o 和 Z_f 分别为控制三个门的值,即它们会通过激活函数 f 对输入信息进行筛选。一般激活函数可以选择为 Sigmoid 函数,因为它的输出值为 0 到 1,即表示这三个门被打开的程度。

情感分析中的深度学习_第4张图片

输入 Z,那么该输入向量通过激活函数得到的 g(Z) 和输入门 f(Z_i ) 的乘积 g(Z) f(Z_i ) 就表示输入数据经筛选后所保留的信息。Z_f 控制的遗忘门将控制以前记忆的信息到底需要保留多少,保留的记忆可以用方程 c*f(z_f)表示。以前保留的信息加上当前输入有意义的信息将会保留至下一个 LSTM 单元,即我们可以用 c' = g(Z)f(Z_i) + cf(z_f) 表示更新的记忆,更新的记忆 c' 也表示前面与当前所保留的全部有用信息。再取这一更新记忆的激活值 h(c') 作为可能的输出,一般可以选择 tanh 激活函数。最后剩下的就是由 Z_o 所控制的输出门,它决定当前记忆所激活的输出到底哪些是有用的。因此最终 LSTM 的输出就可以表示为 a = h(c')f(Z_o)。

7、RNN 与注意力机制

双向 RNN 与 LSTM 能处理数据中的长期依赖性(效果不好)。所以,提出了注意力机制。其实就是将研究聚焦到特定区域。在自然语言处理中,注意力机制允许模型根据输入文本以及它到目前为止已经生成的隐藏状态来学习要注意什么,而不像标准 RNN 与 LSTM 那样将全部原文本编码成固定长度的向量。

下图 展示了在双向 RNN 中使用注意力机制的方法。其中每个解码器输出的序列 y_t 取决于所有输入状态的加权组合,而不只是如标准情况那样选择最后一个隐藏状态。a_t,T 定义了每个输入的隐藏状态应该加权多少以结合为输出向量。例如,a_2,2 有较大的值,那么它就代表着在第二个时间步上,解码器更多注意原语句中的第二个隐藏状态。所有的权重 a_t,T 加和为 1,因此能保证输出值的归一化。

情感分析中的深度学习_第5张图片

8、记忆网络(MemNN)

略有不懂。。。。

能用于问答系统。记忆网络通过结合多个推断组件和长期记忆而执行任务,这些组件可以是多个神经网络,而长期记忆充当着动态知识库的角色。记忆网络基本的四个可学习或推断组件分别为:I 组件将输入数据转化为内部特征表示;G 组件在给定新的输入下更新旧的记忆;O 组件生成输出(同样是在特征表示空间中完成);R 组件将输出特征转化为响应格式。例如,给定问答系统一系列语句和问题,MemNN 会从这些语句中抽取特征并生成答案。

在推断的过程中,I 组件一次只读取一条语句,并将它编码为向量表征。然后 G 组件基于当前的语句表征更新一小块记忆,在所有语句都处理完后,记忆网络就生成了一个记忆矩阵(每一行表示一个语句),该矩阵储存了从语句中抽取的语义。对于问题,记忆网络会将它编码为向量表征,然后 O 组件使用向量从记忆中选择一些相关的证据,并生成一个输出向量。最后,R 组件将输出向量作为输入,并输出最终响应。

情感分析中的深度学习_第6张图片

情感分析中的深度学习_第7张图片

前两行为输入的先验知识,第三行有一个问题“where is the milk now?” ,然后得到回答“office”。

根据question:“where is the milk now?”,得到最相关的记忆mo1=“Joe left the milk”,然后由于k=2,得到mo2== “Joe travelled to the office”,然后将[x,mo1,mo2]与词表W中的每个单词w进行评分,得到得分最大的单词”office”作为回复。

9、递归神经网络

词嵌入是将单词表示成低维的稠密的实数向量。如何用稠密的向量表示短语,这是使用词向量的一个难题。在成分分析中,一般使用递归神经网络 (Recursive Neural Network) 来解决这个问题。递归神经网络是一种通用的模型,用来对句子进行建模。句子的语法树中的左右子节点通过一层线性神经网络结合起来,根节点的这层神经网络的参数就表示整句句子。递归神经网络能够给语法树中的所有叶子节点一个固定长度的向量表示,然后递归地给中间节点建立向量的表示。

情感分析中的深度学习_第8张图片

二、情感分析的任务

研究者主要在三个粒度级别上研究情感分析:文档级、语句级和 aspect level。文档级情感分类将观点鲜明的文档(例如,产品评论)分类为整体积极的或消极的观点。它将整个文档当做基本的信息单元,并假定文档是观点鲜明的,包含对单个实体(例如,某个型号的手机)的观点。语句级情感分类对文档内单独的语句进行分类。和文档级、语句级情感分类相比,aspect level 情感分析或基于 aspect 的情感分析更加细粒化。它的任务是提取和总结人们对某实体的观点以及实体(也被称为目标)的特征。例如一篇产品评论,aspect level 情感分析的目的是分别总结对产品不同方面的积极和消极观点,虽然对产品的总体情感可能是倾向积极的或消极的。

传统上,人们首先将一个语句分类为观点鲜明的(或相反),即主观性分类。然后观点鲜明的语句进一步被分类为积极的或消极的。语句级情感分类可以被形式化为三类分类问题,即判断某语句是中性的、积极的或消极的。

基于 aspect 的情感分析由多个子任务构成,例如 aspect 提取、实体提取和 aspect 情感分类。例如,句子「the voice quality of iPhone is great, but its battery sucks」的实体提取应该识别「iPhone」作为实体,而 aspect 提取需要识别「voice quality」和「battery」作为两个 aspect。aspect level 情感分类需要将对音质的评论分类为积极的,将对电池续航的评论分类为消极的。出于简洁性,大多数算法将 aspect 提取和实体提取结合起来,称为 aspect 提取或情感/观点目标提取。

1、文档级情感分类

文档级情感分类是指为观点型文档标记整体的情感倾向/极性,即确定文档整体上传达的是积极的还是消极的观点。因此,这是一个二元分类任务,也可以形式化为回归任务,例如为文档按 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 的缺陷,人们提出了基于神经网络的词嵌入技术以生成密集向量(或低维向量)用于词表征,从而在某种程度上可以编码单词的某些语义和句法属性。以词嵌入作为词的输入,可以利用神经网络得到文档的密集向量(或称为密集文档向量)表征。

当文档被适当地表征时,我们可以通过传统的监督学习方式,用多种神经网络模型进行情感分类。在某些案例中,神经网络可能只被用于提取文本特征或文本表征,然后这些特征被馈送到其它非神经网络的分类器(如 SVM),以获得最终的全局最优分类器。神经网络和 SVM 的特性以某种方式彼此互补,从而能结合各自的优势。

2、语句级的情感分类

语句级情感分类用来标定单句中的表达情感。句子的情感可以用主观性分类和极性分类来推断,前者将句子分为主观或客观的,而后者则判定主观句子表示消极或积极的情感。在现有的深度学习模型中,句子情感分类通常会形成一个联合的三类别分类问题,即预测句子为积极、中立或消极。

与文档级的情感分类相同,神经网络生成的语句表征对于语句级的情感分类也非常重要。另外由于句子相对文档而言较短,因此可以使用一些语法和语义信息(如解析树、观念词典和词性标签)来帮助分类。其他一些信息如评测打分、社会关系和跨域信息也可以考虑在内。例如,社会关系已被用于探索社交媒体数据中(如推文)的情感。

解析树(提供了一些语义和语法信息)与原始词一同用作神经模型的输入。之后,CNN 和 RNN 成为主流,它们不需要利用解析树从句子中提取特征。取而代之的是,CNN 与 RNN 使用词嵌入(已经编码了一些语义和语法信息)作为输入。此外,CNN 和 RNN 模型架构也可以帮助我们学习语句内词间的固有联系。

3、Aspect Level 情感分类

aspect level 情感分类同时考虑了情感信息和目标信息(情感一般都会有一个目标)。实体和实体特征通常都称为特征(aspect)。给定一个句子和目标特征,aspect level 情感分类可以推断出句子在目标特征的情感极性/倾向。例如,句子「the screen is very clear but the battery life is too short.」中,如果目标特征是「screen」,则情感是积极的,如果目标特征是「battery life」,则情感是消极的。

使用神经网络的 aspect level 情感分类有三个重要任务。第一个任务是表示目标的语境词。第二个任务是生成目标表示,通常的解决方案是学习目标嵌入(与词嵌入类似)。第三个任务是识别特定目标的重要情感语境词。例如,在句子「the screen of iPhone is clear but batter life is short」中,「clear」是「screen」的重要语境词,「short」是「battery life」的重要语境词。

4、带有词嵌入的情感分析

对于情感分析,直接使用 CBOW 或 Skip-gram 等常规的单词方法学习语境中的词嵌入可能会遇到问题,因为具有相似语境但情感极性相反(例如,「好」或「坏」)的单词可能被映射到嵌入空间的相近向量。提出了情感编码词嵌入方法。

5、用于情感分析的多模态数据

多模态数据已被用于情感分析,因为其比文本提供了更多的信息。深度学习模型把输入映射到一些特征空间,来自多模态数据的不同形式的输入也可以被这些模型投射到一些联合潜在空间或表征。

个人理解为“多模态数据”,即不同来源的数据。
举个简单的例子:在做视频检索时,你可以使用音频特征,也可以使用图像特征,这就是两种模态的数据;做测谎识别,你可以使用面部特征、肢体特征,也可以使用血压心跳等生理特征,这也是不同模态的数据,

你可能感兴趣的:(论文笔记,情感分析)