Aspect-based Sentiment Analysis with Opinion Tree Generation 论文阅读笔记

news2024/10/5 15:06:58

一、作者

Xiaoyi Bao、Wang Zhongqing、 Xiaotong Jiang、 Rong Xiao、Shoushan Li

Natural Language Processing Lab, Soochow University, Suzhou, China

Alibaba Group, Hangzhou, China

二、背景

作为细粒度的情感分析任务,ABSA 涉及了多个基本情感元素,包括方面项(aspect term)意见项(opinion term)方面类别(aspect category)情感极性(sentiment polarity)。现有的 ABSA 研究主要集中在情感元素的识别上,例如方面术语的提取以及情感极性分类,ABSA 任务也往往会被表示为序列级或 token 级的分类问题。然而,因为这些模型的整体预测能力取决于每一步的准确性,因此它们会受到错误传播(error propagation)的严重影响。此外,这些方法由于在训练时将标签简单视为数字索引,往往会忽视标签语义

因此,一些研究开始借助于联合的生成式方法来解决 ABSA 问题,这些模型虽然能够通过将自然语言标签编码到目标输出中来利用丰富的标签语义,但它们无法有效捕获方面词和意见词之间的语义结构。

三、创新点

对于上述生成式方法无法捕获语义结构的问题,作者认为可以通过显式构造语义信息的结构表示来进行解决,该表示将方面词和意见词视为节点,并在节点之间建立结构关系。

作者由此提出了一个意见树生成模型,旨在针对给定的句子联合检测树中的所有情感元素。意见树可以看作是一种语义表示,使用有根有向无环图来对句子进行建模,能够有效突出方面词和意见词之间的语义联系。

四、具体实现

1.意见树的构造和线性化

意见树使用有根有向无环图来对句子进行建模,对于一个句子,可以按照如下方式将方面情感四元组(aspect sentiment quads)转换为一棵意见树。

  1. 首先创建一个 quda 节点来表示方面情感四元组,所有的 quda 节点都会与一个虚拟根节点(ROOT)相连。
  2. aspect 节点和 opinion 节点会与相应的 quda 节点进行连接。
  3. 方面类别会连接到 aspect 节点上,情感极性会与 opinion 节点相连。
  4. 句子中的方面词和意见词会被作为叶子节点连接到方面类别节点和情感极性节点上。

对于一棵意见树,通过深度优先遍历即可将其转化为 token 序列,并通过 "("")" 来标识结构。

2.树生成模型

树生成模型用于从句子中生成线性化的意见树,由于线性化后的意见树中的所有标记仍然为自然语言单词,所以作者采用 T5模型来作为树生成模型,这样就能够直接对生成的文本进行复用。

总的来说,对于给定的输入 token 序列 x = x 1 , … , x ∣ x ∣ x = x_1, \dots, x_{|x|} x=x1,,xx,树生成模型最终能生成线性表示的意见树 y = y 1 , … , y ∣ y ∣ y = y_1, \dots, y_{|y|} y=y1,,yy。具体来说,模型编码器首先会通过输入序列计算出句子的隐藏向量表示 H = h 1 , … , h ∣ x ∣ H = h_1, \dots, h_{|x|} H=h1,,hx,计算过程可以表示为 H = E n c o d e r ( x 1 , … , x ∣ x ∣ ) H = \mathrm{Encoder}(x_1, \dots, x_{|x|}) H=Encoder(x1,,xx),其中编码器的每一层都是一个具有多头注意力机制的 transformer 块。编码结束后,解码器会基于 H H H 来逐个 token 地预测输出结构,预测过程可以表示为 y i , h i d = D e c o d e r ( [ H ; h 1 d , … , h i − 1 d ] , y i − 1 ) y_i, h_i^d = \mathrm{Decoder}([H; h_1^d, \dots, h_{i - 1}^d], y_{i - 1}) yi,hid=Decoder([H;h1d,,hi1d],yi1),其中解码器的每一层都是包含解码器状态 h i d h_i^d hid 的自注意力和编码器状态 H H H 的交叉注意力的 transformer 块。整个输出序列的条件概率 p ( y ∣ x ) p(y|x) p(yx) 则会基于每一步的概率逐步生成,生成过程表示为 p ( y ∣ x ) = ∏ i = 1 ∣ y ∣ p ( y i ∣ y < i , x ) p(y|x) = \displaystyle{\prod_{i = 1}^{|y|}}p(y_i|y_{<i}, x) p(yx)=i=1yp(yiy<i,x),其中 y < i = y 1 , … , y i − 1 y_{<i} = y_1, \dots, y_{i - 1} y<i=y1,,yi1,而 p ( y i ∣ y < i , x ) p(y_i|y_{<i}, x) p(yiy<i,x) 则表示通过 s o f t m a x \mathrm{softmax} softmax 正则化后的目标词汇表 V V V 概率。

3.通过意见约束进行解码

在树生成模型的解码阶段,目标词汇表 V V V 的生成是通过基于字典树的约束解码算法来实现的。具体来说,在约束解码的过程中, **意见模式知识(opinion schema knowledge)会被作为提示注入到解码器中,用来帮助解码器根据当前的生成状态(generated state)**来选择和修剪候选词汇表 V t V_t Vt。其中候选词汇表可以分为三类:1.意见模式,包括预定义的种类和极性标签;2.意见字符串,包括原始输入中的方面词和意见词;3.结构指示器,包括用来结合意见模式和意见字符串的 "("")"

这里需要注意的是,由于字典树的特殊结构,在生成步骤 t t t,候选词汇表 V t V_t Vt 是最后生成的节点的子节点,而非父节点。例如,在生成 "("的生成步骤,候选词表 V t V_t Vt{"(",")"},因此可以将解码过程看作是对字典树中某一节点子树的搜索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/147241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(八)汇编语言——数据处理的两个基本问题

目录 用于内存寻址的寄存器 bp 组合 两个基本问题 数据位置 立即数 寄存器 内存 数据长度 除法指令 dup指令 总结 接下来&#xff0c;我们要处理的是有关数据处理的两个基本问题&#xff0c;那么这两个基本问题是什么呢&#xff1f;我们先告诉大家这两个问题&#…

《操作系统-真象还原》15. 系统交互

文章目录fork 的原理与实现简介什么是 forkfork 的实现思路代码get_a_page_without_opvaddrbitmapcopy_pcb_vaddrbitmap_stack0copy_body_stack3build_child_stackupdate_inode_open_cntscopy_processsys_fork添加 fork 系统调用与实现 init 进程添加 fork 系统调用实现 init 进…

计算机网络复习之DL层(数据链路层)与LAN(Local Area Network局域网)

文章目录封装成帧透明传输字符计数法字符填充法零比特填充法违规编码法差错控制透明网桥网桥自学习转发表网桥的自学习和转发帧的步骤透明网桥工作原理交换机/路由器的广播域、冲突域冲突域广播域交换机/路由器的两域区别CSMA/CD协议PPP协议HDLC协议PPP和HDLC的对比简述IEEE802…

2. 数据类型、向量、向量索引、向量修改、向量运算

课程视频链接&#xff1a;https://www.bilibili.com/video/BV19x411X7C6?p1 本笔记参照该视频&#xff0c;笔记顺序做了些调整【个人感觉逻辑顺畅】&#xff0c;并删掉一些不重要的内容 系列笔记目录【持续更新】&#xff1a;https://blog.csdn.net/weixin_42214698/category_…

【学习】Q learning、Q-learning for continuous actions、关于深度学习的猜想

文章目录一、Q learning评估状态值函数Vπ(s)MCTDdouble DQNdueling DQNprioritized replymulti-stepnoisy netdistributionalrainbow二、Q-learning for continuous actions三、关于深度学习的猜想一、Q learning value-based的方法&#xff0c;评论家不会直接决定行动。给定…

低度酒“百家争鸣”,谁能俘获年轻人的芳心?

【潮汐商业评论/原创】随着消费升级和女性消费力量的崛起&#xff0c;“她经济”逐渐成为新零售消费环境下一道“靓丽风景线”。女性消费者的消费偏好和消费习惯&#xff0c;正在促使低度酒、食品、服装、护肤、美妆、家居、育儿等行业发生新的变革。特别是酒水市场&#xff0c…

Spring Boot学习篇(八)

Spring Boot学习篇(八) 1.thymeleaf模板引擎使用篇(二) 1.1 配置通过地址栏直接访问html页面 1.1.1 在zlz包下创建filter包,其目录结构如下所示 1.1.2 在filter包下创建HTMLFilter类,其内容如下所示 package com.zlz.filter;import javax.servlet.*; import javax.servlet.…

启用分页机制

前言 本博客记录《操作系统真象还原》第五章第2个实验的操作~ 实验环境&#xff1a;ubuntu18.04VMware &#xff0c; Bochs下载安装 实验内容&#xff1a;启动内存分页机制 实验原理&#xff1a;内存分页机制 前置知识 前置知识可食用内存分页机制 代码 include/boot.in…

UML类图入门实战

介绍 UML——Unified modeling language UML (统一建模语言)&#xff0c;是一种用于软件系统分析和设计的语言工具&#xff0c;它用于帮助软件开发人员进行思考和记录思路的结果。 UML 本身是一套符号的规定&#xff0c;就像数学符号和化学符号一样&#xff0c;这些符号用于描述…

设计模式学习(二):Adapter适配器模式

一、什么是Adapter模式我们先举个例子&#xff1a;如果想让额定工作电压是直流12V的笔记本电脑在交流220V的电源下工作&#xff0c;应该怎么做呢?通常&#xff0c;我们会使用适配器&#xff0c;将家庭用的交流220V电压转换成我们所需要的直流12V电压。这就是适配器的工作&…

Hive数据仓库简介与安装

文章目录Hive数据仓库简介及安装配置一、数据仓库简介1. 什么是数据仓库2. 数据仓库的结构1&#xff09;数据源2&#xff09;数据存储与管理3&#xff09;OLAP服务器4&#xff09;前端工具3. 数据仓库的数据模型1&#xff09;星状模型2&#xff09;雪花模型二、Hive简介1. 什么…

【踩坑总结】解决pycharm下载依赖一直失败的问题

目录前言正文问题复现问题本质解决方案补充总结检查是否安装成功下载的依赖存在哪总结前言 pycharm下载依赖失败这个问题对于我来说已经是个老生常谈的问题&#xff0c;与之共交手三次。 首次交锋是在大二利用 树莓派 做图像采集传输时&#xff0c;在树莓派的ubantu上使用pyt…

docker 容器使用 loki 插件收集日志

相关资料: The log-opts in the /etc/docker/daemon.json is not relaoded - General Discussions - Docker Community ForumsRecently I want to use loki-log-driver to ship logs to the loki server. The docker-deamon is controlled by systemd. The /etc/docker/daemon…

Day2 Spring

1 BeanFactory 与ApplicationContext的关系BeanFactory与ApplicationContext的关系BeanFactory是Spring的早期接口&#xff0c;称为Spring的Bean工厂&#xff0c;ApplicationContext是后期更高级接口&#xff0c;称之为Spring 容器;ApplicationContext在BeanFactory基础上对功能…

Pytorch 多层感知机

一、什么是多层感知机 多层感知机由感知机推广而来&#xff0c;最主要的特点是有多个神经元层&#xff0c;因此也叫深度神经网络(DNN: Deep Neural Networks)。 二、如何实现多层感知机 1、导入所需库并加载fashion_mnist数据集 %matplotlib inline import torch import to…

java弹幕视频网站源码

简介 Java基于ssm的弹幕视频系统&#xff0c;用户注册后可以上传视频进行投稿&#xff0c;也可以浏览视频发送弹幕&#xff0c;在个人中心管理视频、管理弹幕、管理评论等。管理员可以管理视频弹幕评论&#xff0c;查看统计图。 演示视频&#xff1a; https://www.bilibili.c…

CVE-2020-0014 Toast组件点击事件截获漏洞

文章目录前言漏洞分析组件源码触摸属性漏洞利用POC分析漏洞复现漏洞修复总结前言 Toast 组件是 Android 系统一个消息提示组件&#xff0c;比如你可以通过以下代码弹出提示用户“该睡觉了…”&#xff1a; Toast.makeText(this, "该睡觉了…", Toast.LENGTH_SHORT)…

C语言文件操作-从知识到实践全程

目录 引入 文件的打开和关闭 文件如何使用程序来打开? 绝对路径需要转义字符 fopen函数 fclose函数 文件的打开方式(fopen第二参数const char* mode): 文件的顺序读写 fgetc和fputc的使用 fputc fgetc fgets和fputs的使用 fputs fgets perror的使用 fprint…

哪些程序员适合自由工作?(附平台推荐)

在早些时候进行远程办公&#xff0c;接私活或者跨国进行编程&#xff0c;赚点外快等也不是什么奇怪的事情。但是那时候没有人想到会把这些工作完全变成自己的主要业务——也就是我们说的自由工作。也不知道是哪一个第1个吃了螃蟹的人发现自由工作还不错&#xff0c;于是经过后面…

【JavaScript】DOM 学习总结-基础知识

获取元素方法&#xff1a; // 获取三个非常规的标签 console.log(document.documentElement) console.log(document.head) console.log(document.body)通过id/class获取&#xff1a;getElementById / getElementsByClassName // 获取常规的用id,class,tag var boxdocument.g…