基于注意力增强的双向LSTM模型的情感分析方法与流程

文档序号:17587407发布日期:2019-05-03 21:27阅读:780来源:国知局
基于注意力增强的双向LSTM模型的情感分析方法与流程

本发明属于文本处理技术领域,具体涉及一种基于注意力增强的双向lstm模型的情感分析方法。



背景技术:

随着互联网的发展,网民数量在近几年急剧上升,人们在信息交互的过程中产生了大量的对诸如人物、事件、产品等有价值的评论信息。这些信息表达了人们的各种感情色彩和情感倾向性,通过对情感信息的挖掘,可以更好的理解用户行为,从而预测出事件的发展方向或趋势。但随着信息规模的极具膨胀,仅靠人工已经不可能完成情感分析工作,所以使用计算机进行高效准确的情感分析工作有着重要的意义。

目前情感分析技术主要分为3类:基于情感词典的方法、基于特征的方法和基于深度学的方法。基于情感词典的方法主要根据文本中的情感词来判断文本的情感倾向,需要人工构建情感词典,结合情感词典和人工设置规则实现对文本的情感分析。这种方法基于人类语言的表述方式,透过情感词可以反映人的情感倾向,但是没有考虑到上下文的语义信息。基于特征的方法是采用统计学知识,从大量语料中选取特征,使用这些特征对文本进行表示,然后使用决策树、支持向量机(svm)等机器学习算法进行分类。该方法对经验要求较高,特征的选取直接影响分析结果。基于深度学习的方法,可以分别对词语、句子和篇章进行向量化表示,学习文本的深层语义信息。该方法有强大的特征学习能力,省去了特征选取和规则制定等步骤。常见的深度学习模型有:卷积神经网络(convolutionalneuralnetworks,cnn)、循环神经网络(recurrentneuralnetworks,rnn)等。

自2006年hinton等提出深度学习后,深度学习在计算机视觉方面取得了巨大的成就,越来越多的学者也开始将深度学习应用到自然语言处理领域。由于短文本包含的信息量较少,同时传统方法不能发现文本中的深层语义信息,所以深度学习成为情感分析研究的主流方法。

基于深度学习的情感分析通常是使用神经网络将文本表示成一定长度的向量,所以基于深度学习的情感分析可以理解为自动学习文本编码然后分类的过程。现阶段基于深度学习的情感分析是以发掘文本语义信息为主的,但是在情感分析工作中,句中每个词对于整体情感倾向的影响是不同的,尤其是一些情感词,这些词语往往能够直接反映出人情感倾向。现有技术方案虽然使用了注意力机制学习权重分布,但其是在双向lstm编码的基础上进行的,没有直接从文本中挖掘重点信息。在基于深度学习的情感分析工作中,传统的注意力机制主要以串行的方式作为其他模型的下一层,用于学习其他神经网络模型输出的权重分布。现有技术的情感分析结果差强人意,亟待改善。



技术实现要素:

针对上述现有技术中存在的问题,本发明的目的在于提供一种可避免出现上述技术缺陷的基于注意力增强的双向lstm模型的情感分析方法。

为了实现上述发明目的,本发明提供的技术方案如下:

一种基于注意力增强的双向lstm模型的情感分析方法,采用注意力增强的双向lstm模型进行文本情感分析。

进一步地,所述方法采用注意力机制与双向lstm模型相结合,使用双向lstm模型学习文本语义信息,使用注意力机制加强对重点词的关注。

进一步地,所述方法包括:首先对输入的句子利用预训练好词向量进行表示,然后分别经过双向lstm模型和注意力模型学习表示,将两部分表示后的向量拼接,最终通过分类器完成文本情感分析的工作。

进一步地,所述注意力增强的双向lstm模型的结构包括:词语表示层、语义学习层、重点词关注层和分类层,词语表示层的输出分别作为语义学习层和重点词关注层的输入,分类层将语义学习层和重点词关注层的结果连接作为输入。

进一步地,词语表示层在相关语料上预训练出一个rn×d规模的词典,n表示词典中词的个数,d表示词向量的维度;在进行词语表示时,用xt表示文本中的第t个词,xt∈rd;若文本长度为t,则输入文本表示为:

s=[x1;x2;...;xt]∈rt×d

进一步地,采用双向lstm模型对句子的语义信息进行编码;双向lstm由正反两个lstm模型组成,xt为t时刻lstm单元的输入数据,ht是t时刻输出,c是不同时刻记忆单元的值;lstm的遗忘门ft决定记忆信息的通过量,遗忘门将xt和上一时刻输出ht-1作为输入,输出值在0和1之间,值用来描述每个部分通过量的多少;ft的计算公式为:

ft=σ(wf[ht-1,xt]+bf)

式中σ为sigmoid函数,wf是遗忘门权重,bf为遗忘门偏置;

lstm的输入门it控制当前的输入数据对记忆单元状态的影响,为要被添加到记忆单元的候选值;it和的更新公式分别为:

it=σ(wi[ht-1,xt]+bi)

wi为输入门权重,bi是输入门偏置,tanh为双曲正切函数,wc为更新后候选值权重,bc为更新候选值偏置。

进一步地,接下来更新记忆单元的状态,由状态ct-1至ct状态,原来状态ct-1根据遗忘门的值丢弃要屏蔽的信息,根据输入门的值添加新的信息;ct更新公式为:

输出门ot控制输出信息,该门通过xt和上一时刻输出决定从当前状态中输出的信息量,状态ct通过tanh函数得到区间在-1和1的值,该值乘以ot作为本时刻的输出值;ot和ht的公式分别为:

ot=σ(wo[ht-1,xt]+bo)

ht=ot*tanh(ct)

式中wo为更新输出值的权重,bo是更新输出值偏执,ht为最终输出值;

连接正反两个方向的lstm模型输出向量作为t时刻双向lstm的输出bt:

对每个双向lstm单元的输出做和取平均作为语义学习层输出,公式为:

进一步地,采用注意力机制学习句子中不同词的权重分布,注意力机制自动从所给数据中学习权重分布:

vt=tanh(wxt+b)

其中at表示第t个词对于当前文本的重要程度,vta作为一种评分制度由模型从语料中自动学习,a、w均为权重矩阵,b为偏置;得到每个词的权重后,假设句中词数为t,将词向量按权重求和作为重点词关注层的输出:

进一步地,分类层将语义学习层和重点词关注层的结果连接作为输入:

inputclassify=[outputsema,outputatt]

输出每类的概率为pc:

v=wclassifyinputclassify+bclassify

wclassify为l×c的权重矩阵,l为输入向量的维度,c为类数,bclassify为分类层的偏置向量。

进一步地,在得到预测的概率分布后,采用交叉熵损失函数来衡量真实分布和预测分布之间的差距,利用反向传播对模型中的参数进行更新。

本发明提供的基于注意力增强的双向lstm模型的情感分析方法,使用双向lstm学习文本的语义信息,使用在词向量上建立的自注意力机制加强对句中情感关键词的关注度,本发明采用的词向量注意力机制与双向lstm为并行结构,实验表明,本发明提出的模型表现出优越的性能,并在包括正确率、召回率、f1值、准确率等的多个指标上超过了已知的最好模型,可以很好地满足实际应用的需要。

附图说明

图1为本发明的注意力增强的双向lstm模型的整体结构图;

图2为lstm的基本结构图;

图3为分词后语料句子长度分布图;

图4为注意力分布图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本发明做进一步说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

一种基于注意力增强的双向lstm模型的情感分析方法,采用注意力机制与双向lstm模型相结合的方式,使用双向lstm模型学习文本语义信息,使用注意力机制加强对重点词的关注,首先对输入的句子利用预训练好词向量进行表示,然后分别经过双向lstm模型和注意力模型学习表示,将两部分表示后的向量拼接,最终通过分类器完成文本情感分析的工作。词向量注意力增强的双向lstm模型的整体结构如图1所示。

注意力增强的双向lstm模型的结构包括:词语表示层、语义学习层、重点词关注层和分类层,分类层将语义学习层和重点词关注层的结果连接作为输入。

1)词语表示层:

词作为该模型处理的基本单元,第一步是对词进行符号化表示。与传统的表示方法不同,本发明使用连续的稠密向量作为模型的输入。word2vec模型被提出后,词向量可以在低维空间中更好的学习词语蕴含语义信息。词语表示层会在相关语料上预训练出一个rn×d规模的词典,n表示词典中词的个数,d表示词向量的维度。在进行词语表示时,用xt表示文本中的第t个词,xt∈rd。若文本长度为t,则输入文本表示为:

s=[x1;x2;...;xt]∈rt×d

词语表示层的输出分别作为语义学习层和重点词关注层的输入。

2)语义学习层:

自然语言的词语之间存在时序关系,为了让模型可以学习词语间的语义依赖关系,本发明采用双向lstm模型对句子的语义信息进行编码。双向lstm由正反两个lstm模型组成,长短期记忆网络(longshort-termmemory,lstm)是循环神经网络的一种,它有较强的长距离语义捕获能力,图2是lstm的基本结构。

xt为t时刻lstm单元的输入数据,ht是t时刻输出,c是不同时刻记忆单元的值。lstm主要有三个门结构控制模型中信息的加工。遗忘门ft决定记忆信息的通过量,该门将xt和上一时刻输出ht-1作为输入,输出值在0和1之间,值用来描述每个部分通过量的多少。ft的计算公式为:

ft=σ(wf[ht-1,xt]+bf)

式中σ为sigmoid函数,wf是遗忘门权重,bf为遗忘门偏置。输入门it控制当前的输入数据对记忆单元状态的影响,为要被添加到记忆单元的候选值。it和的更新公式分别为:

wi为输入门权重,bi是输入门偏置,tanh为双曲正切函数,wc为更新后候选值权重,bc为更新候选值偏置。接下来更新记忆单元的状态,由状态ct-1至ct状态,原来状态cy-1根据遗忘门的值丢弃要屏蔽的信息,根据输入门的值添加新的信息。ct更新公式为:

输出门ot控制输出信息,该门通过xt和上一时刻输出决定从当前状态中输出的信息量,状态ct通过tanh函数得到区间在-1和1的值,该值乘以ot作为本时刻的输出值。ot和ht的公式分别为:

ot=σ(wo[ht-1,xt]+bo),

ht=ot*tanh(ct);

式中wo为更新输出值的权重,bo是更新输出值偏执,ht为最终输出值。

传统的lstm模型能学习到文本中的正向语义信息,但忽略了未来的上下文信息,因此本发明使用双向lstm模型增加对文本逆向语义的学习。连接正反两个方向的lstm模型输出向量作为t时刻双向lstm的输出bt:

对每个双向lstm单元的输出做和取平均作为语义学习层输出,公式为:

3)重点词关注层:

在句子级情感分析中,由于句子中包含词数较少,也就难以获取很多的语义信息。通过对语料的分析,见表1,在句子中的情感词(如:喜欢、失望等)往往更能体现用户的情感倾向。为了加强这些情感词在分类时的作用,本发明采用注意力机制学习句子中不同词的权重分布。

表1重点词分析

注意力机制最早在计算机视觉领域提出来的,模仿人类的注意力机制,给图像不同的局部赋予不同的权重。后来注意力机制被应用到机器翻译,这也是注意力机制在自然语言处理领域的首次应用。但是机器翻译中的注意力机制是将前一时刻输出的隐含状态与当前时刻输入的隐含状态进行对齐的模式,而在情感分析任务中使用对当前输入自适应加权的自注意力机制(self-attention)更合适。也有人把自注意力模型应用到方面级(aspect-level)情感分析任务上,将自注意力机制与lstm结合在一起,通过自注意力机制去获取对不同方面更重要的上下文信息,来解决某个给定的方面情感分类的问题。自注意力机制通常也不会使用其他额外的信息,它会自动从所给数据中学习权重分布:

vt=tanh(wxt+b),

其中at表示第t个词对于当前文本的重要程度,vta作为一种评分制度由模型从语料中自动学习,a、w均为权重矩阵,b为偏置。得到每个词的权重后,假设句中词数为t,将词向量按权重求和作为重点词关注层的输出:

4)分类层:

文本情感分析本质上是一个分类任务,所以模型的最后一层是分类层,分类层将语义学习层和重点词关注层的结果连接作为输入:

inputclassify=[outputsema,outputatt]

输出每类的概率为pc:

v=wclassifyinputclassify+bclassify,

wclassify为l×c的权重矩阵,l为输入向量的维度,c为类数,bclassify为分类层的偏置向量。在得到预测的概率分布后,本发明采用交叉熵损失函数来衡量真实分布和预测分布之间的差距,从而利用反向传播对模型中的参数进行更新。

实验与分析:

(1)实验数据

本发明的实验数据为nlpcc2014情感分析(nlpcc-scdl)评测任务中文数据集,该数据集中共收集12500条中立、负面均衡的网购商品评论。从语料随机选取中立、负面数据1250条作为测试数据(共2500条),其余作为训练数据。实验语料采用jieba分词工具进行分词,分词后句子长的分布如图3所示。

本发明选用维基百科的中文语料作为预训练词向量的语料库,因为中文维基百科语料中含有大量的繁体字,所以需要先对语料进行繁简转换,再使用jieba进行分词。本发明利用google开源的word2vec工具预训练词向量,选择cbow模型,上下文窗口大小设置为5,词向量维度大小设为200,采样值大小设为le-3,其他参数使用模型的默认值。在使用预训练的词向量时采用随机初始化<unk>来表示未登录词,使用全零初始化<pad>补齐句子,并在训练神经网络时对词向量进行微调。

(2)评价标准

本实验采用正确率(precision)、召回率(recall)、f1值(f1-measure)准确率(accuracy)作为评价标准。

tp:正确分类中的中立条数

fp:错误分类中的中立条数

tn:正确分类中的负面条数

fn:错误分类中的负面条数

(3)实验对比模型

nbow:mikolov提出的神经网络词袋模型,该模型将句中的词向量的平均值作为句子表示,在文本分类任务中的效率很高。

cnn:基于kim等人提出的cnn分类模型,使用卷积核大小为1、2、3分别提取文本特征,经过最大池化后的使用softmax进行情感分类。

cnn+svm:cao等人提出的使用cnn提取文本特征,使用迁移学习的思想,利用svm进行文本分类,该模型在nlpcc-scdl任务上取得了最好的效果。

cnn+emb_att:冯兴杰等人提出的基于词向量注意力机制的卷积神经网络模型。lstm:使用lstm进行语义学习,将每个输入对应的输出取平均作为文本表示。lstm+att:使用lstm进行语义学习,使用自注意力机制学习lstm的输出,最后按权重做和作为句子的表示。

bilstm:使用双向lstm学习文本语义,将每个输入对应的输出取平均作为文本表示。

bilstm+att:使用双向lstm进行语义学习,使用自注意力机制学习双向lstm的输出,最后按权重做和作为句子的表示。

bilstm+em_att:本发明提出的注意力增强的双向lstm模型。

(4)实验参数

因为模型输入需要一定的长度限制,根据4.1节中的语料句子的长度分布,将模型输入文本的最大长度限制在100个词,超出100个词的句子截取前100个词,不足的用<pad>补齐。lstm模型和自注意力机制的隐藏层设置为200。每轮参数更新的学习率衰减为上轮学习率的0.8倍。当准确率在5轮内没有超过当前最高的准确率时,模型提前终止学习。模型中使用的主要超参数及参数值如表2。

表2模型中的参数设置

(5)实验结果及分析

本实验在服务器上进行,服务器cpu为2颗英特尔至强(r)处理器e5-2603v4,gpu为nvidiateslak40m。在训练阶段,将训练数据分为5份做交叉验证,最终实验结果取5次实验的平均值。实验结果如表3。

表3实验结果

从表中可以看出,本发明提出的bilstm+emb_att模型在除中立准确率、负面召回率两个指标上均取得最好的结果。因为自然语言存在时序性的特点,lstm模型中的记忆单元有效记录了文本时序信息,本发明采用双向lstm结构学习文本的语义信息,为模型中增加了逆向文本的语义信息,加强了模型对文本上下文的语义学习能力。但lstm模型只是理论上可以持续记忆文本信息,在实际效果上看lstm依然存在着不足,而自注意力机制在情感分析的任务需求上,可以通过学习文本规律,以分配不同词语相应权重的方式自动捕获影响文本情感倾向重要信息,为了便于观察文本中的注意力分布,本发明将权重输出,如图4。所以可以使用注意力机制作为辅助的方式从文本中得到更多的信息。通过在bilstm模型上加入基于词向量的注意力机制,结果得到了提升,验证了可以使用注意力机制加强模型直接从词向量中学习文本信息的想法。

另外,根据实验结果还可以得出结论:(1)cnn和cnn+svm的结果说明了在该实验语料上,使用svm代替softmax分类器的方式并不能提高结果,因为softmax分类会使用一层全链接网络对特征进行学习,在最小化损失学习后,softmax可以让概率分布更接近标准结果一些。(2)在lstm模型和bilstm模型上直接加上注意力机制的结构训练用时更短,说明了注意力机制虽然增加了模型的规模,但是其关注关键信息的特性使得模型的收敛速度更快。(3)在lstm和bilstm模型上增加注意力机制并没有达到相同的效果,这说明盲目加入注意力机制有时不会使结果更好,相反,在cnn上加入基于词向量的注意力机制的cnn+emb_att模型和bilstm上加入基于词向量的注意力机制的bilstm+emv_att模型的效果都得到了提高,这也验证了正确的加入注意力机制有助于模型效果的提升。

本发明提出了一种注意力增强的双向lstm模型,使用双向lstm学习文本的语义信息,使用在词向量上建立的自注意力机制加强对句中情感关键词的关注度。与传统双向lstm模型加注意力机制不同,本发明采用的词向量注意力机制与双向lstm为并行结构,实验表明,本发明提出的模型表现出优越的性能,并在多个指标(包括正确率、召回率、f1值、准确率)上超过了已知的最好模型。

以上所述实施例仅表达了本发明的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1