首页 / 专利库 / 人工智能 / 情感计算 / 一种利用上下文和方面记忆信息的情感分类方法

一种利用上下文和方面记忆信息的情感分类方法

阅读:107发布:2020-05-08

专利汇可以提供一种利用上下文和方面记忆信息的情感分类方法专利检索,专利查询,专利分析的服务。并且本 发明 提供一种利用上下文和方面记忆信息的情感分类方法,涉及 情感分析 技术领域。本发明通过选择待进行情感分析的数据集,建立基于方面的情感分析模型,通过交叉熵损失函数与L2正则化项的和来训练基于方面的情感分析模型,将待进行情感分析的数据集通过训练好的基于方面的情感分析模型,实现文本的情感分析。本发明提出的网络模型来提取方面的 情感极性 ,该模型构建并结合了上下文记忆构建、方面记忆更新和情感分类模 块 来解决方面级别的情感分类任务,将多头注意 力 机制应用到基于方面的情感分析中,并考虑两种应用方法,由于多头注意力机制中每一头的权值是不共享的,因此该模型可以学习不同子空间的特征表示,从而做出更准确的预测。,下面是一种利用上下文和方面记忆信息的情感分类方法专利的具体信息内容。

1.一种利用上下文和方面记忆信息的情感分类方法,其特征在于,包括以下步骤:
步骤1、选择待进行情感分析的数据集;
步骤2、建立基于方面的情感分析模型;
所述基于方面的情感分析模型包括上下文记忆构建模,方面记忆更新模块和情感分类模块;
所述上下文记忆构建模块包括词嵌入层、位置相关层和BiLSTM层;
所述词嵌入层将每个单词映射成词嵌入向量之后,将句子和方面用嵌入向量表示;设定输入的句子是s={w1,w2,...,wn},其中,wn为句子中的第n个单词,n是句子的长度,方面是a={wt,...,wt+k},其中,k是方面中单词的个数,即方面的长度,且t+k<n,即方面是句子的子集;将每个单词映射成词嵌入向量之后,句子向量表示为vs={e1,e2,...,en};当方面包含单个的单词时,使用方面单词的嵌入向量et来表示方面向量va,当方面包含多个单词时,使用et到et+k这k个嵌入向量均值池化的结果来表示方面向量va;
所述位置相关层计算句子中每个单词与方面之间的距离,进而得出在句子中每个单词的位置权重,使得靠近方面的单词所占的比重增大,而远离方面的单词所占的比重减小;对于给定的方面和句子中第i个单词的位置关系通过位置相关系数gi表示,如下公式所示:
其中,t是方面中第一个单词的位置,N是一个超参数,n是句子的长度,k是方面的长度;
在数据集中,长度小于最大长度的语句的末尾填充零,所以当i>n时,位置相关系数gi=0;
为了使方面的信息被完全考虑,使句子中每个单词的词嵌入向量ei和方面向量va上进行相乘再连接的操作来融合文本和方面的信息,计算公式如下所示:
f(ei,va)=[ei;ei⊙va]           (2)
其中,符号“⊙”表示点乘操作,符号“;”表示连接操作;
则位置相关层的输出如公式所示:
xi=f(ei,va)*ga,i∈[1,n]          (3)
其中,xi表示结合了位置权重以及方面信息的词向量;
所述BiLSTM层接收位置相关层的输出,得到句子中给定单词的特征表示;
所述BiLSTM层采用双向LSTMs模型连接句子中单词前后两个方向的特征表示,得到句子中给定单词的特征表示;第i个单词前向LSTM的细胞状态 和隐藏状态 是从它前一个位置的细胞状态 隐藏状态 和当前的输入向量xi得到的;第i个单词后向LSTM的细胞状态 和隐藏状态 是从它后一个位置的细胞状态 隐藏状态 和xi得到的;前向和后向LSTMs表示为:
其中,g(LSTM)表示LSTM的计算;
连接句子中单词前后两个方向的输出表示为:
其中,符号“||”表示连接操作,hi表示单词i的最终隐藏状态;
所述方面记忆更新模块包括hop个计算层,每个计算层均包括多头注意层和更新方面记忆层;
所述多头注意力层使用多头自注意力机制或多头编码解码注意力机制为每个单词特征表示设置权重,然后将这些单词的特征表示和权重聚合起来得到考虑了上下文单词之间相关性的输出或考虑了方面和上下文单词之间相关性的输出,进而得到最终的句子表示;
所述更新方面记忆层将注意力层输出的句子表示r与方面向量va相加,从而得到新的方面向量v′a,如下公式所示:
v′a=r+va            (13)
将新的方面向量v′a作为下一个计算层的方面向量,将方面向量v′a重新通过下一个计算层的多头注意力层和更新方面记忆层,直到达到预设的最大的hop数量,hop是一个超参数,需要对其预设定值;
所述情感分类模块是将在方面记忆更新模块中进行多次更新方面记忆之后输出的方面向量v′a输入到线性层和softmax层来预测方面情感;
步骤3、通过交叉熵损失函数与L2正则化项的和来训练基于方面的情感分析模型,如下公式所示:
其中,T是训练集所包含的句子数量,C是所有情感类别的集合,(s,a)表示句子和对应的方面,pc(s,a)表示给定句子s和方面a下的预测的分类概率,yc(s,a)是真实情感类别对应的独热码向量,λ是正则化项的权重,θ是模型中的所有权值参数;
步骤4、将待进行情感分析的数据集通过训练好的基于方面的情感分析模型,实现文本的情感分析。
2.根据权利要求1所述的一种利用上下文和方面记忆信息的情感分类方法,其特征在于,所述步骤2中使用多头自注意力机制的具体方法为:
对句子中每个单词的隐藏状态hi和方面向量va使用相乘再连接的方式将方面向量的信息编码到文本表示中,得到新的单词向量ui,计算公式如下所示:
ui=[hi;hi⊙va]             (8)
为了使得生成的每个句子表示都含有上下文和其需要预测的方面的含义,对生成的向量矩阵u使用多头自注意力机制;使用向量矩阵u得到query矩阵Q∈Rn×d,key矩阵K∈Rn×d和value矩阵V∈Rn×d,其中,d是单词向量ui的维度;然后使用不同的参数矩阵WiQ∈Rn×d/h,WiK∈n×d/h V n×d/h
R 和Wi ∈R ,把得到的Q,K,V矩阵做h次线性转换,其中h是一个超参数;将每个新生成的Q与K的转置KT相乘,除以 再进行softmax的操作得到句子中单词与单词之间对应的权重,然后将这个权重再乘以每个新生成的V,得到考虑了上下文单词之间相关性的输出;
headi=Attention(QWiQ,KWiK,VWiV)            (8)
最后将h次注意力的结果拼接在一起形成的向量再做一次线性转换,如下公式所示:
M=Concat(head1,...,headh)WO           (9)
其中,headi表示第i次注意力操作,Attention(Q,K,V)表示一次注意力操作,Concat表示连接操作,Concat(head1,...,headh)表示将h次的注意力结果连接起来,WO是参数矩阵;
最后将结果M经过一个线性层和softmax操作,并且将输出与隐藏状态hi加权,得到最终句子的表示r,如下公式所示:
其中,Wh是参数矩阵。
3.根据权利要求1所述的一种利用上下文和方面记忆信息的情感分类方法,其特征在于,所述步骤2中使用多头编码解码注意力机制的具体方法为:
使用隐藏状态hi和方面向量va相乘的结果{hi⊙va}得到Q矩阵,使用隐藏状态{hi}得到K和V矩阵;把得到的Q,K,V矩阵做h次线性转换,然后把新生成的Q与K的转置KT相乘,除以再进行softmax的操作得到单词对应方面的权重,然后将结果再乘以新生成的V,得到考虑了方面和上下文单词之间相关性的输出;将h次注意力的结果拼接在一起形成的向量再做一次线性转换;最后将结果经过一个线性层和softmax操作,并且将输出与hi加权,得到最终句子表示r。

说明书全文

一种利用上下文和方面记忆信息的情感分类方法

技术领域

[0001] 本发明涉及情感分析技术领域,尤其涉及一种利用上下文和方面记忆信息的情感分类方法。

背景技术

[0002] 情感分析(Sentiment analysis)又称为意见挖掘、主观性分析等,是自然语言处理的任务之一。它是对带有情感色彩的内容进行归纳和推理的一个过程。随着网络时代的发展,越来越多的人热衷于在网络上发表自己的情感、观点和态度,情感分析就是将这些观点态度提取出来的一个过程。由于在网络上产生的大量数据都是以文本的形式存在的,所以基于文本的情感分析是至关重要的。情感分析可以分为三个层次粒度:文档级别(document-level)、句子级别(sentence-level)和方面级别(aspect-level)。文档级别的情感分类是为含有一个意见的文档确定一个整体的情感极性。句子级别的情感分析是为一个句子确定一个情感极性。与文档级别和句子级别的情感分类不同的是,方面级别的情感分析既要考虑句子的内容,又考虑句子的目标信息,因为情感总是有目标的。目前很多方法都尝试提取出表达意见文本的整体的情感极性,而忽略了其中的实体,方面或者目标。方面级别的情感分析是具有挑战的,它是一种细粒度的任务。基于方面的情感分析是通过输入的句子的方面来判断句子中关于每个方面的情感极性。输入的句子可以是商品评论,社交网络评论等带有方面的句子。例如在句子“食物出奇的好吃,餐厅的装饰也很不错”中,“食物”和“装饰”就是句子的提到的两个方面。在这个句子中它们的情感极性都是积极的。
[0003] 解决基于方面的情感分析主要有三种方法。第一种是传统的使用情感词典和规则进行情感分析的方法。但是在很多情况下分类的效果受限于情感词典的质量,而情感词典的构建费时又费。第二种是使用机器学习进行情感分析的方法。以往,研究人员通常使用朴素贝叶斯(NB)或支持向量机(SVM)等分类模型。这些方法是基于在高维稀疏数据结构上训练的浅层模型。因此,这些分类模型侧重于设计有效的手工特征,以获得更好的性能。然而。特征工程是一项非常困难、耗时和专业的工作。第三种是深度学习方法。深度神经网络模型的优点是可以自动地从数据中学习文本特征或表示形式,而无需预先仔细设计特征。并且在捕获方面和上下文单词之间语义关系的扩展性上,他们比基于机器学习的方法更强。在情感分析方面,研究人员提出了各种深度神经网络模型。这些模型可以获得稠密的、低维的词嵌入,从而产生更好的句子表示。下面将详细介绍基于方面情感分析的深度学习模型。
[0004] 在情感分析领域中,长短期记忆网络(LSTM)已经得到了广泛的应用。该模型擅长对自然语言建模,很好地解决了自然语言句子向量化的难题。LSTM是循环神经网络(RNN)的一种变体,其包含了输入、输出门、遗忘门和细胞状态,解决了RNN中长序列依赖问题。但是,在解决基于方面的情感分析任务时,标准的LSTM模型以顺序的方式工作,并使用相同的操作获取每个上下文单词的向量,因此它不能显式地捕捉每个上下文单词的重要性。同时该模型还面临的一个问题是:当它捕捉到一个远离目标的情感特征后,它需要一个字一个字地传播给目标,在这种情况下,它可能会失去这个特征。
[0005] 近年来,LSTM与注意力机制结合的模型逐渐成为解决基于方面的情感分析的主流方式。Wang等人提出的AE-LSTM和ATAE-LSTM模型都是在长短期记忆网络的基础上又增加了注意力机制(attention mechanism)。AE-LSTM将方面嵌入向量与句子中的每个词嵌入向量相连接的结果作为网络的输入。ATAE-LSTM是AE-LSTM的扩展。它不仅在输入时将方面嵌入向量到每个单词嵌入向量中,而且在网络中将方面嵌入向量连接到LSTM隐藏状态上,之后再将连接向量交给注意力层。这两种方法虽然在基于方面的数据集上取得了一定的效果,但是仅仅通过连接方面的嵌入向量处理方面信息是远远不够的,这样并不能充分利用方面的信息。而且当一个attention集中在多个单词上时,模型可能会可能隐藏每个被关注的词的特征。MemNet模型将记忆网络引入了基于方面的情感分析任务中,将多层注意力机制和词嵌入层构成了记忆网络。MemNet模型在词嵌入上应用了多层注意力来显式地捕获上下文单词的重要性,并使用这些信息来构建句子的特征,最后使用特征表示来预测句子的情感极性。记忆网络利用了记忆组件保存了句子信息,实现了长期记忆的效果。但是当上下文的单词的情感对给定方面敏感时,它的性能会下降。

发明内容

[0006] 本发明要解决的技术问题是针对上述现有技术的不足,提供一种利用上下文和方面记忆信息的情感分类方法,对文本实现方面级别的情感分析。
[0007] 为解决上述技术问题,本发明所采取的技术方案是:一种利用上下文和方面记忆信息的情感分类方法,包括以下步骤:
[0008] 步骤1、选择待进行情感分析的数据集;
[0009] 步骤2、建立基于方面的情感分析模型;
[0010] 所述基于方面的情感分析模型包括上下文记忆构建模,方面记忆更新模块和情感分类模块;
[0011] 所述上下文记忆构建模块包括词嵌入层、位置相关层和BiLSTM层;
[0012] 所述词嵌入层将每个单词映射成词嵌入向量之后,将句子和方面用嵌入向量表示;设定输入的句子是s={w1,w2,...,wn},其中,wn为句子中的第n个单词,n是句子的长度,方面是a={wt,...,wt+k},其中,k是方面中单词的个数,即方面的长度,且t+k<n,即方面是句子的子集;将每个单词映射成词嵌入向量之后,句子向量表示为vs={e1,e2,...,en};当方面包含单个的单词时,使用方面单词的嵌入向量et来表示方面向量va,当方面包含多个单词时,使用et到et+k这k个嵌入向量均值池化的结果来表示方面向量va;
[0013] 所述位置相关层计算句子中每个单词与方面之间的距离,进而得出在句子中每个单词的位置权重,使得靠近方面的单词所占的比重增大,而远离方面的单词所占的比重减小;对于给定的方面和句子中第i个单词的位置关系通过位置相关系数gi表示,如下公式所示:
[0014]
[0015] 其中,t是方面中第一个单词的位置,N是一个超参数,n是句子的长度,k是方面的长度;在数据集中,长度小于最大长度的语句的末尾填充零,所以当i>n时,位置相关系数gi=0;
[0016] 为了使方面的信息被完全考虑,使句子中每个单词的词嵌入向量ei和方面向量va上进行相乘再连接的操作来融合文本和方面的信息,计算公式如下所示:
[0017] f(ei,va)=[ei;ei⊙va]   (2)
[0018] 其中,符号“⊙”表示点乘操作,符号“;”表示连接操作;
[0019] 则位置相关层的输出如公式所示:
[0020] xi=f(ei,va)*ga,i∈[1,n]   (3)
[0021] 其中,xi表示结合了位置权重以及方面信息的词向量;
[0022] 所述BiLSTM层接收位置相关层的输出,得到句子中给定单词的特征表示;
[0023] 所述BiLSTM层采用双向LSTMs模型连接句子中单词前后两个方向的特征表示,得到句子中给定单词的特征表示;第i个单词前向LSTM的细胞状态 和隐藏状态 是从它前一个位置的细胞状态 隐藏状态 和当前的输入向量xi得到的;第i个单词后向LSTM的细胞状态 和隐藏状态 是从它后一个位置的细胞状态 隐藏状态 和xi得到的;前向和后向LSTMs表示为:
[0024]
[0025]
[0026] 其中,g(LSTM)表示LSTM的计算;
[0027] 连接句子中单词前后两个方向的输出表示为:
[0028]
[0029] 其中,符号“||”表示连接操作,hi表示单词i的最终隐藏状态;
[0030] 所述方面记忆更新模块包括hop个计算层,每个计算层均包括多头注意力层和更新方面记忆层;
[0031] 所述多头注意力层使用多头自注意力机制或多头编码解码注意力机制为每个单词特征表示设置权重,然后将这些单词的特征表示和权重聚合起来得到考虑了上下文单词之间相关性的输出或考虑了方面和上下文单词之间相关性的输出,进而得到最终的句子表示;
[0032] 使用多头自注意力机制的具体方法为:
[0033] 首先,对句子中每个单词的隐藏状态hi和方面向量va使用相乘再连接的方式将方面向量的信息编码到文本表示中,得到新的单词向量ui,计算公式如下所示:
[0034] ui=[hi;hi⊙va]   (7)
[0035] 为了使得生成的每个句子表示都含有上下文和其需要预测的方面的含义,对生成的向量矩阵u使用多头自注意力机制;使用向量矩阵u得到query矩阵Q∈Rn×d,key矩阵K∈Rn×d和value矩阵V∈Rn×d,其中,d是单词向量ui的维度;然后使用不同的参数矩阵WiQ∈Rn×d/h,WiK∈Rn×d/h和WiV∈Rn×d/h,把得到的Q,K,V矩阵做h次线性转换,其中h是一个超参数;将每个新生成的Q与K的转置KT相乘,除以 再进行softmax的操作得到句子中单词与单词之间对应的权重,然后将这个权重再乘以每个新生成的V,得到考虑过单词上下文的输出;
[0036] headi=Attention(QWiQ,KWiK,VWiV)   (8)
[0037]
[0038] 最后将h次注意力的结果拼接在一起形成的向量再做一次线性转换,如下公式所示:
[0039] M=Concat(head1,...,headh)WO   (8)
[0040] 其中,headi表示第i次注意力操作,Attention(Q,K,V)表示一次注意力操作,Concat表示连接操作,Concat(head1,...,headh)表示将h次的注意力结果连接起来,WO是参数矩阵;
[0041] 最后将结果M经过一个线性层和softmax操作,并且将输出与hi加权,得到最终句子的表示r,如下公式所示:
[0042]
[0043]
[0044] 其中,Wh是参数矩阵;
[0045] 使用多头编码解码注意力机制的具体方法为:
[0046] 使用隐藏状态hi和方面向量va相乘的结果{hi⊙va}得到Q矩阵,使用隐藏状态{hi}得到K和V矩阵;把得到的Q,K,V矩阵做h次线性转换,然后把新生成的Q与K的转置KT相乘,除以 再进行softmax的操作得到单词对应方面的权重,然后将结果再乘以新生成的V,得到考虑了方面和上下文单词之间相关性的输出;将h次注意力的结果拼接在一起形成的向量再做一次线性转换;最后将结果经过一个线性层和softmax操作,并且将输出与hi加权,得到最终句子表示r;
[0047] 所述更新方面记忆层将注意力层输出的句子表示r与方面向量va相加,从而得到新的方面向量v'a,如下公式所示:
[0048] v’a=r+va   (13)
[0049] 然后将新的方面向量v'a作为下一个计算层的方面向量,将方面向量v'a重新通过下一个计算层的多头注意力层和更新方面记忆层,直到达到预设的最大的hop数量,hop是一个超参数,需要对其预设定值;
[0050] 所述情感分类模块是将在方面记忆更新模块中进行多次更新方面记忆之后输出的方面向量v'a输入到线性层和softmax层来预测方面情感。
[0051] 步骤3、通过交叉熵损失函数与L2正则化项的和来训练基于方面的情感分析模型,如下公式所示:
[0052]
[0053] 其中,T是训练集所包含的句子数量,C是所有情感类别的集合,(s,a)表示句子和对应的方面,pc(s,a)表示给定句子s和方面a下的预测的分类概率,yc(s,a)是真实情感类别对应的独热码向量,λ是正则化项的权重,θ是模型中的所有权值参数。
[0054] 步骤4、将待进行情感分析的数据集通过训练好的基于方面的情感分析模型,实现文本的情感分析。
[0055] 采用上述技术方案所产生的有益效果在于:本发明提供的一种利用上下文和方面记忆信息的情感分类方法,(1)提出一种新的网络模型来提取方面的情感极性。该模型构建并结合了上下文记忆构建、方面记忆更新和情感分类模块来解决方面级别的情感分类任务。(2)将多头注意力机制应用到基于方面的情感分析中,并考虑两种应用方法。由于多头注意力机制中每一头的权值是不共享的,因此该模型可以学习不同子空间的特征表示,从而做出更准确的预测。附图说明
[0056] 图1为本发明实施例提供的基于方面的情感分析模型CAMN的基本框架
[0057] 图2为本发明实施例提供的多头自注意力机制的结构示意图;
[0058] 图3为本发明实施例提供的多头编码解码注意力机制的结构示意图;
[0059] 图4为本发明实施例提供的CAMN-SA模型中hop个计算层的影响对比图;
[0060] 图5为本发明实施例提供的CAMN-ED模型中hop个计算层的影响对比图。

具体实施方式

[0061] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0062] 步骤1、选择待进行情感分析的数据集;
[0063] 本实施例使用的数据集是SemEval2014的laptop和restaurant数据集以及一个twitter数据集。在SemEval2014的两个数据集上,当句子的类别是“conflict”时,表示句子包含多种情感极性,因此删除了类别是“conflict”的例子。所以最终使用的情感类别标签是“positive”,“negative”和“neutral”。为了防止训练过拟合,随机将训练集的20%划分为验证集,数据集的划分细节如表1所示。
[0064] 表1数据集
[0065]
[0066] 步骤2、建立基于方面的情感分析模型;
[0067] 基于方面的情感分析模型,如图1所示,包括上下文记忆构建模块,方面记忆更新模块和情感分类模块,其中CAMN包含两种模型分别为CAMN-SA和CAMN-ED;
[0068] 所述基于方面的情感分析模型包括上下文记忆构建模块,方面记忆更新模块和情感分类模块;
[0069] 所述上下文记忆构建模块包括词嵌入层、位置相关层和BiLSTM层;
[0070] 所述词嵌入层将每个单词映射成词嵌入向量之后,将句子和方面用嵌入向量表示;设定输入的句子是s={w1,w2,...,wn},其中,wn为句子中的第n个单词,n是句子的长度,方面是a={wt,...,wt+k},其中,k是方面中单词的个数,即方面的长度,且t+k<n,即方面是句子的子集;将每个单词映射成词嵌入向量之后,句子向量表示为vs={e1,e2,...,en};当方面包含单个的单词时,使用方面单词的嵌入向量et来表示方面向量va,当方面包含多个单词时,使用et到et+k这k个嵌入向量均值池化的结果来表示方面向量va;
[0071] 所述位置相关层计算句子中每个单词与方面之间的距离,进而得出在句子中每个单词的位置权重,使得靠近方面的单词所占的比重增大,而远离方面的单词所占的比重减小;对于给定的方面和句子中第i个单词的位置关系通过位置相关系数gi表示,如下公式所示:
[0072]
[0073] 其中,t是方面中第一个单词的位置,N是一个超参数,n是句子的长度,k是方面的长度;在数据集中,长度小于最大长度的语句的末尾填充零,所以当i>n时,位置相关系数gi=0;
[0074] 为了使方面的信息被完全考虑,使句子中每个单词的词嵌入向量ei和方面向量va上进行相乘再连接的操作来融合文本和方面的信息,计算公式如下所示:
[0075] f(ei,va)=[ei;ei⊙va]   (11)
[0076] 其中,符号“⊙”表示点乘操作,符号“;”表示连接操作;
[0077] 则位置相关层的输出如公式所示:
[0078] xi=f(ei,va)*ga,i∈[1,n]   (12)
[0079] 其中,xi表示结合了位置权重以及方面信息的词向量;
[0080] 所述BiLSTM层接收位置相关层的输出,得到句子中给定单词的特征表示;
[0081] 所述BiLSTM层采用双向LSTMs模型连接句子中单词前后两个方向的特征表示,得到句子中给定单词的特征表示;第i个单词前向LSTM的细胞状态 和隐藏状态 是从它前一个位置的细胞状态 隐藏状态 和当前的输入向量xi得到的;第i个单词后向LSTM的细胞状态 和隐藏状态 是从它后一个位置的细胞状态 隐藏状态 和xi得到的;前向和后向LSTMs表示为:
[0082]
[0083]
[0084] 其中,g(LSTM)表示LSTM的计算;
[0085] 连接句子中单词前后两个方向的输出表示为:
[0086]
[0087] 其中,符号“||”表示连接操作,hi表示单词i的最终隐藏状态;
[0088] 所述方面记忆更新模块包括hop个计算层,每个计算层均包括多头注意力层和更新方面记忆层;
[0089] 所述多头注意力层使用多头自注意力机制或多头编码解码注意力机制为每个单词特征表示设置权重,然后将这些单词的特征表示和权重聚合起来得到考虑了上下文单词之间相关性的输出或考虑了方面和上下文单词之间相关性的输出,进而得到最终的句子表示;
[0090] 使用多头自注意力机制的具体方法如图2所示:
[0091] 首先,对句子中每个单词的隐藏状态hi和方面向量va使用相乘再连接的方式将方面向量的信息编码到文本表示中,得到新的单词向量ui,计算公式如下所示:
[0092] ui=[hi;hi⊙va]   (16)
[0093] 为了使得生成的每个句子表示都含有上下文和其需要预测的方面的含义,对生成的向量矩阵u使用多头自注意力机制;使用向量矩阵u得到query矩阵Q∈Rn×d,key矩阵K∈Rn×d和value矩阵V∈Rn×d,其中,d是单词向量ui的维度;然后使用不同的参数矩阵WiQ∈Rn×d/h,WiK∈Rn×d/h和WiV∈Rn×d/h,把得到的Q,K,V矩阵做h次线性转换,其中h是一个超参数;将每个新生成的Q与K的转置KT相乘,除以 再进行softmax的操作得到句子中单词与单词之间对应的权重,然后将这个权重再乘以每个新生成的V,得到考虑了上下文单词之间相关性的输出;
[0094] headi=Attention(QWiQ,KWiK,VWiV)   (8)
[0095]
[0096] 最后将h次注意力的结果拼接在一起形成的向量再做一次线性转换,如下公式所示:
[0097] M=Concat(head1,...,headh)WO   (17)
[0098] 其中,headi表示第i次注意力操作,Attention(Q,K,V)表示一次注意力操作,Concat表示连接操作,Concat(head1,...,headh)表示将h次的注意力结果连接起来,WO是参数矩阵;
[0099] 最后将结果M经过一个线性层和softmax操作,并且将输出与hi加权,得到最终句子的表示r,如下公式所示:
[0100]
[0101]
[0102] 其中,Wh是参数矩阵;
[0103] 使用多头编码解码注意力机制的具体方法如图3所示:
[0104] 使用隐藏状态hi和方面向量va相乘的结果{hi⊙va}得到Q矩阵,使用隐藏状态{hi}得到K和V矩阵;把得到的Q,K,V矩阵做h次线性转换,然后把新生成的Q与K的转置KT相乘,除以 再进行softmax的操作得到单词对应方面的权重,然后将结果再乘以新生成的V,得到考虑了方面和上下文单词之间相关性的输出;将h次注意力的结果拼接在一起形成的向量再做一次线性转换;最后将结果经过一个线性层和softmax操作,并且将输出与hi加权,得到最终句子表示r;
[0105] 所述更新方面记忆层将注意力层输出的句子表示r与方面向量va相加,从而得到新的方面向量v'a,如下公式所示:
[0106] v’a=r+va   (13)
[0107] 然后将新的方面向量v'a作为下一个计算层的方面向量,将方面向量v'a重新通过下一个计算层的多头注意力层和更新方面记忆层,直到达到预设的最大的hop数量,hop是一个超参数,需要对其预设定值。
[0108] 所述情感分类模块是将在方面记忆更新模块中进行多次更新方面记忆之后输出的方面向量v'a输入到线性层和softmax层来预测方面情感。
[0109] 步骤3、通过交叉熵损失函数与L2正则化项的和来训练,基于方面的情感分析模型,如下公式所示:
[0110]
[0111] 其中,T是训练集所包含的句子数量,C是所有情感类别的集合,(s,a)表示句子和对应的方面,pc(s,a)表示给定句子s和方面a下的预测的分类概率,yc(s,a)是真实情感类别对应的独热码向量,λ是正则化项的权重,θ是模型中的所有权值参数。
[0112] 步骤4、将待进行情感分析的数据集通过训练好的基于方面的情感分析模型,实现文本的情感分析。
[0113] 本实施例还将本发明建立的基于方面的情感分析模型与其他基于方面的情感分析模型相比较;
[0114] 本实施例中,使用的词向量是由Glove预先训练的300维词向量。使用均匀分布U(-0.25,0.25随机化了词汇表之外的单词的嵌入向量。BiLSTM隐藏状态的维度设置为300,嵌入层和BiLSTM层之前的丢失率(dropout rate)均设置为0.5,多头注意机制之前的dropout设置为0.1。使用Adam作为优化器,并将学习率设为0.001。将参数N的值设置为40,h的值设置为2。模型使用准确度作为分类性能的评价指标。
[0115] 本实施例将本发明的基于方面的情感分析模型与一些现有的基于方面的情感分析的模型进行了比较。结果如表2所示,本发明的两个模型的性能优于大部分的模型。在三个数据集上,本发明的两个模型都比其他的神经网络模型都有很大的提升。因为本发明的模型都利用了双向的LSTM来捕捉信息,它是由前向输入和后向输入共同来决定特征表示。并且本发明的模型不仅利用了方面信息,还通过多层的多头注意力机制捕获与方面相关的重要的特征表示。在更新方面记忆时,CAMN-SA使用了多层的多头注意力机制和自注意力机制来计算句子中单词向量与单词向量之间的相关权重。CAMN-ED使用了多层的多头注意力机制和编码解码注意力机制来计算上下文向量与方面向量之间的相关权重,得到结合方面词的上下文向量的表示。这些部分都对分类性能的提升起到重要的作用。
[0116] 表2实验结果
[0117]
[0118] 影响模型性能的一个重要的参数是方面记忆更新模块的层数。在CAMN-SA模型中我们设置的hop数量是5,在CAMN-ED模型设置的hop数量是4。本实施例中,用1到8层来评估本发明的模型。结果如图4和图5所示。两个模型在三个数据集上,一层注意力的表现都不如使用更多层的好,这说明在复杂的情况下,一层注意力可能不足以捕捉情感信息。通常情况下,多个计算层可以帮助提高性能。在CAMN-SA模型中,当计算层是5或者6时,模型的准确率达到了最好;在CAMN-ED模型中,计算层是4或者5时,模型的效果达到了最好。从图可以看出性能没有继续随着计算层的增加而增加的。原因可能是随着参数的增加,模型的泛化性能降低。
[0119] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈