基于协同过滤Attention机制的情感分析模型
2018-09-18赵冬梅陶建华顾明亮
赵冬梅,李 雅,陶建华,顾明亮
(1. 江苏师范大学 物理与电子工程学院,江苏 徐州 221116;2. 中国科学院 自动化研究所 模式识别国家重点实验室,北京 100101)
0 引言
情感分析旨在从文本中挖掘出用户对某一热点问题或者产品性能的观点信息。在实际应用中不仅可以帮助电商企业评估产品的市场价值,也可以帮助政府部门做好舆情监控等任务。因此,文本情感分析越来越受到关注,并成为自然语言处理领域的重要课题之一[1]。
在传统的情感分析中,研究者们往往只关注评论内容的重要性。根据绝大多数推荐网站上产品评论信息中提供的评价用户信息及其喜好信息,可以发现同一用户评论数据的情感极性比来自不同用户的情感极性更倾向于一致。因此,将用户及被评价的产品信息融入情感分类的任务中至关重要。
目前已有研究者考虑在模型中加入用户及产品信息。例如,将用户、产品以及评论数据特征基于词袋模型输入不同的分类器中进行探究[2]。也有使用概率模型获取用户的兴趣分布和文本内容分布[3]。而随着深度学习在计算机视觉、语音识别、自然语言处理领域的成功应用,基于深度学习的模型越来越成为情感分析的主流方法。通过神经网络可以提取出文本中更丰富的语义信息以及包含的用户、产品信息。但目前大多数模型都是将用户和产品信息加入文本中一起输入模型训练,这样不仅使评论内容失去原本的语义,且导致用户个性等信息也没能被提取出来。
由于成长环境、教育背景等差异,不同用户的性格习惯存在一定区别。评价产品时,用户会对喜欢的物品打高分,对不喜欢的物品打低分,但也存在用户对喜欢或不喜欢的物品都选择低分或者高分,这就凸显了用户的个性信息。本文提出LSTM-CFA模型,通过使用推荐系统中协同过滤算法从用户和产品信息中提取出用户兴趣分布信息,并将此信息作为模型的注意力机制。在使用层次LSTM模型的过程中,指导词语级别和句子级别的特征表示,以提高文档级别的情感分类任务。
本文的创新点主要有以下两个方面:
(1) 使用协同过滤算法,充分挖掘用户的个性以及产品信息,将其作为模型的注意力机制。
(2) 使用奇异值分解(SVD)对稀疏矩阵进行优化分解,得到用户个性矩阵和产品信息矩阵。
1 相关工作介绍
情感分析任务作为自然语言处理领域的重要课题之一,旨在从文本中挖掘出主题或者用户观点等情感信息。划分出的情感类别可以是积极和消极,也可以像影评数据集中那样使用0—10表示级别。
近几年,由于神经网络模型有较好的文本表示能力,开始被引用到自然语言处理领域解决实际问题。Hinton最早提出将非结构化的文本映射到低维实值空间中[4],演变成现在的词向量。词向量可以从文本中提取有效的语义信息并计算出词语之间的相似性。Mikolov提出Word2Vec工具将获取词向量方法变得更加方便有效[5],随后又提出了基于文档的Paragraph工具,给文档表示提供了很大的帮助。
在情感分类任务中,Socher等人使用一系列的递归神经网络学习文本表示方法,包括递归自编码模型(recursive autoencoders, RAE)[6]、矩阵向量递归神经网络(matrix-vector recursive neural network, MVRNN)[7]、递归神经张量网络(recursive neural tensor network, RNTN)[8],在斯坦福语料(Stanford sentiment treebank, SST)上获得5.4%提高。Kim参考图像领域的卷积神经网络模型(convolutional neural network, CNN)修改并加入滑动窗口提取不同的文本特征,用来解决文本分类以及情感分类问题,取得很好的效果[9]。Kalchbrenner等人提出动态的CNN模型,使用动态的池化层处理不同句长的句子[10]。另外,循环神经网络(recursive neural network, RNN)在时序数据上的不俗表现使其在自然语言处理领域广受欢迎。Tai等人建立了树结构的LSTM模型用来处理情感分类任务[11]。Tang等人构建层次的LSTM模型来表示不同级别的特征信息,在文档分类任务中效果较好[12]。注意力模型可以模拟人类注意力运行机制在图像领域取得不俗的表现,在自然语言处理领域中可以通过注意力机制从词语或句子中提取出更重要的信息作为特征[13]。
2 模型及算法介绍
对比已有的基于用户和产品的情感分析模型[14],本文提出了基于协同过滤注意力机制的情感分析模型(long short time memory cooperative filter attention, LSTM-CFA)。使用推荐系统中的协同过滤算法(cooperative filter, CF)以获得用户兴趣分布矩阵,再将此矩阵作为LSTM模型的注意力机制(attention),模型结构如图1所示。实验主要流程为: 首先将训练好的词向量作为第一层LSTM模型输入,将得到的隐藏层结合注意力机制表示成句子向量,再把句子向量通过第二层LSTM模型得到句子隐藏层,然后再次结合注意力机制得到文档表示特征,通过全连层后利用softmax层完成情感分析工作。
2.1 基于层次LSTM特征表示模型
循环神经网络可以通过链式神经网络结构传播历史信息。在处理时序数据时,它每次能看到当前的输入xt以及上一时刻输出的隐藏状态ht-1。 然而在训练RNN时,发现反向传播算法会导致在长距离传输过程中梯度弥散,当前信息无法传递到时间t以外的节点处,降低对历史信息的感知力[15]。为了解决这个问题,Hochreiter等提出长短时记忆模型(LSTM)[16],并在自然语言处理领域有着很好的应用效果。
因此,本文使用层次LSTM分别表示句子级别特征和文档级别特征。首先使用Word2Vec预训练得到词向量表示形式,将句中词语嵌入低维语义空间。每一步中,使用词向量xt作为输入,此时的隐藏状态ht和当前记忆门ct可以由之前的门状态ct-1和隐藏状态ht-1更新得到。具体过程如式(1)~式(6)所示。
同理,句子级别特征通过第二层LSTM模型后便可以得到文档的特征表示。
图1 基于协同过滤的情感分析模型框架
2.2 基于协同过滤的注意力机制模型
协同过滤算法已被成功运用于许多推荐系统中[17]。主要分为,基于用户相似性的协同过滤算法和基于物品相似性的协同过滤算法。本文使用基于物品相似度的方法,通过用户对已用的物品评分来计算用户对与该物品相似的物品评分,以预测用户偏好分布并推荐物品。
2.2.1 用户兴趣分布矩阵计算
本文希望通过协同过滤算法获得用户兴趣分布矩阵作为情感分析模型的注意力机制,文中矩阵计算步骤如下。
1) 构建物品之间的共现矩阵
共现矩阵是表示某一用户喜欢或评分的物品列表集合。如用户A评分过的物品有a、b、c、d,那么对于物品a而言,b、c、d均与a共同存在过,即在对应的矩阵中标1。同理,可以得到物品数量大小的方阵,其中数值表示两物品是否在同一用户下存在过。对于得到的方阵数值只有0或者1表示,为了计算方便,这里使用余弦相似度对共现矩阵做归一化处理,如式(7)所示。
2) 建立用户对物品的评分矩阵
将用户对物品的评分构建成矩阵。矩阵行表示用户,列表示物品,数值是某一用户对某物品的打分情况。若没有打分则记为0,打分则记为相应分数,矩阵形式如表1所示,其中ui列表示用户(i=1…4),pj行表示产品(j=1…5)。
表1 评分矩阵形式
3) 计算得到用户兴趣分布矩阵
根据物品相似度以及打分情况通过式(8)便可以计算出用户对没有打分的物品的喜好程度。
其中,rui表示用户对物品i的打分。
4) 用户兴趣分布矩阵分解优化
根据以上三个步骤便可以计算出用户兴趣分布矩阵,该矩阵维度大小为用户数量乘以产品数量。当数据较多的情况下高维矩阵不仅会影响计算速度,也会存在稀疏可能。本文使用奇异值分解(SVD)分解法对高维矩阵进行分解处理[18],得到用户兴趣分布矩阵和产品属性分布矩阵,如式(9)所示。
其中,A表示待分解矩阵,在这里指用户兴趣分布矩阵,U与VT是分解后得到的矩阵。在本文中表示用户个性矩阵和产品属性矩阵。
2.2.2 注意力机制模型
注意力机制(attention)是松散的基于人脑注意力的一种机制,在文本中通过自动加权的方法能够有效的捕捉到文本中重要的信息。本文中使用用户兴趣分布矩阵作为注意力模型从隐藏状态中提取对句子贡献较大的词语,用这些词表征句子的特征。具体计算如式(10)~式(12)所示。
其中,Wh,Wu,Wp是权重矩阵,b表示偏置值,u,p表示用户物品分布矩阵,可以通过奇异值分解用户兴趣分布矩阵得到。uij是打分函数,计算词语的重要程度。通过softmax函数计算uw向量的权重值αij。 最后将αij与对应的隐状态加权求和得到句子特征。
同理,句子在不同用户不同物品间表达的意义也会有所不同,对于上述得到的句子特征后采用同样的权重计算,即可以得到文档表示特征d,如式(13)所示。
其中,βi表示句子中句子特征中第i个隐状态hi的权重值,计算方式参考式(11)。
2.3 文档情感识别
本文使用LSTM-CFA模型对文档进行情感分析。使用预训练得到的词向量作为模型的输入数据,使用协同过滤得到用户兴趣分布矩阵作为模型的注意力机制。在层次LSTM模型中与隐藏层状态结合,提取重要信息组成文档特征。
使用交叉熵损失函数作为优化目标函数,使用反向传播算法计算并迭代更新模型参数,如式(14)所示。
3 实验
实验在三个带有用户和产品信息的情感数据集上对提出方法的有效性进行验证。其中,实验数据集的预处理部分主要将数据集按8∶1∶1比例分为训练集、验证集和测试集。
已有研究表明领域内语料可以让词向量拥有更多领域内的语义[19],因此本文使用Word2Vec工具在实验数据上进行预训练词向量。实验环境具体配置数据如表2所示。
表2 实验环境配置
3.1 数据集介绍
数据集来自: IMDB,Yelp2013,Yelp2014[20]。其中IMDB数据集是用户对电影的评价内容,类别是类似豆瓣网站的星级评分制度,由最差1分至最好10分;后两者是用户对商家产品的评价信息。类似星级评价共有五个等级,从最差1分至最好5分制。数据集具体信息如表3所示。
表3 数据集统计信息
3.2 评价指标
本文使用精准率(accuracy)衡量分类的整体效果,用平方根误差(RMSE)衡量预测值和真值之间的离散程度。计算如式(15)~式(16)所示。
其中,T表示预测正确类别的数量,N表示文档总数。gy表示预测值,py表示真实值。
3.3 实验分析
实验中的对比模型如下:
(1) Majority: 把训练集中用户使用主要的情感类别作为测试集数据的情感类别。
(2) Trigram: 使用unigrams、bigrams以及trigrams作为特征,输入到分类器SVM中。
(3) TextFeature: 人工设计文本特征后使用SVM分类。
(4) AvgWordvec+SVM: 使用Word2Vec学习词向量平均化后作为分类器SVM输入数据[21]。
(5) SSWE(sentiment specific word embeddings) +SVM: 使用Word2Vec学习特定的情感词向量后经过池化层的最大化平均化后输入SVM中。
(6) Paragraph Vector: 使用PVDM解决文档分类问题[20]。
(7) RNTN+Recurrent: 使用RNTN表示句子特征然后输入到RNN中分类[8]。
(8) LSTM: 使用实验中LSTM模型,没有加入注意力机制。
(9) UPF(user product feature): 从训练数据集中提取用户信息特征和产品特征,然后联合模型(2)~(3)进行分类[14]。
(10) UPNN(user product neural network): 使用用户和产品信息输入CNN模型中分类[22]。
(11) UPDMN(user product deep memory network): 使用深度记忆网络融合用户和产品信息[23]。
(12) LSTM+CBA(cognition based attention): 基于注意力的认知模型结合LSTM模型分类[24]。
(13) LSTM-CFA(Cooperative Filter Attention): 本文提出基于协同过滤注意力机制的方法。
表4中实验结果由两部分组成,其中第一部分表示模型在只考虑评论内容的情况下进行的验证,第二部分表示加入用户信息和产品信息后的实验结果。从表4中可以看出:
表4 实验结果与对比
(1) 第一部分模型中既有传统的机器学习方法也有神经网络模型。在Yelp2013和Yelp2014数据集上神经网络效果提升明显,可以发现神经网络与传统机器学习相比可以提取出更多的文本语义信息。第二部分模型中加入用户信息和产品信息后,神经网络模型表现更加出色,在三个数据集上均有很大的提升,可见神经网络模型在处理时序数据时可以表征出更加丰富的文本信息。
(2) 表4中第二部分中LSTM+CBA表示使用认知模型作为注意力机制,在Yelp2014数据集上提升3.2%精准率,可以发现加入模拟人类认知模型对实验影响较大。本文提出在层次LSTM模型中加入协同过滤方法(LSTM-CFA),从用户和产品信息中提取出更深层次的用户个性和产品属性等信息。在实验效果中可以发现本文方法在三个数据集上精准率最高提升3.1%,验证了本文提出方法的有效性。
(3) 表4中LSTM模型表示没有使用注意力机制的模型。与加入注意力机制模型LSTM-CFA模型相比较,在三个数据集上分类性能均有明显提升。其中,在IMDB数据集上有8.6%提升。可以发现加入用户个性信息和产品属性信息后,模型能够更加准确地提取出文本中的信息,以表征文档特征。这既验证了本文加入注意力机制模型后的有效性,也表明在评论数据集中用户和产品信息的重要性。
本文针对在协同过滤(CF)算法中得到的用户兴趣分布矩阵中的稀疏问题,进行了优化处理。表5是使用不同方法优化用户兴趣分布矩阵的结果的对比。其中CF-DC(direct cut)表示直接对用户兴趣分布矩阵进行截取,得到用户信息矩阵和产品信息矩阵;CF-SVD表示直接使用SVD公式中Σ矩阵保留奇异值较大部分后再分别与U和V矩阵相乘,得到不同维度的用户信息和产品信息;考虑到稀疏矩阵问题,CF-SVDS表示使用基于ARPACK库进行奇异值分解,该算法主要针对大规模稀疏矩阵或者结构化矩阵进行特征值求解;CF-N(normalization)表示在方法CF-SVDS基础上对用户打分数据进行归一化处理。由表中数据可以看出,在Yelp2013和Yelp2014数据集上方法CF-SVDS提升较明显,在IMDB数据集上分数数据的归一化处理效果较为明显。由此验证了本文中对用户兴趣分布矩阵进行优化方法的有效性。
表5 不同优化方法对比
4 结论
本文提出了基于协同过滤Attention机制的情感分析模型。通过协同过滤中基于物品相似性方法构建用户兴趣分布矩阵作为模型注意力机制,并将经过SVD分解优化后的矩阵加入层次LSTM模型中。在词语级别和句子级别中分别提取语义信息,以便更好地完成文档级别情感分析任务。根据在三个数据集上实验结果可以发现在神经网络模型中加入协同过滤算法后可以表征更加丰富的文本信息,并且验证了SVD分解优化的重要性。之后的工作我们将着力于进一步提升模型的泛化能力。例如,在小样本、样本类别不均衡的特殊情况下,扩展其适用范围。