点击上方,选择星标置顶,每天给你送干货

阅读大概需要13分钟

跟随小博主,每天进步一丢丢

转载:AINLP

作者:高开远

学校:上海交通大学

研究方向:自然语言处理


0. 写在前面

继续:【论文串烧】基于特定实体的文本情感分类总结(PART I)

1. Multi-grained Attention Network for Aspect-Level Sentiment Classification

EMNLP 2018的一篇论文,作者分析了先前提出的ABSA任务模型的不足:

  • 使用的attention mechanism都是属于粗粒度的(简单地求和操作),如果对于target word和context都很长的话会引入额外的损失;

  • 另外,先前的工作都是将aspect和context视作是单独的instance进行训练,没有考虑到具有相同上下文的instance之间的关联,而这些关联很有可能会带有额外的信息。

于是提出了一种解决ABSA问题的多粒度注意力网络(Multi-grained Attention Network, MGAN),主要的改进有:

  • 细粒度注意力机制(fine-grained attention mechanism): 单词级别(word-level)的target和context之间的交互,可以减少粗粒度attention的损失;

  • 多粒度注意力机制 (multi-grained attention network): 粗粒度attention和细粒度attention结合;

  • aspect alignment loss: 在目标函数中加入aspect alignment loss,以增强context相同而情感极性不同的aspect对context权重学习的差异性。

模型如下,可以分为四个部分:

  1. Input embedding layer

  2. contextual layer

  3. multi-grained attention layer

  4. output layer


Input Embedding Layer

输入embedding层,使用的是预训练好的Glove,获得定长的aspect和context向量表示。

Contextual Layer

将上一步获得的aspect和context向量矩阵送入双向LSTM网络来捕获输入中词与词之间的关联,得到一个sentence contextual outputaspect contextual output。然后这里就可以把这两个矩阵进行交互了,但是作者又另外考虑了在上下文中与aspect word距离不同的word应该有不同的权重,引入了position encoding mechanism:context中与aspect相距为l的单词的权重w_{j}为:

注意,aspect中的词的权重设置为0。 于是最终得到的优化后的sentence contextual output

Multi-grained Attention Layer

前面的部分可以说跟之前的工作大同小异,重点在于接下来的多粒度注意力层
(1)Coarse-grained Attention
粗粒度attention的话跟之前的attention是一样的,

  • C-Aspect2Context:对aspect矩阵Q进行求平均pool得到一个向量表示,将其与context矩阵H交互做attention,  

  • C-Context2Aspect:这一步是跟C-Aspect2Context对称的
       

(2)Fine-grained Attention
细粒度attention的目的是刻画aspect对context或者context对aspect词与词之间的影响关系。首先定义H和Q元素之间的相似矩阵U,注意U的形状为[N * M],U中每个元素表示context中的第i个单词和aspect中的第j个单词之间的相似度,

  • F-Aspect2Context刻画的是对于每一个aspect word,context对其的影响程度。首先求出矩阵U中每一行最大的值,然后对其归一化操作得到和为一的权重分布后加权求和得到新的H表示

  • F-Context2Aspect刻画的是对于每一个context word,aspect对其的影响程度。首先对U中每一行做归一化操作,得到N个和为1 的权重表示,然后用N个长为M的向量去和矩阵M逐元素加权求和,最后将这N个新的表示相加取平均,得到aspect最后的细粒度表示。  

Output Layer

在这一层将上述步骤得到的attention表示拼接起来,作为最终输入句子的向量表示并送入softmax层分析情感得分。

Loss Function

模型选用的损失函数为:

其中第一项为交叉熵损失,第二项为单独设计的aspect alignment loss,第三项为正则化项。这里需要重点说一下aspect alignment loss。该损失作用于C-Aspect2Context attention部分,C-Aspect2Context attention是用于确定与特定的aspect相关性最高context中的单词。加上了这个损失,在训练过程中模型就会通过与其他aspect比较而更加关注对自己更重要的context word。举个栗子,在句子
I like coming back to Mac OS but this laptop is lacking in speaker quality compared to my $400 old HP laptop中,通过与不同的aspect Mac OS相比,speaker quality应该更关注词语lacking,而更少关注like
对于aspect列表中的任一对aspect a_{i}
和 a_{j},首先求出它们对context中某一特定单词的attention权重差的平方,然后乘上a_{i}和 a_{j}之间的距离d_{ij}:

试验分析



2.Aspect Level Sentiment Classification with Attention-over-Attention Neural Networks

这篇文章的思路好像跟上一篇很像,模型可以分为四个部分:

  1. word embedding

  2. Bi-LSTM

  3. Attention-over-Attention

  4. Final Classification


Attention-over-Attention(AOA)

定义长度为n的句子和长度为m的target

  1. 经过双向LSTM得到的隐状态表示为矩阵,  

  2. 接着计算两者的交互矩阵;

  3. 通过对交互矩阵做基于列的softmax和基于行的softmax可以得到target-to-sentence attention 和sentence-to-target attention

  4. 对beta向量求平均,也就获得target-level attention:

  5. 最后再做一次sentence层面的attention:

试验分析



3. Attentional Encoder Network for Targeted Sentiment Classification

与以往大多数RNN+Attention的思路不同,作者在这篇论文里给出了注意力编码网络(Attentional Encoder Network,AEN),避免了RNN系模型的缺点(难以并行化,需要大量数据/内存/计算);同时提到先前的工作大都忽略了标签不可信问题(label unreliability issue),这里在损失函数中引入了标签平滑正则项。模型整体框架如下


Embedding Layer

有两种embedding的方式

  • 使用glove预训练embedding

  • 使用bert预训练embedding:注意将输入转化成bert需要的形式, 即[CLS] + context + [SEP][CLS] + target +[SEP]

Attentional Encoder Layer

注意力编码层和LSTM层的作用一样,都是计算输入的语义表示得到隐状态矩阵。这一层包括两个子模块:

  • Multi-Head Attention: MHA就是在attention is all you need那篇论文里的多头注意力机制。这里对context采用的是Intra-MHA,即self-attention;对target采用的是Inter-MHA, 即传统意义上的attention。

  • Point-wise Convolution Transformation(PCT): 逐点卷积,即卷积核的尺寸为1,对上述得到的两个attention encoder进行一下操作,

Target-specific Attention Layer

将attention encoder后得到的关于context和aspect信息的向量表示h_{t}和h_{c}再做一次attention操作得到具有更多交互信息的向量,然后与h_{t}和h_{c} pool以后的向量拼接得到最终的输入表示送入softmax层进行情感分析

Loss Function

前面提到为了解决标签不可信任问题(比如中性情感是一种非常模糊的情感表达,具有中性情感标签的训练样本就是属于不可信任的),引入了一种新的损失计算Label Smoothing Regularization (LSR),关于LSR的深入理解这里不详细说了可以参考知乎问题:Label Smoothing Regularization_LSR原理是什么?

试验分析

作者非常nice地开源了论文对应的代码库:songyouwei/ABSA-PyTorch 而且里面还有很多其他模型的实现。赞!



4. Transformation Networks for Target-Oriented Sentiment Classification

作者提出用attention去提取context和aspect之间的语义相关性存在一定的缺陷,并列举了一个例子:

“This dish is my favorite and I always get it and never get tired of it.” 这句话中,attention机制会提取出相对于dish不相关的词语比如"never","tired"等。

于是提出可以利用CNN来取代attention来提取context中相对重要的信息,同时对朴素CNN进行了进一步的处理使其适合该任务,提出了Target-Specific Transformation Networks (TNet)


Bi-LSTM Layer

将文本的上下文信息融入到word的向量表示中是非常重要的

Context-Preserving Transformation(CPT)

模型再往上一层是Transformation Layer,是由多个CPT模块叠加而成。单独的CPT模块结构如下所示

在这里插入图片描述

CPT分为两个部分,Target-Specific Transformation(target转换机制)和Context-Preserving Mechanism(上下文保存机制)

  • Target-Specific Transformation用于动态地生成target的向量表示(这是论文的创新点)。首先将target表示通过一个Bi-LSTM来获得其抽象表示,再将该表示与上一层每个context词的表示做相似度计算,从而调整target的表示。

  • Context-Preserving Mechanism的提出是因为在经过TST的非线性转化之后,现有的向量表达可能已经丢失了原来Bi-LSTM层输出的信息,作者提出了两种解决方案:

    • Lossless Forwarding:直接将前一层的输出加入到这一层的输出上


   - Adaptive Scaling:与LSTM中门控机制类似的自适应保存机制,通过门控单元来控制当前层和上层输出到下层的信息。

Convolutional Layer

作者对于卷积层提出了利用观点词与目标词的距离的改进措施。作者为每一个位置计算一个位置特征其中C是超参,相当于设置了一个窗口,在这个窗口范围内进行计算。k是target第一个词的位置,m是target的长度,i是当前词的位置。

然后将距离特征融合到词特征上:再进行卷积和最大池化的操作 最后送入softmax层进行情感判定

试验分析


原文链接:

https://blog.csdn.net/Kaiyuan_sjtu/article/details/89811824

推荐阅读:

【一分钟论文】 NAACL2019-使用感知句法词表示的句法增强神经机器翻译

【一分钟论文】Semi-supervised Sequence Learning半监督序列学习

详解Transition-based Dependency parser基于转移的依存句法解析器

经验 | 初入NLP领域的一些小建议

学术 | 如何写一篇合格的NLP论文

干货 | 那些高产的学者都是怎样工作的?

一个简单有效的联合模型

近年来NLP在法律领域的相关研究工作


基于特定实体的文本情感分类总结(PART II)相关推荐

  1. 【论文】基于特定实体的文本情感分类总结(PART I)

    最近在看一个比赛:2019 搜狐校园算法大赛,赛题说的是 给定若干文章,目标是判断文章的核心实体以及对核心实体的情感态度.每篇文章识别最多三个核心实体,并分别判断文章对上述核心实体的情感倾向(积极.中 ...

  2. 【论文】基于特定实体的文本情感分类总结(PART III)

    0. 写在前面 继续之前的系列,记录一些关于ABSA问题的paper 1. Targeted Aspect-Based Sentiment Analysis via Embedding Commons ...

  3. 【论文】基于特定实体的文本情感分类总结(PART II)

    0. 写在前面 五一假期最后一天-太阳超棒- 1. Multi-grained Attention Network for Aspect-Level Sentiment Classification ...

  4. 复盘:基于attention的多任务多模态情绪情感识别,基于BERT实现文本情感分类(pytorch实战)

    复盘:基于attention机制的多任务多模态情绪情感识别(pytorch实战),基于BERT实现文本情感分类 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对 ...

  5. 我的实践:pytorch框架下基于BERT实现文本情感分类

    当前,在BERT等预训练模型的基础上进行微调已经成了NLP任务的一个定式了.为了了解BERT怎么用,在这次实践中,我实现了一个最简单的NLP任务,即文本情感分类. 文章目录 1.基于BERT进行情感分 ...

  6. python 多分类情感词典_基于情感词典的文本情感分类

    基于情感词典的文本情感分类 传统的基于情感词典的文本情感分类,是对人的记忆和判断思维的最简单的模拟,如上图.我们首先通过学习来记忆一些基本词汇,如否定词语有"不",积极词语有&qu ...

  7. NLP之基于TextCNN的文本情感分类

    TextCNN 文章目录 TextCNN 1.理论 1.1 基础概念 **最大汇聚(池化)层:** ![请添加图片描述](https://img-blog.csdnimg.cn/10e6e1ed6bf ...

  8. 基于Bert的文本情感分类

    详细代码已上传到github: click me 摘  要:     情感分类是对带有感情色彩的主观性文本进行分析.推理的过程,即分析说话人的态度,推断其所包含的情感类别.传统机器学习在处理情感分类问 ...

  9. 基于pytorch的Bi-LSTM中文文本情感分类

    基于pytorch的Bi-LSTM中文文本情感分类 目录 基于pytorch的Bi-LSTM中文文本情感分类 一.前言 二.数据集的准备与处理 2.1 数据集介绍 2.2 文本向量化 2.3 数据集处 ...

  10. 基于Keras搭建LSTM网络实现文本情感分类

    基于Keras搭建LSTM网络实现文本情感分类 一.语料概况 1.1 数据统计 1.1.1 查看样本均衡情况,对label进行统计 1.1.2 计句子长度及长度出现的频数 1.1.3 绘制句子长度累积 ...

最新文章

  1. iOS开发之用到的几种锁整理
  2. Redis操作命令总结
  3. 让Spring架构减化事务配置(转)
  4. Gartner的预言:通向混合IT之旅
  5. TCP/IP入门(3) --传输层
  6. qt如何把父窗口的变量传给子窗口_子窗体显示的时候怎么让父窗体阻塞并且子窗体可以任意移动?...
  7. CSDN 蒋涛对话英特尔中国区董事长王锐:我愿是当代的一个开发者
  8. python open写入_Python open读写文件实现脚本
  9. python安装gdal ubuntu_Python与开源GIS教程:1.3. 配置Python开源GIS环境
  10. 软件比较 - Sniffer、Omnipeek、科来网络分析系统过滤器比较之位过滤 在捕获数据包时,有时候需要对一个字节中的某一个位进行精确匹配,这时,我们就需要用到位过滤。位过滤相对于地址、端口、协
  11. 把服务器当网盘玩 教你从云服务器下载自己的文件
  12. Windows 小工具软件:截屏,录音,音频转换
  13. 东京秋叶原谢幕,彼岸电子城路在何方
  14. 已经解决globalsign证书导致淘宝京东等chrome safari无法访问
  15. java Web 前后端交互
  16. 私人定制(附源码):弹出框统一样式一个JS文件就可以解决!
  17. 基于HTML旅游网站设计与实现 途游网站制作 学生DW静态旅游网页设计 html静态旅游风景区网页设计制作 web前端课程设计 web前端课程设计代码 web课程设计
  18. matlab自耦变压器,基于MATLAB的500kV自耦变压器建模及仿真.pdf
  19. 2022春秋杯 勇者山峰 Misc-Tiger WP
  20. 垃圾分类 小程序完整项目!

热门文章

  1. SSAS知识回放之订单数据分析
  2. iOS上线后程序崩溃日志处理-- Crashlytics
  3. [DOTween]使用过程中的一些注意事项记录
  4. EntityFramework Code-First 简易教程(八)-------一对一
  5. Codeforces Good Bye 2015 D. New Year and Ancient Prophecy 后缀数组 树状数组 dp
  6. css中的背景、边框、补丁相关属性
  7. 偏差-方差分解 Bias-Variance Decomposition(转载)
  8. 系统如何删除被其它进程占用的文件?
  9. 全双工音频播放器在c#中使用waveIn / waveOut api
  10. cocos2d-x学习记录3——CCTouch触摸响应