论文部分内容阅读
摘 要:目前,深度学习已经成为计算机视觉处理领域事实上的标准。由于它在图像处理方面的广泛普及和成功应用,几乎所有的其他领域的问题都在尝试通过深度学习找到其解决方案,在自然语言处理中的文本分析和语言建模也不例外。在情感分析中,识别用户在文本评论中隐藏的情感是一项具有挑战性的任务。在本文中, 使用深度学习模型进行基于IMDB电影评论数据集的情感分析,将基于深度学习的情感分析方法与其他传统機器学习方法进行比较,以评估模型的性能。实验结果表明,基于深度学习的神经网络模型在许多方面优于传统的机器学习方法。
关键词:情感分析;深度学习;自然语言处理;LSTM;词嵌入
中图分类号:TP183 文献标识码:A
0 引言
在解决机器学习问题上,深度学习已经被证明是非常成功的[1]。虽然这些深度学习算法并不能直接用来进行情感分析,但是深度学习在图像处理、语音处理和其他认知方面计算领域上的成功,促使人们正尝试把深度学习算法应用在语言处理, 情感分析和意见挖掘上,但语言问题是非常复杂的,首先需要解决语言规则和语言如何表示等相关的问题。随着词嵌入模型word2vec的出现,深度学习已经开始应用到包括情感分析在内的许多NLP任务中。
在本文中,使用深度神经网络将用户的电影评论数据集分为正类和负类。为了评估建立的深度学习模型的性能,将模型与传统的朴素贝叶斯和逻辑回归方法进行比较,结果表明,用于情感分析的深度神经网络自然语言处理(NLP)模型不仅在准确率方面优于基础模型,而且在捕获隐藏情感方面优于基于统计概率的机器学习算法。
在本文中,使用迁移学习方法并通过LSTM网络来进行情感分析,通过预训练word2vec模型把整个文档转换成向量表示,在训练过程中调整了神经网络的各种参数,通过权值初始化和优化,以获得在精度以及空间和时间复杂度方面的最佳性能。调优参数后,对IMDB数据集进行情感分析获得的最佳性能为93.7%。
1 情感分析的研究
情感分析通常被认为是一种分类任务,根据作者在文本中所表达的情感或情绪,将一段文本划分为若干类情感中的某一类。有许多机器学习算法可以应用于文本数据的极性学习,但它不能直接应用到文本本身, 输入的文本需要转换成矩阵, 矩阵中的元素代表文本的重要特性,转换成矩阵后,矩阵中的每一行对应于文本的n维特征向量,通过机器学习算法可以学习到文本数据的极性。目前有一些流行的特征选择算法,如Bag of Words 、Bag of n-grams或者TF-IDF等。这些方法只是简单地考虑了单词的统计量,而完全忽略了单词的顺序和上下文,而这些对单词的意义起着至关重要的作用。另外,因为词典的尺寸都非常大,所以这些方法还会产生稀疏和高纬度的矩阵,导致计算精度下降。
2 情感分析的深度神经网络
深度神经网络是一种包含许多隐藏层的人工神经网络[2]。最初的NLP的深度学习之旅从一个简单隐藏层的浅层神经网络开始。在理解文本中语言隐藏结构及其语义和句法关系的复杂性的过程中,神经网络中隐藏层的大小随着各种超参数不断增长,并进行微调以得到性能最佳的模型。神经网络中许多新的激活函数的成功应用,也为神经网络在解决语言问题方面的普及做出了重要贡献。特别是在自然语言处理中,深度学习在词性标注、机器翻译、语音识别、意见挖掘、文档摘要和问题回答等方面都非常成功。接下来本文介绍一下深度神经网络在自然语言处理中的关键技术。
2.1 词嵌入向量(Word-Embedding)
向量空间模型在NLP历史上已经使用了很长时间,例如支持向量机(VSM),其中所有数据点都表示为VSM中的一个点,分类器必须学习最好的超平面,该超平面应该能够将数据点分类到两个单独的类中。利用这一原则的方法可以主要分为两类:基于计数的方法和预测方法。在基于神经网络的词向量表示模型中,国外作者提出了两种不同的模型,一种是CBOW模型,另一种是SKIP-GRAM模型。CBOW中目标词的训练是基于上下文进行的,而在SKIP-GRAM模型中,对于每个词,它的上下文的词是基于窗口大小来预测的。本文采用word2vec模型对影评文档进行矢量表示。word2vec模型中主要的思想是,所有词汇出现在类似的环境相似的语义含义,应该放置在向量空间模型中比较近的位置。
2.2 递归神经网络(RNN)
RNN除了它是递归的本身就是一个简单的神经网络,它能够通过学习过去的信息去预测未来。RNN适合时间序列方面的学习,如词性标注或机器翻译等。但不能识别句子中单词之间的长期依赖关系,即当递归过程中的序列变大时,会出现梯度消失问题,这时网络停止进一步学习。在情感分析任务中,自word2vec模型提出以来,RNN发现了它的重要性。但由于word2vec模型是以向量的形式表示单词,而RNN期望输入的数据是固定大小的序列向量,这就使得NLP有很多任务需要解决,并且需要进行各种变化。它在语言方面获得的最重要的特征是它的输出依赖于当前输入的单词,同时在隐藏层中学习到包含上下文信息的权值矩阵。
2.3 长短期记忆神经网络(LSTM)
LSTM的提出是为了解决RNN中梯度消失的问题,由于梯度消失问题,RNN无法搜索到离当前时刻很远的信息,这是因为权值矩阵的值的更新变得非常小,从而导致学习到的新权值矩阵与旧权值矩阵几乎保持不变,经过一段时间后就不再进行进一步的学习。这被认为是RNN学习长文本序列句子的一个主要缺点。通过利用LSTM中的内存单元和门的概念,RNN的这个问题得到了解决,使其适合于在确定电影评论的极性或一般文本处理中捕获到较长的上下文信息。简单的LSTM架构由记忆单元、输入门、输出门、遗忘门和传统RNN中的隐藏状态组成。LSTM模型需要确定它所学到的哪些信息与未来无关,并且需要去除这些信息。通过这样的处理机制,LSTM能够保存较长的信息,从而缓解RNN中梯度消失的问题。 2.4 激活函数(Activation Function)
在神经网络中有许多激活函数用于处理非线性的问题并能实现最佳的分类。其中Sigmoid, tanh和SoftMax在LSTM中用于不同的目的。它的非线性特性使其成为分类任务的合适对象,其推导过程使其在损失函数优化过程中易于实现。这些激活函数在模型中加入了非线性,有助于在训练过程中获得最佳拟合曲线。对这些激活函数进行了实验,并在深度神经网络模型中评估了它们在情感分析任务中的有效性。
3 实验部分介绍
本文中的实验是在12 GB内存的GTX 1080i GPU上进行,模型开发使用python3,深度神经网络的模型训练和测试使用了基于tensorflow的keras库。为了提高性能,在谷歌colab jupyter notebook执行代码,不断在GPU和CPU之间切换,发现在数据量大、矢量矩阵乘法高维的情况下更适合GPU,运行速度也相对较快。对于输入原始数据的许多任务,使用nltk和scikitlearn python库,对于单词向量表示,使用word2vec预训练模型。
在实验数据方面,使用公开可用的大型影评数据集IMDB(v1.0)。这个数据集是专门为二分类而准备的,数据集中有25000条电影评论用于训练,25000条用于测试。实验按照以下步骤进行。
步骤1 预处理数据,去除噪声字符和停用词。
步骤2 将数据按4:1的比例把数据集分割成训练集和测试集。
步骤3 使用哈希函数对文本数据进行编码,为每个单词分配唯一的数字。
步骤4 填充或截断文本序列使得它们具有相同的输入长度。
步骤5 构建词嵌入层、LSTM层和全连接层。
步骤6 编译深度神经网络模型
步骤7 拟合(训练)模型
步骤8 评估(测试)模型
4 模型评估
在实验中,本文调整了不同的参数以获得最佳的LSTM神经网络性能。采用迁移学习的方法,通过预先训练好的嵌入模型、word2vec和doc2vec得到单词和文档的向量,并将其输入到LSTM中,利用LSTM的嵌入层构建单词嵌入。
本文还使用不同的激活函数和正则化参数来得到最佳的结果组合。代价函数在这种情况下,因为实验的数据集有正极性或负极性,本文选择二元交叉熵。为了最小化成本函数,本文使用Adam optimizer来实现优化。
使用不同模型的实验结果如下所示,可以看出,使用深度神经网络的方法比传统的贝叶斯、随机森林和SVM分类方法[3]在准确率方面大幅提升。
5 结论
在本文中,通过电影评论数据集,利用深度神经网络算法对用户评论中隐藏的情感进行分析。使用预先训练好的单词嵌入模型生成词的低维向量表示,并使用基于LSTM的序列模型进行情感分析。文中还试验了各种超参数,学习这些参数的最佳可能值,使训练模型产生更高的精度,并使用GPU帮助实现更快的计算响应。总体而言,在自然语言处理方面,深度学习方法不仅在准确性方面优于传统方法,而且在从语言角度捕捉评论中的真实用户情感方面也优于传统方法。
参考文献:
[1] 闫涛. 深度学习算法实践 [M]. 电子工业出版社出版社,2020
[2] 王曉华. TensorFlow 2.0卷积神经网络实战 [M]. 清华大学出版社出版社,2020
[3] 赵卫东,董亮. 机器学习[M].人民邮电出版社,2018
作者简介:
翟高粤(1975—),男,广西钦州,副教授,硕士研究生,研究方向为软件工程,人工智能。
关键词:情感分析;深度学习;自然语言处理;LSTM;词嵌入
中图分类号:TP183 文献标识码:A
0 引言
在解决机器学习问题上,深度学习已经被证明是非常成功的[1]。虽然这些深度学习算法并不能直接用来进行情感分析,但是深度学习在图像处理、语音处理和其他认知方面计算领域上的成功,促使人们正尝试把深度学习算法应用在语言处理, 情感分析和意见挖掘上,但语言问题是非常复杂的,首先需要解决语言规则和语言如何表示等相关的问题。随着词嵌入模型word2vec的出现,深度学习已经开始应用到包括情感分析在内的许多NLP任务中。
在本文中,使用深度神经网络将用户的电影评论数据集分为正类和负类。为了评估建立的深度学习模型的性能,将模型与传统的朴素贝叶斯和逻辑回归方法进行比较,结果表明,用于情感分析的深度神经网络自然语言处理(NLP)模型不仅在准确率方面优于基础模型,而且在捕获隐藏情感方面优于基于统计概率的机器学习算法。
在本文中,使用迁移学习方法并通过LSTM网络来进行情感分析,通过预训练word2vec模型把整个文档转换成向量表示,在训练过程中调整了神经网络的各种参数,通过权值初始化和优化,以获得在精度以及空间和时间复杂度方面的最佳性能。调优参数后,对IMDB数据集进行情感分析获得的最佳性能为93.7%。
1 情感分析的研究
情感分析通常被认为是一种分类任务,根据作者在文本中所表达的情感或情绪,将一段文本划分为若干类情感中的某一类。有许多机器学习算法可以应用于文本数据的极性学习,但它不能直接应用到文本本身, 输入的文本需要转换成矩阵, 矩阵中的元素代表文本的重要特性,转换成矩阵后,矩阵中的每一行对应于文本的n维特征向量,通过机器学习算法可以学习到文本数据的极性。目前有一些流行的特征选择算法,如Bag of Words 、Bag of n-grams或者TF-IDF等。这些方法只是简单地考虑了单词的统计量,而完全忽略了单词的顺序和上下文,而这些对单词的意义起着至关重要的作用。另外,因为词典的尺寸都非常大,所以这些方法还会产生稀疏和高纬度的矩阵,导致计算精度下降。
2 情感分析的深度神经网络
深度神经网络是一种包含许多隐藏层的人工神经网络[2]。最初的NLP的深度学习之旅从一个简单隐藏层的浅层神经网络开始。在理解文本中语言隐藏结构及其语义和句法关系的复杂性的过程中,神经网络中隐藏层的大小随着各种超参数不断增长,并进行微调以得到性能最佳的模型。神经网络中许多新的激活函数的成功应用,也为神经网络在解决语言问题方面的普及做出了重要贡献。特别是在自然语言处理中,深度学习在词性标注、机器翻译、语音识别、意见挖掘、文档摘要和问题回答等方面都非常成功。接下来本文介绍一下深度神经网络在自然语言处理中的关键技术。
2.1 词嵌入向量(Word-Embedding)
向量空间模型在NLP历史上已经使用了很长时间,例如支持向量机(VSM),其中所有数据点都表示为VSM中的一个点,分类器必须学习最好的超平面,该超平面应该能够将数据点分类到两个单独的类中。利用这一原则的方法可以主要分为两类:基于计数的方法和预测方法。在基于神经网络的词向量表示模型中,国外作者提出了两种不同的模型,一种是CBOW模型,另一种是SKIP-GRAM模型。CBOW中目标词的训练是基于上下文进行的,而在SKIP-GRAM模型中,对于每个词,它的上下文的词是基于窗口大小来预测的。本文采用word2vec模型对影评文档进行矢量表示。word2vec模型中主要的思想是,所有词汇出现在类似的环境相似的语义含义,应该放置在向量空间模型中比较近的位置。
2.2 递归神经网络(RNN)
RNN除了它是递归的本身就是一个简单的神经网络,它能够通过学习过去的信息去预测未来。RNN适合时间序列方面的学习,如词性标注或机器翻译等。但不能识别句子中单词之间的长期依赖关系,即当递归过程中的序列变大时,会出现梯度消失问题,这时网络停止进一步学习。在情感分析任务中,自word2vec模型提出以来,RNN发现了它的重要性。但由于word2vec模型是以向量的形式表示单词,而RNN期望输入的数据是固定大小的序列向量,这就使得NLP有很多任务需要解决,并且需要进行各种变化。它在语言方面获得的最重要的特征是它的输出依赖于当前输入的单词,同时在隐藏层中学习到包含上下文信息的权值矩阵。
2.3 长短期记忆神经网络(LSTM)
LSTM的提出是为了解决RNN中梯度消失的问题,由于梯度消失问题,RNN无法搜索到离当前时刻很远的信息,这是因为权值矩阵的值的更新变得非常小,从而导致学习到的新权值矩阵与旧权值矩阵几乎保持不变,经过一段时间后就不再进行进一步的学习。这被认为是RNN学习长文本序列句子的一个主要缺点。通过利用LSTM中的内存单元和门的概念,RNN的这个问题得到了解决,使其适合于在确定电影评论的极性或一般文本处理中捕获到较长的上下文信息。简单的LSTM架构由记忆单元、输入门、输出门、遗忘门和传统RNN中的隐藏状态组成。LSTM模型需要确定它所学到的哪些信息与未来无关,并且需要去除这些信息。通过这样的处理机制,LSTM能够保存较长的信息,从而缓解RNN中梯度消失的问题。 2.4 激活函数(Activation Function)
在神经网络中有许多激活函数用于处理非线性的问题并能实现最佳的分类。其中Sigmoid, tanh和SoftMax在LSTM中用于不同的目的。它的非线性特性使其成为分类任务的合适对象,其推导过程使其在损失函数优化过程中易于实现。这些激活函数在模型中加入了非线性,有助于在训练过程中获得最佳拟合曲线。对这些激活函数进行了实验,并在深度神经网络模型中评估了它们在情感分析任务中的有效性。
3 实验部分介绍
本文中的实验是在12 GB内存的GTX 1080i GPU上进行,模型开发使用python3,深度神经网络的模型训练和测试使用了基于tensorflow的keras库。为了提高性能,在谷歌colab jupyter notebook执行代码,不断在GPU和CPU之间切换,发现在数据量大、矢量矩阵乘法高维的情况下更适合GPU,运行速度也相对较快。对于输入原始数据的许多任务,使用nltk和scikitlearn python库,对于单词向量表示,使用word2vec预训练模型。
在实验数据方面,使用公开可用的大型影评数据集IMDB(v1.0)。这个数据集是专门为二分类而准备的,数据集中有25000条电影评论用于训练,25000条用于测试。实验按照以下步骤进行。
步骤1 预处理数据,去除噪声字符和停用词。
步骤2 将数据按4:1的比例把数据集分割成训练集和测试集。
步骤3 使用哈希函数对文本数据进行编码,为每个单词分配唯一的数字。
步骤4 填充或截断文本序列使得它们具有相同的输入长度。
步骤5 构建词嵌入层、LSTM层和全连接层。
步骤6 编译深度神经网络模型
步骤7 拟合(训练)模型
步骤8 评估(测试)模型
4 模型评估
在实验中,本文调整了不同的参数以获得最佳的LSTM神经网络性能。采用迁移学习的方法,通过预先训练好的嵌入模型、word2vec和doc2vec得到单词和文档的向量,并将其输入到LSTM中,利用LSTM的嵌入层构建单词嵌入。
本文还使用不同的激活函数和正则化参数来得到最佳的结果组合。代价函数在这种情况下,因为实验的数据集有正极性或负极性,本文选择二元交叉熵。为了最小化成本函数,本文使用Adam optimizer来实现优化。
使用不同模型的实验结果如下所示,可以看出,使用深度神经网络的方法比传统的贝叶斯、随机森林和SVM分类方法[3]在准确率方面大幅提升。
5 结论
在本文中,通过电影评论数据集,利用深度神经网络算法对用户评论中隐藏的情感进行分析。使用预先训练好的单词嵌入模型生成词的低维向量表示,并使用基于LSTM的序列模型进行情感分析。文中还试验了各种超参数,学习这些参数的最佳可能值,使训练模型产生更高的精度,并使用GPU帮助实现更快的计算响应。总体而言,在自然语言处理方面,深度学习方法不仅在准确性方面优于传统方法,而且在从语言角度捕捉评论中的真实用户情感方面也优于传统方法。
参考文献:
[1] 闫涛. 深度学习算法实践 [M]. 电子工业出版社出版社,2020
[2] 王曉华. TensorFlow 2.0卷积神经网络实战 [M]. 清华大学出版社出版社,2020
[3] 赵卫东,董亮. 机器学习[M].人民邮电出版社,2018
作者简介:
翟高粤(1975—),男,广西钦州,副教授,硕士研究生,研究方向为软件工程,人工智能。