基于Transformer模型的商品评论情感分析
2021-03-17卢益清韩长风
杜 朋,卢益清,韩长风
(北京信息科技大学 信息管理学院,北京 100192)
0 引言
随着互联网的发展,网上的信息量日益增多,各大门户网站、电商网站、视频网站等逐步成为网民表达情感与交流思想的线上平台[1]。
近年来,电子商务平台呈现百花齐放、百家争鸣的景象,在阿里巴巴、京东商城、唯品会、苏宁易购等电商平台的激烈竞争下,拼多多也强势崛起。2018年全国电子商务的总交易额为31.63万亿元,比上年增长8.5%。其中商品、服务类电商交易额30.61万亿元,增长14.5%。在庞大交易额的背后,电商企业保留了大量的用户评论数据。这些评论数据反映了用户对平台、商家、物流及商品的态度,如何从这些海量的数据中提取有用的信息,并给不同的用户提供个性化的服务正在成为业界与学术界关注的重点[2]。
消费者在网上发表个人的评论信息表达自己观点和态度己经成为一种习惯,例如,在相关网站上发表影评、书评、酒店住宿体验等。商家也可以根据用户在自己平台上发表的评论,了解竞争过程中自己的优势与劣势,取长补短,进而达到吸引更多消费者的目的;潜在消费者可以从评论中获取其他消费者对该商品的态度及使用体验,帮助自己做出决策[1]。
在电商平台上,消费者网购后发表的评论包含了用户对平台、卖家、物流、客服、商品质量的看法,对电商平台来说,可以利用这些数据监测入驻商家的商品质量、真伪情况;对商家来说,可以借此分析当前市场环境,了解消费者的需求及自己与竞争对手的差距,及时找到自己的弱势,取长补短,并预测市场下一阶段的红利点,便于商家明确自己的定位,降低退货率,把握库存量和进货量;对消费者来说,通过评论可以更加客观地了解商家的情况,进而帮助消费者理性消费[3]。
从用户在互联网上发表的评论信息中挖掘其潜在的商业价值是十分困难的,因为评论信息数量过于庞大,使用人工方式对海量评论信息进行挖掘是不切实际的。文本情感分析技术可以帮助我们从海量数据中挖掘有价值的信息,有效提高效率[4]。
文本情感倾向性分析任务在学术界和业界都一直备受关注[5],近年来,结合深度学习的自然语言处理使得情感分析领域有了突破性的发展,但该领域仍面临着巨大挑战,特别是中文商品评论数据的分析。这些挑战具体表现在:
(1) 商品种类复杂。针对不同的商品,用户的关注点会不同,所发表评论的情感体现在文字上就会有所不同。
(2) 语法不规范,分析困难。商品评论数据的不规范性,使得基于语法/规则模型的分析方法遇到了瓶颈[6]。
(3) 情感词分布广。在中文语料中,除了形容词、动词和副词外,名词类型的情感词所占的比例也很大[7]。例如,“这本书就是垃圾,一点用处都没有,典型的伪科学,读此书一点价值也没有。”中的负面情感,除了体现在形容词“伪”和副词“没”上,还体现在“垃圾”这个名词之中。而在中文语料中,大部分名词并非情感词,像这些低频却很关键的名词性情感词很容易被其他高频词所淹没,使得基于单纯情感词抽取的方法或基于特征提取的机器学习模型难以发现这类情感词在文本中的作用[8]。
本文以商品评论文本为情感分析的研究对象,以谷歌在2017年提出的用于机器翻译的Transformer[9]模型为核心,构建出一种基于多头自注意力机制和卷积神经网络相结合的商品评论情感分析模型。该模型首先在词向量的基础上添加了词语的位置信息,然后使用多头自注意力机制发现文本中词语的关联关系及语义信息,最后使用卷积和全连接的方式作为输出层。实验表明,该模型在情感分类上取得了较好的效果。
本文组织结构如下,第1节简要介绍情感分析领域的相关工作;第2节介绍本文所构建模型的结构及原理;第3节进行实验,并对结果进行对比分析;最后一节对本文的主要工作进行总结,并提出下一步的优化思路。
1 相关工作
当下基于情感分析的分类方法主要包含以下三种: 基于情感词提取的方法、基于特征提取的机器学习方法和基于神经网络的深度学习方法。基于情感词提取的方法需要人工构建情感词典并设立一定的规则才能实现对文本的情感分析,优点是如果情感词足够完善,可以很好地判断文本的情感倾向,但缺点也很明显,情感词典无法覆盖商品评论文本里含有的大量不规则用词和未登录词,而且这种方法也没有考虑到文本的上下文语义信息。
基于特征提取的机器学习方法是首先从评论文本中选取特征,然后使用决策树、支持向量机等机器学习算法进行分类[10]。该方法对经验要求较高,如果特征的选取不当,会严重影响模型的分类结果[11]。
随着人工智能领域的发展,基于神经网络的深度学习方法在文本处理方面所展现的效果也越来越突出,各种神经网络结构更是层出不穷,常见的深度神经网络模型,如卷积神经网络(convolutional neural networks,CNN)、循环神经网络(recurrent neural networks,RNN)等在文本分析上的应用也越来越广。
由于短文本包含的信息量较少,并且同一个词在不同的语境下表达的情感也有所不同,使用基于情感词提取和传统机器学习的方法无法挖掘出深层次的信息,所以深度学习逐渐成为情感分析研究的主流方法[12]。
2 Transformer模型
Transformer是由谷歌在2017年提出的用于机器翻译的模型。机器翻译模型通常以编码器—解码器为基本架构,即编码端建模源语言中词与词之间的逻辑关系,而解码端则通过编码端提取的语义向量生成新的文本。传统的基于深度学习的机器翻译模型,其编码器和解码器由循环神经网络组成,然而采用循环神经网络会导致模型需要进行序列化计算,即当前时刻的计算需要依赖上一时刻计算的输出,这使得模型无法进行大规模并行化计算。而为了减少序列化计算,业界开始更多地以卷积神经网络为基础构建编码器—解码器,但以卷积神经网络为基础构建的机器翻译模型很难去建模句子中的长距离依赖关系。与传统的机器翻译模型不同, Transformer模型在构建编码器和解码器的时候,使用了多头自注意力机制[13],也是Transformer模型的核心,这使得 Transformer建模句子中任意两个词之间关系时,均只需要常数的计算操作,与两个词在句子中的距离无关。同时, Transformer在实现速度性能最优的情况下,也是效果最佳的模型[14-15]。
随着Transformer模型的优势逐渐被学术界及业界认可[16],其在文本理解、语义分析等方面的表现也逐渐超越了传统的LSTM网络,所以在自然语言理解的生成式任务,如标题生成、机器翻译、文本复述、信息抽取中,传统的LSTM加注意力机制的方式也逐渐迁移到了基于Transformer模型的网络结构上。而在分类式任务,如主题分类、情感分析中也有一定的应用,如aspect-term sentiment analysis (ATSA) 是自然语言理解方面的长期挑战,其需要对文本中出现的目标实体进行精细的语义推理。而Xu W等人通过Transformer模型在该任务上取得了不错的成绩[17]。这说明Transformer模型适合用于情感分析任务之中。
本文采用基于Transformer模型的多头自注意力机制和卷积神经网络相结合的方式,整体结构如图1所示,使用位置嵌入层表示文本的语序信息,使用多头自注意力层提取文本的语义信息,最后使用卷积层和全连接层进行特征的再提取和融合。
图1 模型结构
2.1 词嵌入层
词是模型处理的基本单元,首先需要将词进行向量化表示,所以每句评论经过向量化表示后如式(1)所示。
X=[x1,x2,x3,…,xn]T∈Rn×d
(1)
其中,n表示每条商品评论文本中的分词个数,d表示词向量维度,xi表示文本中第i个词的词向量(i=1,2,3,…,n)。
2.2 位置嵌入层
模型理解一个句子有两个要素: 一是单词的含义;二是单词在句中所处的位置。每个单词的嵌入向量会学习单词的含义,所以我们需要输入一些位置信息,让神经网络知道单词在句中所处的位置。
因为模型不包括RNN网络结构,因此它无法捕捉到词语间的序列或位置信息,如果我们将评论中的词序打乱,得到的结果是一样的。而词语的位置信息非常重要,代表着全局的结构,因此必须将序列分词的位置信息利用起来。
为了解决这个问题,Transformer模型为每个输入的词向量添加了一个位置向量。位置向量用于确定每个单词在句中所处的位置,然后将位置向量添加到词向量中,这样可以使得它们在接下来的运算中,能够更好地表达词与词之间的位置信息。每个分词的位置向量的计算如式(2)、式(3)所示。
其中,pos表示词语在句中所处的位置索引,i表示词嵌入向量的维度索引。
最后每个分词的向量化表示如式(4)所示。
rei=wei+pei
(4)
其中,wei表示句子中第i个词语的词向量,pei表示句子中第i个词语的位置向量,rei表示最终输入到注意力层的向量。
2.3 多头自注意力层
自注意力机制用于计算词语之间的相关程度,通常可以用查询向量(Q)、键向量(K)和值向量(V)这三个向量进行描述,其中,Q、K向量和V向量是通过每条评论的向量矩阵X乘以3个不同的权值矩阵WQ,WK,WV得到,如式(5)~式(7)所示[18]。
在获取自注意力信息时,首先利用Q向量去查询所有的候选位置,每个候选位置会有一对K和V向量,查询的过程就是Q向量和所有候选位置的K向量做点积的过程,点积结果经过softmax函数后加权到各自的V向量上,求和就得到了最终的自注意力结果,具体过程如下。
(1) 计算Q和K的相似度,如式(8)所示。
f(Q,Ki)=Q·Ki
(8)
(2) 对得到的相似度进行softmax操作,进而得到权重系数,如式(9)所示。
(9)
(3) 针对计算出的权重,所有V向量进行加权求和计算,得到最终的注意力向量,如式(10)所示。
(10)
(4) 对上一步得到的结果进行放缩以提升收敛速度,如式(11)所示。
(11)
多头自注意力相当于h个不同的自注意力的集成,在本文中,h取值为8,即加入位置信息后的词向量矩阵X分别输入到8个自注意力模块中,得到8个加权后的新矩阵Zi,i∈{1,2,…,8},然后按列进行向量拼接,得到一个大小为 256 维的文本特征矩阵Z,如式(12)所示。
Z=(Z1,Z2,…,Z8)
(12)
多头自注意力层是整个模型的核心,其丰富了词语之间的关联关系,甚至能够理解句子的语义和句法结构信息。
2.4 输出层
输出层首先使用卷积操作进行特征的再提取,其中l表示总卷积层数L的序号,kl表示第l个卷积核,bl表示偏置,*表示一维卷积操作[19],如式(13)所示。
Cl=Z*kl+bl
(13)
最后通过全连接操作进行特征的融合。该模型使用数据的真实值和模型的预测值的交叉熵作为损失函数,从而利用反向传播算法对模型中的参数进行更新。
3 实验与分析
3.1 数据
数据采用中文自然语言处理语言资源项目(ChineseNLPcorpus)推出的online_shopping_10_cats数据集,数据的标注与采集均由该数据平台完成,共10 个类别,总计 6 万多条评论数据,其中正、负向评论各3万余条,具体如表1所示。然后从语料中随机选取1 000条作为验证数据,1 000条作为测试数据。
表1 各类商品评论数据量
随机从源数据中抽取10条评论如表2所示,可以看出,对于不同类别的商品,用户评论中表达情感的用词也是不同的,例如,对于水果而言,“新鲜”和“口感”是很重要的决定用户情感的属性;而对于平板而言,“电量”和“卡顿”情况就更为重要。但不同类别的商品也有共同的属性,如快递速度、质量等。
表2 商品评论数据样例
续表
3.2 数据预处理
3.2.1 分词
实验语料使用字节对编码(byte pair encoding,BPE)算法进行分词,该算法原本是为了数据压缩,原理是字符串里频率最高的一对字符被一个没有在这个字符中出现的字符代替的层层迭代过程[20]。由于在商品评论数据里出现大量未登录词,未登录词的种类繁多,主要包括店铺名、地名、缩略词、派生词、描述特定商品的专业用词,以及各种网络新词,BPE算法在一定程度上可以很好地识别这些未登录词,故而选择BPE对文本进行分词处理。分词后句子的长度如图2所示。
图2 句子长度(词数)分布
3.2.2 数据清洗
由图2可以看出,句子长度(词数)95%以上处在0至200之间,有极少数句子高达1 000词,经分析实例发现,这些词数过多的评论大多是书籍类评论,往往摘抄了该书的一段内容放入评论中,考虑到书籍本身的内容会对评论的情感倾向造成干扰,在数据清洗时,将这类评论去除。
3.3 评测标准
本实验采用准确率(acc),精确率(precision,P)、召回率(recall,R)、f_beta(F1)值作为评价标准。
TP:正确分类中的正面评论条数;
FP:错误分类中的正面评论条数;
TN:正确分类中的负面评论条数;
FN:错误分类中的负面评论条数。
(14)
(15)
(16)
(17)
3.4 实验对比模型及参数
文本的最大长度为100个词,超出的截取前100个词,不足的用0补齐,每个词的词嵌入向量维度是200,优化器采用Adam,学习率是0.001,批处理个数是128。
(1)BILSTM使用双向长短期记忆网络,提取文本的语义和语序信息,其中LSTM网络层设置为256。
(2)BILSTM+ATTEN结合双向长短期记忆网络和注意力机制,提取文本的语义和语序信息,其中LSTM网络层设置为256。
(3)TEXTCNN将卷积神经网络应用到文本分类任务,利用多个不同的卷积核来提取文本中不同位置的重要信息,捕捉文本局部之间的相关性[21],其中卷积核设置为128。
(4)Mult-Head+CNN本文所使用的基于Transformer的多头自注意力机制和卷积操作相结合的方式提取文本的语义信息,其中多头的个数设置为8,自注意力层设置为1,前馈网络(充当全连接层)设置为128。
3.5 实验结果分析
本实验在阿里云服务器上进行,CPU型号是英特尔Xeon(R) CPU E5-2682 v4,主频是2.50 GHz。
各模型的P值、R值和F1值与训练步数的关系如图3~图6所示。
图3 BILSTM模型迭代性能
图4 BILSTM+ATTEN模型迭代性能
图5 TEXTCNN模型迭代性能
图6 Mult-Head+CNN模型迭代性能
对比图3和图4可知,通过在LSTM网络上加入注意力机制,能使模型的评测结果迅速稳定下来并且P值、R值和F1值都明显提高,说明仅仅使用LSTM网络捕获文本信息的能力较差,而注意力机制可以自动学习影响文本情感倾向的分词权重,从而说明注意力对模型分类效果的重大作用,而本文使用的Mult-Head+CNN模型更是显著增大了网络模型中的注意力层的作用,从而使得模型在表现良好的同时也大大缩减了训练用时。
对比图4、图5可知,这两种模型的情感分类效果差别不大,而且TEXTCNN模型R值还稍高于BILSTM+ATTEN模型,这是因为TEXTCNN在短文本分类问题上更加有优势。直观上的理解,TEXTCNN使用的卷积是一维卷积,类似于获取句子中n-gram的特征表示,而短文本对上下文语义的要求不是很高,所以对短文本的特征抽取能力很强,模型收敛速度也很快[21];本文提出的Mult-Head+CNN网络结构首先使用多头自注意力层建模句子中的分词关系,同时利用一维卷积在短文本处理上的优势来充当全连接层,从而提高了对文本的情感分析能力。
整体来看,BILSTM模型效果是最差的,虽然BILSTM+ATTEN模型的P值稍优于Mult-Head+CNN模型,但Mult-Head+CNN模型的R值却明显优于其他模型。
根据准确率(acc)选取各模型最优的训练结果及所耗时间,如表3所示。
根据表3的结果,Mult-Head+CNN模型的最优分类效果不仅比其他模型的最优分类效果好,用时也是最短的。这是因为LSTM网络的当前输入要建立在上一步的输出上,在训练时非常缓慢,其循环结构加大了训练难度,CNN也是同样的道理,需要利用多个卷积核对一句话的各个片断不停使用卷积操作,如果卷积核设置过少,无法有效捕捉文本中的语义信息。而多头自注意力机制不需要循环,在训练文本时是并行处理的,同时利用位置层将词语的位置信息结合起来,最后的卷积操作更多的是为了充当全连接层的作用,卷积核的设置不必过多,所以用时非常短。
表3 各模型最优训练结果
为进一步提高模型在该文本上情感分析的可信度,将采用5折交叉验证的方法,从而增加模型的可靠性,将数据均分为5份,轮流将其中4份作为训练数据,1份作为验证数据进行实验,最终实验结果取5次实验的平均值,实验结果如表4所示。
表4 5折交叉验证结果
由于5折交叉验证使得每次实验的训练数据大大减少而评测数据增多,虽在准确率上不如随机选取1 000条数据进行评测的实验结果高,但更具有一般性,也同样验证了上述结论。
4 总结与展望
Transformer模型在文本生成领域,特别是机器翻译方面应用广泛,是因为该模型对文本的语义理解及序列建模能力很强,便由此联想到运用该模型到情感分类任务中,并且经查资料发现在中文文本的情感分析中很少有提到该模型,大多还是使用LSTM结合注意力机制的方式。
本文通过商品评论正向、负向情感识别任务,对比了TEXTCNN、BILSTM、BILSTM+ATTEN和Mult-Head+CNN等方法。实验证明,本文所使用的基于Transformer的Mult-Head+CNN网络模型准确率最高,同时训练用时也大大缩减。
在未来工作中,我们将继续探索新方法、新思路,如通过加大情感词的权重进一步提高模型的情感分析效果,并探索新模型,比如BERT[22],通过引入句子级向量进一步加强模型对语义方面的理解,进而提高分类的精度。