Sarcasm detection论文解析 |用于微博讽刺检测的上下文增强卷积神经网络

本文主要是介绍Sarcasm detection论文解析 |用于微博讽刺检测的上下文增强卷积神经网络,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文地址

论文地址:Context-augmented convolutional neural networks for twitter sarcasm detection - ScienceDirect

论文首页 

笔记大纲

用于微博讽刺检测的上下文增强卷积神经网络


📅出版年份:2018
📖出版期刊:Neurocomputing
📈影响因子:2
🧑文章作者:Ren Yafeng,Ji Donghong,Ren Han
📍 期刊分区:

JCR分区: Q2 中科院分区升级版: 计算机科学2区 中科院分区基础版: 工程技术2区 影响因子: 2.0 5年影响因子: 6.0 EI: 是 CCF: C 南农高质量: B


🔎摘要:

近年来,有关 Twitter 讽刺检测的研究越来越多。然而,现有研究有两个局限性。首先,现有工作主要使用离散模型,需要大量人工特征,而获取人工特征的成本可能很高。其次,现有工作大多侧重于根据推文本身进行特征工程,而没有利用目标推文的上下文信息。然而,目标推文的上下文信息(如对话或目标推文作者的历史推文)可能是可用的。为了解决上述两个问题,我们探索了用于微博讽刺检测的神经网络模型。在卷积神经网络的基础上,我们为这项任务提出了两种不同的语境增强神经网络模型。数据集上的结果表明,与最先进的离散模型相比,神经模型可以获得更好的性能。同时,所提出的语境增强神经模型能有效地从语境信息中解码讽刺线索,并相对提高了检测性能。


🌐研究目的:

探索用于微博讽刺检测的神经网络模型。

📰研究背景:

随着社交媒体的发展,twitter 已成为最受欢迎的微博服务之一。因此,基于 twitter 数据的情感分析和数据挖掘已成为一个热门研究课题 [1-3]。twitter 情感分析的目的是自动分析推文的极性。然而,twitter 中的讽刺性话语会将正面或负面话语的极性转化为相反的极性。这在一定程度上会影响情感分析任务的性能。因此,将讽刺性语句与正负极性语句区分开来非常重要。

然而,现有研究有两个局限性。首先,现有工作主要使用离散模型,需要大量人工特征,而获取人工特征的成本可能很高。其次,现有工作大多侧重于根据推文本身进行特征工程,而没有利用目标推文的上下文信息。然而,目标推文的上下文信息(如对话或目标推文作者的历史推文)可能是可用的。

🔬研究方法:


🔩模型架构:

CANN-KEY 模型-历史

在我们提出的 CANN-KEY 模型中,局部子网络由五层组成,分别称为输入层、卷积层、池化层、非线性组合隐藏层和输出层。

  • 左侧部分是本地子网络,使用目标推文的信息。

  • 右侧部分是上下文子网络,使用上下文推文的信息。 对于上下文子网络,我们将分别从基于对话的上下文和基于历史的上下文中自动提取特征。

本地子网络
  • 在输入层中,每个节点表示一条推文中的一个单词,节点的顺序按照原来的顺序排列,单词利用词嵌入表示。

  • 卷积层通常被用来捕捉词性 n-grams 信息。本文将卷积操作的窗口大小设为 3,并使用 tanh 作为激活函数。

  • 池化层,对于每条推文,在卷积层之后会得到不同数量的向量。我们利用池化技术来合并卷积层中不同数量的特征,形成一个具有固定维度的向量。 本文使用了所有三种汇集技术来全面捕捉讽刺证据,并将它们串联起来作为一个新的隐藏层 h2。

  • 隐藏层使用了一个非线性隐藏层来自动组合这些汇集特征。

  • 输出层用于根据最后一层隐藏层的特征对所有类别标签进行评分。

上下文子网络
  • 基于历史的上下文,然后将所有上下文推文视为一个文档,根据其 tf-idf 值对上下文推文中的所有单词进行排序。其次,我们选择最重要的关键词(tf-idf 值最高的关键词)作为该子网络的输入。

  • 输入层的每个词都是由词嵌入来表示。

  • 池化层依旧采用三种池化串联的方式。

  • 非线性隐藏层会自动结合目标推文和上下文推文的特征。

  • 与本地子网络不同,上下文子网络不使用任何卷积函数,因为上下文信息是一组突出词,不包含 n-grams 信息。

CANN-ALL 模型-对话

CANN-ALL 模型由六层组成,分别称为输入层、卷积层、池化层、非线性组合层、softmax 层和输出层。

  • 输入层包括三条推文(按时间顺序排列),最后一条推文是目标推文。

  • 这里的输入层、卷积层和池化层与第一个模型 CANN-KEY 的局部子网络相似。

  • 非线性组合层和 softmax 层,这两个层与 CANN- KEY 模型不同。

训练目标是最小化一组训练上的交叉熵损失,再加上一个 l2- 正则化项。按照之前的工作,在线 AdaGrad 被用来最小化目标函数。


🧪实验:

📇 数据集:

Wang 等人构建的数据集-Table1

  • 基本数据集由 1500 条推文组成,其中包含所有目标推文。

  • 基于历史的上下文包含 6774 条推文

  • 基于对话的上下文只包含 453 条推文

基于对话的上下文数量远远少于基于历史的上下文数量。请注意,基本数据集中的所有推文都有类别标签,而上下文信息中的所有推文都没有类别标签。

📏评估指标:

采用了十倍交叉验证法。

基本数据集被随机分成十等份,其中九份用于训练,第十份用于测试。

📉 优化器&超参数:

有五个超参数,包括两个部分。

  • 第一部分是网络结构参数,包括词向量的维数 D、卷积层的输出维数 C 和非线性组合层的输出维数 H;

  • 第二部分是训练参数,包括 AdaGrad 的 l2 规则化系数 λ 和初始学习率 α。

📊 消融实验:

  • 在基于对话的语境中,模型 MODEL-ALL优于模型 MODEL-KEY。这表明在基于对话的语境中,模型 MODEL-ALL 在捕捉讽刺的微妙线索方面具有更强的能力。

  • 在基于历史的语境中,模型 MODEL-KEY 的表现要优于模型 MODEL-ALL。

其中一个可能的原因是模型 MODEL-ALL 只将两条上下文推文作为输入,而模型 MODEL-KEY 则将更多的上下文推文作为输入。

📋 实验结果:

根据模型 MODEL-KEY(local)的结果,仅使用目标推文,神经模型就获得了 56.37% 的宏 F 1分数,高于最佳离散模型 LMS 的 55.31% 宏 F 分数。

我们的研究表明,将给定推文的上下文推文建模为一个集合,使用神经池函数自动从推文中提取最有用的特征,可以显著提高性能。


🚩研究结论:

与之前的研究相比,我们的神经网络模型将推文内容本身的特征和上下文特征以单词向量的形式整合到了一个模型中。实验结果表明,与最先进的离散模型和基于上下文的模型相比,我们提出的上下文增强神经网络模型具有更好的性能,证明了上下文增强神经网络模型在这项任务中的有效性。


📝总结

💡创新点:

  • 在卷积神经网络的基础上,我们为这项任务提出了两种不同的语境增强神经网络模型,以从语境信息中充分捕捉讽刺线索。

  • 目标推文的历史上下文数量相对较多,并且存在一些冗余信息,因此在建立用于讽刺检测的上下文增强神经网络模型时,我们只考虑部分关键词。

  • 第一个模型是通过整合关键上下文信息而建立的上下文增强神经网络模型(本文命名为 CANN-KEY)。其中池化层使用了所有三种汇集技术来全面捕捉讽刺证据。

  • 第二个模型被称为整合了所有上下文信息的上下文增强神经网络模型(本文命名为 CANN-ALL)。

🖍️知识补充:

  • CNN、RNN 和 LSTM 通常用于表示短语、句子和文档的语义构成。RNN 和 LSTM 更常用于对话语结构建模。

  • 未知词是使用预训练词嵌入的平均向量来表示的

这篇关于Sarcasm detection论文解析 |用于微博讽刺检测的上下文增强卷积神经网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/951187

相关文章

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

利用Python和C++解析gltf文件的示例详解

《利用Python和C++解析gltf文件的示例详解》gltf,全称是GLTransmissionFormat,是一种开放的3D文件格式,Python和C++是两个非常强大的工具,下面我们就来看看如何... 目录什么是gltf文件选择语言的原因安装必要的库解析gltf文件的步骤1. 读取gltf文件2. 提

Java中的runnable 和 callable 区别解析

《Java中的runnable和callable区别解析》Runnable接口用于定义不需要返回结果的任务,而Callable接口可以返回结果并抛出异常,通常与Future结合使用,Runnab... 目录1. Runnable接口1.1 Runnable的定义1.2 Runnable的特点1.3 使用Ru