Incorporating Dynamic Semantics into Pre-Trained Language Model for ABSA 论文阅读笔记

news2024/11/18 19:35:19

一、作者

Kai Zhang、Kun Zhang、Mengdi Zhang、Hongke Zhao、Qi Liu、Wei Wu、Enhong Chen

School of Data Science, University of Science and Technology of China

School of Computer Science and Information Engineering, Hefei University of Technology

Meituan

College of Management and Economics, Tianjin University

二、背景

BERT的出现引起了人们对增强语义表示的关注,一些基于BERT注意力机制以及句法知识的研究也取得了一定的成果,但是在方面情感分析中直接应用注意力机制微调预训练的BERT时仍然存在一些问题。

首先,大多数现有方法会一次性从句子中选择所有被认为重要的单词。然而,根据神经科学研究,语义理解中的关键词往往会随着阅读过程而动态变化,因此应当反复考虑。

其次,在ABSA任务中简单地使用BERT进行编码效果提升并不明显,因为丰富的资源使得BERT更倾向于关注整个句子的语义,但方面情感分析是有条件的,模型需要基于局部语义来分析不同的方面。

三、创新点

作者为了让模型能够更好地理解方面感知动态语义(aspect-aware dynamic semantics),提出了Dynamic Re-weighting BERT(DR-BERT)模型。

该模型首先利用BERT来学习整个句子的整体语义,然后通过将轻量级的**动态重加权适配器(DRA)**整合到每个BERT编码器层并对其进行微调以适应ABSA任务,其中动态重加权适配器能够将更多的注意力集中在一个更小的区域,并在每一步动态选择并修改关键词的权重。

四、具体实现

1.嵌入模块

为了更好地表示方面词和上下文词(context word)的语义信息,作者利用嵌入模块将每个单词都映射为低维向量。

对于输入的句子序列 S S S,借助于BERT嵌入可以将 S S S转化为隐藏状态 s = { s i ∣ i = 1 , 2 , … , l s } \mathbf{s} = \{\mathbf{s}_i|i = 1, 2, \dots, l_s\} s={sii=1,2,,ls},我们也可以将隐藏状态 s \mathbf{s} s从某种程度上解释为当前单词的上下文表示。

对于输入的方面序列 A A A,借助于嵌入模块可以将 A A A映射为单词嵌入 a s = { a j ∣ j = 1 , 2 , … , l a } \mathbf{a}^s = \{\mathbf{a}_j|j = 1, 2, \dots, l_a\} as={ajj=1,2,,la},由于某些方面(如“系统存储”)可能由多个单词组成,因此还要借助于 a = { a 1 , l a = 1 ( ∑ j = 1 l a ) / l a , l a > 1 \mathbf{a} = \begin{cases} \mathbf{a}_1, l_a = 1 \\ (\sum_{j=1}^{l_a})/l_a, l_a > 1 \end{cases} a={a1,la=1(j=1la)/la,la>1将单词嵌入转化为方面嵌入 a \mathbf{a} a

2.BERT编码器

a.多头自注意力机制

作者采用具有h个头的MultiHead来获取整个句子的整体语义,输出特征 m \mathbf{m} m的计算过程为: m = { m i ∣ i = 1 , 2 , … , l s } = M u l t i H e a d ( s W h Q , s W h K , s W h V ) \mathbf{m} = \{\mathbf{m}_i|i = 1, 2, \dots, l_s\} = \mathbf{MultiHead}(\mathbf{sW}_h^Q, \mathbf{sW}_h^K, \mathbf{sW}_h^V) m={mii=1,2,,ls}=MultiHead(sWhQ,sWhK,sWhV)

b.位置前馈网络

数据经过Self-Attention处理后会交给前馈神经网络,作者采用的FFN由两个线性变换以及二者之间的ReLU激活组成,处理过程可以表示为: f = { f i ∣ i = 1 , 2 , … , l s } = m a x ( 0 , m W 1 + b 1 ) W 2 + b 2 \mathbf{f} = \{\mathbf{f}_i|i = 1, 2, \dots, l_s\} = \mathbf{max}(0, \mathbf{mW}_1 + \mathbf{b}_1)\mathbf{W}_2 + \mathbf{b}_2 f={fii=1,2,,ls}=max(0,mW1+b1)W2+b2

作者还利用最大池操作来公平地选择句子中的关键特征,以便在每个重加权步骤开始时获得原始句子表示 h s \mathbf{h}_s hs h s = M a x _ P o o l i n g ( f i ∣ i = 1 , 2 , … , l s ) \mathbf{h}_s = \mathrm{Max\_Pooling}(\mathbf{f}_i|i = 1, 2, \dots, l_s) hs=Max_Pooling(fii=1,2,,ls)

3.动态重加权适配器

DRA的输入包括BERT编码器的输出 h s \mathbf{h}_s hs初始的方面嵌入 a \mathbf{a} a

在DRA处理过程的每一步中,首先利用重加权注意力从输入序列 s \mathbf{s} s中为当前输入选择单词。然后利用门控循环单元(GRU)对所选词进行编码并更新语义表示。

DRA中每一步的处理过程可以表示为: a t = F ( s , h t − 1 , a ) \mathbf{a}_t = F(\mathbf{s}, \mathbf{h}_{t-1}, \mathbf{a}) at=F(s,ht1,a) h t = G R U ( a t , h t − 1 ) \mathbf{h}_t = GRU(\mathbf{a}_t, \mathbf{h}_{t-1}) ht=GRU(at,ht1),其中 F F F为重加权函数,DRA的初始状态为 h 0 = h s \mathbf{h}_0 = \mathbf{h}_s h0=hs,经过 T T T次处理后便得到了最终的输出 h T \mathbf{h}_T hT

其中,重加权函数 F F F借助于注意力机制实现,它的目的是在每一步选择最重要的方面相关词(aspect-related word)。重加权过程可以表示为: M = W s s + ( W d h t − 1 + W a a ) ⊗ w \mathbf{M} = \mathbf{W}_s\mathbf{s} + (\mathbf{W}_d\mathbf{h}_{t-1} + \mathbf{W}_a\mathbf{a}) \otimes \mathbf{w} M=Wss+(Wdht1+Waa)w m = ω T t a n h ( M ) \mathbf{m} = \omega^T\mathrm{tanh}(\mathbf{M}) m=ωTtanh(M) a t = ∑ i = 1 l s exp ⁡ ( λ m i ) ∑ k = 1 l s exp ⁡ ( λ m k ) s i \mathbf{a}_t = \displaystyle\sum_{i=1}^{l_s} \frac{\exp(\lambda m_i)}{\sum_{k=1}^{l_s}\exp(\lambda m_k)}\mathbf{s}_i at=i=1lsk=1lsexp(λmk)exp(λmi)si,其中 s \mathbf{s} s表示初始的句子嵌入, W s \mathbf{W}_s Ws W d \mathbf{W}_d Wd W a \mathbf{W}_a Wa ω \omega ω均为可训练的参数, m i m_i mi为第i个单词的隐藏状态。当超参数 λ \lambda λ为任意大值时,所选词的注意力得分无限接近1,其他词的注意力得分无限接近0,这样每一个重加权步骤都会从上下文中提取出一个与特定方面最相关的词 a t \mathbf{a}_t at

4.情感分类

经过N层的BERT和DRA的处理,句子的初始表示 s \mathbf{s} s被转变为特征表示 e N \mathbf{e}_N eN,然后我们将它交给多层感知机(MLP)并借助于softmax层将其映射到不同情感极性的概率分布上,即: R l = R e l u ( W l R l − 1 + b l ) \mathbf{R}_l = \mathrm{Relu}(\mathbf{W}_l\mathbf{R}_{l-1} + \mathbf{b}_l) Rl=Relu(WlRl1+bl) y ^ = s o f t m a x ( W o R h + b o ) \hat{\mathbf{y}} = \mathrm{softmax}(\mathbf{W}_o\mathbf{R}_h + \mathbf{b}_o) y^=softmax(WoRh+bo),其中 R l \mathbf{R}_l Rl为MLP每一层输出的隐藏状态, R h \mathbf{R}_h Rh则为MLP最终层的输出, y ^ \hat{\mathbf{y}} y^为预测的情感极性分布。

五、实验

作者采用了Laptop(Pontiki et al., 2014)、Restaurant(Pontiki et al., 2014)和Twitter(Dong et al., 2014)三个数据集作为实验数据集。数据集基本情况如下:

作者采用的基准模型主要分为基于注意力机制的模型和基于预训练的模型两大类,这些基线方法全面覆盖了最近的相关SOTA模型。作者的实验结果如下所示:

通过实验结果可以发现,基于BERT的方法打败了绝大多数的基于注意力的方法,这个现象也表明了预训练语言模型的强大能力。此外,任务特定的BERT模型表现得也比非特定的模型更好,这说明方面相关信息是ABSA模型性能的关键影响因素。当然,作者的模型也取得了最好的效果。

作者的消融实验如下图所示,通过结果可以看出,DRA在最终的情绪预测中比MLP起着更重要的作用。同时,重加权长度在7左右时能取得最好的效果,这种现象与人类记忆集中在近七个单词的心理学发现是一致的。

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

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

相关文章

移动端Swiper的一些尝试(中间完整,两边有内容,循环展示)

【背景】最近公司的需求很多实现一个Swiper滑块,中间完整。两边展示一些内容(可能是固定的提示方案,也可能是前后上下一页的部分内容),然后还需要循环滚动,其中遇到了一些问题特此记录 1、实现两边展示内容…

Canvas 从进阶到退学

本文简介 点赞 关注 收藏 学会了 接着 《Canvas 从入门到劝朋友放弃(图解版)》 ,本文继续补充 canvas 基础知识点。 这次我不手绘了! 本文会涉及到 canvas 的知识包括:变形、像素控制、渐变、阴影、路径 变形 这…

向量杂记(python)

以 O 点为圆心, 绘制如上图, 则有向量 vOA, vOB, vOC, vOD 再给定一个X轴方向的单位向量 vX [1, 0] 则 向量 vOA, vOB, vOC, vOD 分别与 vX 进行叉乘: # python 代码 # X Y 轴上的单位向量 vX [1, 0] vY [0, 1]vA …

Matter理论介绍-通用-1-05:桥接设备-发现与配置流程

【源码、文档、软件、硬件、技术交流、技术支持,入口见文末】 【所有相关IDE、SDK和例程源码均可从群文件免费获取,免安装,解压即用】 持续更新中,欢迎关注! 一、桥接设备的发现 桥接设备如何被其他Matter终端发现呢…

论文阅读《FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding》

论文地址:https://arxiv.org/pdf/2103.05950.pdf 代码地址:https://github.com/megvii-research/FSCE 对比学习https://zhuanlan.zhihu.com/p/346686467 目录1、存在的问题2、算法简介3、算法细节3.1、new-baseline3.2、对比建议编码3.3、对比建议编码的…

(第二章)OpGL超级宝典学习:创建我们第一个OpenGL程序,绘制一个点和三角形

目录前言创建简单的应用创建脚本渲染底色渲染底色plus使用着色器(shader)什么是着色器(shader)GLSLOpenGL的着色阶段编写着色器顶点着色器片段着色器shader对象的创建执行程序的创建删除无用的shader顶点数组对象VAO清理VAO和Prog…

跨孔CT交叉梯度联合反演算法

跨孔CT交叉梯度联合反演算法 利用交叉梯度函数的结构约束作用实现多种跨孔CT的联合反演。 文章目录跨孔CT交叉梯度联合反演算法1、跨孔CT原理2、跨孔CT正演算法2.1 多模块快速推进算法2.2 最短路径法弯曲射线追踪2.3 胖射线追踪2.4 直射线追踪3、跨孔CT正演模型4、交叉梯度联合…

Matlab渐变色生成/编辑器专业版—ColorMapPro

渐变配色在科研绘图时十分常用,比如三维柱状图、特征渲染散点图、热图、曲面图、等高线填充图等等,都需要使用渐变配色。 虽说现成的渐变配色有很多,比如,在TheColor配色工具的渐变颜色库中便集成了近千种的渐变色: 然…

Lambda Python 创建和使用 Layer

目标 由于 Python 代码中需要用到第三方的库, 在 Lambda 中可以通过创建自定义层(Layer)的方式来将这些依赖提供给 Lambda 运行环境. 下面演示创建一个包含第三方库 requests 的层, 以及如何在 Lambda 中调用 准备 zip 文件 首先在本地电脑上将相关依赖下载到名为 python 的…

32.多输入多输出通道

通道数是一个重要的超参数,通常是会仔细设计的。 在之前,我们仅展示了单个输入和单个输出通道的简化例子。 这使得我们可以将输入、卷积核和输出看作二维张量。 当我们添加通道时,我们的输入和隐藏的表示都变成了三维张量。例如&#xff0c…

OpenPCDet详细安装指南+单/多GPU训练演示

OpenPCDet详细安装指南单/多GPU训练演示前言个人环境一览安装环境安装的各版本1. 创建conda虚拟环境2. 安装PyTorch3. 安装spconv4. 安装PCDet5. 训练单GPU训练多GPU训练前言 本人总共花了两个晚上一个下午安装,中间因为各种版本错误、版本不兼容报各种奇奇怪怪的错…

Windows 下使用 Docker + MySQL 安装 Wiki.js

Windows 下使用 Docker MySQL 安装 Wiki.jsIntroductionChapter 1 配置数据库Part 1 数据库安装Part 2 创建 Wiki 相关配置并修改权限Chapter 2 配置 Wiki.jsPart 1 安装Part 2 配置 WikiIntroduction Wiki 是一种在网络上开放且可供多人协同创作的系统,比较著名的…

【触摸屏功能测试】昆仑通态MCGS——测试通过HJ212_TCPIP驱动4G功能发送212报文

1、触摸屏功能测试 型号:TPC7022Ni 测试内容: 实现4G触摸屏,通过自带的4G卡向平台发送HJ212报文 2、HJ212_TCPIP 驱动说明 2.1、驱动介绍 本驱动构件用于MCGS软件,通过污染物在线监控(监测)系统数据传输标准协议向下位机数采仪发送各类指…

MCU-51:静态数码管显示

目录一、数码管介绍2.1 介绍2.2 数码管引脚定义2.3 原理图二、要用到的C语言知识2.1 数组2.2 子函数三、数码管显示3.1 单个数码管显示3.2 通过定位函数实现数码管显示四、动态数码管显示一、数码管介绍 2.1 介绍 LED数码管:数码管是一种简单、廉价的显示器&#…

Word表格常见设置汇总

Word表格常见设置汇总 总结一些Word中常用的关于表格的设置问题。 文章目录1.居中设置2.隔页显示表格首行设置3.边框边线粗细及显示设置4.表格斜线设置5.单元格合并与拆分设置1.居中设置 全选要居中显示部分→布局→选择居中类型。 2.隔页显示表格首行设置 选择表格→表格属性→…

idea插件之自动生成时序图(Sequence Diagram)

前言 小伙们,你们有没有发现,身边经常有这样一些人,看着平时没怎么干活,到关键时候需要展示工作成果,会发现这些人也有工作成果,甚至比辛苦在干的人可能还要多一些。按常理推测,这绝对不是一件科…

【小程序】案例 - 本地生活(首页)

1. 首页效果以及实现步骤 新建项目并梳理项目结构 配置导航栏效果 配置 tabBar 效果 实现轮播图效果 实现九宫格效果 实现图片布局 2. 接口地址 获取轮播图数据列表的接口 【GET】 https://www.escook.cn/slides 获取九宫格数据列表的接口 【GET】 https://www.esco…

XXE工具——XXEinjection安装与使用

今天继续给大家介绍渗透测试相关知识,本文主要内容是XXE工具——XXEinjection安装与使用。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调&#xff1…

直播推流神器 Kplayer 手把手教你在B站7*24h全天直播

开始前的准备工作 Linux服务器 (1)KPlayer目前仅支持Linux环境并需要满足x86_64(amd64)与aarch64(arm64)CPU架构的硬件环境上运行,我们已经将相关依赖库静态链接至主程序中,这意味着你不需要额外的安装任何的第三方库来支持KPlayer的运行。 在后续的迭代…

【数据预处理】基于Pandas的数据预处理技术【前七个任务】

文章目录一.需求分析二.需求解决2.1 本次实验以california_housing加州房价数据集为例,下载数据集2.2 查看数据集的描述、特征及目标数据名称、数据条数、特征数量2.3 将数据读入pandas的DataFrame并转存到csv文件2.4 查看数据集各个特征的类型以及是否有空值2.5 对…