APP下载

基于多粒度用户偏好的文档级情感分析

2023-10-24王思雨张燕平余静莹

中文信息学报 2023年7期
关键词:粒度文档单词

陈 洁,王思雨,赵 姝,张燕平,余静莹

(1. 计算智能与信号处理教育部重点实验室,安徽 合肥 230601;2. 安徽大学 计算机科学与技术学院,安徽 合肥 230601;3. 信息材料与智能感知安徽省实验室,安徽 合肥 230601)

0 引言

近些年,Yelp、IMDB等评论网站的迅速发展,使得情感分析逐渐成为研究人员和各工业的关注热点。文档级评论的情感分类是情感分析和观点挖掘领域的一项子任务[1],其目的是了解用户的态度,推断出用户为产品撰写的评论文本的整体情感极性。这个任务逐步发展成为自然语言处理中最为活跃的研究方向之一,并在许多现实应用中扮演着重要的角色,如错误检测[2]、推荐系统[3]、社交媒体分析[4-5]等。

通常来讲,文档级情感分析可以看作是传统的文本分类的一项特例,可以使用机器学习算法来提取文本特征用于训练情感分类器,研究者们开始致力于从文本评论中提取出有效的特征[6-7]或额外的带有情感的词汇[8]来改善分类性能。基于深度学习在计算机视觉[9]、语音识别[10]及自然语言处理[11]等领域取得的卓越成果,越来越多的基于神经网络的情感模型[12-15]也被提出来用于情感分类。这些模型往往将用户发表的评论作为输入,利用神经网络生成连续的语义表示,并根据其语义表示对评论进行最终的分类。

现有模型在情感分类中已取得了良好性能,但大都只侧重于评论文本的内容本身,忽略了发表这些评论的用户信息。事实上,用户是决定这些评论情感类别的重要因素。不同的用户往往用不同的用词习惯来表达自己的态度和观点。例如,较为宽容的用户往往用“好”这个单词来表达对产品的一个积极态度,而其他更为挑剔的用户来说则可能使用“好”这个词来表达一种讽刺的消极情感;同一个用户在撰写产品评论文档时,对不同的句子也会赋予不同的情感强度;最后,不同的用户往往也会有不同的评分习惯,更宽容的用户往往会以较高的评分发表评论,而挑剔的用户总是发表低评分的评论,例如,用户A对看过的电影发表了评论,均给出较高(低)的评分,那么对于即将要发表的关于电影的评论,也往往倾向于给出较高(低)的评分。

为了将用户的多粒度偏好有效地整合到情感分类中,以便于更好地处理文档级情感分析,本文提出了一种融合多粒度用户偏好的情感分析模型。首先,在单词粒度上,将用户信息融合到注意机制中来获取基于用户单词偏好的每个句子的句子表示;然后,在句子粒度上,基于自注意力获取基于用户句子偏好的整体的文档表示;最后,在文档粒度上,将得到的文档表示与用户信息直接进行融合来获取基于用户文档偏好的文本特征表示。

本文的主要贡献如下:

(1) 提出了一种融合多粒度用户偏好的情感分析模型(MGUP),在不同的粒度上将用户偏好完全整合到文档级情感分类中,即考虑了词级用户偏好、句子级用户偏好和文档级用户偏好;

(2) 对于词级用户偏好,将用户信息以额外偏差的形式加入到注意层计算注意权重,获取特定于用户偏好的单词;对于句子级用户偏好,同样将用户信息以偏差的形式融入句子表示中,结合自注意力机制赋予每个句子不同的权重;而对于文档级用户偏好,直接将用户信息与文档表示进行连接获取最终的文本特征表示;

(3) 在IMDB、Yelp13、Yelp14三个文档级数据集上进行实验以验证MGUP的有效性,实验结果表明,MGUP模型优于基准方法。

1 相关工作

近年来,随着深度学习在各领域不断取得巨大进展,利用深度神经网络的方法来处理情感分类问题也已经逐渐成为这一领域的研究热点。它们可以自动提取特征来学习文本的表示,在很大程度上推进了文本情感分类的发展。

Yang等人[16]通过结合文档的结构特征(文档可以划分为句子,句子可以划分为单词),将神经网络模型与注意机制相结合,提出了一种分层的注意网络(HAN),该网络利用注意机制来提取文档中重要的句子和句子中重要的单词。Socher等人[17]引入递归神经张量网络,利用树结构以更准确地捕获否定以及不同树层次上积极和消极短语的影响。Rao等人[18]提出了具有两个隐藏层的神经网络模型(SR-LSTM)以解决在对长文本建模时无法从相对较长的时间步中捕获足够多的情感信息的问题。Kong等人[19]通过分层融合多种特征(字符、单词、词性标签、表情符号)来学习文本的表示以增强情感分类的性能。Liu等人[20]利用动态词嵌入方法(ELMo)考虑多义词的表示,充分挖掘文档的深层语义信息。Rhanoui等人[21]将CNN与BiLSTM组合,并嵌入Doc2Vec以应用于长文本的意见分析。Liu等人[22]提出了新的情感分析模型AttDR-2DCNN来解决长文本难以建模以及句子和特征之间复杂的依赖关系等问题。然而,这些方法大都只侧重于评论文本的内容本身,实际上,用户也是影响文档本身情感极性的重要因素。

最近,一些模型开始将用户属性纳入情感分类中以改善性能,并都取得了不错的效果。Gao等人[23]通过参考测试期间计算的用户的宽容度和产品的流行度来预测文本的情感极性。Tang等人[24]以矩阵和向量的形式来表示用户,并利用卷积神经网络对评论进行最终的评级预测。Dou等人[25]提出了一种用于文档分类的深度记忆网络和长短时记忆的方法来解决用户信息有限而难以训练的问题。Li等人[26]将用户与评论及其整体评级相结合,并采用多任务框架对不同的方面区别对待,以预测评论中不同方面的情感极性。Chen等人[27]通过计算同一用户发表的目标评论与历史评论之间的相似性来预测目标评论的情感类别。Chen等人[28]认为评论的时间关系对于学习用户和产品的嵌入有潜在作用,采用序列模型将时间关系嵌入到用户和产品的表示中。Wu等人[29]使用层次神经网络在单词和句子级别上分别结合用户注意机制来生成句子和文档表示以进行最终的情感预测。然而,这些模型都只是部分地考虑了用户的偏好信息,并未考虑用户偏好的多粒度特性。为了充分将用户信息融合到文本评论中,本文从文档多粒度的结构出发,同时在单词、句子以及文档层次上考虑用户的多种偏好以生成最终的文本特征表示,并基于该表示对评论进行分类。

2 模型描述

本文提出的MGUP模型如图1所示,该模型由三部分组成: 单词级用户偏好,对单词表示进行编码,然后引入用户注意机制以获取句子表示;句子级用户偏好,将用户信息结合到自注意力机制中以获取文档表示;文档级用户偏好,将文档表示与用户信息直接融合来获取最终的文本特征表示,并利用该表示进行分类。

图1 MGUP模型结构

2.1 单词级用户偏好

在单词级用户偏好这一部分,首先选用BiLSTM对单词进行编码得到单词表示,然后利用注意机制引入用户信息,赋予特定于用户偏好的单词以更大的权重。

2.1.1 BiLSTM

假设一篇文本评论中包含m个句子s(i),i∈[1,m],每个句子中有li个单词,w(it)表示第i个句子中第t个单词,t∈[1,li]。首先,将给定句子中的每个单词都赋予向量的形式表示w(it),w(it)∈Rew,ew是单词嵌入的维度。然后,使用BiLSTM对w(it)的上下文信息进行编码,得到隐藏表示,如式(1)~式(3)所示。

2.1.2 用户注意层

对于用户来说,并非所有的单词都能平等地表达出用户的真实情感或态度。为了对单词级用户偏好进行建模,在单词粒度上,利用注意机制引入用户信息来区别对待句子中的每个单词,以提取出特定于每个用户偏好的单词,进而赋予不同情感极性的单词以不同的权重,最后聚合成一个句子表示,如式(4)所示。

其中,hit是第i个句子中第t个单词的隐藏状态,αit是用来衡量对于当前用户来说,第i个句子中第t个单词的重要性。本文将每个用户以连续的实值向量u∈Reu来表示,其中eu定义了用户嵌入的维度。使用下面的公式计算αit:

2.2 句子级用户偏好

对于每个用户来说,也并非所有的句子都对构成的文档的整体情感有同样的贡献,不同的用户会赋予每个句子不同的情感强度。如转折性或过渡性句子,往往对文档的情感影响更大。考虑到自注意力机制具有可以捕捉长距离依赖的优势,在句子粒度上,本文将融合了用户信息的句子表示结合到自注意力机制中以区别对待文档中的每个句子。

2.2.1 位置编码层

因为在自注意力机制中输入的信息是同时进入并被处理的,没有考虑输入信息的顺序关系,所以在将多个句子表示输入到自注意力机制中之前,需要注入句子的位置信息。本文通过位置编码层将位置信息注入对应的每个句子表示中。在这里,句子表示和位置嵌入具有相同的维度,以实现两者之间的相加,得到新的句子表示s(i),其中位置编码如式(7)、式(8)所示[30]。

(7)

(8)

其中,po是每个句子对应的位置表示,1≤i≤d,i是嵌入的维数。

为了更好地对句子级用户偏好建模,在将句子表示输入到自注意力机制前对其做了一次线性变换,将用户信息以偏差的形式注入句子表示中,如式(9)所示。

其中,Wws、Wwu、bw是在训练过程中可学习的参数。

2.2.2 自注意力机制

(10)

其中,S=(s1,s2,...,sm)是长度为m的句子序列,d为嵌入的维度。

利用自注意力机制来处理融入了用户信息的句子表示,考虑在句子粒度上的用户偏好。

Add &Norm层使用了剩余连接,接着是层均一化。它的处理过程是将每层的输入信息和输出结果相加,然后再经过LayerNorm模块进行归一化处理。

此外,本文还在顶部应用了全局平均池化层,以便最终能输出固定大小的文档表示向量r。

2.2.3 Feed Forward layer

在得到文档表示之后,本文还添加了一个前馈网络,以便于挖掘更深层次的特征,同时更新文档表示r。该网络由带有激活函数ReLU的隐藏层组成,如式(11)所示。

r=FFN(r)=Max(0,rW1+b1)W2+b2

(11)

2.3 文档级用户偏好

从句子级用户偏好部分,就获得了文档表示r。为了考虑文档级用户偏好,本文通过将用户信息和文档表示直接进行融合来获得最终的特征表示x,如式(12)所示。

x是文档和用户信息的高级表示,将其作为最终分类的特征,并使用一个线性层和Softmax层将x投影到C类情感分布中,如式(13)所示。

将评论的真实情感分布和p之间的交叉熵误差定义为本文模型的损失函数,如式(14)所示。

3 实验结果和分析

3.1 数据集

在实验部分,本文使用了3个真实数据集来验证MGUP模型的有效性。包括电影评论数据集IMDB、餐馆评论数据集Yelp13、Yelp14[24],数据集的具体信息如表1所示。

表1 数据集详细信息

3.2 评价指标

本文以精度(Accuracy)、均方根误差(RMSE)作为实验的评价指标。定义如式(15)、式(16)所示。

其中,T是正确预测评论情感类别的数量,N是评论文档的总数量,gdi、pdi分别表示真实的情感类别与预测的情感类别。

3.3 对比算法

将模型MGUP与以下两类文档级情感分类模型进行对比:

(1)不考虑用户信息的方法: AvgWordvec[29]对文档中的单词嵌入进行平均,并将得到的文档表示作为SVM分类器的特征输入;Majority[29]将训练数据中的多数情感类别分配给测试数据中的每个评论样本;TextFeature[31]提取复杂的特征(字符、单词、情感词典特征等),用于训练SVM分类器;RNTN+Recurrent[17]引入RNTN以获取句子的表示,然后将其输入到RNN中,并对其隐藏向量求平均以生成文档表示用于最终的分类;NSC[29]利用分层的LSTM网络对文本进行分类。

(2)考虑用户信息的方法: UPF[23]从训练数据样本中提取用户和产品的特征,并进一步将其与TextFeature中的特征连接起来;UPNN[24]在单词粒度上引入用户和产品信息,并将通过CNN获得的文档表示直接与产品和用户的嵌入向量连接,最终通过softmax层来进行分类;HUSN[27]利用与同一用户历史评论文档之间的相似度对目标评论文档进行预测;LUPDR[28]利用循环神经网络RNN将时间关系嵌入到用户和产品的表示中,以提高文档级情感分析的性能。

3.4 参数设置

在实验部分按照8∶1∶1来划分三个真实数据集为训练集、验证集及测试集。使用来自Wu等人[29]使用的词嵌入,词嵌入通过SkipGram预训练得到,维数为200,LSTM中的隐藏状态的维数也被设置为100,因此BiLSTM将输出维度为200的单词表示。同样将用户也嵌入为200维的向量,并从均匀分布(-0.01,0.01)中随机初始化训练过程中的所有矩阵。设置评论文本中的最大句子数为40,每句话的最大单词数为50,初始学习率为0.001,并使用Adam来更新参数。

3.5 实验结果分析

3.5.1 参数分析

3.5.1.1 最大句子长度和最大文档长度分析

为了研究文档和句子的长度对分类结果的影响,在输入文档和句子长度的不同设置下比较了它们的分类性能。图2、图3分别显示了在IMDB、Yelp13数据集上,在文档和句子长度变化期间,各评价指标的变化。

图2 IMDB数据集上评价指标随文档和句子最大长度变化图

图3 Yelp13数据集上评价指标随文档和句子最大长度变化图

由图2、图3可知,随着文档长度和句子长度的增加,分类结果越来越好。在句子长度确定的条件下,当最大文档长度为40时,Accuracy和RMSE均取得最佳结果;在文档长度确定的条件下,当最大句子长度为50时,Accuracy和RMSE取得最佳值。当最大句子长度为50~60时,性能反而下降,这是因为当最大句子长度过大时,超过最大句子长度的句子数会越来越少,性能也会有所下降;当最大文档长度为40~60时, 分类性能也会下降, 此时超过最大文档长度的文档数越来越少,对最终分类的性能也会有影响。

3.5.1.2 单词嵌入维度分析

模型的最初输入是经过处理的单词嵌入向量,在本节中讨论了不同Embedding维度对模型性能的影响。图4显示了在不同维度上,在IMDB、Yelp13数据集上精度的变化。

图4 不同维度词嵌入的分类准确率

从图4可以看出,随着单词嵌入维度的增加,模型的分类性能越来越好,在200维时,模型的精度取得最佳结果,这意味着词向量的维度越高,向量中所包含的信息越多,更有利于模型取得更好的分类结果。

3.5.1.3 单词嵌入方式的分析

好的单词嵌入在最终的文本表示获取中有着非常重要的作用,更有利于模型最终的分类。图5显示了在IMDB、Yelp13数据集上Glove与Skip-gram两种单词嵌入方式对模型性能的影响。其中使用Glove嵌入方式训练得到的单词向量是从Twitter中学习到的。

图5 单词嵌入的影响

从图5中可以观察到,在词向量维度为50维、100维、200维时,Skip-gram嵌入方式在IMDB、Yelp13数据集上的精度始终要优于Glove嵌入方式,这说明在特定数据集上,利用基于上下文信息的Skip-gram方式训练得到的单词向量更适用于MGUP模型。

3.5.2 对比结果

在三个真实数据集上与基线模型进行对比,结果如表2所示。

表2 数据集上各模型对比结果Accuracy

表2是两种文档级分类方法在三个数据集上的分类结果。第一部分是不考虑用户信息的基线模型,第二部分是考虑了用户信息的分类模型。

从表2第一部分结果可以看出,在不考虑用户信息的情况下,Majority性能表示最差,因为其没有利用任何文本信息或其他额外信息。与以SVM为分类器的AvgWordvec、TextFeature方法相比,分层的网络模型普遍能取得更好的性能,这说明了分层结构更有利于对文档级评论进行分类。

表2中第二部分列出了只使用用户信息或同时考虑用户和产品属性的方法的结果。由表2第一部分和第二部分结果对比可以观察到,考虑了用户信息的模型,其性能要普遍高于未利用用户信息的模型。与第一部分相对应的基线方法相比,在加入了用户信息之后,模型的性能能够得到或多或少的改进。例如,UPNN(CNN)在同时利用用户和产品信息的时候,在IMDB数据集上实现了3%的精度提升,在Yelp13、Yelp14数据集上分别实现了1.9%、2.3%的精度改进。这一性能的提升表明在对文档级评论进行情感分类时有必要考虑额外的附加信息。

实验表明,本文提出的MGUP模型在三个数据集上都取得了最好的性能。尽管LUPDR、UPNN(NSC)等模型同时考虑了用户和产品信息,但MGUP仍要优于这些模型,这表明本文提出的模型能以更有效的方式更充分地考虑用户的信息以进行文档级评论的分类。

3.5.3 消融实验

为了研究在不同粒度上用户偏好的影响,本文还做了消融实验,结果如表3所示。

表3 不同粒度上用户偏好的影响

从实验结果中可以观察到:

(1) 当在MGUP模型中不加入任何粒度上的用户偏好时,MGUP性能表现最差,进一步说明了用户信息对于提高文档级情感分类的重要性;同时,即使这样,它也比表2中其他不考虑用户信息的基线模型性能要好。

(2) 当只在单个粒度上考虑用户的偏好时,与不考虑用户偏好相比,MGUP至少可以得到4.22%、1.46%、1.71%的精度提升;当同时考虑两个粒度上的用户偏好时,此时MGUP可以获得更好的性能,总体上其结果要优于不考虑或只考虑单个粒度上的用户偏好。

(3) 当同时在单词、句子、文档粒度上考虑用户的多粒度偏好时,MGUP能够获得最好的结果。对于Yelp14数据集来说,MGUP的结果也部分优于不考虑用户偏好或在单个、两个粒度上考虑用户偏好的结果。

4 结束语

本文提出了一种融合多粒度用户偏好的文档级情感分类方法。首先,根据文档的多粒度结构,在单词粒度上,MGUP利用基本注意机制融入用户信息来考虑用户的单词偏好,获取句子表示;然后,在句子粒度上,将自注意力机制应用于多个融合了用户信息的句子表示来获取文档表示;最后,在文档粒度上,直接融合用户和文档信息来生成最终的文本特征表示。实验结果表明,与多个大型真实的网络模型相比,MGUP取得了较好的结果。在之后的工作里,可以根据文档结构的多粒度特点,去探索更有效的、更好的文档级情感分类方法。

猜你喜欢

粒度文档单词
浅谈Matlab与Word文档的应用接口
粉末粒度对纯Re坯显微组织与力学性能的影响
有人一声不吭向你扔了个文档
基于矩阵的多粒度粗糙集粒度约简方法
单词连一连
看图填单词
看完这些单词的翻译,整个人都不好了
基于粒度矩阵的程度多粒度粗糙集粒度约简
基于RI码计算的Word复制文档鉴别
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat