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

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

本文将分 3 期进行连载,共介绍 18 推荐系统任务上曾取得 SOTA 的经典模型。


  • 第 1 期:CNN、GRNN、CLSTM、TD-LSTM/TC-LSTM
  • 第 2 期:MemNet、AT-LSTM、IAN、AF-LSTM
  • 第 3 期:Bert on ABSA、ASGCN、GAN、Sentic GCN

您正在阅读的是其中的第 3 期。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。

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

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


本期收录模型速览


模型 SOTA!模型资源站收录情况 模型来源论文
Bert on ABSA https://sota.jiqizhixin.com/project/bert-on-absa
收录实现数量:1
支持框架:PyTorch
Utilizing BERT for Aspect-Based Sentiment Analysis via Constructing Auxiliary Sentence
ASGCN https://sota.jiqizhixin.com/project/asgcn-2
收录实现数量:1
支持框架:PyTorch
Aspect-based Sentiment Classification with Aspect-specific Graph Convolutional Networks
GAN https://sota.jiqizhixin.com/project/gan-7 Syntax-Aware Aspect Level Sentiment Classification with Graph Attention Networks
Sentic GCN https://sota.jiqizhixin.com/project/sentic-gcn Aspect-based sentiment analysis via affective knowledge enhanced graph convolutional networks


情感分析(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个模型实现。



项目 SOTA!平台项目详情页
Bert on ABSA 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/bert-on-absa


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个模型实现。

项目 SOTA!平台项目详情页
ASGCN 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/asgcn-2
相关文章
|
4月前
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图 REV1
Bert Pytorch 源码分析:五、模型架构简图 REV1
35 0
|
4月前
|
机器学习/深度学习 人工智能 开发工具
如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face
Hugging Face是一个机器学习(ML)和数据科学平台和社区,帮助用户构建、部署和训练机器学习模型。它提供基础设施,用于在实时应用中演示、运行和部署人工智能(AI)。用户还可以浏览其他用户上传的模型和数据集。Hugging Face通常被称为机器学习界的GitHub,因为它让开发人员公开分享和测试他们所训练的模型。 本次分享如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face。
如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face
|
4月前
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图
Bert Pytorch 源码分析:五、模型架构简图
29 0
|
5月前
|
JavaScript
Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)
近日,Bert-vits2-v2.2如约更新,该新版本v2.2主要把Emotion 模型换用CLAP多模态模型,推理支持输入text prompt提示词和audio prompt提示语音来进行引导风格化合成,让推理音色更具情感特色,并且推出了新的预处理webuI,操作上更加亲民和接地气。
Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)
|
5月前
|
人工智能 语音技术
Bert-vits2新版本V2.1英文模型本地训练以及中英文混合推理(mix)
中英文混合输出是文本转语音(TTS)项目中很常见的需求场景,尤其在技术文章或者技术视频领域里,其中文文本中一定会夹杂着海量的英文单词,我们当然不希望AI口播只会念中文,Bert-vits2老版本(2.0以下版本)并不支持英文训练和推理,但更新了底模之后,V2.0以上版本支持了中英文混合推理(mix)模式。
Bert-vits2新版本V2.1英文模型本地训练以及中英文混合推理(mix)
|
4月前
|
机器学习/深度学习 数据采集 人工智能
【NLP】Datawhale-AI夏令营Day3打卡:Bert模型
【NLP】Datawhale-AI夏令营Day3打卡:Bert模型
|
4月前
|
机器学习/深度学习 自然语言处理 数据格式
训练你自己的自然语言处理深度学习模型,Bert预训练模型下游任务训练:情感二分类
训练你自己的自然语言处理深度学习模型,Bert预训练模型下游任务训练:情感二分类
57 0
|
5月前
|
机器学习/深度学习 自然语言处理 数据挖掘
预训练语言模型中Transfomer模型、自监督学习、BERT模型概述(图文解释)
预训练语言模型中Transfomer模型、自监督学习、BERT模型概述(图文解释)
64 0
|
5月前
|
自然语言处理 Python
BERT模型基本理念、工作原理、配置讲解(图文解释)
BERT模型基本理念、工作原理、配置讲解(图文解释)
423 0
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
极智AI | 变形金刚大家族Transformer ViT CLIP BLIP BERT模型结构
大家好,我是极智视界,本文整理介绍一下 Transformer ViT CLIP BLIP BERT 模型结构。
169 0

热门文章

最新文章