Sarcasm detection论文解析 |CAT-BiGRU

news/2024/5/20 7:58:30

论文地址

论文地址:CAT-BiGRU: Convolution and Attention with Bi-Directional Gated Recurrent Unit for Self-Deprecating Sarcasm Detection | Cognitive Computation

github:Ashraf-Kamal/Self-Deprecating-Sarcasm-Detection (github.com)

论文首页

 笔记框架

CAT-BiGRU:使用双向门控循环单元进行卷积和注意力,用于自嘲讽刺检测


📅出版年份:2022
📖出版期刊:Cognitive Computation
📈影响因子:5.4
🧑文章作者:Kamal Ashraf,Abulaish Muhammad
📍 期刊分区:
JCR分区: Q1 中科院分区升级版: 计算机科学3区 中科院分区基础版: 工程技术2区 影响因子: 5.4 5年影响因子: 4.8 EI: 是 南农高质量: A


🔎摘要:

背景 对于计算语言学研究人员来说,讽刺检测一直是一个研究得很透彻的问题。然而,有关不同类别讽刺语言的研究仍未得到广泛关注。自贬式讽刺(Self-Deprecating Sarcasm,SDS)是讽刺的一种特殊类别,即用户对自己进行讽刺,它被广泛应用于社交媒体平台,主要作为一种广告工具,用于品牌代言、产品宣传和数字营销,目的是提高销售量。

方法:在本文中,我们提出了一种用于检测 Twitter 上 SDS 的深度学习方法。我们提出了一种新颖的双向门控循环单元(CAT-BiGRU)的卷积和注意力模型,该模型由输入、嵌入、卷积、双向门控循环单元(BiGRU)和两个注意力层组成。卷积层从嵌入层中提取基于 SDS 的句法和语义特征,BiGRU 层从提取的特征中检索前后方向的上下文信息,注意力层用于从输入文本中检索基于 SDS 的综合上下文表示。最后,采用 sigmoid 函数将输入文本分类为自嘲或非自嘲讽刺。

结果和结论:在七个 Twitter 数据集上进行了实验,以使用标准评估指标评估所提出的 (CAT-BiGRU) 模型。实验结果令人印象深刻,并且明显优于许多基于神经网络的基线和最先进的方法。在本文中,我们强调了所提出的方法的生物学启发和心理动机基础,以检查其相对于 SeticNet 的情感能力。所提出模型的功效在两个基于 SenticNet 的情感计算资源——Amazon 词嵌入和 AffectiveSpace 上进行了评估。根据实验结果,我们得出结论,基于深度学习的方法有潜力准确检测社交媒体文本中的 SDS。


🌐研究目的:

研究一种用于检测 Twitter 上 SDS 的深度学习方法

📰研究背景:

对于计算语言学研究人员来说,讽刺检测一直是一个研究得很透彻的问题。然而,有关不同类别讽刺语言的研究仍未得到广泛关注。自贬式讽刺(Self-Deprecating Sarcasm,SDS)是讽刺的一种特殊类别,即用户对自己进行讽刺,它被广泛应用于社交媒体平台,主要作为一种广告工具,用于品牌代言、产品宣传和数字营销,目的是提高销售量。

🔬研究方法:

提出了一种新颖的双向门控循环单元(CAT-BiGRU)的卷积和注意力模型,该模型由输入、嵌入、卷积、双向门控循环单元(BiGRU)和两个注意力层组成。


自嘲推文识别

识别显式自嘲推文

旨在根据推文中是否存在某些显式模式来识别自引用推文。

  • 特定模式

  • 通用模式

从显式自嘲推文中聚类

以连接组件的形式对 Exps 的所有推文进行聚类。

仅当一对自引用推文(节点)之间的 Jaccard 相似度大于阈值 0.6 时,才会创建一对自引用推文(节点)之间的边,如 [28] 中给出的。

从集群中进行模式挖掘

在识别出显式自引用推文的集群后,在此步骤中从集群中挖掘频繁模式(三元组)。

隐式自嘲推文识别

考虑所有在上述步骤(i)中没有任何匹配的推文,并称为隐式推文。

这一步的主要目的是从低召回值中恢复过来。

与显式自嘲识别合并

将两组显式自引用推文和隐式自引用推文合并在一起,生成候选自引用推文列表 St,即 St = Exps ∪ Imps 。

🔩模型架构:

CAT-BiGRU 模型旨在通过将卷积层、BiGRU 和两个注意力层集成在一起来改善上述缺点。

输入层:

每条候选自引用推文都被标记化,转换为序列,并替换为其字典索引值。

为了使每个候选自引用推文的长度相同,使用固定的padding值。

它被转换为矩阵形式,其中每一行代表一个自引用推文向量,并传递到词嵌入层。

嵌入层

嵌入层充当神经网络架构中的隐藏层。

在本文中,使用了全局向量(GloVe)

卷积层

我们总共考虑了 256 个滤波器和 3 的窗口大小,它在嵌入向量上移动以提取特征。结果,生成了掌握基于 SDS 的句法和语义特征的各种序列。

卷积层用于从候选自引用推文中提取基于 SDS 的语法和语义特征。

BiGRU层

可以向前和向后两个方向工作,并从卷积层生成的特征中获取基于上下文信息的序列。

注意力层

两个注意力层利用重要词语的权重提取基于 SDS 的上下文表示。这些表征是从 BiGRU 的前后语境信息序列中提取的。

使用两个注意力层来允许候选自指推文中的单词具有不同的权重,以加强对基于 SDS 的单词/标记的理解。

softmax层

使用softmax激活函数获得每个单词的归一化权重。

dropout 用于通过在训练过程中丢弃神经元的随机样本来减少过度拟合并改善泛化误差。

二元交叉熵损失函数用于分类器训练,它将自引用推文标签解释为 SDS 或 NSDS。


🧪实验:

📇 数据集:

除了六个基准数据集之外,我们还创建了一个新数据集,即 Twitter-280,其中包含使用基于主题标签的注释技术通过爬虫从 2019 年 6 月 1 日到 2019 年 7 月 31 日发布的讽刺和非讽刺推文。

所有数据集分为训练集和测试集,其中80%的数据用于训练,20%的数据用于测试。

被手动注释为 SDS 或 NSDS。

📏评估指标:

使用四个标准评估指标进行评估——精确度、召回率、f 分数和准确性。

📉 优化器&超参数:

批量大小和详细值分别取256 和 2。

我们考虑了 Adam 优化算法

总共 100 个轮次来训练模型

💻 实验设备:

使用神经网络API Keras执行训练

📊 参数的影响:

显示不同 GloVe 嵌入维度、GRU 参数和感知计算资源对上述所有数据集上的 CAT-BiGRU 模型的影响。

GRU隐藏单元的数量

图 8 和图 9 分别展示了不同 GRU 隐藏单元(200、256 和 300)的 CAT-BiGRU 模型在所有数据集上的 f 分数和准确度值的分类结果。

结果表明,具有 256 个隐藏单元的 GRU 在所有数据集上表现更好。这些结果还表明隐藏单元的数量对 CAT-BiGRU 模型的性能有显着影响。

优化算法

使用两种不同的优化算法(Adam 和 RMSprop)对 CAT-BiGRU 模型的性能进行分析。

图 10 和 11 显示了 Adam 和 RMSprop 优化算法对 CAT-BiGRU 模型分类结果的影响(在所有数据集上的 f 分数和准确度值)。总的来说,从这些图中可以看出,在所有数据集上使用 Adam 优化器获得的结果都比使用 RMSprop 优化器获得的结果要好。

激活函数的效果

我们分析不同激活函数(sigmoid 和 softmax)对 CAT-BiGRU 模型性能的影响。

实验结果表明,在所有数据集上,使用 sigmoid 函数获得的 CAT-BiGRU 模型的分类结果优于使用 softmax 函数获得

感知计算资源的影响

表 8 和表 9 列出了 CAT-BiGRU 模型使用 GloVe和 AffectiveSpace 的 CAT-BiGRU 模型的分类结果和 AffectiveSpace 的分类结果。有趣的是,拟议的 CAT-BiGRU 模型在使用两种计算资源的 CAT-BiGRU 模型在所有数据集上的 F1 分数和准确率值方面都取得了良好的结果。不过,与 AffectiveSpace 相比,使用 Amazon WE 获得的结果更好。根据这些结果可以推断出,在 CAT-BiGRU 模型中加入 sentic 计算资源可以提高其检测 SDS 的准确性。

📋 实验结果:

基于上述结果,可以推断,与 Ghosh 和 Veale [33] 方法相比,在我们提出的模型中包含两个在前后方向上起作用的注意层提供了更好的上下文表示,其中采用堆叠方法而无需任何注意力层机制。 Ghosh 和 Veale [33] 方法仅在一个方向上发挥作用,缺乏双向讽刺检测的上下文表示。


🚩研究结论:

在本文中,我们提出了一种用于 SDS 检测的新型 CAT-BiGRU 模型。所提出的模型由输入、嵌入、卷积、BiGRU 和两个注意力层组成,并从不同角度对七个数据集进行评估。

CAT-BiGRU 的实验结果很有希望,并且与各种基于神经网络的基线和最先进的方法相比明显更好。


📝总结

💡创新点:

我们提出了一种新颖的双向门控循环单元(CAT-BiGRU)的卷积和注意力模型,该模型由输入、嵌入、卷积、双向门控循环单元(BiGRU)和两个注意力层组成。

⚠局限性:

🔧改进方法:

🖍️知识补充:

推文通常是精确、简短和非正式的,并且包含非文字表达词、bashes、语法错误的词、非结构化短语和俚语。

近年来,各种神经网络模型,如RNN,在许多NLP应用中表现出了更好的性能,并以更少的特征数量获得了显着的效果。 RNN的架构是顺序的,可以处理任意长度的序列,主要是执行序列建模任务。

GRU 属于 RNN 家族,它克服了与非结构化文本相关的复杂单词建模任务。尽管 GRU 从文本中提取上下文信息,但它不会从已识别的上下文数据中检索重要信息。

此外,单词的语义和语法关系取决于上下文因素,这对于涉及文本分类、机器翻译和语音识别的许多 NLP 应用非常有用。

在神经网络中,注意力机制通过为文本中的每个单词指定不同的权重来突出显示重要的关键字,并最大限度地减少非关键字的影响。


💬讨论:

 


http://www.mrgr.cn/p/82433672

相关文章

Linux学习笔记:信号

信号 在Linux中什么是信号信号的产生方式硬件产生的信号软件产生的信号异常产生的信号 进程对信号的处理信号的保存信号方法更改函数signal信号处理的更改恢复默认信号忽略 信号的管理信号集 sigset_t对信号集的操作 信号的捕捉过程 在Linux中什么是信号 在 Linux 系统中&…

使用Selenium做网站登录的免验证

我发现,我已经三年多没有更新博客了。这几年一直感觉没什么可写的,工作上没遇到的问题python的不多,主要是前端页面上遇到的问题,感觉写起来比较困难,一写就要贴上去很多代码,还没什么必要,不贴又说不明白,所以干脆不写了。今年换了工作,开始研究新玩意儿了——爬虫。…

【Django学习笔记(十)】Django的创建与运行

Django的创建与运行 前言正文1、安装Django2、创建项目2.1 基于终端创建项目2.2 基于Pycharm创建项目2.3 两种方式对比 3、默认项目文件介绍4、APP5、启动运行Django5.1 激活App5.2 编写URL和视图函数对应关系5.3 启动Django项目5.3.1 命令行启动5.3.2 Pycharm启动5.3.3 views.…

文件各种上传,离不开的表单 [html5]

作为程序员的我们,经常会要用到文件的上传和下载功能。到了需要用的时候,各种查资料。有木有..有木有...。为了方便下次使用,这里来做个总结和备忘。 利用表单实现文件上传 最原始、最简单、最粗暴的文件上传。 前端代码: //方…

IoTDB 入门教程 基础篇⑨——TsFile导入导出工具

文章目录 一、前文二、准备2.1 准备导出服务器2.2 准备导入服务器 三、导出3.1 导出命令3.2 执行命令3.3 tsfile文件 四、导入4.1 上传tsfile文件4.2 导入命令4.3 执行命令 五、查询六、参考 一、前文 IoTDB入门教程——导读 数据库备份与迁移是数据库运维中的核心任务&#xf…

STM32 F103C8T6学习笔记17:类IIC通信(SMBus协议)—MLX90614红外非接触温度计

今日学习配置MLX90614红外非接触温度计 与 STM32 F103C8T6 单片机的通信 文章提供测试代码讲解、完整工程下载、测试效果图 本文需要用到的大概基础知识:1.3寸OLED配置通信显示、IIC通信、 定时器配置使用 这里就只贴出我的 OLED驱动方面的网址链接了&#xff1a…

二、Linux系统安装

章节目标 Linux发展史掌握虚拟机软件安装新建虚拟机以及CentOS系统安装了解VMware备份的两种方式、能说出快照与克隆的区别 一、Linux发展史 1. Linux 起源 Linus(林纳斯托瓦兹):Linux 的开发作者,被称为Linux 之父,Linux 诞生时是芬兰赫…

在Gitlab Runner中调用Web Api写入Directory.Build.props需要的版本号文件

摘要 本文介绍了在Windows上的Gitlab Runner,如何调用web api更新版本号定义文件。 PowerShell function Update-Version {param ([string]$WEB_API_URL,[string]$NAMESPACE,[string]$VERSION_ID)echo "能生成或写入.props文件的web api的网站地址:"$WEB_API_URL …

.Net Core中使用RabbitMQ

开发中经常用到发布订阅的功能,之前一直用的Redis,使用过程中也出现了一些问题,后来换了RabbitMQ,用上去更顺手,简单记录一下。 正文开始: RabbitMQ是一个开源的,基于AMQP(Advanced Message Queuing Protocol)协议的完整的可复用的企业级消息队,RabbitMQ可以实现点对点,发…

跨界探索:在苹果系统M系列处理器上安装Windows 11系统的实践经历

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路。] 大家好,我是【WeiyiGeek/唯一极客】一个正在向全栈工程师(SecDevOps)前进的技术爱好者 作者微信:WeiyiGeeker 公众号/知识星球:全栈工程师修炼指南 主页博…

信息系统安全与对抗-网络侦查技术与网络扫描技术(期末复习)

1、网络拓扑结构在网络攻击中的作用 查明目标网络的拓扑结构,有利于找到目标网络的关键节点,从而提高攻击效率,达到最大攻击效果。 2、网络侦查在网络攻击中的作用 识别潜在目标系统,确认目标系统适合哪种类型的攻击。 3、百度…

浅谈程序员的实用神器

作为一个程序员,有很多实用的工具和资源可以帮助我们提高工作效率和解决问题。以下是一些常用的程序员实用神器: 集成开发环境(IDE):如Visual Studio Code、PyCharm、Eclipse等,提供代码编辑、调试、版本控…

一行SQL语句实现统计未来7天、按月统计数据,无数据填充0

未来7天、按月统计数据,无数据填充0 help_topic1 背景由于业务需求,在项目的报表中心中需要未来7天、按月统计数据,且要求按天补全数据,补数据填为0。  附实测SQL语句,请大家指正。 2 举例 2.1未来7天,按天补全数据,无数据填充0 sql语句:select t1.lastDays as x, IF…

为什么 ChatGPT 不火了?

不火了是有原因的,下面我来从大部分人拿到 ChatGPT 之后的两大痛点开始讲起: 很多朋友拿到 ChatGPT 后的第一个痛点就是:用的不好 你经常会感觉到 ChatGPT 回答的好空,没有太多参考价值。 而第二个痛点则是:无处去用…

压榨数据库的真实处理速度

引子 你了解你们线上数据库的真实处理速度吗?请认真思考半分钟再回答。我先来回答一下:的确知道,因为我特别关注这块内容,咨询过DBA同学。其他朋友欢迎在评论区留言,大家一起探讨。 为什么会突然提出这样一个问题呢,因为前几天看到一篇文章是讲电商系统中如何优化库存预占…

MYSQL 数据库之锁

本文参考 哔哩哔哩黑马 TODO 补充 详细mysql 实例操作语句 全局锁全局锁就是对整个数据库实例加锁 加锁后处于只读状态 后续的DML的写 语句 和 DLL 不执行表级锁表锁表锁分为两类: 表共享锁(read lock) 表独占写锁(write lock) --> 语法 :加锁 lock tables 表名... r…

【免费Java系列】大家好 ,今天是学习面向对象高级的第八天点赞收藏关注,持续更新作品 !

这是java进阶课面向对象第一天的课程可以坐传送去学习http://t.csdnimg.cn/Lq3io day08-Map集合、Stream流、File类 一、Map集合 同学们,在前面几节课我们已经学习了Map集合的常用方法,以及遍历方式。 下面我们要学习的是Map接口下面的是三个实现类H…

图算法必备指南:《图算法:行业应用与实践》全面解读,解锁主流图算法奥秘!

《图算法:行业应用与实践》于近日正式与读者见面了! 该书详解6大类20余种经典的图算法的原理、复杂度、参数及应用,旨在帮助读者在分析和处理各种复杂的数据关系时能更好地得其法、善其事、尽其能。 全书共分为10章: 第1~3章主要…