时间:2024-05-04
张玉环,钱 江
(1. 北京邮电大学理学院,北京 100876;2. 北京邮电大学理学院,北京 100876)
随着互联网技术的飞速发展,越来越多的用户开始在网上发表自己的意见,这些意见包括了公民对公共事件的看法以及顾客对商品的评论等等。而制造商为了提高产品质量,改善营销策略,就必须充分了解用户对商品和相关服务的意见。同时在如今的电商时代,越来越多的人选择在网上购物,但是消费者无法像在实体店一样见到真实的商品,检查商品的质量,所以对制造商和消费者来说,商品的评论数据都是很重要的[1]。这些评论往往表达了作者或正向(褒)、或负向(贬)、或中立的观点[2]。但是,同一商品的评论往往有很多,这使得用户和商家无法迅速掌握有用的信息,而传统的问卷调查显然不能满足市场竞争的需要,因此针对文本的情感倾向性分析[3]就有着重要的研究意义。文本的情感倾向性分析,即针对每一条文本,实现正向、中性、负向的三分类,识别其情感倾向[2]。文本分类[4]常用的方法有:决策树、朴素贝叶斯、支持向量机、神经网络等等[5]。而关于文本的情感倾向性分类,本文采用了与神经网络相关的算法。
传统的人工神经网络又被称为前馈神经网络(Feed Forward Neural Networks,FNN)[6,7],包含输入层、隐藏层和输出层,层与层之间是全连接的,隐藏层之间的节点是无连接的。这种模型在处理序列数据时只能利用当前时刻的信息,无法利用历史信息[6]。
Elman[8]在 1990年提出了循环神经网络(Recurrent Neural Network,RNN),其隐藏层之间的节点也是有连接的,所以隐藏层的输入不仅包括当前时刻输入层的输入还包括上一时刻隐藏层的输出。理论上,RNN能够对任何长度的序列数据进行处理。但是在实践中,当相关信息和当前预测位置之间的间隔不断增大时,比如“虽然……但是……”,我们要预测后面的“但是”,最需要的信息是前面的“虽然”,可是由于间隔太远,RNN就会丧失学习远距离信息的能力。这是因为RNN使用BPTT[9]反向传播算法对网络进行优化时,会产生梯度消失和梯度爆炸问题[6,10,11]。
1997年,Hochreiter & Schimidhuber[9]提出了长短期记忆单元(Long Short-Term Memory,LSTM)用于改进传统的 RNN 模型。LSTM通过带细胞的记忆单元来替代RNN隐藏层中的模块,同时使用输入门和输出门来让信息选择式通过[6]。1999年,Gers等[12]在前面的基础上又引入了遗忘门。这三个门和细胞状态的设计,使得LSTM[7,13]可以记忆、更新长距离的信息,从而可以实现对长距离信息的处理。
2014年,Cho等[14]提出了LSTM的一种简化版本GRU(Gated Recurrent Unit)[13]。它只包含两个门:更新门(update gate)和重置门(reset gate)[9],移除了输出门及隐层细胞状态。Chung 等[15]通过多组对比实验表明,GRU虽然参数更少,但是在多个任务上都和LSTM有相近的表现[6]。
首先把一段中文文本进行分词,然后将其转化成词向量表示,最后将转化成的向量表示传入LSTM/GRU神经网络,最后输出的是这段文本的困惑度也即其概率值。
具体的流程如下:
Ⅰ训练过程:首先对训练数据进行人工情感标注,分为正向情感样本、中性情感样本和负向情感样本;然后分别对其进行分词和词向量化;最后将转化成的向量表示分别传入LSTM/GRU神经网络。根据正、中、负三种情感样本分别训练出覆盖正向情感样本的LSTM/GRU模型、覆盖中性情感样本的LSTM/GRU模型、覆盖负向情感样本的LSTM/GRU模型,简称为正向情感模型、中性情感模型、负向情感模型。
Ⅱ测试过程:首先同样对测试数据进行人工情感标注,分为正向情感样本、中性情感样本和负向情感样本;然后分别对其进行分词和词向量化;不同的是最后将转化成的向量表示分别传入正向情感模型、中性情感模型、负向情感模型。通过每个模型,都会得到一个概率值,所以最后得到的是一个3*3的矩阵,对角线上的元素即是正向情感模型、中性情感模型、负向情感模型预测正确的概率。本文中,我们取三者的平均数作为LSTM/GRU模型对文本情感分析的正确率。
以往在模型的参数调整方面,主要采用的方法是网格取值和随机取值,然而网格取值效率太低,随机取值又有很大的不确定性,因此本文提出了一种伪梯度下降法,相较于网格取值,可以在较短的时间内达到较好的正确率。步骤如下:
下面来着重说一下我的这幅《乐园》的具体创作过程,主要包括构图、色彩、线条、肌理效果、展出方式。这幅作品的尺寸为100cm*200cm,采用的是毛毡材料拼贴的方式。
(1)随机选择3个初始点 x0,x1,x2∈R3(点的每一维度表示一个参数),分别进行训练过程和测试过程,得到LSTM/GRU模型对文本情感分析的正确率 y0, y1,y2∈R,比较三者的值,从最大值对应的点出发。为方便表述,假设 y0最大。
(2)确定方向d,由于从正确率最高的点 x0到其他两点 x1,x2都是正确率下降的方向,所以取正确?率上升的方向为:
(3)确定步长α,步长与正确率上升的程度成正比,正确率上升的越多,步长越大。正确率上升程度的比值为 (y0- y1) :(y0- y2),对其取整,记为l1:l2,在进一步进行归一化,则步长公式为:
(4)计算下一个点 x3∈ R3的坐标,依据公式在进行训练过程和测试过程,得到此时LSTM/GRU模型对文本情感分析的正确率y3∈R。
(5)返回步1,此时选择的3个点为上一次使用的 x0,新求出的 x3,以及剩下的 x1和 x2中正确率较高的点。然后依照上面的步骤继续进行,直到某个新求出的点的正确率与网格取值的最优正确率相接近为止。
本文使用的数据集来源于京东的商品评论,共39000条,整理后,对评论数据进行人工情感标注,其中,正向情感样本、中性情感样本、负向情感样本各有13000条,从正、中、负情感样本中各随机取出10000条作为训练数据,剩下的3000条作为测试数据。
在LSTM/GRU模型中,参数num_steps表示模型展开的步数(batch_size的取值与之相同),hidden_size表示隐藏层的规模,keep_prob表示在dropout层中保持权重的概率。LSTM实验结果见表1,GRU实验结果见表2。
表1 LSTM实验结果Tab.1 LSTM experimental result
表2 GRU实验结果Tab.2 GRU experimental result
从实验结果可以看出:LSTM模型和 GRU模型在中文文本情感分析方面都有不错的结果,二者均可用于中文文本的情感多分类,并且在参数取值相同的情况下,GRU模型的正确率相对 LSTM要好一些。
对参数 num_steps、batch_size、hidden_size、keep_prob进行离散取值,其中 num_steps与batch_size取值相同,各参数取值见表3。
每个参数有3种选择,所以一共是3*3*3=27种可能,各种情况下LSTM、GRU模型的正确率见表4。
根据以上结果可以得出:当num_steps与batch_size取10,hidden_size取200,keep_prob取 0.7时,LSTM模型达到最高的正确率,为 0.839;GRU模型此时也达到了最高的正确率,为0.847。
表3 模型中的参数值Tab.3 Parameter values in the model
3.3.2 伪梯度下降法
为了保证参数的合理性,对每个参数都预设最小最大值:num_steps取 10-100,hidden_size取100-1000,keep_prob取 0.1-1。而且在利用伪梯度下降法求解新参数的过程中,如果前两个参数出现不是整数的情况时,则直接取整,并且一定不能出现负数,keep_prob如果出现负数,则直接取成0.1。
表4 LSTM、GRU模型的正确率Tab.4 Accuracy of the LSTM、GRU model
LSTM模型结果如下:
Step1: 初始取 A(10,200,1),B(20,400,0.5),C(40,100,0.7)三点,其正确率分别为 0.825,0.8288,0.7609,从正确率最高的点B出发,求出下一个点D的坐标为(2,695,0.3),根据参数范围,取成(10,695,0.3),得到此时模型的正确率为0.815。
Step2: 保留上一步中使用的B点,以及剩下的A,C两点中正确率较高的A点,所以下一步选择的三个点是A,B,D。从正确率最高的点B出发,求出下一个点E的坐标为(30,204,0.56),此时模型的正确率为0.8107。
Step3: 保留上一步中使用的B点,以及剩下的A,D两点中正确率较高的A点,所以下一步选择的三个点是A,B,E。从正确率最高的点B出发,求出下一个点 F的坐标为(13,597,0.4),此时模型的正确率为0.826。
Step4: 保留上一步中使用的B点,以及剩下的A,E两点中正确率较高的A点,所以下一步选择的三个点是A,B,F。从正确率最高的点B出发,求出下一个点G的坐标为(29,402,0.3),此时模型的正确率为0.796。
Step5: 保留上一步中使用的B点,以及剩下的A,F两点中正确率较高的F点,所以下一步选择的三个点是G,B,F。从正确率最高的点B出发,求出下一个点H的坐标为(12,383,0.7),此时模型的正确率为0.848。
GRU模型结果如下:
Step1: 初始取 A(10,200,1),B(20,400,0.5),C(40,100,0.7)三点,其正确率分别为0.83,0.841,0.764,从正确率最高的点B出发,求出下一个点D的坐标为(10,688,0.3),得到此时模型的正确率为0.821。
Step2: 保留上一步中使用的B点,以及剩下的A,C两点中正确率较高的A点,所以下一步选择的三个点是A,B,D。从正确率最高的点B出发,求出下一个点 E的坐标为(30,275,0.5),此时模型的正确率为0.818。
Step3: 保留上一步中使用的B点,以及剩下的A,D两点中正确率较高的A点,所以下一步选择的三个点是A,B,E。从正确率最高的点B出发,求出下一个点 F的坐标为(17,550,0.3),此时模型的正确率为0.834。
Step4: 保留上一步中使用的B点,以及剩下的A,E两点中正确率较高的A点,所以下一步选择的三个点是A,B,F。从正确率最高的点B出发,求出下一个点G的坐标为(28,483,0.2),此时模型的正确率为0.723。
Step5:保留上一步中使用的 B点,以及剩下的A,F两点中正确率较高的F点,所以下一步选择的三个点是G,B,F。从正确率最高的点B出发,求出下一个点H的坐标为(13,313,0.8),此时模型的正确率为0.839。
Step6: 保留上一步中使用的B点,以及剩下的G,F两点中正确率较高的F点,所以下一步选择的三个点是H,B,F。从正确率最高的点B出发,求出下一个点I的坐标为(24,297,0.6),此时模型的正确率为0.791。
Step7: 保留上一步中使用的B点,以及剩下的H,F两点中正确率较高的 H点,所以下一步选择的三个点是I,B,H。从正确率最高的点B出发,求出下一个点 J的坐标为(16,502,0.4),此时模型的正确率为0.734。
Step8: 保留上一步中使用的B点,以及剩下的H,I两点中正确率较高的H点,所以下一步选择的三个点是J,B,H。从正确率最高的点B出发,求出下一个点K的坐标为(24,301,0.6),此时模型的正确率为0.847。
由上述结果可以看出:使用伪梯度下降的方法后,选择3个初始点,LSTM模型只需5步就得到了 0.848的正确率,比网格取值的最优结果更好;而GRU模型也只用了8步就得到了和网格取值同样的最优结果0.847。这说明伪梯度下降的方法确实在参数调整方面有很大的应用价值。
本文通过LSTM、GRU模型实现了中文文本情感的三分类,得出了各种参数情况下模型的正确率;同时在调整参数方面提出的伪梯度下降法也有很好的效果。
由于伪梯度下降法与初始点、方向、步长的选择有关,所以可以在本文的基础上进一步探讨它们之间的关系,从而得到一种更好的调参方法。
[1] 魏晶晶, 吴晓吟. 电子商务产品评论多级情感分析的研究与实现[J]. 软件, 2013, 34(9): 65-67.
[2] 王坤亮. 汉语情感倾向自动分类方法的研究[J]. 软件,2013, 34(11): 73-76.
[3] 姚天昉, 程希文, 徐飞玉, 等. 文本意见挖掘综述[J]. 中文信息学报, 2008, 22(3): 71-80.
[4] 郑世卓, 崔晓燕. 基于半监督LDA的文本分类应用研究[J].软件, 2014, 35(1): 46-48.
[5] 陈海红. 多核SVM文本分类研究[J]. 软件, 2015, 36(5):7-10.
[6] 胡新辰. 基于LSTM的语义关系分类研究[D], 哈尔滨: 哈尔滨工业大学, 2015.
[7] Graves A. Supervised Sequence Labelling with Recurrent Neural Networks[M]. Berlin Heidelberg: Springer, 2012.
[8] Elman J L. Finding structure in time[J]. Cognitive science,1990, 14(2): 179-211.
[9] Hochreiter S, Schmidhuber J.Long Short-Term Memory[J].Neural Computation, 1997, 9(8): 1735-1780.
[10] Hochreiter S. Untersuchungen zu dynamischen neuronalen Netzen[D]. Munchen: Technische Universitat, 1991.
[11] Bengio Y, Simard P, Frasconi P. Learning long-term dependencies with gradient descent is difficult[J]. IEEE Transactions on Neural Networks, 2002, 5(2): 157-166.
[12] Gers F A, Schmidhuber J, Cummins F. Learning to forget:Continual prediction with LSTM[J]. Neural computation,2000, 12(10): 2451-2471.
[13] Zhou G B, Wu J, Zhang C L, et al. Minimal Gated Unit for Recurrent Neural Networks[J]. International Journal of Automation and Computing, 2016, 13(3): 226-234.
[14] Cho K, Merrienboer B V, Gulcehre C, et al. Learning phrase representations using RNN encoder-decoder for statistical machine translation[J]. arXiv preprint arXiv: 1406.1078,2014.
[15] Chung J, Gulcehre C, Cho K H, et al. Empirical evaluation of gated recurrent neural networks on sequence modeling[J].arXiv preprint arXiv:1412.3555, 2014.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!