基于AM的BLSTM网络电商评论情感倾向分类

2019-03-13 11:51梁海霞张凌东
西安邮电大学学报 2019年5期
关键词:语义向量电商

梁海霞, 张凌东, 贾 蓉

(1.西安邮电大学 宣传部, 陕西 西安 710121; 2.火箭军驻北京地区 第一军代室, 北京,100076;3.西安邮电大学 计算机学院, 陕西 西安 710121)

随着互联网时代的来临,越来越多的人已经习惯于在网上消费,人们通过对所购买的商品进行评论来表达对消费的满意程度,由此产生的评论数据中通常蕴含着消费者的情感倾向信息。这些信息往往可以反映出消费者的态度和想法,因而蕴含着极高的商业价值。通过分析这些电商评论数据,不但可以帮助电商平台进行精准广告推荐,而且可以帮助商家改进产品。因此情感倾向分析作为自然语言处理中一个重要的问题,引起了国内外众多研究人员的广泛关注。

当前,主流研究方法多以词袋模型为主。但是,这种模型将文本视为词汇的无序集合,忽略了文本上下文之间的联系,从而导致文本中蕴含的深层语义难以被捕获。为了解决上述问题,一些研究人员引入其他特征作为补充,例如设置情感词典、进行句法结构分析等[1]。虽然采用这些方法可以取得较好的效果,但是这需要建立大规模的人工标注数据集,面对当前电商评论数据的巨大量级显得费时费力。

循环神经网络(recurrent neural network,RNN)已经被证明在序列化任务上具有很好的效果,但由于该方法存在着梯度消失和梯度爆炸[10]的问题,因而处理长范围文本时该方法效果有限。Hochreiter等[2]提出的长短期记忆模型(long-short term memory,LSTM)的RNN有效解决了上述问题。LSTM模型通过改变普通RNN的隐藏层神经元结构来保存记忆状态信息,从而减缓信息衰减的速率。Tai等[3]提出的基于树型的LSTM模型偏重于对文本结构的学习,但电商评论属于弱句法类别,难以构成完整的句法结构。Huang等[4]提出的层次LSTM模型(Hierarchical LSTM)则是一种将文本按照层级划分的LSTM模型,但是电商评论长度不固定,不适合按照层级进行划分。

相较于一般文本,电商评论具有噪声大、缩写频繁、合成词多和高度口语化等特点,若直接对评论进行分词,将难以得到正确的切分。这需要从更细的粒度来提取文本特征,否则将无法准确表达文本的语义,甚至会产生歧义。另外,在电商评论中,高度口语化的特点导致文本中较重要的信息在文本中的位置难以固定,如何提高这些信息的权重,降低冗余噪声的影响,是关乎电商评论的一个非常重要的问题。

为了解决上述问题,提出了基于注意力机制(attention model,AM)和双向长短期记忆网络(bidirectional long-short term memory,BLSTM)的情感倾向分类模型,以提高电商评论情感倾向分类的准确率。为了避免传统分词方法对于文本的不合理切分,以单个字为基本单元,将预训练的字向量作为输入特征。并将BLSTM模型的隐藏层分为两层,分别用来学习文本的上文语义特征和下文语义特征,最后将其进行串接作为隐藏层的输出。

1 相关工作

1.1 LSTM与自然语言处理

Pang 等[5]早期就利用词袋模型来进行文本的情感分类,后续很多人尝试设计更合理的文本特征来提高情感分类的正确率。这些方法都是基于分析句法结构搭配情感词典的方法或者类似方法来进行构建文本特征。为了摆脱传统机器学习中特征工程的影响,人们开始将深度学习方法应用于自然语言处理领域。例如Sutskever等[6]利用LSTM进行机器翻译工作,Ghosh等[7]将LSTM应用于词语预测,Wang等[8]利用LSTM预测推特的情感极性。以上工作均取得不错的成果,这充分说明LSTM在自然语言处理上的广阔应用前景。

1.2 词向量

自然语言处理首先需要将自然语言转化为计算机语言。目前主流的向量生成方法为One-hot向量,该方法可以快速生成对应的词向量,并且能够完整地保存文本特征。但是,该方法有两个主要缺陷,其中一个是生成的词向量中任意两个词之间是孤立的,难以反映词与词之间的语义关系。另外一个是面对单词表数量多、自身长度较短的文本,生成的词向量维度高,导致生成的文本特征矩阵过于稀疏。

Hinton[9]提出的词向量表示方法可以有效解决上述问题。该方法通过将词语分布式的映射到低维空间中,一方面解决了向量稀疏问题,另一方面保存了词语间语义层面的关系。

但是,面对电商评论这种噪声大、缩写频繁、合成词多和高度口语化的文本类型,依照传统分词方法往往难以得到合理的切分,从而导致生成的词向量质量不高。因此本文提出使用字向量作为输入特征,以单个字为基本单位进行训练,生成字向量。这样一方面防止因文本的不合理切分而引起的语义丢失,另一方面又有效解决了one-hot向量引起的维度爆炸问题。

1.3 LSTM模型

RNN支持可变长度输入,在语言模型方面展现了很强的优势。与普通神经网络相比较,RNN中的循环结构将上一时刻的信息作为下一时刻输入的一部分传输到下一层,因此,隐藏层中每一个时刻的输出ht都依赖于上一时刻的输出ht-1,其表示式为

ht=σ(Whxxt+Uht-1),

式中:xt是时间t处的输入;Whx表示输入特征的权重矩阵;U表示上一时刻输出状态到这个时刻输入的权重矩阵;σ表示激活函数。

考虑到RNN在训练中会出现梯度消失和爆炸的问题,这使得如果输入序列过长,将难以利用先前信息。LSTM模型是RNN的扩展,其隐藏层神经元中构建了记忆存储单元,可以发现和建立输入特征之间的长距离依赖关系,因此,可以有效处理RNN中存在的梯度消失和梯度爆炸问题。本文使用的LSTM模型结构如图1所示。

图1 LSTM模型结构示意图

LSTM是RNN的一种扩展,由输入门、遗忘门、输出门和记忆存储单元等4个部分构成。若Wih、Wix、bi分别表示输入门的权重矩阵,则输入门it表示式为

it=σ(Wihht-1+Wixxt+bi)。

若Wfh、Wfx、bf分别表示遗忘门对应的权重矩阵,则遗忘门ft表示式为

ft=σ(Wfhht-1+Wfxxt+bf)。

上述门结构的输出将同当前的输入xt,上一时刻LSTM单元的输出ht-1,以及上一时刻的记忆单元中存储的Ct-1用于决定是否更新记忆单元的状态并遗忘之前存储的状态。其中记忆单元更新Ct表示式为

若Woh、Wox、bo为输出门对应的权重矩阵,则输出门ot表示式为

ot=σ(Wohht-1+Woxxt+bo),

最后输出记忆单元状态改变后的值为

ht=ottanh (Ct)。

2 模型构建

2.1 文本向量化

为了避免因传统分词方法对于文本的不合理切分而导致的歧义,将采取字级别输入特征,以单个字作为句子的基本组成单元,对单个字训练字向量。例如“这家酒店真是高大上”,字级别的句子组成为“这/家/酒/店/真/是/高/大/上”,词级别的句子组成为“这家/酒店/真是/高大/上”。对于字级别特征向量,包含n个基本单元的句子X表示为{x1,x2,…,xn},其中xi表示第i个字。若mi∈dw表示句子X中第i个字相对应的字向量,dw表示字向量的维度,则对应字向量的集合(m1,m2,…,mn)表示句子X的特征向量。

2.2 BLSTM层

LSTM模型能有效处理文本中出现的长距离依赖问题,但单向LSTM模型只能利用上文的语义特征。在实际研究中,无论上文语义特征还是下文语义特征都应该利用起来,这样才能够得到更全面的语义特征。

本文提出通过基于字向量输入的BLSTM层来学习文本的语义特征,其模型结构如图2所示。BLSTM层由两层LSTM模型组成,第一层LSTM模型为正向层,按照文本正向顺序进行学习。第二层为反向层,按照文本逆向顺序进行学习,且两层之间无连接。在两层LSTM模型之上,将两层学习方向相反的隐层的输出进行串接。双向LSTM层中隐藏LSTM单元数目与字向量维度保持一致。

图2 基于注意力机制的双向长短期记忆网络模型

H=(h1,h2,…,hn),

其中,对于H中的每一个元素hi∈dw,且ht为

通过对两层LSTM输出的语义特征矩阵进行相加,将来自上文的语义信息和来自下文的语义信息进行结合。

2.3 注意力层

注意力机制最近在一系列应用中取得成功,如机器翻译[10]、语音识别[11]和图像字幕生成[12]等。由于电商评论文本具有噪声大和高度口语化等特点,若直接将上文模型中隐藏层最后时刻输出的语义特征进行分类,将会造成细节丢失和信息冗余问题。因此,需要在生成语义特征的过程中计算历史时刻隐藏层输出对最终时刻隐藏层输出的影响力权重。本文设计了一种新的注意力机制描述影响力权重。

对于上文中H矩阵中每一个时刻隐藏层的输出Ht(t=1,2,…,n),计算隐藏层每个时刻的输出对应最终时刻输出的注意力概率分布矩阵α。先网络使用tanh层计算得到mi,这就意味着对hi和ht做聚合运算,mi并不仅考虑hi而独立计算得到的,然后,对每个权重计算求上下文相关度最大的值。具体过程为

mi=tanh(Whhi+Uht),M=[m1,m2,…,mt],α=soft max (wTM)。

其中Wh、U、w分别为训练参数矩阵,且

M∈dwT,α∈dw。

将求得的概率分布矩阵作为对应每个时刻隐藏层输出的影响力权重矩阵,求得文本语义特征矩阵的加权r为

r=HαT。

其中r∈dw。由此可得到最终句子的语义向量表示h*为

h*=tanh(Wrr+Whht),

式中Wr表示语义特征的权重矩阵。上式将用于最终的情感分类。

2.4 模型的训练

本文模型是根据文本情感主题将文本分为消极和积极两种类别。对于句子X,经过模型学习得到文本特征,再对该特征进行sigmoid操作来获得最终的情感倾向分类,即

C=σ(h*)。

考虑到采取二类情感倾向分类,因此,使用交叉熵损失函数(cross-entropy cost function)作为损失函数。选择Adam(adaptive moment estimation)算法[13]作为模型的训练算法。为了防止过拟合,利用L2正则化进行参数约束;在模型的两层LSTM层采取dropout策略[14],即在训练过程中,每次迭代随机放弃一部分训练好的参数。通过反复实验,设置dropout=0.5,即随机放弃一半参数。

3 仿真实验

3.1 实验环境

实验环境配置如表1所示。

表1 实验环境及配置

3.2 数据处理

实验数据采用携程网酒店评论数据集[15]。随机抽取8 000 条数据进行实验。其中包括4 000 条积极评论数据,4 000 条负面评论数据。实验中采用10折交叉验证来评估模型预测的准确率。将数据随机分为10 组,每次使用9组数据作为训练集,1组作为测试集,重复实验10次。最后取10次实验的平均值作为最终结果。

首先在对数据进行训练字向量之前,需要对数据进行如下预处理。

1)去除特殊字符,只留下中英文字符以及标点符号。

2)进行繁简转换,将数据中的繁体字转换为简体字。

3)对于字向量进行分字处理,对于词向量进行分词处理。

3.3 字向量和词向量的训练

对于字向量,以字为基础单位训练字向量。其中所使用的字向量训练工具为Python平台下的gensim[16],该工具使用skip-gram[17]方法进行字向量的训练。为了训练出更高质量的字向量,这要求训练维度更高,也就意味着需要更大规模的语料进行训练。本文将整个数据集提供的10 000条数据分别训练词向量和字向量。通常情况下,向量维度越高,表示其训练质量越高,但是,随着向量维度的增加,也会导致整个模型在训练过程出现过拟合的风险增加,因此,需要根据具体实验情况来选择合适的维度。

另外,为了对比字向量和词向量对实验结果的影响,本文在同样的语料库上训练了词向量。首先对语料进行分词,然后以词作为基础单位训练词向量,且词向量的训练参数与字向量保持一致。训练过程中的参数设置如表2所示。

表2 字向量和词向量参数设置表

3.4 实验设计

为了分析基于注意力机制的BLSTM模型在情感倾向分类的性能优劣,加入普通的单层LSTM模型、BLSTM模型和传统机器学习模型作为对比。实验中采用的评价指标为准确率(precision)、召回率(recall)和F1分数,并采用下述6种测试实验模型进行对比分析。

1)“LSTM+word(pretrained)”模型:将预训练的词向量作为输入特征。隐藏层只设置单层LSTM模型。在实验中,词向量保持不变,只更新模型中的其他参数。

2)“LSTM+ character(pretrained)”模型:将skip-gram模型训练好的字向量作为输入特征。隐藏层设置单层LSTM模型。在实验中,字向量保持不变,只更新模型的其他参数。

3)“BLSTM+word(pretrained)” 模型:将skip-gram模型训练好的词向量作为输入特征。在实验中,词向量保持不变,只更新模型中其他参数。

4)“BLSTM+ character (pretrained)” 模型:将skip-gram模型训练好的字向量进行初始化。在实验中,字向量保持不变,只更新模型中的其他参数。

5)“Attention-BLSTM” 模型:将skip-gram模型训练好的字向量进行初始化。采用本文提出的基于注意力机制的BLSTM模型进行实验,在实验中,词向量保持不变,只更新模型中的其他参数。

6)传统机器学习模型:使用线性SVM算法进行对照实验。为了避免因为输入特征不同而引起的对实验结果的影响,将使用相同词向量作为输入特征。

3.5 实验结果与分析

3.5.1 实验结果

仿真实验中, 上述6种测试实验模型的结果如表3所示,6种测试实验模型的F1分数对比结果如图3所示。

表3 分组实验结果

图3 6种测试实验模型的F1分数对比

3.5.2 实验结果分析

1) 普通LSTM模型与BLSTM模型对比:通过对比“LSTM+word(pretrained)”和“BSTM+word(pretrained)”以及“LSTM+character(pretrained)”和“BLSTM+character(pretrained)”等4组实验的结果可以发现,在分别使用词向量和字向量作为输入特征时,BLSTM模型的表现均要优于LSTM模型。结合实验结果以及模型特点分析,BLSTM模型通过设置两层不同学习方向的LSTM隐藏层可以学习到文本更为全面的语义信息,使分类更准确。

2) Attention-BLSTM模型与BLSTM模型对比:通过对比Attention-BLSTM模型与“BLSTM+character(pretrained)”模型实验结果可以发现,注意力层的加入使得实验结果进一步得到提升,而且从图3可以看出,与BLSTM模型实验相比较,注意力机制的引入使得模型对于负面评论的情感倾向分类效果提升更加显著,表明本文提出的注意力机制对于文本中关键信息的捕捉是有效的。相比BLSTM模型,可以提高文本中重要的信息的权重,降低文本中的冗余成分对于情感倾向分类的影响。

3)Attention-BLSTM模型与机器学习方法:通过对比Attention-BLSTM模型与线性SVM的实验结果可以看出,相比较传统的方法,深度学习模型有着显著的优势,这表明深度学习方法在挖掘数据抽象信息的能力要大大强于传统方法。随着互联网发展越来越快,传统方法对于在网络语境下产生的文本的处理能力将越来越弱。

另外,通过对比“LSTM+word(pretrained)”、“BLSTM+character(pretrained)”、“LSTM+word(pretrain-ed)”和“BLSTM+character(pretrained)”的实验结果可以发现,单层LSTM模型以字向量作为输入特征的表现要弱于使用词向量作为输入特征的表现,使用BLSTM模型时以字向量作为输入特征的表现要优于使用词向量为输入特征的表现。结合实验结果分析,主要在于如下原因,即字向量虽然粒度更小,但是进行字向量训练时,以单个字作为基本单元导致字的个体数量远远少于词的个体数量,这会导致训练出来的字向量中语义信息弱于词向量。而采用BLSTM模型时,通过从两个方向来进行文本特征的学习,其中含有的文本语义信息相比单层LSTM模型学习所得特征更加丰富。而且,从文本角度来说,字的组合自由度要高于词的组合自由度,因此,使用BLSTM模型以及基于BLSTM的衍生模型时以字向量作为输入特征更为适合。

4 结语

情感倾向分类是自然语言处理领域的重要研究课题之一。本文提出一种基于注意力机制的BLSTM模型来进行商品评论的情感分类,是在BLSTM模型学习到的文本语义特征的基础上,通过所提出的注意力机制来捕捉文本中的重要信息,降低冗余成分的干扰。在仿真实验中,设计了一系列实验来该方法的有效性,同时探究了输入特征粒度对实验结果的影响。测试结果表明,注意力机制能够用于计算模型历史时刻隐藏层的输出序列对最终时刻隐藏层输出序列的影响力的权重。BLSTM可以有效地利用上下文信息,丰富文本的语义特征;而注意力机制会提高句子中重要部分的权重,最终生成包含有历史权重信息并且突出关键语义信息的文本语义特征,这将显著降低句子自身冗余噪声对于最终分类结果的影响,有效提升分类的性能。

但是,本文算法依然存在着不足之处,如BLSTM模型对于一些小范围的前后词性依赖问题无法进行有效地建模,且随着模型结构的扩大,训练中也会出现过拟合的风险。针对这些问题进行改进,将是下一步需要重点研究的工作。随着互联网热潮的继续,将电商评论的情感分析方面的研究将更深入。

猜你喜欢
语义向量电商
电商助力“种得好”也“卖得火”
向量的分解
聚焦“向量与三角”创新题
电商赢了,经济输了
语言与语义
加快农村电商全覆盖
批评话语分析中态度意向的邻近化语义构建
“社会”一词的语义流动与新陈代谢
向量垂直在解析几何中的应用
“吃+NP”的语义生成机制研究