Sarcasm detection论文解析 |使用基于多头注意力的双向 LSTM 进行讽刺检测

论文地址

论文地址:https://ieeexplore.ieee.org/document/8949523

论文首页

笔记框架

使用基于多头注意力的双向 LSTM 进行讽刺检测


📅出版年份:2020
📖出版期刊:IEEE Access
📈影响因子:3.9
🧑文章作者:Kumar Avinash,Narapareddy Vishnu Teja,Aditya Srikanth Veerubhotla,Malapati Aruna,Neti Lalita Bhanu Murthy
📍 期刊分区:
JCR分区: Q2 中科院分区升级版: 计算机科学3区 中科院分区基础版: 工程技术3区 影响因子: 3.9 5年影响因子: 4.1 EI: 是 南农高质量: B


🔎摘要:

在社交媒体中,讽刺经常被用来使用正面或有意的正面词语来表达负面意见。这种有意的模糊性使得讽刺检测成为情感分析的一项重要任务。讽刺检测被认为是一个二元分类问题,在这个问题上,已经成功建立了特征丰富的传统模型和深度学习模型来预测讽刺评论。在以前的研究工作中,已经利用词汇、语义和语用特征建立了模型。我们提取了最重要的特征,并建立了一个特征丰富的 SVM,其性能优于这些模型。在本文中,我们引入了基于多头注意力的双向长短记忆(MHA-BiLSTM)网络来检测给定语料库中的讽刺性评论。实验结果表明,多头注意力机制提高了 BiLSTM 的性能,其表现优于特征丰富的 SVM 模型。


🌐研究目的:

使用基于多头注意力的双向长短期记忆(MHA-BiLSTM)网络的深度学习模型,用于讽刺检测。

📰研究背景:

讽刺性评论在社交媒体平台上很常见。此前,已经提出了几种统计机器学习和神经网络方法来检测讽刺,但它们在捕获用于表达讽刺的隐式模式和上下文方面似乎存在局限性。

🔬研究方法:


🔩模型架构:

使用基于多头注意力的双向长短期记忆(MHA-BiLSTM)网络的深度学习模型,并且还开发了支持向量机(SVM)模型。

基于深度学习的方法

具有多头机制的双向 LSTM由五个主要部分组成,多头注意力允许模型共同关注来自不同位置的不同表示子空间的信息。

词嵌入层

我们使用预训练的单词嵌入 Glove [24] 将句子中的每个单词转换为向量。

单词编码层

在这一层中,通过总结评论中两个方向的上下文信息来实现每个单词的新表示。

句子级多头注意力层

同时关注评论的不同部分,以理解评论语义的各个方面。

串联

我们为给定的评论提取基于语义、情感和标点符号的手工特征,创建一个 d 维的辅助特征向量 F与自注意力句子嵌入 M 相结合,生成新的句子表示。

softmax层

基于统计机器学习的方法

我们使用 SVM 开发基于统计机器学习的模型。

语义特征

使用 LIWC 词典来获取基于语义信息的模式。

语言过程(LP)

分类为代词、冠词、动词、副词、连词、否定、量词等的单词均归入此类。

心理过程 (PP)

标记为社交、情感、认知生物过程的单词均归入此类。

个人关注 (PC)

与工作、成就、休闲、家庭、宗教、死亡等相关的单词都归入此类。

情绪特征

  • 夸张

  • 正/负标点符号

  • 正/负省略号

  • 最大长度正/负短语

标点符号功能

  • 引号数量

  • 感叹号的数量

  • 问号数量

  • 省略号数量

  • 感叹词数量


🧪实验:

📇 数据集:

使用大型自注释讽刺语料库 SARC 1 [20] 来创建我们的数据集。

我们使用 SARC 语料库的训练和测试数据集来为我们的实验创建平衡和不平衡的数据集(代表了现实世界的场景)。

我们在训练/测试数据集中保持讽刺和非讽刺评论之间的比例为 25:75(大约)。

我们将每个训练集随机分为两个训练集(90%)和验证集(10%)。

📏评估指标:

我们使用精度、召回率和 F1分数来评估讽刺检测模型的性能。

📉 优化器&超参数:

  • 利用二元交叉熵损失训练该模型。

  • 我们使用带有 RBF 核的 SVM 来训练所有基于统计的机器学习模型,默认参数和最大迭代次数为 1000。

  • 100 维词嵌入、100 个隐藏单元并将 dropout 固定为 0.5。

  • 对于自注意力句子嵌入,我们使用隐藏单元为 200 的 MLP 层, 4 个注意力头和 11 维辅助特征向量。

  • 使用标准 Adam 优化器,学习率为 0.005,小批量大小为 128,轮次为 50。(并设置5轮提前停止)

💻 实验设备:

📊 消融实验:

通过将注意力头的数量从1增加到4,可以提高MHA-BiLSTM在两个数据集上的F分数,但注意力头的进一步增加会降低MHA-BiLSTM的性能。

📋 实验结果:

据观察,没有注意力机制的 BiLSTM 在两个数据集上都显示出最小的 F 分数。

特征丰富的 SVM 的性能优于 BiLSTM,但在两个数据集上其性能均明显低于 MHA-BiLSTM。

多头自注意力机制提高了深度神经网络的性能。

手动设计的辅助特征在提升 MHA-BiLSTM 的性能方面发挥着重要作用。


🚩研究结论:

我们将我们的 SVM 模型与之前的四个模型进行比较,发现我们的特征丰富的模型比其他模型具有更好的 F 分数。

这项工作的主要贡献是引入基于多头注意力的双向长短期记忆(MHA-BiLSTM)来进行讽刺检测。

我们发现,在网络中包含手动生成的辅助特征进一步增强了 BiLSTM 模型的有效性。


📝总结

💡创新点:

  • 考虑各种手工特征并构建用于讽刺检测的支持向量机(SVM)模型。

  • 我们提出了一种基于多头自注意力的双向长短期记忆(MHA-BiLSTM)网络。

🖍️知识补充:

  • 双向 LSTM 由前向 LSTM 层和后向 LSTM 层组成。前向层捕获序列的历史信息;后向层捕获序列的未来信息。

  • 在给定的评论中,评论的特定部分在检测讽刺方面起着重要作用。然而,一个单词可能有多个因素受到关注,因此我们需要多个注意力头,其中每个单词从多个因素中被赋予适当的重要性,以代表评论的整体语义。

  • 注意力分析:多头自注意力背后的直觉是提取评论的不同方面。单一注意力头通常专注于评论的特定部分,这种机制有助于理解评论中语义的一个方面。


💬讨论:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第11章 软件工程

这里写目录标题 1.软件过程1.1能力成熟度模型(CMM)1.2能力成熟度模型集成(CMMI)1.3瀑布模型(线性顺序)1.4增量模型1.5演化模型1.5.1原型模型1.5.2螺旋模型 1.6喷泉模型1.7统一过程(UP)模型 2.敏捷方法3.系统设计4.系统测试4.1单元测试(模块测试)4.2集成测试4.3黑盒测试(功能测试…

论文辅助笔记:Tempo之modules/prompt.py

1 get_prompt_param_cls 2 get_prompt_value 3 Prompt 类 3.1 _init_weights 3.2 forward

一、RocketMQ基本概述与部署

RocketMQ基本概述与安装 一、概述1.MQ概述1.1 用途1.2 常见MQ产品1.3 MQ常用的协议 2.RocketMQ概述2.1 发展历程 二、相关概念1.基本概念1.1 消息(Message)1.2 主题(Topic)1.3 标签(Tag)1.4 队列&#xff0…

gige工业相机突破(一,准备资源)

gige相机能不能绕开相机生产商提供的sdk,而直接取到像? 两种办法,第一,gige vision2.0说明书,第二,genicam 首先你会去干什么事? 好几年,我都没有突破,老虎吃天&#x…

产品AB测试设计

因为vue2项目升级到vue3经历分享1,vue2项目升级到vue3经历分享2,前端系统升级,界面操作也发生改变,为了将影响降到最低,是不能轻易让所有用户使用新系统的。原系统使用好好的,如果新界面用户不喜欢&#xf…

2024/5/5 英语每日一段

Meanwhile, in a twist, Tesla this month settled a high-profile case in Northern California that claimed Autopilot played a role in the fatal crash of an Apple engineer, Walter Huang. The company’s decision to settle with Huang’s family—along with a ruli…

如何打包Apk适配32和64位

一个表格了解lib下的文件夹 .so文件描述armeabi-v7a第七代及以上的ARM处理器,2011年以后生产的大部分Android设备都使用。arm64-v8a第8代、64位ARM处理器,很少设备,三星GalaxyS6是其中之一。armeabi第5代、第6代的ARM处理器,早期…

Mysql报错红温集锦(一)(ipynb配置、pymysql登录、密码带@、to_sql如何加速、触发器SIGNAL阻止插入数据)

一、jupyter notebook无法使用%sql来添加sql代码 可能原因: 1、没装jupyter和notebook库、没装ipython-sql库 pip install jupyter notebook ipython-sql 另外如果是vscode的话还需要安装一些相关的插件 2、没load_ext %load_ext sql 3、没正确的登录到mysql…

Git-flow分支管理与Aone-flow分支管理对比

Git-flow分支管理与Aone-flow分支管理对比 git-flow分支管理: master: 主分支,主要用来版本发布。 hotfix:线上 bug 紧急修复用到的临时分支。这个分支用来修复主线master的BUG release(预发布分支):rel…

深入理解网络原理2----UDP协议

文章目录 前言一、UDP协议协议段格式(简图)校验和 二、UDP与TCP 前言 随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同⼯作来完成业务,就有了⽹络互连。 一、UDP协议 协…

基于matlab GUI的Alpha shapes边缘提取

1、程序介绍 本程序是基于matlab语言,使用alpha shapes算法实现点云边缘提取。算法具体原理参考博客:基于alpha shapes的边缘点提取(matlab)-CSDN博客。该程序包括3个按钮:加载点云、边缘点提取、保存。其中&#xff0…

A Bug‘s Life (并查集)

//新生训练 #include <iostream> #include <algorithm> using namespace std; const int N 5000; int p[N], sz[N]; int n, m; int find(int x) {if (p[x] ! x)p[x] find(p[x]);return p[x]; } int main() {int T;scanf("%d", &T);for (int k 1; …

c#学习基础1

一、复杂数据类型 1&#xff09;概述 2&#xff09;枚举 1.基本概念 枚举是一个比较特别的存在&#xff0c;它是一个被命名的整形常量的集合&#xff0c;一般用它来表示状态&#xff0c;类型等 1.1申明枚举和申明枚举变量 1.2申明枚举语法 2.在哪里申明枚举 3.枚举的使用 4…

13_Scala面向对象编程_伴生对象

文章目录 1.伴生对象1.1 scala的一个性质&#xff0c;scala文件中的类都是公共的&#xff1b;1.2 scala使用object关键字也可以声明对象&#xff1b; 3.关于伴生对象和类4.权限修饰符&#xff0c;scala仅有private;5.伴生对象可以访问伴生类中的私有属性&#xff1b;6.案例7.伴…

五一假期告别人山人海,AI绘画让你的照片更美!

快乐总是短暂的&#xff0c;五一假期结束了&#xff0c;想必大家都拍了不少好看的照片&#xff0c;但是景点也经常是人山人海&#xff0c;照片中不免会出现其它不相干的人或物&#xff0c;以前想抹除这些人或物得找专业的美工或者图像处理专家P掉才行&#xff0c;现在AI绘画来了…

【Redis】Redis命令(一)

1.基本命令 1.1.切换DB 默认使用的是 0 号 DB&#xff0c;可以通过 select db 索引来切换 DB 1.2.查看 key 数量 dbsize 命令可以查看当前数据库中 key 的数量 1.3.删除当前库中数据 flushdb 命令仅仅删除的是当前数据库中的数据&#xff0c;不影响其它库 1.4.删除所有库中数据…

用Python做多项Logit模型

看到网上有一些用 python 做多项 Logit 模型的讲解&#xff0c;大多是使用 scikit-learn 库。这里要介绍的是如何使用 statsmodels 库来做多项 Logit 模型。 题外话&#xff0c;有人会问&#xff0c;statsmodels 和 scikit-learn 两个库有什么区别&#xff1f;为什么你非要用 …

SQL 基础 | JOIN 操作介绍

在SQL中&#xff0c;JOIN是一种强大的功能&#xff0c;用于将两个或多个表中的行结合起来&#xff0c;基于相关的列之间的关系。 JOIN操作通常用在SELECT语句中&#xff0c;以便从多个表中检索数据。 以下是几种基本的JOIN类型以及它们的用法&#xff1a; INNER JOIN&#xff1…

数据结构===树

文章目录 概要概念相关概念 有哪些常用的树小结 概要 树是一种新的数据结构&#xff0c;不同于数组&#xff0c;链表。就像大自然中的树&#xff0c;看下这个数据结构&#xff0c;很有意思&#xff0c;有一个主干&#xff0c;然后还有很多树叉&#xff0c;即支干。不错&#xf…

数据结构练习题---环形链表详解

链表成环&#xff0c;在力扣中有这样的两道题目 https://leetcode.cn/problems/linked-list-cycle/ https://leetcode.cn/problems/linked-list-cycle-ii/description/ 这道题的经典解法是利用快慢指针&#xff0c;如果链表是一个环形链表&#xff0c;那么快指针(fast)和慢指…