Bert on ABSA、ASGCN、GAN、Sentic GCN…你都掌握了吗?一文总结情感分析必备经典模型(三)

2023-07-06 13:54 413 阅读 ID:1215
机器之心
机器之心
  • 第 1 期:CNN、GRNN、CLSTM、TD-LSTM/TC-LSTM
  • 第 2 期:MemNet、AT-LSTM、IAN、AF-LSTM
  • 第 3 期:Bert on ABSA、ASGCN、GAN、Sentic GCN

第 1 期回顾:CNN、GRNN、CLSTM、TD-LSTM/TC-LSTM…你都掌握了吗?一文总结情感分析必备经典模型(一)

第 2 期回顾:MemNet、AT-LSTM、IAN、AF-LSTM…你都掌握了吗?一文总结情感分析必备经典模型(二)

本期收录模型速览

情感分析(sentiment analysis)是指利用计算机技术对文本、图像、音频、视频甚至跨模态的数据进行情绪挖掘与分析。广义上讲,情感分析还包括对观点、态度、倾向的分析等。情感分析是自然语言处理的一个重要的研究领域。情感分析主要涉及两个对象,即评价的对象(包括商品、服务、组织、个体、话题、问题、事件等)和对该对象的态度、情感等。情感分析在社会的舆情管理、商业决策、精准营销等领域有着广泛的应用。从情感分析的数据来源角度看,可分为人脸情感分析、语音情感分析、肢体语言情感分析、文本情感分析和生理模式情感分析等,本文聚焦于文本的情感分析,这也是目前网络内容理解中使用的重要技术(如无特别说明,下文中提到的情感分析均为文本情感分析)。

在自然语言处理中,情感分析属于典型的文本分类问题,即把需要进行情感分析的文本划分为其所属类别。主流的情感分析方法有两种:基于词典的方法和基于机器学习算法的方法。基于词典的方法主要通过制定一系列的情感词典和规则,拆解文本、提取关键词、计算情感值,最后通过情感值来作为文本的情感倾向判断依据。这种方法往往会忽略其词顺序、语法和句法,将这段文本仅仅看做是一个词集合,因此不能充分的表达文本语义信息。而引入深度学习技术的机器学习方法,利用词嵌入技术可以避免文字长短不均带来的处理困难;使用深度学习抽象特征,可以避免大量人工提取特征的工作;模拟词与词之间的联系,有局部特征抽象化和记忆功能,因此,深度学习技术在情感分析中发挥了越来越重要的作用。

目前情感分析用到的深度学习神经网络有多层神经网络(MLP)、卷积神经网络(CNN)和长短期记忆模型(LSTM),具体不同的模型通过交叉验证技术选取最优参数(比如,几层模型、每层节点数、Dropout 概率等)。情感分析的模型主要分为三个层面,分别为:Document level、Sentence level和Aspect level。其中,Document level是将整个文本作为分析单元并假设该文本讨论的对象为单一实体且情感、观点都是鲜明、清晰的,即neural、positive or negative 。Sentence level则是以每个句子作为单独的分析对象,由于句子与句子间可能存在某些关联,因此我们不能将其认为是观点明确的。而对于Aspect level其分类粒度更细,即我们需要抽取出targets不同层面相互独立的评价,并进行总结综合得到最后的情感。

本文回顾情感分析中必备的TOP模型。一些经典的自然语言处理领域的模型,例如XLNet、Bert及各种变体,适用于NLU、文本生成、情感分析等多个领域,本文均不涉及。本文只专注于专门的sentiment analysis模型。  

一、Aspect level

1、 Bert on ABSA

基于属性的情感分析(Aspect-Based Sentiment Analysis,ABSA)旨在识别针对特定属性的细粒度情感极性,是情感分析(SA)的一项具有挑战性的子任务。这篇论文将预训练模型BERT引入到Aspect-Based Sentiment Analysis领域。利用aspect来构建附加句子,论文将ABSA任务转换为了对句子对的分类任务。作为一个出色的语言模型,BERT在许多任务上表现优异。简单来说,可以将BERT理解为将句子表示成向量的模型。BERT可以直接用在句子级情感分类中,但由于属性级情感分类(aspect-based sentiment classficaition)的输入是句子和aspect,BERT的使用就需要进行一些调整。

这篇文章通过构造辅助句子的方式,将属性级情感分类转换为一个句对分类(sentence-pair classification)问题。比如,对于句子“LOCATION1 is central London so extremely expensive”,可能的一个辅助句子为“what do you think of the price of LOCATION1”。因此,辅助句子的构造是该方法的关键问题,文章给出了4种构造方法。

Sentences for QA-M。我们要从目标-属性对生成的句子是一个问题,格式需要相同。例如,对于一组目标-属性对(LOCA TION1,安全性),我们生成的句子是“你认为位置安全性如何 - 1?”

Sentences for NLI-M。对于 NLI 任务,我们在生成句子时设置的条件不那么严格,形式也简单得多。此时创建的句子不是标准句,而是简单的伪句,以(LOCATION1,safety)对为例:辅助句为:“location - 1 - safety”。

Sentences for QA-B。对于 QA-B,添加标签信息并将 TABSA( targeted aspect-based sentiment analysis ) 临时转换为二分类问题(标签 ∈ {yes, no})以获得概率分布。此时,每个target-aspect对会产生三个序列,如“location的aspect安全的极性-1为正”、“location的aspect安全的极性-1为负”、“位置的aspect安全的极性为负”。位置属性的安全性 - 1 是无”。我们使用概率的值作为匹配分数。对于生成三个序列(正、负、无)的目标-属性对,我们采用预测类别匹配分数最高的序列类别。

Sentences for NLI-B。NLI-B 和 QA-B 的区别在于助句从疑问句变成了伪句。辅助句为:“位置-1-安全-肯定”、“位置-1-安全-否定”和“位置-1-安全-无”。构建辅助句后,可以将 TABSA 任务从单句分类任务转变为句对分类任务。作者表示,这种操作可以显着提高TABSA任务的实验效果。

本文使用微调Bert。BERT 的输入表示可以显式地表示标记序列中的一对文本句子。对于给定的标记,其输入表示是通过对相应的标记、段和位置嵌入求和来构造的。对于分类任务,每个序列的第一个词是唯一的分类嵌入([CLS])。对于微调的Bert,为了获得输入序列的固定维池化表示,使用第一个token的最终隐藏状态(即transformer的输出)作为输入。将向量表示为 C ∈ RH。然后添加一个分类层,其参数矩阵为 W ∈ RK×H,其中 K 是类别数。最后通过softmax函数P = softmax(CW T)计算每个类别P的概率。

此外,本文提出了BERT-single for (T)ABSA BERT 用于单句分类任务。假设目标类别数为 nt,属性类别数为 na。将 TABSA 视为 nt·na 个与目标属性相关的情感分类问题的组合,首先对每个情感分类问题进行分类,然后对得到的结果进行总结。对于 ABSA,微调预训练的 BERT 模型以训练所有属性的分类器,然后总结结果。BERT-pair for (T)ABSA BERT 用于句子对分类任务。基于本文构建的四类辅助句,使用句对分类方法来解决(T)ABSA。对应于四种造句方式,将模型命名为:BERTpair-QA-M、BERT-pair-NLI-M、BERT-pair-QAB、BERT-pair-NLI-B。

当前SOTA!平台收录Bert on ABSA共1个模型实现。

2、 ASGCN

本文是2019年发表在EMNLP上的一篇论文,这也是第一次将图卷积技术运用在ABSA中。注意力机制和卷积神经网络由于其固有的属性和上下文词的语义对齐能力,被广泛应用于基于属性(Aspect)的情感分类。然而,这些模型缺乏一种机制来解释相关的句法约束和长距单词依赖性,并且可能错误地将句法上不相关的上下文单词识别为判断属性情感的线索。为了解决这个问题,作者建议在句子的依存关系树上建立一个图卷积网络(GCN),以利用句法信息和单词依存关系。在此基础上,提出了一种新的情感分类框架。

GCN可以看作是CNN的改编,用于对非结构化数据的本地信息进行编码。对于具有k个节点的给定图,通过枚举该图获得邻接矩阵A。将节点i的第l层的输出表示为(h_i)^l,其中,h_0表示节点i的初始状态。对于L层GCN,l∈[1,2,···,L],(h_i)^L表示节点i的最终状态。对节点表示进行操作的图卷积可写为:  

由于图卷积过程仅编码直接邻居的信息,因此图中的节点只能受到L层GCN中L步内的相邻节点的影响。在这样,在句子的依赖树上的图卷积为句子中的一个属性提供了句法约束,以基于句法距离识别描述性词。此外,GCN能够处理用非连续词描述属性的极性的情况,因为依赖树上的GCN会将非连续词收集到较小的范围内,并通过图卷积适当地聚集其特征。因此,本文采用GCN来利用句法信息和远程单词依存关系进行基于属性的情感分类。

                                                                            图1 GCN层示例
                                                                             图2 模型架构

Embedding and Bidirectional LSTM
对输入的句子进行一个初始转换,并通过LSTM输出一个初始的hidden representation。对于一个给定n个词的句子c={wc1,wc2,···,wcτ+1,···,wcτ+m,···,wcn−1,wcn},将其输入到对应的embedding层,在将对应的结果输入到一个双向LSTM中,得到 Hc={hc1,hc2,···,hcτ+1,···,hcτ+m,···,hcn−1,hcn}。

Graph Convolution over Dependency Trees
对于一个给定的句子,在构造其对应的依赖树后,会得到一个对应的邻接矩阵。作者提出了两种基于ASGCN的变体:ASGCN-DG(无向的依赖图)和ASGCN-DT(有向的依赖树)。两者的区别在于邻接矩阵,有向的邻接矩阵比无向邻接矩阵更加稀疏。在双向LSTM输出的基础上,以多层方式执行ASGCN变体,即H0 = Hc,以使节点了解上下文。ASGCN的变体层的具体公式如下:  

上一层的hidden representation并没有直接输入到下一层中,而是进行了一个位置感知转换的操作以后再输入。位置感知转换公式如下,目的是增强与属性相近的上下文词的重要性,可以减少依赖项解析过程中自然产生的噪声和偏差:

Aspect-specific Masking

将GCN层的输出中非属性的向量进行了一个隐藏。mask范围如下所示:

  mask后的输出为:HLmask={0,···,hLτ+1,···,hLτ+m,···,0}。通过图卷积,这些特征以一种既考虑句法依赖性又考虑长程多词关系的方式来感知属性周围的上下文。

Aspect-aware Attention

基于面向属性的特征,通过基于检索的注意力机制生成了隐藏状态向量Hc的精确表示。这个思路是从隐藏状态向量中检索与属性单词在语义上相关的重要特征,并因此为每个上下文单词设置基于检索的注意力权重。注意力权重计算如下:

获得表示r后,将其馈入一个全连接层,然后馈入一个softmax归一化层,以在极性决策空间上产生概率分布p∈R^dp:

先算出对应的β, 再将注意力分数乘以整个句子的hidden representation(之前LSTM的结果)。之后利用softmax操作得到对应的注意力分数。最后再经过一个线性变换与softmax操作得到结果。

当前SOTA!平台收录ASGCN共1个模型实现。

3、  GAN

本文提出了一种新的面向属性层次情感分类任务的目标依赖图注意网络(Target-Dependent Graph Attention Network,TD-GAT),这种网络能在属性级情感分类任务中很好地利用句子的语法结构,并将此类句子表示称为依赖图,而非单词序列。使用上述依赖图,可以使上下文中对某一属性的情感特征通过语法结构传播。在依赖图中,属性目标和相关属性词直接相连。作者采用多层图注意力网络,将情感特征从重要的语法相邻词传播到属性目标。作者还进一步在TD-GAT中加入了一个LSTM单元,以便在递归邻域扩展过程中明确地捕获跨层次的属性相关信息。

文本表示

句子中的单词用Glove或bert初始化,之后将句子转换为依存图。两个单词之间的边代表这两个单词是语义相关的。比如句子“delivery was early too.”的依赖图如下,对于aspect “delivery”,模型可以将特征从距离为2的单词经过两次迭代之后传递到delivery。

                                                       图3 “delivery was early too.”的依赖图

Graph Attention Network(GAT)

GAT是GNN的一种变种,可以将一个aspect的语法上下文的特征传递到aspect。这篇论文的graph attention network使用的是multi-attention,就是将节点的维度分为K份,然后在K份上分别做attention,之后再将结果拼接起来。公式如下:

简写为:

Target-Dependent Graph Attention Network

为了利用target信息,论文使用LSTM来建模跨层的aspect信息。具体做法是用LSTM中的hidden层来表示aspect target信息,在第0层的hidden只依赖于target周围的特征,而在L层,target的L跳邻居中与aspect相关的信息通过LSTM单元加入到其hidden层状态中。给出之前的hidden状态与cell状态,论文首先用GAT得到一个临时状态表示作为LSTM的新观察值,之后用LSTM单元来更新hidden状态。前向传播过程可以表示为:

Final Classification

通过L层的TD-GAT网络,可以得到aspect target的最终表示,这里仅仅取出aspect的hidden状态,之后通过线性变换将隐藏层状态变换到分类空间,最后通过softmax函数得到预测概率:

其中的W 、b分别为线性变换的权重矩阵和偏置,C为情感分类集。训练使用L2正则化的交叉熵损失进行:

4、  Sentic GCN

基于属性的情感分析是一项细粒度的情感分析任务,它需要检测对特定属性的情感极性。最近,依赖树上的图神经模型被广泛地应用于基于属性的情感分析。然而,大多数现有的工作都集中在基于句子的依赖树来学习从上下文词到属性词的依赖信息,这缺乏对特定属性的上下文情感知识的利用。本文提出了一个基于SenticNet的图卷积网络,根据具体的属性来利用句子的情感依赖关系,称为Sentic GCN。具体来说,作者探索了一种新的解决方案,通过整合SenticNet的情感知识来构建图神经网络,以增强句子的依赖图。在此基础上,新的情感增强图模型既考虑了上下文词和属性词的依赖关系,也考虑了观点词和属性之间的情感信息。

文章提出模型框架如图4所示,嵌入层可选用glove或者BERT,然后通过双向LSTM或者文本的特征向量表示。在另一方面通过spacy工具,在结合SenticNet的基础上生成词语之间的依赖最后输入到GCN中完成分类。  

                                                                       图4 模型架构图

对于每一句话作者首先采用了最基本的spacy工具生成词语间的邻接矩阵(spaCy 是一个 Python 和 CPython 的 NLP 自然语言文本处理库,GitHub - explosion/spaCy: 💫 Industrial-strength Natural Language Processing (NLP) in Python):

然后通过SenticNet(SenticNet)获取每个单词的情感评分,并与邻接矩阵相加:

此外,现有的基于GCN的属性情感分析模型在构建图时通常忽略了对给定属性的重要关注。因此,在这项工作中,作者基于SenticNet进一步增强了上下文词和主体词之间的情感依赖性,最终表示如下:

免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
反馈
to-top--btn